私はSalesforceの開発者ですが、セキュリティの世界やLinuxの初心者です。 Salesforceでキーと初期化ベクトルを使用してファイルを暗号化しました(Salesforceでは対称暗号化のみが可能です)。いいえ、パートナーチームと協力して、LinuxシステムでgpgとOpenSSLを使用して同じものを復号化しています。しかし、できませんでした。
注:使用しているキーとベクターは16進数です。暗号化に使用したアルゴリズムはAES128です。
GPGアプローチ:
GPGには、暗号化に使用したキーではないように見えるパスフレーズが必要なようです。gpgでキーとIVだけを使用してファイルを復号化することはできますか?
OpenSSLアプローチ:
私たちのケースでGPGが機能しない場合は、OpenSSLの探索も試みています。 Salesforce製品サポートから以下のコマンドを受け取りましたが、それも機能しません。不正な解読として応答を受け取りました。
OpenSSL> enc -aes-128-cbc -d -a -nosalt -in C:\ Testfiles\input.txt.enc -out C:\ Testfiles\output.txt -K mywhateverkey -iv mywhateveriv
opensslまたはGPGのエキスパートが光を当てることはできますか?
まず、GPGには独自のメッセージ形式があります。これが生成されたものでない限り、復号化に使用することはできません。
Opensslの方が適切なオプションです。提供したドキュメントのリンクによると、暗号化は[〜#〜] aes [〜#〜]暗号を[〜#〜] cbc [〜#〜]モードでPKCS#5パディング(すべてAES128は、使用できる完全な暗号化方式ではありません)。
質問で指定したコマンドは問題ないようです。問題の原因を推測する必要があります(暗号化されたファイル、キー、およびIVが正しいと仮定)。
-a
BASE64デコードを示すスイッチ。暗号文はBASE64でエンコードされていますか?ガイドとして、opensslを使用したこのような暗号化と復号化のMWEを次に示します。
$ echo "foo" > input.txt
$ openssl enc -aes-128-cbc -e -a -nosalt -K 0102030405060708090a0b0c0d0e0f10 -iv 00112233445566778899aabbccddeeff -in input.txt -out input.txt.enc
$ cat input.txt.enc
oo9TBVgBrcfUHd5wE3gctw==
$ openssl enc -aes-128-cbc -d -a -nosalt -K 0102030405060708090a0b0c0d0e0f10 -iv 00112233445566778899aabbccddeeff -in input.txt.enc
foo