スクリプトでパスワードを処理する方法: メモリ内 VS ファイル内

スクリプトでパスワードを処理する方法: メモリ内 VS ファイル内

安価なクラウド プロバイダーの VPS で実行されるスクリプトがあります。シナリオは次のとおりです。プロバイダーを信頼していますが、プロバイダーがキーを盗もうとした場合に、プロバイダーを困らせることを優先します。ハード ディスク内の関連するフォルダーはすべて暗号化されており (TrueCrypt または類似のもの)、マシンが起動しているときのみ平文で表示されます (常に暗号化されますが、HHD が取り外された場合、データを見ることはできません)

スクリプト内で Dropbox API キーを処理するための最適なソリューションはどれですか?

注: スクリプトは FTP からファイルを取得し、Dropbox にアップロードして、ディスクから削除します。

暗号化されたファイル (openssl/pgp) を保存し、スクリプト (手動で入力した復号化キーを使用) を起動すると、キーが復号化され、変数として保存され、必要なときに使用されます (スクリプトは永久に存続します)。

何かアイデアやコメントはありますか?

答え1

次のようなものを使うといいでしょうPython gnupggnupg でファイルを暗号化します。"本当の" セキュリティを実現するには、秘密鍵にパスフレーズを設定する必要があります。そうしないと、パスワードと秘密鍵を含む暗号化ファイルが同じサーバーにあるため、ファイルの復号化が簡単になります。パスフレーズを設定すると、スクリプトを起動するたびにパスフレーズを入力する必要がありますが、gpg-agent を使用してマシンの起動時にのみパスワードを入力することで、その手間を最小限に抑えることができます。

答え2

これは隠蔽によるセキュリティですが、他に選択肢はほとんどありません。潜在的な窃盗犯の生活を困難にしたい場合は、スクリプト内にキーを埋め込み、後でスクリプトを実行可能ファイルに変換することをおすすめします。シュックエルフ自体を難読化することもできます(エルフを難読化する方法ただし、何をしても、分解して調査することは可能であることを覚えておいてください。

関連情報