一、CA(Certificate Authority)数字认证中心
在互联网中,数字证书的应用越来越多。与生活中的各种“证书”一样,数字证书也要 有相应的权威认证机构,负责颁发、验证、废除证书等工作,这个机构通常被称为 CA (Certificate Authority)数字认证中心。
在非金融商务环境中,企业可以搭建私有的 CA 服务器,来为自己的各种应用颁发数字 证书,从而将不安全的 IMAP 服务改为加密的 IMAPS 服务。
二、加密算法
加密就是一种将数据转换程另外一种形式的过程,如果不了解用于加密的算法,解密几乎是不可能的。加密算法分为两大类:对称加密和非对称加密
1.对称加密:使用同一密钥对信息提供安全保护
(1)常见的对称加密算法:DES、3DES、AES等
1>DES 算法:属 IBM 的研发产品,其密钥长度为 64 位,其中 8 位用于奇偶校验, 所以实际有效长度为 56 位。虽然该算法目前还没有找到更好的方法破解,但是通过暴 力破解已经可以在较短时间内攻破,已经不建议使用这种算法了。
2>3DES 算法:理论上 3DES 算法是 DES 算法的增强版,因为 3DES 使用了三个阶段 的 DES, 即同时使用了三个不同的 56 位密钥,所以相当于产生了一个 168 位的有效密 钥长度,这种级别的密钥目前还没有计算机有能力在短时间内破解,其执行效率虽然在 软件环境中比较慢,但在硬件环境中并不明显。
3>AES 算法:比 3DES 算法更安全,它支持 128、192、256 位密钥长度,有效的密 钥长度可达上千位。更重要的是,AES 算法采用了更为高效的编写方法,对于 CPU 的占 有率较少,所以实际工程趋向于使用 AES 来提供更好的加密功能。
2.非对称加密:使用公钥和私钥两个不同的密钥进行加密和解密
(1)公钥(Public Key)与私钥(Private Key)的关系
- 公钥和私钥是成对生成的,这两个密钥互不相同,可以互相加密和解密
- 不能根据一个密钥来推算出另一个密钥
- 公钥对外公开,私钥只有私钥的持有人才知道
- 公钥与私钥要配对使用,如果公钥对数据进行加密,只有用相对应的私钥才能解密;如果用私钥对数据进行加密,只有用对应的公钥才能解密。
(2)根据两种密钥使用的先后顺序,可以分为数据加密和数字签名
(3)非对称加密算法的优缺点:
优势在于其安全性,目前为止还没有任何一种算法可以在合理的时间范围内攻破该种加 密算法。 但由于计算过程复杂,它的计算效率要比对称加密算法低得多(大约要慢 1500 倍)
(4)常用的非对称加密算法
1>RSA(使用三位数学家名字的首字母来命名)
2>DSA(Digital Signature Algorithm)数字签名算法
3>DH(Diffle-Hellman)迪菲-赫尔曼
前两种常用于验证功能,而 DH 一般被用来实现 IPSec VPN 中的 Internet 密钥交换(IKE)协议
三、数字签名
1.数字签名的功能
- 身份验证:接收方可以确认该发送方的身份标识
- 数据的完整性:证实消息在传送过程中内容没有被修改
- 操作的不可否认行:其他用户不可能冒充发送方发送消息
用户可以通过数字签名来确保数据的完整性和有效性,只采用私钥对数据进行加密处理即可。由于私钥仅为用户个人拥有,故而能够证实签名消息的唯一性,即验证一下两个方面:
- 消息由签名者即发送方自己签名发送,签名者不能否认也难以否认
- 消息自签发到接收这段过程中是否发生修改,签发的消息是否真实
2.散列(Hash)算法
(1)MD5 算法
MD5(Message-digest Algorithm 5),信息-摘要算法。创建了一个 128 位的签名,是目前 应用比较广泛的一种算法。MD5 执行速度较快,但其安全性相对 SHA 稍差一点。
(2)SHA 算法
SHA(Securd Hash Algorithm)安全散列算法。是美国国家标准,一般称为 SHA-1,它可 以产生 160 位的签名(20 字节的长度)
目前,已有人证明不同的输入值通过 MD5 计算可以得到相同的数字签名,说明 MD5 的签名可能具有一定程度的虚假性。
SHA 也出现类似的问题,并且有人宣称数字签名理论上是可以伪造的。因为存在这种安 全隐患,现在已经开发了 SHA-256 和 SHA-512 等(有时统称为 SHA-2)。它们具有更长的签 名长度,对于目前的计算机水平来说,可以消除上述的安全隐患。
##3. 数字签名的过程
(1)发送方将文件用某种 HASH 算法产生数字摘要
(2)发送方用自己的私钥对摘要进行加密,形成数字签名
(3)将原文和加密的摘要同时传送给对方
(4)对方用发送方的公钥对摘要进行解密,同时对收到的文件用发送方相同的 HASH算法产生一个新的摘要
(5)将解密后的摘要和新生成的摘相互比对,两者一致,则说明文件是由发送方发出的,并在传输过程中信息没有被破坏或篡改过,否则不然
4.SSL 与 HTTPS
(1)SSL(Secure Socket Layer)安全套接字层
由 Netscape(网景公司)开发,用于保障数据在 Internet 上安全的传输。SSL 协议位于 TCP/IP 协议与各种应用层协议之间,目前的浏览器都支持 SSL ,在 Linux 系统中,OpenSSL 是 SSL 的开源实现。
(2)HTTPS(Hyper Text Transfer Protocol Secure)安全超文本传输协议
也是由 Netscape(网景公司)开发,用于对数据进行加密和解密。 HTTPS 使用 SSL 通信,使用端口 443。现在 HTTPS 被广泛用于互联网上安全敏感的通信, 如网上交易支付方面。
四、数字证书
1.数字证书概述:
数字证书是一种权威性的电子文档,由权威公正的第三方机构,即 CA 中心签发。以数字证书为核心的加密技术可以对网络上传输的信息进行加密和解密、数字签名和签名认证, 确保网上传输信息的机密性、完整性。使用了数字证书,即使发送的信息在网上被他人截获, 甚至丢失了个人账户、密码等信息,仍可以保证账户和资金的安全。
2.通常,数字证书包括以下信息:
- 使用者的公钥
- 使用者的标识信息(如名称和电子邮件)
- 有效期(证书的有效时间)
- 颁发者的标识信息
- 颁发者的数字签名,用来证明使用者的公钥和使用者的标识信息之间的绑定关系是否有效
证书只有在指定的期限内才有效,一旦过了证书的有效期,到期证书的使用者就必须申请一个新的证书。
五、CA 认证中心的搭建
1.案例环境
主机名 | IP 地址 | 主要软件 |
---|---|---|
ca.huyouba1.com | 192.168.100.100 | openssl |
mail.huyouba1.com | 192.168.100.101 | postfix,dovecot |
client.huyouba1.com | 192.168.100.102 | mutt |
2.实施步骤
(1)搭建企业 CA 证书服务器
(2)配置 Dovecot 邮件服务器,并为邮件服务器颁发证书
(3)使用 mutt 客户端测试 IMAPS 协议
3.具体实验操作
(1)搭建企业 CA 证书服务器
[root@ns1 ~]# vim /var/named/huyouba1.com.zone
确认安装 openssl
[root@ca ~]# rpm -qa |grep openssl
openssl-libs-1.0.2k-16.el7.x86_64
xmlsec1-openssl-1.2.20-7.el7_4.x86_64
openssl-1.0.2k-16.el7.x86_64
修改配置文件
[root@ca ~]# vim /etc/pki/tls/openssl.cnf
40 [ CA_default ]
41
42 dir = /etc/pki/CA //证书服务器的工作路径
43 certs = $dir/certs //已颁发的证书存放目录
44 crl_dir = $dir/crl //吊销的证书存放目录
45 database = $dir/index.txt //数据库的索引文件
48 new_certs_dir = $dir/newcerts //新证书的存放目录
50 certificate = $dir/cacert.pem //根证书的存放位置
51 serial = $dir/serial //序列号文件(需手动创建该文件)
55 private_key = $dir/private/cakey.pem//私钥存放的位置
56 RANDFILE = $dir/private/.rand //随机数
58 x509_extensions = usr_cert //x509 扩展,互联网标准
以上信息无需修改,修改以下信息
生成序列号和数据库索引文件
[root@ca ~]# cd /etc/pki/CA/
[root@ca CA]# echo 01 >serial
[root@ca CA]# touch index.txt
为 CA 服务器生成私钥
为 CA 服务器创建自己的根证书文件
req:生成证书请求的标识,在 CA 服务器上生成证书请求与生成证书同时进行
-new:新建
-x509:使用 x509 互联网标准
-key:指定私钥
-days:证书有效期(天)
发布根证书文件
[root@ca CA]# yum -y install httpd
[root@ca CA]# echo "ServerName ca.huyouba1.com:80" >>/etc/httpd/conf/httpd.conf
[root@ca CA]# systemctl restart httpd
[root@ca CA]# mkdir /var/www/html/certs
[root@ca CA]# cp cacert.pem /var/www/html/certs/HUYOUBA1_CA.CRT
(2)配置 Dovecot 邮件服务器,并为邮件服务器办法证书
生成服务私钥
[root@mail ~]# openssl genrsa -out imaps-svr.key 1024
Generating RSA private key, 1024 bit long modulus
.......................++++++
.................++++++
e is 65537 (0x10001)
生成签名请求文件
将签名证书请求文件发给 CA 中心
根据签名请求文件创建 CA 证书文件
[root@mail ~]# ls
imaps-svr.crs imaps-svr.key imaps-svr.crt
安装 postfix 与 dovecot 部署邮件收发系统
调整 dovecot 配置,启用数字证书
[root@mail ~]# vim /etc/dovecot/conf.d/10-ssl.conf
8 ssl = yes
14 ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
15 ssl_key = </etc/pki/dovecot/private/dovecot.pem
(3)使用 mutt 客户端测试 IMAPS 协议
安装并配置 mutt
[root@client ~]# yum -y install mutt
[root@client ~]# mkdir ./.mutt
[root@client ~]# vim .mutt/muttrc
set folder=imaps://mail.huyouba1.com
set spoolfile=imaps://mail.huyouba1.com
set certificate_file=/root/.mutt/HUYOUBA1_CA.CRT
测试
[root@client ~]# mutt
Outlook 客户端使用 imaps
文件 -> 添加新账户 -> 下一步 手动设置或其他服务器类型
选择 POP 或 IMAP
填写好账户信息,点击其他设置
在高级栏中,选择接收服务器 imap 使用 ssl 加密
点击下一步配置完成