天天看點

密碼學——網間資料加密傳輸全流程(SSL加密原理)

  昨天寫了一篇關于的文章,寫的比較簡單好了解,有點兒像過家家,如果詳細探究起來會有不少出入,今天就來詳細的說明一下資料加密的原理和過程。這個原理就是大名鼎鼎ssl的加密原理,哦,對了,有人說上個月ssl剛爆出本年度最轟動的漏洞“心髒滴血”,可能危及全球好多網際網路企業,那這個東西靠譜嗎?其實,爆出漏洞的是ssl的一款産品openssl,是程式員編碼時候的失誤,是程式上的漏洞,而非ssl原理上出現了問題,是以ssl還是靠譜的,http協定還是需要它來保護,我們不應該因為一個個人的失誤,而否定一項很犀利的技術。好啦,我們開始吧,先看看下面的圖:

密碼學——網間資料加密傳輸全流程(SSL加密原理)

發送方:李雷

接收方:韓梅梅

發送内容:一封很長很長的信。

  首先,李雷想發郵件給韓梅梅先要經過韓梅梅的授權,韓梅梅要事先把含有自己公鑰的數字證書發送給李雷。這就引出了數字證書的概念。

1.1數字證書:

  數字證書簡稱ca,又叫公鑰證書(對公鑰和私鑰概念不清楚的可以參考這篇文章。),是由權威機構頒發的一種電子證書,這裡的權威機構一般都是官方認證的機構,裡面包含了使用者的公鑰和一些其他的資訊。當然,windows系統裡也自帶證書伺服器,也就是說,如果你自己想給别人頒發證書的話也可以,但因為你并不具有權威,是以不會有人用你頒發的證書,除非你想自己建一個網站(例如電商網站),需要安全資料傳輸,如果别人使用你的網站,需要在你這裡注冊證書,但你的證書還是不會被作業系統信任,一般都要去官方的機構注冊還能有效。

  注意,證書的頒發機構,使用者和擁有者是不同的三個人。

  頒發機構是第三方官方認證機構,保證證書的權威性。

  使用者是頒發給的那個人,是真正的證書持有者,數字證書就相當于該人的身份證,裡面記錄了他的公鑰。

  擁有者可以是很多人,證書的使用者可以把自己的證書發送給他人,用來和他人發生安全的通信。

  數字證書裡面含有身份認證的相關資訊:持有者的公鑰、證書指紋、加密所有算法,證書有效期等等。下圖為我電腦windows系統下的一個微軟頒發的證書。我們在圖中可以看到上述所說的資訊,這裡的頒發機構是 microsoft

windows hardware compatibility pca,使用者是 microsoft windows hardware

compatibility publisher,擁有者當然是我啦。是以,一個人如果擁有了對方的數字證書,也就擁有了對方的公鑰。

密碼學——網間資料加密傳輸全流程(SSL加密原理)
密碼學——網間資料加密傳輸全流程(SSL加密原理)
密碼學——網間資料加密傳輸全流程(SSL加密原理)

1.2 擷取接收方證書

  是以,在發送方想發送加密資訊之前,要先從接收方那裡獲得數字證書。這裡的情景也就是韓梅梅要事先把自己的證書發送給李雷。

2.1 制作資訊摘要

密碼學——網間資料加密傳輸全流程(SSL加密原理)

  如上圖(可以參考文章最開始大圖),加密的第一步就是将原文的明文資訊利用hash函數制作出一個加密的資訊摘要,這個資訊要比原文小的多,因為hash函數式不可逆的,是以無法從加密的摘要資訊反推回原文。這個資訊将作為解密時的校驗資訊。

2.2 制作數字簽名

密碼學——網間資料加密傳輸全流程(SSL加密原理)

  将上一步得到的資訊用發送方李雷的私鑰加密,制作出數字簽名。數字簽名就是最後解密是接收方韓梅梅校驗發送方身份的所利用的資訊。

2.3 制作正文密文。

密碼學——網間資料加密傳輸全流程(SSL加密原理)

  将信件明文,上一步得到的數字簽名,和發送方李雷自己的數字證書方在一起進行對稱加密。這裡介紹下對稱加密的概念,首先說公鑰和私鑰的加密形式叫做非對稱加密,是兩把不同的秘鑰不想加鎖和開鎖,自己不能開自己。而對稱加密就是隻有一個秘鑰,用它來枷鎖也用它來解鎖。對稱加密存在安全隐含,因為你必須讓發送方和接收方都知道這個秘鑰,這就必然要把這個秘鑰在網絡上傳輸,這就存在風險。但對稱加密也有優點,就是算法是時間複雜度底,加密過程快,而非對稱加密的時間複雜度很高,如果對一段很長的全文都進行非對稱加密顯然是不現實的。是以聰明的人們相出了用非對稱加密算法加密對稱加密秘鑰的方法,就可以做到兩者兼得,在下一步中,就可以看到這個奇迹發生。

2.4制作數字信封

密碼學——網間資料加密傳輸全流程(SSL加密原理)

  用接收方韓梅梅數字證書中的公鑰對這把對稱加密的秘鑰進行加密,形成數字信封,這樣在傳輸過程中,黑客就無法截取到加密正文所用的對稱秘鑰,達到了效率和安全性上的兼顧。

2.5 打包資料,可以上路了!

密碼學——網間資料加密傳輸全流程(SSL加密原理)

  将第3步制作的密文和第4步制作的數字信封打包在一起,發送出去。這樣固若金湯的加密過程就結束了!

  韓梅梅這時候已經收到了李雷發來的信件。解密階段基本是加密階段的反過程。

3.1 解密數字信封

密碼學——網間資料加密傳輸全流程(SSL加密原理)

  韓梅梅利用自己的私鑰解開數字信封,數字信封是用韓梅梅的公鑰加密的,得到對稱秘鑰。

3.2

解密正文、數字簽名、發送方數字證書。

密碼學——網間資料加密傳輸全流程(SSL加密原理)

  利用上一步解密得到的對稱秘鑰,解開密文。得到明文、數字簽名、含有李雷公鑰的數字證書。

3.3 解密數字簽名

密碼學——網間資料加密傳輸全流程(SSL加密原理)

  利用上一步得到的發送方李雷的公鑰解密數字簽名,數字簽名是用李雷的私鑰加密的,得到發送方李雷利用hash函數制作的資訊摘要。

3.4 接收方制作資訊摘要

密碼學——網間資料加密傳輸全流程(SSL加密原理)

  接收方韓梅梅利用第二步解密得到的信件明文利用hash函數再次制作資訊摘要。

3.5 校驗原文

密碼學——網間資料加密傳輸全流程(SSL加密原理)

  将第3步和第4步得到的兩份資訊摘要進行對比,如果一樣,說明接收資料正确且完整。至此,一套完整的加密傳輸流程結束了!

  如果你細細體味,會發現這裡有很多巧妙的地方。

  1、利用非對稱加密確定了資料的絕對安全性。

  2、利用對稱加密加密原文,簡化了時間複雜度,同時有用非對稱加密加密對稱秘鑰,讓對稱秘鑰的傳輸絕對安全。也許你會想,原文最終還是隻用對稱加密算法加的密,我們隻需要暴力破解這個對稱密碼就可以了。這裡要說明的是,這個對稱秘鑰是随機生成的,對使用者透明,一般應該也會很長,要破解這個基本上也是不現實的。

  3、利用hash函數的不可逆性、結果唯一性對資料進行校驗,有效的保證了資料的完整性。

繼續閱讀