溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

https 原理理解

發(fā)布時(shí)間:2020-06-09 13:01:34 來(lái)源:網(wǎng)絡(luò) 閱讀:265 作者:Tenderrain 欄目:網(wǎng)絡(luò)安全

一、什么是HTTPS
在說(shuō)HTTPS之前先說(shuō)說(shuō)什么是HTTP,HTTP就是我們平時(shí)瀏覽網(wǎng)頁(yè)時(shí)候使用的一種 協(xié)議。HTTP協(xié)議傳輸?shù)臄?shù)據(jù)都是未加密的,也就是明文的,因此使用HTTP協(xié)議傳輸隱私信息非常不安全。為了保證這些隱私數(shù)據(jù)能加密傳輸,于是網(wǎng)景公司 設(shè)計(jì)了SSL(Secure Sockets Layer)協(xié)議用于對(duì)HTTP協(xié)議傳輸?shù)臄?shù)據(jù)進(jìn)行加密,從而就誕生了HTTPS。SSL目前的版本是3.0,被IETF(Internet Engineering Task Force)定義在RFC 6101中,之后IETF對(duì)SSL 3.0進(jìn)行了升級(jí),于是出現(xiàn)了TLS(Transport Layer Security) 1.0,定義在RFC 2246。實(shí)際上我們現(xiàn)在的HTTPS都是用的TLS協(xié)議,但是由于SSL出現(xiàn)的時(shí)間比較早,并且依舊被現(xiàn)在瀏覽器所支持,因此SSL依然是HTTPS的 代名詞,但無(wú)論是TLS還是SSL都是上個(gè)世紀(jì)的事情,SSL最后一個(gè)版本是3.0,今后TLS將會(huì)繼承SSL優(yōu)良血統(tǒng)繼續(xù)為我們進(jìn)行加密服務(wù)。目前 TLS的版本是1.2,定義在RFC 5246中,暫時(shí)還沒(méi)有被廣泛的使用。

二、HTTPS到底安全嗎?
這個(gè)答案是肯定的,很安全。谷歌公司已經(jīng)行動(dòng)起來(lái)要大力推廣HTTPS的使用,在未來(lái)幾周,谷歌將對(duì)全球所有本地域名都啟用HTTPS,用戶只要在搜索前用Google帳號(hào)登錄,之后所有的搜索操作都將使用TLS協(xié)議加密。

三、HTTPS的工作原理
HTTPS在傳輸數(shù)據(jù)之前需要客戶端(瀏覽器)與服務(wù)端(網(wǎng)站)之間進(jìn)行一次握手, 在握手過(guò)程中將確立雙方加密傳輸數(shù)據(jù)的密碼信息。TLS/SSL協(xié)議不僅僅是一套加密傳輸?shù)膮f(xié)議,更是一件經(jīng)過(guò)藝術(shù)家精心設(shè)計(jì)的藝術(shù)品,TLS/SSL中 使用了非對(duì)稱加密,對(duì)稱加密以及HASH算法。握手過(guò)程的簡(jiǎn)單描述如下:
1.瀏覽器將自己支持的一套加密規(guī)則發(fā)送給網(wǎng)站。
2.網(wǎng)站從中選出一組加密算法與HASH算法,并將自己的身份信息以證書(shū)的形式發(fā)回給瀏覽器。證書(shū)里面包含了網(wǎng)站地址,加密公鑰,以及證書(shū)的頒發(fā)機(jī)構(gòu)等信息。
3.獲得網(wǎng)站證書(shū)之后瀏覽器要做以下工作:
a) 驗(yàn)證證書(shū)的合法性(頒發(fā)證書(shū)的機(jī)構(gòu)是否合法,證書(shū)中包含的網(wǎng)站地址是否與正在訪問(wèn)的地址一致等),如果證書(shū)受信任,則瀏覽器欄里面會(huì)顯示一個(gè)小鎖頭,否則會(huì)給出證書(shū)不受信的提示。
b) 如果證書(shū)受信任,或者是用戶接受了不受信的證書(shū),瀏覽器會(huì)生成一串隨機(jī)數(shù)的密碼,并用證書(shū)中提供的公鑰加密。
c) 使用約定好的HASH計(jì)算握手消息,并使用生成的隨機(jī)數(shù)對(duì)消息進(jìn)行加密,最后將之前生成的所有信息發(fā)送給網(wǎng)站。
4.網(wǎng)站接收瀏覽器發(fā)來(lái)的數(shù)據(jù)之后要做以下的操作:
a) 使用自己的私鑰將信息解密取出密碼,使用密碼解密瀏覽器發(fā)來(lái)的握手消息,并驗(yàn)證HASH是否與瀏覽器發(fā)來(lái)的一致。
b) 使用密碼加密一段握手消息,發(fā)送給瀏覽器。
5.瀏覽器解密并計(jì)算握手消息的HASH,如果與服務(wù)端發(fā)來(lái)的HASH一致,此時(shí)握手過(guò)程結(jié)束,之后所有的通信數(shù)據(jù)將由之前瀏覽器生成的隨機(jī)密碼并利用對(duì)稱加密算法進(jìn)行加密。
這里瀏覽器與網(wǎng)站互相發(fā)送加密的握手消息并驗(yàn)證,目的是為了保證雙方都獲得了一致的密碼,并且可以正常的加密解密數(shù)據(jù),為后續(xù)真正數(shù)據(jù)的傳輸做一次測(cè)試。另外,HTTPS一般使用的加密與HASH算法如下:
非對(duì)稱加密算法:RSA,DSA/DSS
對(duì)稱加密算法:AES,RC4,3DES
HASH算法:MD5,SHA1,SHA256
其 中非對(duì)稱加密算法用于在握手過(guò)程中加密生成的密碼,對(duì)稱加密算法用于對(duì)真正傳輸?shù)臄?shù)據(jù)進(jìn)行加密,而HASH算法用于驗(yàn)證數(shù)據(jù)的完整性。由于瀏覽器生成的密 碼是整個(gè)數(shù)據(jù)加密的關(guān)鍵,因此在傳輸?shù)臅r(shí)候使用了非對(duì)稱加密算法對(duì)其加密。非對(duì)稱加密算法會(huì)生成公鑰和私鑰,公鑰只能用于加密數(shù)據(jù),因此可以隨意傳輸,而 網(wǎng)站的私鑰用于對(duì)數(shù)據(jù)進(jìn)行解密,所以網(wǎng)站都會(huì)非常小心的保管自己的私鑰,防止泄漏。
TLS握手過(guò)程中如果有任何錯(cuò)誤,都會(huì)使加密連接斷開(kāi),從而阻 止了隱私信息的傳輸。正是由于HTTPS非常的安全,***者無(wú)法從中找到下手的地方,于是更多的是采用了假證書(shū)的手法來(lái)欺騙客戶端,從而獲取明文的信息, 但是這些手段都可以被識(shí)別出來(lái),我將在后續(xù)的文章進(jìn)行講述。

以上參考鏈接:http://www.guokr.com/post/114121/


#me:HTTPS工作原理理解分為兩步

第一步:瀏覽器------>網(wǎng)站

瀏覽器:先HASH握手信息,然后用自己(瀏覽器)生成的一串隨機(jī)數(shù)作為密碼來(lái)加密,并且把這串隨機(jī)數(shù)密碼使用網(wǎng)站發(fā)來(lái)的公鑰加密,將 握手信息的加密結(jié)果密碼的加密的結(jié)果握手信息的HASH結(jié)果都發(fā)送給網(wǎng)站

網(wǎng)站:利用自己的私鑰解密得到瀏覽器生成的密碼(這使用的是非對(duì)稱加密算法),然后再用得到密碼解密握手信息的加密結(jié)果,驗(yàn)證加密信息的HASH值是否和瀏覽器發(fā)來(lái)的一致~

第二步:網(wǎng)站------->瀏覽器

網(wǎng)站:網(wǎng)站使用密碼(這個(gè)密碼是之前用私鑰解密得到的,即瀏覽器生成的)加密一段握手消息,將握手信息的加密結(jié)果和握手消息的HASH 發(fā)送給瀏覽器。

瀏覽器:瀏覽器解密并計(jì)算握手消息的HASH,如果與服務(wù)端發(fā)來(lái)的HASH一致,此時(shí)握手過(guò)程結(jié)束。

之后

所有的通信數(shù)據(jù)將由之前瀏覽器生成的隨機(jī)密碼并利用對(duì)稱加密算法進(jìn)行加密。

這里瀏覽器與網(wǎng)站互相發(fā)送加密的握手消息并驗(yàn)證,目的是為了保證雙方都獲得了一致的密碼,并且可以正常的加密解密數(shù)據(jù),為后續(xù)真正數(shù)據(jù)的傳輸做一次測(cè)試




看這個(gè)url

http://www.codeceo.com/article/ssl-time-https-slower-http.html


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI