简单了解SSL/TLS协议
?
今天小編就為大家帶來一篇關于SSL/TLS協議的文章。小編覺得挺不錯的,為此分享給大家做個參考。一起跟隨小編過來看看吧。?
 TLS名為傳輸層安全協議(Transport Layer Protocol),這個協議是一套加密的通信協議。它的前身是SSL協議(安全套接層協議,Secure Sockets Layer)。這兩個協議的工作方式類似,但TLS協議針對SSL協議進行了一些改善。SSL/TLS協議利用加密的方式,在開放的互聯網環境中實現了加密通信,讓通信的雙方可以安心的說悄悄話。。?
 加密SSL協議的基礎是加密技術。加密和解密是自古就有技術了。比如說古代的男女偷偷發生私情,不能被相互之間有血海深仇的兩個家族知道。男孩問女孩要不要一起私奔。女孩第二天傳來答復,上面寫著:?
 K FQ?
 男孩拿著這串字符翻來覆去想了半天,沒明白女孩的意思,就以為女孩不愿放棄優渥的生活和他私奔。直到十年后,男孩忽然靈光一閃,發現如果把每個字母都替換成字母表上提前兩個的字母的話,這三個字符就變成了:?
 I DO?
 這種加密方法是將原來的某種信息按照某個規律打亂。打亂的方式稱為加密算法,而打亂過程中的參數就叫做密鑰(cipher code)。上面女孩的加密方式是把原字母替換為字母表上后固定位的字母。而密鑰就是固定的位數2了。發出信息的人根據密鑰來給信息加密,而接收信息的人利用相同的密鑰,來給信息解密。就好像一個帶鎖的盒子。發送信息的人將信息放到盒子里,用鑰匙鎖上。而接受信息的人則用相同的鑰匙打開。加密和解密用的是同一個密鑰,這種加密稱為對稱加密(symmetric encryption)。?
 如果一對一的話,那么兩人需要交換一個密鑰。理論上,如果密鑰絕對安全,而且加密算法絕對復雜的話,對稱加密是很難破解的。但通信雙方很難絕對保證密鑰的安全。一旦有其他人竊取到密鑰,那么所有通信都變得不安全了。特別在一對多的話,如果共用同一套密鑰,那么某一方通信的破解就意味著所有通信的破解。二戰中盟軍的情報戰成果,很多都來自于破獲這種對稱加密的密鑰。盟軍破解了某個德國特工的加密手法,那么也就了解到納粹總部的加密手法了。?
 二戰中德軍的傳奇加密機:Enigma?
 對稱加密的薄弱之處在于給了太多人的鑰匙。如果換一種思路,只給特工鎖,而總部保有鑰匙,那就容易了。特工將信息用鎖鎖到盒子里,誰也打不開,除非到總部用唯一的一把鑰匙打開。只是這樣的話,特工每次出門都要帶上許多鎖,太容易被識破身份了。總部老大想了想,干脆就把造鎖的技術公開了。特工,或者任何其它人,可以就地取材,按照圖紙造鎖,但無法根據圖紙造出鑰匙。鑰匙只有總部的那一把。上面的關鍵是鎖和鑰匙工藝不同。知道了鎖,并不能知道鑰匙。這樣,總部可以將“造鎖”的方法公布給所有用戶。每個用戶可以用鎖來加密自己的信用卡信息。即使被別人竊聽到,也不用擔心:只有總部才有鑰匙呢!非對稱加密中,給所有人用的鎖被稱為公鑰(public key),總部自己保留的鑰匙被稱為私鑰(private key)。這樣一種鑰匙和鎖分離的加密算法就叫做非對稱加密(asymmetric encryption)。?
 非對稱加密對稱加密的原理相對比較直觀,而非對稱加密聽起來就有些神奇。經過非對稱加密產生的密文,就算知道加密的方法,也無法獲知原文。實現了非對稱加密的經典算法是RSA算法。它來自于數論與計算機計數的奇妙結合。我們從下面的情境中體驗一下RSA算法的妙處。?
 我是潛伏在龍鳳大酒樓的臥底。想讓下面信息以加密的方式發送到總部:?
 A CHEF HIDE A BED?
 廚子藏起來了一張床!這是如此的重要,需要立即通知總部。千萬重要的是,不能讓反革命的廚子知道。?
 第一步是轉碼,也就是將英文轉換成某個對應的數字。這個對應很容易建立,比如:?
 ABCDEFGHI123456789?
 將上面的信息轉碼,獲得下面的數字序列:?
 A CHEF HIDE A BED1 3856 8945 1 254這串數字完全沒有什么秘密可言。廚子發現了這串數字之后,很容易根據數字順序,對應字母表猜出來。?
 為了和狡猾的廚子斗智斗勇,我們需要對這串數字進一步加密。使用總部發給我們的鎖,兩個數字:3和10。我們分為兩步處理。第一步是求乘方。第一個數字是3,也就是說,總部指示我們,求上面數字串的3次方:?
 原字符串:1 ?3 ?8 ?5 ?6 ?8 ?9 ?4 ?5 ?1 ?2 ?5 ?4?
 三次乘方: 1 27 512 125 216 512 729 64 125 ?1 ?8 125 64?
 第二步是求余數。第二個上鎖的數字是10,將上面每個三次乘方除以10,獲得其余數:?
 余數:?1 7 2 5 6 2 9 4 5 1 8 5 4?
 將這串數字發回總部。中途被廚子偷看到,但一時不能了解其中的意思。如果還是像剛才一樣對應字母表的話,信息是:?
 AGBEFBIDEAHED?
 這串字母完全不包含正常的單詞。?
 信息到了總部。總部開始用神奇的鑰匙來解讀。這個鑰匙是3。在這個簡單的粒子里,鑰匙不小心和之前鎖中的一個數字相同。但這只是巧合。復雜的情況下很容易讓鎖和鑰匙不同。解鎖過程也是兩步。第一步求鑰匙次的乘方,即3次方。第二步求它們除以10(鎖之一)的余數。?
 加密信息:1 ?7 ?2 ?5 ?6 ?2 ?9 ?4 ?5 ?1 ?8 ?5 ?4?
 三次乘方:1 343 ?8 125 216 ?8 729 64 125 ?1 512 125 64 (這里用的是鑰匙的“3”)?
 除十得余:1 ?3 ?8 ?5 ?6 ?8 ?9 ?4 ?5 ?1 ?2 ?5 ?4?
 正是我們發送的信息。對應字母表,總部可以立即知道原來的信息。就此,我們簡單的體驗了RSA算法的使用過程。鑒于這里篇幅有限,這里不再詳細解釋RSA算法的原理。如果有興趣,可以參考我的另一篇文章:“不給力啊,老濕!”:RSA加密與破解?
 SSL協議可以看到,非對稱加密從安全性上要強過對稱加密。但天下沒有免費的午餐。非對稱加密的運算成本同樣也比較高。為了兼顧效率和安全,SSL協議同時使用了非對稱和對稱加密。它用對稱加密算法來加密信息本身。但對于安全性比較脆弱的對稱加密密鑰,則采用非對稱加密的方式來傳輸。?
 SSL協議分為客戶端和服務器端。通信的核心步驟很簡單:?
 1.?雙方利用明文通信的方式確立使用的加密算法。?
 2.?利用非對稱算法通信,交換一個密鑰。?
 3.?該密鑰用于對稱加密算法,加密接下來的通信正文。?
 可以看到,SSL協議的關鍵是用一個非常安全的方式來交換一個對稱密鑰。交換的過程會比上面的描述更加復雜一些。?
 1.?客戶發起請求時,除了說明自己支持的非對稱加密算法,還會附加一個客戶端隨機數(client random)。?
 2.?服務器回復請求時,會確定非對稱加密算法和哈希函數,并附上公鑰。此外,服務器端還會在此次通信中附加一個服務器端隨機數(server random)。?
 3.?客戶端會產生第三個隨機數(Premaster secret),然后利用服務器確定的非對稱加密算法和公鑰來加密這個隨機數,再發送給服務器端。?
 4.?客戶端用自己的私鑰解密第三個隨機數。?
 4.?這樣,客戶端和服務器端都知道了三個隨機數。雙方各自用商量好的哈希函數從三個隨機數獲得對稱加密的密鑰。?
 即使明文通信的時候,某些信息被竊聽,但第三步的非對稱加密通信部分可以保證竊聽者無法完整的獲得三個隨機數。這樣,竊聽者還是不知道對稱加密的密鑰是什么。這樣,對稱加密的密鑰就在一個安全的環境中獲得了。為了進一步安全,服務器的公鑰會包含在一個數字證書中發送給客戶。這樣,客戶還可以通過數字證書來驗證服務器的身份,以免服務器本身出現問題。?
 今年來使用越來越廣泛的HTTPS協議就是在SSL/TLS協議的基礎上進行通信。HTTP協議在通信過程中要經過多重路由,很容易被竊聽。經過SSL協議加密的信息就算被竊聽,也只能被通信目的地的人解讀,從而保證了信息的安全。所以,如果所訪問的網站沒有使用HTTPS協議,那么在輸入銀行賬號和密碼之類的敏感信息時,就要三思而后行了。?
 當瀏覽器出現鎖的符號時,說明訪問的資源使用了HTTPS通信?
 以上就是關于SSL/TLS協議的詳細內容了,看完之后是否有所收獲呢?如果想了解更多相關內容,歡迎關注Vecloud行業資訊!?
作為一種新的網絡技術,SD-WAN具備快速靈活部署、網絡集中管理、支持軟件定義等諸多特點,可以幫助用戶顯著降低廣域網的成本,并提高網絡的靈活性。
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的简单了解SSL/TLS协议的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: centeros /redhate密码破
 - 下一篇: 传输层协议(TCP/UDP)介绍