自動化スクリプト等作成すると、ログイン処理の為にパスワードをファイルとして保持しなければならない場面があります。
ただしセキュリティ上、パスワードは平文で保存すべきでないので、何らかの手段で暗号化する必要があります。
今回はそんな時に使える暗号化の手法を紹介します。
技術は openssl を用います。
openssl はほとんどの linux サーバーにインストールされているため、比較的気軽に使用できるのが利点です。
秘密鍵を作成
暗号化には鍵が必要です。
openssl では以下のコマンドで秘密鍵を作成することができます:
openssl genrsa > <鍵のファイル名>
(例) ホームディレクトリに “secret_rsa.key” というファイル名の秘密鍵を作成する場合
openssl genrsa > ~/secret_rsa.key
パスワードを暗号化
パスワードファイルの暗号化は以下のコマンドで実行可能です:
openssl rsautl -encrypt -inkey <鍵のファイル名>
-in <パスワードファイル> -out <暗号化されたパスワードファイル>
(例) 秘密鍵 “secret_rsa.key” を用いて “plain_password” を暗号化し “encrypted_password” ファイルを作成する場合
openssl rsautl -encrypt -inkey secret_rsa.key
-in plain_password -out encrypted_password
暗号化パスワードを復号
暗号化したパスワードファイルを使用する場合は復号が必要となります。
暗号化されたパスワードファイルの復号は以下のコマンドで実行可能です:
openssl rsautl -decrypt -inkey <鍵のファイル名>
-in <暗号化されたパスワードファイル> -out <復号されたパスワードファイル>
(例) 秘密鍵 “secret_rsa.key” を用いて “encrypted_password” ファイルを復号し “decrypted_password” ファイルを作成する場合
openssl rsautl -decrypt -inkey secret_rsa.key
-in encrypted_password -out decrypted_password
このように openssl を使うと簡単に暗号化を実装することが可能です。
秘密鍵を渡すことで、別システムでも暗号化パスワードを復号出来ますが、鍵のやりとりはくれぐれも慎重に行いましょう。

Comments