赞
踩
我们在网上的发送的邮件时明文的,可以被截获,被我们的服务商获得,甚至可以被搜索出来,这时一件很恐怖的事情,如果是一般的嘘寒问暖的信息也就罢了。若是私信就危险了,所以呢,加密就很有必要了!!
什么是加/解密
-Tarena ==> 加密 ==> 25 31 24 23 46 31
-25 31 24 23 46 31==>解密 ==>Tarena
加密目的及方式
-对称加密: 加密/解密用同一个密钥
-非对称加密: 加密/解密用不同的密钥
-信息摘要:基于输入的信息生成长度较短,位数固定的散列值
常见的加密算法
-DES ,
-AES ,
-RSA ,
-DSA ,
MD5完整性检验
-生成md5sum校验工具
-与软件官方提供的校验值比对
[root@proxy ~]# vim file1
abcdefg
[root@proxy ~]#md5sum file1
e1ce86726d2c8bea4f1398530b43b6f7 file1
使用GPG对称加密方式保护文件
[root@proxy ~]# yum -y install gnupg2 //安装Gnupg2软件包
[root@proxy ~]#gpg --version //查看版本
GPG使用对称加密算法加密数据的操作
[root@proxy ~]# gpg -c fiel1
根据提示依次输入两次密码,如果在GNOME桌面环境,设置密码的交互界面会是下面的窗口程序
如果是在tty终端执行的上述加密操作,则提示界面也是文本方式的
根据提示输入两次口令,加密后的文件(自动添加后缀 .gpg)就生成了,传递过程中只要发送加密的文件(比如 file1.gpg)就可以了
gpg: 已创建目录‘/root/.gnupg’
gpg: 新的配置文件‘/root/.gnupg/gpg.conf’已建立
gpg: 警告:在‘/root/.gnupg/gpg.conf’里的选项于此次运行期间未被使用
gpg: 钥匙环‘/root/.gnupg/pubring.gpg’已建立
[root@proxy ~]# cat file1.gpg //查看加密数据为乱码
��@�E�ջ��"��zj��Io'��>L,J����JI_��_�Yy}��>
使用GPG对加密文件进行解密操作
[root@proxy ~]# scp file1.gpg 192.168.4.100:/root //把加密文件拷贝到客户机
[root@client ~]# gpg -d file1.gpg > file1 //解密后保存
gpg: CAST5 加密过的数据
gpg: 以 1 个密码加密
gpg: 警告:报文未受到完整的保护
[root@client ~]# cat file1
abcdefg //查看解密后的文件
使用GPG非对称加密方式保护文件
生成密钥对: gpg --gen-key
接收方UserA创建自己的公钥.私钥对
[root@clinet ~]# gpg --gen-key
列出公钥 ,查看公钥环 gpg --list-keys
列出所拥有的公钥:他们自己的公钥以及从与之通信的其他人那里导入的任何公钥
[root@client ~]# gpg --list-keys
/root/.gnupg/pubring.gpg
------------------------
pub 2048R/9A61D530 2018-05-15
uid UserA (UserA) <UserA@tarena.com>
sub 2048R/03489C24 2018-05-15
[root@client ~]# gpg -a --exprot UserA > /tmp/UserA.pub /--exprot的作用是导出密钥 -a的作用是导出的密钥存储为ASCII格式
[root@client ~]# scp /tmp/UserA.pub 192.168.4.5:/tmp/ //将密钥传给UserB
使用GPG命令结合 --import选项导入发送方的公钥信息,以便在加密文件时指定对应的公钥
[root@proxy ~]# gpg --import /tmp/UserA.pub
gpg: 密钥 C9380AC4:公钥“UserA (UserA) <UserA@tarena.com>”已导入
gpg: 合计被处理的数量:1
gpg: 已导入:1 (RSA: 1)
UserB使用导入的公钥加密数据,并把加密后的数据传给UserA
[root@proxy ~]# echo "I love NB" > haha.txt
[root@proxy ~]#gpg -e -r UserA haha.txt
gpg: BFD6B5F5:没有证据表明这把密钥真的属于它所声称的持有者
pub 2048R/BFD6B5F5 2018-05-15 UserA (UserA <UserA@tarena.com>
主钥指纹: 9FBE 7A97 624F 8273 B4AC 636A 81EF F0AC C938 0AC4
子钥指纹: 9A63 AD39 343C FE4A EBB4 B66E F2B6 8412 BFD6 B5F5
这把密钥并不一定属于用户标识声称的那个人。如果您真的知道自
己在做什么,您可以在下一个问题回答 yes。
无论如何还是使用这把密钥吗?(y/N)y
[root@proxy ~]# scp haha.txt.gpg 192.168.4.100:/root //加密的数据传给UserA
[root@client ~]# gpg -d haha.txt.gpg > love.txt
您需要输入密码,才能解开这个用户的私钥:“UserA(UserA) <UserA@tarena.com>”
2048 位的 RSA 密钥,钥匙号 BFD6B5F5,建立于 2018-05-15 (主钥匙号 C9380AC4)
gpg: 由 2048 位的 RSA 密钥加密,钥匙号为 BFD6B5F5、生成于 2018-05-15
“UserA (UserA) <UserA@tarena.com>”
[root@client ~]# cat love.txt //获得解密后的文件内容
I love you
[root@client ~]# ls /root/.gnupg //产生的密钥放在这个文件里面
[root@client ~]# rm -rf .gnupg/ //删除密钥
[root@client ~]# reset //如果终端不能用了,就执行reset重置
GPG签名和认证:签名的目的,主要时确保来源的数据正确
使用GPG的签名机制,检查数据来源的正确性。使用私钥签名的文件,是可以使用对应的公钥验证签名的,只要验证成功,则说明这个文件一定是出自对应的私钥签名,除非私钥被盗,否则一定能证明这个文件来自于某个人!
[root@client ~]# tar zcf log.tar /var/log //建立测试软件包
[root@client ~]# gpg -b log.tar //创建分离式数字签名
[root@client ~]# ls -lh log.tar*UserA.pub
-rw-r--r--. 1 root root 914K 5月 15 14:42 log.tar
-rw-r--r--. 1 root root 287 5月 15 14:43 log.tar.sig
[root@client ~]# gpg -a --export UserA > /tmp/UserA.pub //把公钥导出
[root@client ~]# scp /tmp/UserA.pub 192.168.4.5:/tmp/
[root@client ~]# scp log.tar* 192.168.4.5:/root /将签名文件与签名传给UserB
log.tar 100% 914KB 130.9MB/s 00:00
log.tar.sig 100% 287 683.8KB/s 00:00
[root@proxy ~]# gpg --import /tmp/xxxxx.pub //导入公钥
[root@proxy ~]# gpg --verify log.tar.sig log.tar 在proxy上验证签名
gpg: 于 2018年05月15日 星期二 14时43分28秒 CST 创建的签名,使用 RSA,钥匙号 C9380AC4
gpg: 完好的签名,来自于“UserA (UserA) <UserA@tarena.com>”
gpg: 警告:这把密钥未经受信任的签名认证!
gpg: 没有证据表明这个签名属于它所声称的持有者。
主钥指纹: 9FBE 7A97 624F 8273 B4AC 636A 81EF F0AC C938 0AC4
r
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。