HTTP協議屬于明文傳輸協議,交互過程及數據傳輸都沒有進行過加密,通信雙方也沒有進行身份驗證,通信過程非常容易遭到劫持、篡改等安全問題,為了提高網絡傳輸的安全性,就有了HTTPS。
HTTPS的主要特征: - 數據完整性:內容傳輸經過完整性校驗 - 數據隱私性:內容經過對稱加密,每個鏈接生成一個唯一的加密秘鑰 - 身份認證:第三方無法偽造客戶端(服務端)的身份。
SSL(secure sockets layer):安全套接層,它是在上世紀90年代中期,由網景公司設計的,為解決使用的 HTTP 協議造成傳輸內容會被偷窺(嗅探)和篡改等安全問題而設計的,到了1999年,SSL成為互聯網上的標準,名稱改為TSL(transport layer security):傳輸層安全協議,兩者可視為同一種東西的不同階段。 HTTPS(HTTP over SSL)也是在HTTP的基礎加了一層SSL的封裝。
對稱加密(AES,RC4,3DES): 采用單鑰密碼系統(tǒng)的加密方法,同一個密鑰可以同時用作信息的加密和解密,優(yōu)點是算法公開、計算量小、加密速度快、加密效率高。
非對稱加密(RSA,DSA/DSS ):算法需要兩個密鑰,公開密鑰(publickey)和私有密鑰(PRivatekey)。公開密鑰與私有密鑰是一對,如果用公開密鑰對數據進行加密,只有用對應的私有密鑰才能解密;如果用私有密鑰對數據進行加密,那么只有用對應的公開密鑰才能解密,非對稱加密算法比對稱加密算法慢數千倍,但在保護通信安全方面,非對稱加密算法卻具有對稱密碼難以企及的優(yōu)勢。
舉例說明:
加密運算和解密運算使用相同秘鑰:秘鑰A
秘鑰A+明文:你好—–>經過加密運算—–>生成密文:####—–> 用密文發(fā)送—–>接受密文+秘鑰A—–>經過解密運算—–>生成明文:你好
加密運算和解密運算使用不同秘鑰:秘鑰A和秘鑰B
秘鑰A+明文:你好—–>經過加密運算—–>生成密文:####—–> 用密文發(fā)送—–>接受密文+秘鑰B—–>經過解密運算—–>生成明文:你好
CA是Certificate Authority的縮寫,也叫“證書授權中心”,CA 證書,顧名思義,就是CA頒發(fā)的證書(內含公鑰和私鑰),網上的公眾用戶通過驗證 CA 的簽字從而信任 CA ,任何人都可以得到 CA 的證書(含公鑰),用以驗證它所簽發(fā)的證書。
TCP協議是面向連接的傳輸層協議,可以保證數據的可靠性。 UDP協議是面向無連接的傳輸層協議,不能保證數據的可靠性。
哈希算法將任意長度的二進制值映射為較短的固定長度的二進制值,這個小的二進制值稱為哈希值。哈希值是一段數據唯一且極其緊湊的數值表示形式。如果散列一段明文而且哪怕只更改該段落的一個字母,隨后的哈希都將產生不同的值。要找到散列為同一個值的兩個不同的輸入,在計算上是不可能的,所以數據的哈希值可以檢驗數據的完整性。一般用于快速查找和加密算法。
第一步:客戶端向服務器發(fā)送請求,并告訴服務器支持的算法列表。
第二步:服務器選擇一種算法,并將自己的證書返回給客戶端,證書包含服務器域名和公鑰等信息。
第三步:客戶端得到證書后進行驗證,驗證通過的話就生成一個隨機值,并用證書中的公鑰進行加密。
第四步:傳遞加密信息,目的就是讓服務器得到這個隨機值,以后客戶端與服務器的通信就可以通過這個隨機值來進行加密解密。
第五步:服務器用自己的私鑰解密客戶端傳過來的隨機值,然后把內容進行對稱加密。
第六步:將加密后的信息發(fā)給客戶端,客戶端還原信息。
第七步:客戶端用之前生成的私鑰解密服務器發(fā)過來的信息,便獲取到了解密后的內容。
新聞熱點
疑難解答