openssl加密http网站过程1

服务端在配置HTTPS服务时,加上“HTTP Strict Transport Security”配置项


我们来一起说说HTTPS中间人攻击与证书校验

http://wzlinux.blog.51cto.com/8021085/1908856


公钥和私钥

私钥签名和解密,公钥加密,验证签名




1)、Message Digest commands(信息摘要算法也可以叫单向加密算法)

openssl dgst [-md5|-md4|-md2|-sha1|-sha|-mdc2|-ripemd160|-dss1][-out filename] /path/to/somefile

openssl dgst -sha1 -out /a.cipher /a.txt

2)、Cipher commands(对称加密)

①公钥:public key,从私钥中提取产生,可公开给所有人。

②私钥:secret key,通过工具创建生成,由使用者自己留存,必须保证其私密性。


以下为DH算法的工作原理图

wKioL1lRyYvgQ2KDAAE7e1sKiMs504.jpg-wh_50

以下为更一般的描述:

  1. Alice生成随机自然数a、随机大质数p和原根g;

  2. Alice计算wKioL1jOIs7gyXH5AAAFNf0J5s8924.png,计算结果为A,并把p,g,A发送给Bob;

  3. Bob生成随机自然数b,根据Alice发过来的p,g,计算wKioL1jOI4Wh8OXKAAAFVEeI9AM149.png,计算结果为B;

  4. Bob把B发送给Alice,并计算wKioL1jOJE7zJJ2gAAAGyZMRBD8825.png,计算结果为K;而Alice计算wKiom1jOI9zhLVr_AAAG7iq8x5o001.png,计算结果也为K;

  5. Alice和Bob以K值作为密钥进行通信。


注意:在整个密钥协商过程中,p、g、wKioL1jOIs7gyXH5AAAFNf0J5s8924.pngwKioL1jOI4Wh8OXKAAAFVEeI9AM149.png的值是可以公开给攻击者的,而a,b,K值是不公开的。但即使攻击者知道wKioL1jOIs7gyXH5AAAFNf0J5s8924.png、p和g的值,也无法计算出a,同理,攻击者无法通过wKioL1jOI4Wh8OXKAAAFVEeI9AM149.png、g和g的值计算出b,更不用说计算出K值(最终Alice和Bob协商好的密钥)了。这个问题就是著名的离散对数问题。


openssl enc -base64 -a -salt -in /etc/passwd  -out /passwd.cipher

openssl enc -d -base64 -a -salt -in /passwd.cipher  -out /passwd

3)、证书(x509格式)

wKiom1lRyenz8XWeAAGDZebTaEI036.jpg-wh_50


openssl中有如下后缀名的文件

key格式:私有的密钥

csr格式:证书签名请求(证书请求文件),含有公钥信息,certificate signing request的缩写

crt格式:证书文件,certificate的缩写

crl格式:证书吊销列表,Certificate Revocation List的缩写

pem格式:用于导出,导入证书时候的证书的格式,有证书开头,结尾的格式

PKI:Public Key Infrastructure,是指用公钥概念和技术来实施和提供安全服务的具有普适性的安全基础设施。

一个完整的PKI系统必须具有注册机构(RC)、权威认证机构(CA)、数字证书库、密钥备份及恢复系统、证书吊销系统(CRL)、端实体(API即应用接口)等基本构成部分。


创建目录,目录放置私钥文件、请求文件、证书文件

顺序:私钥-->公钥 请求文件-->核实 发放证书

私钥文件产生:#openssl genrsa 1024(钥匙长度)>私钥文件名

请求文件产生:#openssl req -new -key 私钥文件 -out 请求文件

证书产生:openssl ca -in 请求文件 -out 证书


加密和发送过程:

1、当发送方Alice有数据要发送给Bob时,为了确保数据能够完整地发送至Bob,首先需要使用单向加密算法去计算出这段要发送的数据的特征码;

2、为了便于Bob收到数据之后可验证身份,发送方Alice使用本地私钥加密这段特征码,并将加密后的特征码附加在数据后面;

3、为了确保通信过程是保密的,发送方Alice生成一个临时的对称密钥,并使用这个对称密钥加密整段数据;

4、发送方Alice获取Bob的公钥,再使用Bob的公钥加密来加密刚才生成的临时的对称密钥,并把加密后的对称密钥附加在整段加密数据后面,而后发送给Bob。


接收和解密过程:

接收和解密的过程和解密发送的过程刚好相反。

1、接收方Bob收到数据之后,先使用自己的私钥去解密这段加密过的对称密钥(由Alice生成);

2、接收方Bob用解密得到的对称密钥去解密整段(发送方用对称密钥)加密的内容;此时接收方Bob得到Alice发送给自己的数据和加密后的特征码;

3、接收方Bob用对方Alice的公钥去解密这段特征码,如果能解密出来,则发送方的身份得到验证(没错,就是Alice发送的);

4、接收方Bob再用同样的单向加密算法去计算这段数据的特征码,与解密得到的特征码进行比较,如果相同,则数据完整性得到验证,否则说明数据有可能被篡改或被破坏。


wKiom1lV2tOgjaUbAAfY9aWxmNw467.jpg



wKioL1lV2liy2Q99AAIIy2lLsN4704.jpg-wh_50

wKiom1lV2ljgMCrJAACSKg0fwNM449.jpg-wh_50

wKioL1lV2lmj8nmTAAA7_mCOxlY319.png-wh_50

wKiom1lV2lrTkXQuAAKWRwCylwU433.jpg-wh_50

wKiom1lV2lujfCqpAAOu4KxNWHQ128.jpg-wh_50



本文转自 liqius 51CTO博客,原文链接:http://blog.51cto.com/szgb17/1942308,如需转载请自行联系原作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值