openssl加密http网站过程1
服務(wù)端在配置HTTPS服務(wù)時(shí),加上“HTTP Strict Transport Security”配置項(xiàng)
我們來一起說說HTTPS中間人攻擊與證書校驗(yàn)
http://wzlinux.blog.51cto.com/8021085/1908856
公鑰和私鑰
私鑰簽名和解密,公鑰加密,驗(yàn)證簽名
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(對(duì)稱加密)
①公鑰:public key,從私鑰中提取產(chǎn)生,可公開給所有人。
②私鑰:secret key,通過工具創(chuàng)建生成,由使用者自己留存,必須保證其私密性。
以下為DH算法的工作原理圖
以下為更一般的描述:
Alice生成隨機(jī)自然數(shù)a、隨機(jī)大質(zhì)數(shù)p和原根g;
Alice計(jì)算,計(jì)算結(jié)果為A,并把p,g,A發(fā)送給Bob;
Bob生成隨機(jī)自然數(shù)b,根據(jù)Alice發(fā)過來的p,g,計(jì)算,計(jì)算結(jié)果為B;
Bob把B發(fā)送給Alice,并計(jì)算,計(jì)算結(jié)果為K;而Alice計(jì)算,計(jì)算結(jié)果也為K;
Alice和Bob以K值作為密鑰進(jìn)行通信。
注意:在整個(gè)密鑰協(xié)商過程中,p、g、和的值是可以公開給攻擊者的,而a,b,K值是不公開的。但即使攻擊者知道、p和g的值,也無法計(jì)算出a,同理,攻擊者無法通過、g和g的值計(jì)算出b,更不用說計(jì)算出K值(最終Alice和Bob協(xié)商好的密鑰)了。這個(gè)問題就是著名的離散對(duì)數(shù)問題。
openssl enc -base64 -a -salt -in /etc/passwd ?-out /passwd.cipher
openssl enc -d -base64 -a -salt -in /passwd.cipher ?-out /passwd
3)、證書(x509格式)
openssl中有如下后綴名的文件
key格式:私有的密鑰
csr格式:證書簽名請(qǐng)求(證書請(qǐng)求文件),含有公鑰信息,certificate signing request的縮寫
crt格式:證書文件,certificate的縮寫
crl格式:證書吊銷列表,Certificate Revocation List的縮寫
pem格式:用于導(dǎo)出,導(dǎo)入證書時(shí)候的證書的格式,有證書開頭,結(jié)尾的格式
PKI:Public Key Infrastructure,是指用公鑰概念和技術(shù)來實(shí)施和提供安全服務(wù)的具有普適性的安全基礎(chǔ)設(shè)施。
一個(gè)完整的PKI系統(tǒng)必須具有注冊(cè)機(jī)構(gòu)(RC)、權(quán)威認(rèn)證機(jī)構(gòu)(CA)、數(shù)字證書庫(kù)、密鑰備份及恢復(fù)系統(tǒng)、證書吊銷系統(tǒng)(CRL)、端實(shí)體(API即應(yīng)用接口)等基本構(gòu)成部分。
創(chuàng)建目錄,目錄放置私鑰文件、請(qǐng)求文件、證書文件
順序:私鑰-->公鑰 請(qǐng)求文件-->核實(shí) 發(fā)放證書
私鑰文件產(chǎn)生:#openssl genrsa 1024(鑰匙長(zhǎng)度)>私鑰文件名
請(qǐng)求文件產(chǎn)生:#openssl req -new -key 私鑰文件 -out 請(qǐng)求文件
證書產(chǎn)生:openssl ca -in 請(qǐng)求文件 -out 證書
加密和發(fā)送過程:
1、當(dāng)發(fā)送方Alice有數(shù)據(jù)要發(fā)送給Bob時(shí),為了確保數(shù)據(jù)能夠完整地發(fā)送至Bob,首先需要使用單向加密算法去計(jì)算出這段要發(fā)送的數(shù)據(jù)的特征碼;
2、為了便于Bob收到數(shù)據(jù)之后可驗(yàn)證身份,發(fā)送方Alice使用本地私鑰加密這段特征碼,并將加密后的特征碼附加在數(shù)據(jù)后面;
3、為了確保通信過程是保密的,發(fā)送方Alice生成一個(gè)臨時(shí)的對(duì)稱密鑰,并使用這個(gè)對(duì)稱密鑰加密整段數(shù)據(jù);
4、發(fā)送方Alice獲取Bob的公鑰,再使用Bob的公鑰加密來加密剛才生成的臨時(shí)的對(duì)稱密鑰,并把加密后的對(duì)稱密鑰附加在整段加密數(shù)據(jù)后面,而后發(fā)送給Bob。
接收和解密過程:
接收和解密的過程和解密發(fā)送的過程剛好相反。
1、接收方Bob收到數(shù)據(jù)之后,先使用自己的私鑰去解密這段加密過的對(duì)稱密鑰(由Alice生成);
2、接收方Bob用解密得到的對(duì)稱密鑰去解密整段(發(fā)送方用對(duì)稱密鑰)加密的內(nèi)容;此時(shí)接收方Bob得到Alice發(fā)送給自己的數(shù)據(jù)和加密后的特征碼;
3、接收方Bob用對(duì)方Alice的公鑰去解密這段特征碼,如果能解密出來,則發(fā)送方的身份得到驗(yàn)證(沒錯(cuò),就是Alice發(fā)送的);
4、接收方Bob再用同樣的單向加密算法去計(jì)算這段數(shù)據(jù)的特征碼,與解密得到的特征碼進(jìn)行比較,如果相同,則數(shù)據(jù)完整性得到驗(yàn)證,否則說明數(shù)據(jù)有可能被篡改或被破壞。
本文轉(zhuǎn)自 liqius 51CTO博客,原文鏈接:http://blog.51cto.com/szgb17/1942308,如需轉(zhuǎn)載請(qǐng)自行聯(lián)系原作者
總結(jié)
以上是生活随笔為你收集整理的openssl加密http网站过程1的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 不等双十一,ChemDraw降价活动已经
- 下一篇: springboot 集成rabbitm