安全加密(使用gpg工具实现公钥加密)

安全加密(使用gpg工具实现公钥加密)_第1张图片

对称加密算法

特性:
加密、解密使用同一个密钥,效率高
将原始数据分割成固定大小的块,逐个进行加密
缺陷:
密钥过多
密钥分发
数据来源无法确认
算法
DES     : 是一种使用密钥加密的块算法,采用56位加密算法。
3DES    : 三重数据加密算法,进行三次DES加密。
AES     : 高级加密标准目前对称加密中最常用的算法之一,采用128、192、256、512位算法。
Blowfish: 是一个64位分组及可变密钥长度的对称密钥分组密码算法。
 IDEA    : 国际数据加密算法,采用128位加密算法。
 CAST-128: 是类似于DES的置换组合网路加密系统,是一种12或16循环的Feistel密码,块长度是64位,密码长度最大128位
安全加密(使用gpg工具实现公钥加密)_第2张图片
安全加密(使用gpg工具实现公钥加密)_第3张图片
安全加密(使用gpg工具实现公钥加密)_第4张图片
查找/etc/sysconfig/下的普通文件进行哈希运算(2者效果一样)
[root@centos7 /app]# find /etc/sysconfig/ -type f -exec sha512sum {} \;
[root@centos7 /app]# find /etc/sysconfig/ -type f |xargs sha512sum
重定向到文件中
[root@centos7 /app]# find /etc/sysconfig/ -type f |xargs sha512sum >/app/f1.log   
[root@centos7 /app]# sha512sum --check /app/f1.log      检查是否改变

[root@centos7 /app]#openssl passwd -1                   做口令加密  
Password: 
Verifying - Password: 
$1$45Gqame0$DPzKaPrj4ymsi.FJiiVWn0                       #1代表md5

密钥交换

密钥交换: IKE(Internet Key Exchange )
公钥加密:
DH (Deffie-Hellman):生成会话密钥,参看:
https://en.wikipedia.org/wiki/Diffie%E2%80%93Hel
lman_key_exchange
DH:
1、 A: a,p 协商生成公开的整数a, 大素数p
B: a,p
2、 A:生成隐私数据 :x (x

应用程序: RPM

文件完整性的两种实施方式
被安装的文件
• MD5单向散列
• rpm --verify package_name (or -V)
发行的软件包文件
• GPG公钥签名
• rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEYredhat*
• rpm --checksig pakage_file_name (or -K)

rpm包校验  文件哈希值变化
5 digest (formerly MD5 sum) differs
T mTime differs
安全加密(使用gpg工具实现公钥加密)_第5张图片

使用gpg实现对称加密

对称加密file文件
gpg -c file
ls file.gpg
在另一台主机上解密file
gpg -o file -d file.gpg
安全加密(使用gpg工具实现公钥加密)_第6张图片
安全加密(使用gpg工具实现公钥加密)_第7张图片
安全加密(使用gpg工具实现公钥加密)_第8张图片

单向散列Hash

特性
将任意数据缩小成固定大小的数值
任意输入长度的数据。
输出固定长度是加密数值。
若修改数据,生成的数值也会改变,不会和原来的数值产生冲突。
无法从数值中推算生成数据,不可逆。
功能
验证数据完整性
提高数字签名的有效性
常见算法
md5    : 把不同长度的数据块进行暗码运算成一个128位的数值
sha1   : 对任意长度的数据运算生成一个160位的数值
sha224 : 对任意长度的数据运算生成一个224位的数值
sha256 : 对任意长度的数据运算生成一个256位的数值
sha384 : 对任意长度的数据运算生成一个384位的数值
sha512 : 对任意长度的数据运算生成一个512位的数值
MAC    :是一种使用密钥的单向函数,可以用它们在系统上或用户之间认证文件或消息,常见的是HMAC(用于消
息认证的密钥散列)。
Linux中的常用工具
md5sum 
sha1sum  file、sha1sum --check file 
openssl
gpg
示例
[[email protected] ~]#echo "test" > hash              #生成一个文件
[[email protected] ~]#ls                              #查看
admin.pubkey  anaconda-ks.cfg  bin  hash  install.log  install.log.syslog  test  test.gpg
[[email protected] ~]#md5sum hash                     #md5运算产生hash值
d8e8fca2dc0f896fd7cb4cb0031ba249  hash             #hash值
[[email protected] ~]#echo "123" >> hash              #在文件的中加一行123
[[email protected] ~]#md5sum hash                     #再用md5运算产生hash值
4145c486d60a3d078fc57ac0e7de44bd  hash             #hash值和原来的已经不同了
[[email protected] ~]#echo "test" > hash              #把文件重置
[[email protected] ~]#md5sum hash                     #再次运算
d8e8fca2dc0f896fd7cb4cb0031ba249  hash             #hash值和原来的相同
[[email protected] ~]#md5sum hash > hash.key          #hash运算并把hash值写入hash.key文件中
[[email protected] ~]#md5sum -c hash.key              #用这个文件判断原文件的数据有没有改变
hash: 确定                                          
[[email protected] ~]#echo "123" >> hash              #把123追加到hash文件
[[email protected] ~]#md5sum -c hash.key              #再次判断
hash: 失败
md5sum: 警告:1/1 生成的校验和不匹配
[[email protected] ~]#

非对称加密

特点,采用公钥和私钥加密和解密
 公钥:公开给所有人
私钥:自己留存,必须保证其私密性
用公钥加密数据,只能使用与之配对的私钥解密;反之亦然
功能:
 数字签名:主要在于让接收方确认发送方身份
对称密钥交换:发送方用对方的公钥加密一个对称密钥后发送给对方
数据加密:适合加密较小数据
缺点:密钥长, 加密解密效率低下
算法:
RSA     :RSA是目前最有影响力的公钥加密算法,安全性依赖于大数分解。(数据加密,数字签名) 
DSA     :是Schnorr和ElGamal签名算法的变种,基于整数有限域离散对数难题,一个重要特点是两个素数
 公开,这样,当使用别人的p和q时,即使不知道私钥,你也能确认它们是否是随机产生的,还是
作了手脚,RSA算法却做不到。(数字签名)
ELGamal : 公钥密码体制和椭圆曲线加密体,其安全性依赖于计算有限域上离散对数。(数据加密,数字签)

使用gpg工具实现公钥加密

在hostB主机上用公钥加密,在hostA主机上解密
在hostA主机上生成公钥/私钥对
gpg --gen-key
在hostA主机上查看公钥
gpg --list-keys
在hostA主机上导出公钥到wang.pubkey
gpg -a --export -o wang.pubkey
从hostA主机上复制公钥文件到需加密的B主机上
scp wang.pubkey hostB
实验ctntos7传给centos6文件(加密到解密)
centos6加密
gpg --gen-key
生成秘钥
安全加密(使用gpg工具实现公钥加密)_第9张图片
输入密码(可以不输入密码)
安全加密(使用gpg工具实现公钥加密)_第10张图片
提示密码简单
安全加密(使用gpg工具实现公钥加密)_第11张图片
OK
安全加密(使用gpg工具实现公钥加密)_第12张图片
查看秘钥生成
安全加密(使用gpg工具实现公钥加密)_第13张图片
gpg --list-key 查看秘钥生成
安全加密(使用gpg工具实现公钥加密)_第14张图片
将centos6公钥拷贝到centos7主机
安全加密(使用gpg工具实现公钥加密)_第15张图片
切换到centos7主机
gpg --gen-key 添加centos7秘钥
安全加密(使用gpg工具实现公钥加密)_第16张图片
生成秘钥
安全加密(使用gpg工具实现公钥加密)_第17张图片
把centos6公钥导入到centos7的 .gnupg
安全加密(使用gpg工具实现公钥加密)_第18张图片
用centos6公钥给文件加密
安全加密(使用gpg工具实现公钥加密)_第19张图片
把加密文件传输到centos6主机上
安全加密(使用gpg工具实现公钥加密)_第20张图片
切换centos6主机上
安全加密(使用gpg工具实现公钥加密)_第21张图片
删除centos6的秘钥
安全加密(使用gpg工具实现公钥加密)_第22张图片
删除centos7秘钥
gpg --delete-keys centos7 提示删除公钥先删除私钥
安全加密(使用gpg工具实现公钥加密)_第23张图片
gpg --ddelete-keys centos7 删除公钥
完成

你可能感兴趣的:(安全加密(使用gpg工具实现公钥加密))