Linux在网络中通信首先要保证数据的安全保密,所以我们就要了解一下数据的加密解密的过程
OSI国际标准化组织制定了为x.800 的安全框架:包含一下方面
安全攻击:任何危机信息安全的都叫安全攻击
被动攻击:窃听
主动攻击:伪装、重播、消息修改、拒绝服务
安全机制: 组织攻击,或从攻击状态恢复到正常状态
加密、数字签名、访问控制、数据完整性、认证交换、流量填充、路由控制、公证
安全服务:
认证访问控制
数据保密性
连接保密性
无连接保密性
选择域保密性
流量保密性
数据完整性
不可否认性
而我们主要数一下安全机制里的加密以及对应的解密机制:
加密算法和协议分为:
(1)对称加密:密钥长度(128,192,256,384,512)
特性:
1、加密、解密使用同一口令;
2、将明文分隔成固定大小的块,逐个进行加密
3、加密速度快
缺陷:
1、密钥过多;
2、密钥传输安全不能保证;
3、容易被破解
(2)公钥加密:
非对称加密,每个密钥都是成对出现,分为公钥和私钥。私钥自己持有,公钥任何人都可获得。所以只需要维护一对密钥即可。
公钥:public key
私钥:secret key
公钥长度为:1024、2048、4096,
加密速度太慢所以不会用来加密数据,一般用于密钥交换、身份验正。
(3)单向加密:
为了保证数据完整性,使用单项加密
通过数据得到定长的数据指纹
具有雪崩效应
加密方式:MD5(128位)、SHA1(160位)、SHA256、SHA384、SHA512
所以完整的加密过程是:
那么下来我们就要保证公钥的获得正确和安全
密钥的交换:IKE(Internet Key Exchange)
使用DH算法
而公钥的安全是有第三方机构来保证。这个机构为CA
CA:
CA就是身份的验证,是一个证书,里面包含持有者的公钥有效期等一些基本的注释信息,对于这个证书我们也要证明他的来源和完整性,所以证书也是经过组合加密的,我们需要证书就是为了证明对方的身份,第三方的***明的CA由他自己颁发,也就是自签署证书,所以我们在看对方的证书的时候,先看证书的颁发者是否是可信任的。
PKI:Public Key Infrastructure 公钥基础建设
签证机构:CA
注册机构:RA
证书吊销列表:CRL
x.509: 定义了证书结构和认证协议标准;
IP安全、TLS/SSL和S/MIME
CA证书的格式:
拿到别人发来CA的签证,用CA 的公钥解密,能解密则说明签证是CA发的,把解密出来的特征码和自己重新计算的特征码作比较,一样说明CA是完整的。
但是CA机构的认证时收费的,有时候一个公司的内部需要内部认证,那就需要创建一个私有CA
OpenSSL建立私有CA:
CA:
1,给自己生成一对密钥
2,自签署证书
3,验证请求者的信息(私人CA可以省略)
4,签署证书
通信节点:
1,生成密钥对
2,生成证书签署
3,把请求发送给CA
建立CA服务器
1,生成密钥:(umask 077; openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)
2,req:生成证书签署请求. openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3655
-x509:生成自签署证书
-days n:证书有效时长
-key /path/to/keyfile:指定私钥文件 名字为cakey.pem
-new:新的请求
-out /path/to/somefile:证书保存位置,名字为cacert.pem
3,初始化工作环境
#touch /etc/pki/CA/{index.txt,serial}
#echo 01 > /etc/pki/CA/serial CA的编号从01开始
节点申请证书:
一:节点生成请求
生成密钥对
(umask 077;openssl genrsa -out /root/httpd.key 2048)
生成证书签署请求
#openssl req -new -key /etc/httpd/ssl/httpd.key -out /etc/httpd/ssl/httpd.csr
把签署的请求文件发给CA服务
# scp /path/to/file host:/path/to/
二:CA签署证书
1,验证证书中的信息
2,签署证书
# openssl ca -in /path/to/somefile.csr -out /path/to/somefile.crt -days N
证书签署成功,保存在-out目录下。/etc/pki/CA/httpd.crt
3,发送给请求者
三:吊销证书
(1)节点
获取证书serial
# openssl x509 -in /path/to/certificate_file.crt -noout -serial -subject
(2)CA
根据节点提交的serial和subject信息来验证与index.txt文件中的信息是都一致;
在/etc/pki/CA/index.txt是否保持一致
吊销证书
# openssl ca -revoke /etc/pki/CA/newcerts/SERIAL.pem
生成吊销证书列表的编号(第一次吊销)
echo 00 > /etc/pki/CA/crlnumber
更新证书吊销列表
cd /etc/pki/CA/crl/
openssl ca -gencrl -out thisca.crl
如果需要,查看crl文件内容:
openssl crl -in /path/to/crlfile.crl -noout -text
OpenSSL的私有CA就全部完成了。
本文出自 “aolens·程超” 博客,请务必保留此出处http://aolens.blog.51cto.com/7021142/1534239
linux之数据加密与私有CA建立,布布扣,bubuko.com
原文:http://aolens.blog.51cto.com/7021142/1534239