对称加密:DES,3DES AES
功能:只能保证机密性
非对称加密:(公钥加密):是通过数学函数来算出的。常用的RSA,DSS(只能加密,不能签名),ECC(椭圆曲线算法,要比RSA还要安全,但是不成熟)
功能:身份验证,密钥交换,机密性
单向加密:提取数据的特征码。MD5,SHA1 SHA2 SHA3(安全哈希算法)
功能:数据完整性
1、发送方使用选定的单向加密算法计算原始数据的特征码。
2、发送方使用自己的私钥加密特征码,附加于原始数据后面。
3、发送方生成一次性对称密钥,并使用此密钥加密数据(原始数据+加码后的特征码)
4、发送方使用收方的公钥加密一次性对称密钥,附加于加密数据后面
5、发送
1、接收方使用自己的私钥解密加密的一次性对称密钥:
2、使用对称密钥解密数据,得到加密的特征码和原始数据。
3、使用发送发的公钥解密加密的特征码。
4、使用与发送方相同的单向加密算法重新计算数据的特征码,并与解密出来的特征码比较。从而完成了检验数据完整性操作。
公钥分发
数字证书:
x509v3
版本号(version)
序列号():证书本身在CA中唯一标识:
签名算法标志:
发行者名称:
有效期:
证书主体名称:(组织(主体),个人)
证书主体公钥信息:
发行商唯一标志
证书主体的唯一标志:
扩展:
签名:
PKI:Public Key Infrastructure
端实体(申请者)
注册机构(RC)-->
签证机构 (CA)
证书撤销列表(CRL)发布机构
证书存取库
SSL:
starttls:可以在一个端口上提供加密和非加密。
ssl v1,v2,v3
tls:Transport Lanyer Security
tls v1
OpenSSL:
主要的软件包
libcrypto:加密、解密
libssl:实现ssl
openssl version #版本号 OpenSSL 1.0.1e-fips 11 Feb 2013 1、加密一个文件 [root@node1 ~]# openssl enc -des3 -in fstab -e -out fstab.des3 enter des-ede3-cbc encryption password: Verifying - enter des-ede3-cbc encryption password: 2、解密一个文件 [root@node1 ~]# openssl enc -des3 -in fstab.des3 -d -out fstab.txt [root@node1 ~]# cat fstab.txt # # /etc/fstab # Created by anaconda on Thu Jun 30 10:38:23 2016 # # Accessible filesystems, by reference, are maintained under ‘/dev/disk‘ # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/VolGroup-lv_root / ext4 defaults 1 1 UUID=fd2f1ae1-8eef-4211-a9f3-7db3f3379818 /boot ext4 defaults 1 2 ........ 3、加密算法 openssl dgst -md5 fstab.txt [root@node1 ~]# openssl dgst -md5 fstab.txt #获取文件的特征码,只要算法相同,特征码也相同,用md5sum也可以。 MD5(fstab.txt)= 085b811b0c1b10057c5aa43371234c28 4、测试当前主机加密算法的速度 openssl speed des-ede3 [root@node1 ~]# openssl speed des-ede3 Doing des ede3 for 3s on 16 size blocks: 2296748 des ede3‘s in 3.00s Doing des ede3 for 3s on 64 size blocks: 642682 des ede3‘s in 3.00s Doing des ede3 for 3s on 256 size blocks: 160988 des ede3‘s in 3.00s Doing des ede3 for 3s on 1024 size blocks: 40291 des ede3‘s in 3.00s Doing des ede3 for 3s on 8192 size blocks: 5038 des ede3‘s in 3.00s OpenSSL 1.0.1e-fips 11 Feb 2013 5、sslpasswd 加密 [root@node1 ~]# openssl passwd -1 -salt 12345678 Password: $1$12345678$xek.CpjQUVgdf/P2N9KQf/ 随机数生成 [root@node1 ~]# openssl rand -base64 8 SJkppyT8nio= [root@node1 ~]# openssl passwd -1 -salt ‘openssl rand -hex4‘ Password: $1$openssl $IOYGACZVeLM3HedYIV5G5. 6、生成私钥 [root@node1 ~]# openssl genrsa 1024 Generating RSA private key, 1024 bit long modulus ...................++++++ .................++++++ e is 65537 (0x10001) -----BEGIN RSA PRIVATE KEY----- MIICXQIBAAKBgQDWaZ6o19Ov7oMRg/N7M/ogGzhaBMTXr/meKCcBh4qO+nuOot/m 9fpgDAEx5tnTO79UDGoBENjhu9sjsqrVKMRHbfHgu51NfgaKDAqKBd29VvNa0C68 zRKRMToXOriVWPwYOOQRiS0j04V9aDy9FRvnBmuI0+sYMqj4HmAkTKsZPwIDAQAB AoGBAL2D99gXhKWBtVoa/nBMne4ZATMX+gEHKySvKuMAMel03xdRQYS8sISKt9eq y6gYrGGW429zu6+ywtyHxNXKRcmauvixBnlYIshUAzjx4l+WyAowFfNQ+1m5TIdo QGOCsXVLqXb9kehwmQesvXHCLaOR2q/nrtOUbx7FW2hwjWvBAkEA8WfXMHIgp5Ez 0EZ4kiVfiwgIzi6MxNZPxx1iOxyS+/Nt/XMQKhAh4GanuRD2dFE+kWehls/xwvgI I+tKYgfAHwJBAONgBCSoE+fLf7yNZGBYJWaF7n8jepQB/xhDuhBj/rVPhCDDSVTt WWgQN/wo+eqX1ijuNI7fyKXH7i+3vTRFAuECQBCoI5b6KPqm8DZMxoD/ByqmsUTY vWnPh82rX13IyPONhmdYiyL73fqH2sbQPtEj0fdieSnYy0uypY0k7Qr6ke0CQQCv Y6wufnxES+QvlL191+CZsewjpEF0lAmrNOr8o7WhNEIOZ7VUTnWt4PzehNkqzY7E KeLe5t5Giu8/XbMT87vhAkBAWt02VrExIElBSD9hkSW368SIIB0E1dMzxvMHQNVw 7jSTP+/AN6s/V4pacIbdIJcP3AqNU6Ng4yrAr0o60idc -----END RSA PRIVATE KEY----- [root@node1 ~]# openssl genrsa 1024 > mykey.private Generating RSA private key, 1024 bit long modulus .........++++++ .......++++++ e is 65537 (0x10001) 加密私钥 [root@node1 ~]# openssl genrsa -des3 2048 Enter pass phrase: Verifying - Enter pass phrase: -----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: DES-EDE3-CBC,2D8AA1C9D62164FB 7、生成公钥 [root@node1 ~]# openssl rsa -in mykey.pri -pubout writing RSA key -----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA8MGAPnk2Xg1A3LFy+aPx fMFYL+1dWGWF03Uh/mB47W+oG0mtyBpeE5jQsgZr6tlQ7zNJkjNdK9sFv19QQpJm mH+4Kqa1NsFQHo83RUztfqnCkM9/ub3TIocSTev08+R80Ap7VdslOeVRoECB46y2 VgMMr+kwdHI+CcB4mLWkRsyIixZX2bM4ZrOT0U/YPia5HuYmf/E6iG+J4cHy2yqP wA1+zUaCrphv6QO7n6EtvBZ+xhvcpeiEPS+SllwKyDnLjUf6NX1PTr+0TEQCHOnt tALXu5r6+bYAHDcvTZbl1B20JtG6FQsgtyX3T6J/SdjzlKruMw/lqw5HwWRMOQHt 0wIDAQAB -----END PUBLIC KEY----- 直接用umask设置好权限的操作,务必加上()。umask对子shell执行,对当前无效。否则以后操作都是600。 [root@node1 ~]# (umask 077; openssl genrsa -out /root/mykey2.pri 2048) Generating RSA private key, 2048 bit long modulus ...................................+++ .........................................+++ e is 65537 (0x10001) [root@node1 ~]# ll -h /root/mykey2.pri -rw-------. 1 root root 1.7K 7月 14 11:47 /root/mykey2.pri #600
原文地址:http://jiaxu201.blog.51cto.com/4569604/1826320