1

にはたくさんのシークレットが保存されておりmyfile.txt、多かれ少なかれ毎日アクセスする必要があります。だから私はそれを使用しopensslて暗号化し、それを見る必要があるときに復号化します:

openssl aes-256-cbc -a -d -in myfile.txt.enc

これにより、端末にファイルが表示されますが、そこにとどまります-表示できるバッファにファイルを一時的に復号化し、その後そのバッファを安全に消去する方法はありますか? ここではシンプルさが王様です。暗号化されたファイルからいくつかの数字をすばやく取得したいだけです。

ボーナス ポイント: これは、暗号化されたファイルを編集する必要がある場合に使用するスクリプトです。この方法はセキュリティ的に安全ですか?

openssl aes-256-cbc -a -d -in myfile.txt.enc > /tmp/myfile
vim /tmp/myfile
openssl aes-256-cbc -a -e -in /tmp/myfile -out myfile.txt.enc
shred -zu /tmp/myfile
4

3 に答える 3

2
read -sp Password: OPENSSLPASS
OPENSSLPASS=$OPENSSLPASS openssl aes-256-cbc -a -d -in myfile.txt.enc -pass env:OPENSSLPASS | less
unset OPENSSLPASS

一時的なオンディスク ストレージは含まれません。パスワードは、lessセッションの間、一時的にシェル環境に保存されます (実行時にのみ必要なため、回避できる可能opensslがあります)。less完了後に端末に出力を残しません。

于 2012-05-30T11:18:51.907 に答える
1

データは、ファイルが存在するシステムではなく、端末エミュレーターの画面にバッファーされます。唯一の安全な方法は、後で端末を閉じることです。

編集方法は root 以外のユーザーに対しては問題ありませんが、/tmp 内のファイルと vim スワップ ファイルを参照できる root に対しては安全ではありません。

于 2012-05-31T00:37:52.100 に答える
1

安全な方法は、一時ファイルをまったく使用しないことです。

VIM を使用しているため、vim は暗号化されたバイナリ ファイルを読み取り、メモリ内で復号化し、編集できるようにします。プロセスを逆にして、保存時に暗号化します。

以下を .vimrc (または他の関連ファイル) に追加します。

" OpenSSL encrypted files.
" PBKDF v1.5 (salted) aes-256-cbc encrypted file.  (File magic "Salted__")
augroup ossl
autocmd!
autocmd  BufReadPre,FileReadPre     *.ossl set binary
autocmd  BufReadPre,FileReadPre     *.ossl set history=0 cmdheight=3 viminfo=
autocmd  BufReadPre,FileReadPre     *.ossl set noswapfile nowritebackup
"
autocmd  BufReadPost,FileReadPost   *.ossl set shell=/bin/sh shellredir=>
autocmd  BufReadPost,FileReadPost   *.ossl '[,']!openssl aes-256-cbc -d -salt
autocmd  BufReadPost,FileReadPost   *.ossl set nobinary cmdheight& shell&
autocmd  BufReadPost,FileReadPost   *.ossl let b:encflag=1
autocmd  BufReadPost,FileReadPost   *.ossl exe "doau BufReadPost
".expand("%:r")
autocmd  BufReadPost,FileReadPost   *.ossl redraw!
"
autocmd  BufWritePre,FileWritePre   *.ossl mark z
autocmd  BufWritePre,FileWritePre   *.ossl set binary cmdheight=3
shell=/bin/sh
autocmd  BufWritePre,FileWritePre   *.ossl '[,']!openssl aes-256-cbc -salt
"
autocmd  BufWritePost,FileWritePost *.ossl undo
autocmd  BufWritePost,FileWritePost *.ossl set nobinary cmdheight& shell&
autocmd  BufWritePost,FileWritePost *.ossl 'z
augroup END

サフィックス .ossl で終わるファイルを編集すると、それを復号化するためのパスワードが求められます。書き込むと、パスワードを再暗号化するためにパスワードを 2 回尋ねられます。

注: :wq を使用しないでください。:w と :q を別々に使用してください。

警告: スワップ ファイルとバックアップ ファイルは、セキュリティのために明確にオフにされています。

PS: このシステムは、PGP/GPG ファイルの暗号化や、Gzip で圧縮されたファイルの編集にも使用できます。必要なのは、ストリーミングされた (パイプされた) データを暗号化/復号化するコマンドだけです。

これに関する詳細およびその他の VIM 暗号化/復号化方法については、 http: //www.ict.griffith.edu.au/anthony/info/crypto/file_encrypt.hints を参照してください。

于 2012-07-27T06:30:05.270 に答える