1

openssl を使用してデータと AES 暗号を暗号化/復号化する場合、コマンドは次のようになります。

openssl enc -aes-256-cbc -in message_file -K 42AB7FCE7BFEEE03E16719044916CBD475F6D000F230D213FF0F4775EF8D46F5 -iv D5C21AC249B26A1FBA376E8CFCDC4E1A -S 2C6A1B8EAACA302D -e -out message_file.enc

これにより、top/ps に表示されるプロセス タイトルにキー、iv、およびソルトが配置されます。この情報を明らかにせずに、openssl (またはそうでない場合は別の代替手段) でファイルを AES 暗号化する方法はありますか? これらの文字列をファイルから取得するオプションはありませんでした。

4

2 に答える 2

1

openssl は stdin からコマンドを受け取ることができます

たとえばonetime_keyfile、次の内容でキーと IV を指定する場合

-K 42AB7FCE7BFEEE03E16719044916CBD475F6D000F230D213FF0F4775EF8D46F5 -iv D5C21AC249B26A1FBA376E8CFCDC4E1A

次に、次のコマンドはその情報を使用してファイルを暗号化します

umask 077
echo -n "enc -aes-256-cbc -in message_file -out message_file.enc " > encrypt_command_file
cat onetime_keyfile >> encrypt_command_file
openssl < encrypt_command_file

質問では、キー、初期化ベクトル、ソルトの両方を指定していることに注意してください。その場合、salt 引数は無視されます。ソルトは、パス フレーズからキーと iv を導出するためにのみ使用されます。key と iv を明示的に指定する場合は、独自のソルト アルゴリズムを使用して、暗号化するファイルごとに一意のキーと iv を生成する必要があります。したがって、実際の使用では、上記の例のファイル onetime_keyfile を別のプログラムからの出力として生成する必要があります。

パスフレーズとソルトからキーと IV を生成する標準アルゴリズムの詳細については、https://www.openssl.org/docs/crypto/EVP_BytesToKey.htmlを参照してください。

独自のソルティングを行っていない場合は、-kfile または -pass オプションを使用して、ファイルからパス フレーズを読み取ることをお勧めします。

于 2014-09-01T01:01:00.673 に答える
1

RSA 暗号化:

http://bsdsupport.org/q-how-do-i-use-openssl-to-encrypt-files/

openssl rsautl -encrypt -pubin -inkey public.key -in plaintext.txt -out encrypted.txt

AES 暗号化:

openssl enc -h の結果に基づく

openssl enc -aes-128-cbc -in foo -out foo.enc -kfile passwordfile

これが openssl enc -h の結果です。-kfile の説明に注意してください

root@bt:/tmp# openssl enc -h
unknown option '-h'
options are
-in <file>     input file
-out <file>    output file
-pass <arg>    pass phrase source
-e             encrypt
-d             decrypt
-a/-base64     base64 encode/decode, depending on encryption flag
-k             passphrase is the next argument
-kfile         passphrase is the first line of the file argument
-md            the next argument is the md to use to create a key
                 from a passphrase.  One of md2, md5, sha or sha1
-K/-iv         key/iv in hex is the next argument
-[pP]          print the iv/key (then exit if -P)
-bufsize <n>   buffer size
-engine e      use engine e, possibly a hardware device.
Cipher Types
-aes-128-cbc               -aes-128-cfb               -aes-128-cfb1             
-aes-128-cfb8              -aes-128-ecb               -aes-128-ofb              
-aes-192-cbc               -aes-192-cfb               -aes-192-cfb1             
-aes-192-cfb8              -aes-192-ecb               -aes-192-ofb              
-aes-256-cbc               -aes-256-cfb               -aes-256-cfb1             
-aes-256-cfb8              -aes-256-ecb               -aes-256-ofb              
-aes128                    -aes192                    -aes256                   
-bf                        -bf-cbc                    -bf-cfb                   
-bf-ecb                    -bf-ofb                    -blowfish                 
-cast                      -cast-cbc                  -cast5-cbc                
-cast5-cfb                 -cast5-ecb                 -cast5-ofb                
-des                       -des-cbc                   -des-cfb                  
-des-cfb1                  -des-cfb8                  -des-ecb                  
-des-ede                   -des-ede-cbc               -des-ede-cfb              
-des-ede-ofb               -des-ede3                  -des-ede3-cbc             
-des-ede3-cfb              -des-ede3-ofb              -des-ofb                  
-des3                      -desx                      -desx-cbc                 
-rc2                       -rc2-40-cbc                -rc2-64-cbc               
-rc2-cbc                   -rc2-cfb                   -rc2-ecb                  
-rc2-ofb                   -rc4                       -rc4-40           
于 2013-04-16T04:20:51.397 に答える