我在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
答案 0 :(得分:2)
read -sp Password: OPENSSLPASS
OPENSSLPASS=$OPENSSLPASS openssl aes-256-cbc -a -d -in myfile.txt.enc -pass env:OPENSSLPASS | less
unset OPENSSLPASS
不涉及任何临时磁盘存储。您的密码会在less
会话期间临时存储在shell环境中(可能可以解决,因为只有openssl
执行才需要)。完成后,less
不会将输出留在终端中。
答案 1 :(得分:1)
数据缓存在屏幕(终端仿真器)中,而不是文件所在的系统。唯一安全的方法是在之后关闭终端。
编辑方法适用于root以外的用户,对root用户不安全,root用户可以查看/ tmp和vim交换文件中的文件。
答案 2 :(得分: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结尾的文件,你将被要求输入密码来解密它。当你写信时,你会被要求输入两次密码来重新加密。
注意:不要使用:wq使用:w和:q分离!
警告:为了安全起见,特别关闭了交换文件和备份文件。
PS:此系统也适用于PGP / GPG文件加密以及编辑Gzip的文件。它所需要的只是一个加密/解密流式传输(管道)数据的命令。
有关此内容以及其他VIM加密/解密方法的详细信息,请参阅... http://www.ict.griffith.edu.au/anthony/info/crypto/file_encrypt.hints