您好,登錄后才能下訂單哦!
今天小編就為大家?guī)硪黄P(guān)于SSL/TLS協(xié)議的文章。小編覺得挺不錯(cuò)的,為此分享給大家做個(gè)參考。一起跟隨小編過來看看吧。
TLS名為傳輸層安全協(xié)議(Transport Layer Protocol),這個(gè)協(xié)議是一套加密的通信協(xié)議。它的前身是SSL協(xié)議(安全套接層協(xié)議,Secure Sockets Layer)。這兩個(gè)協(xié)議的工作方式類似,但TLS協(xié)議針對(duì)SSL協(xié)議進(jìn)行了一些改善。SSL/TLS協(xié)議利用加密的方式,在開放的互聯(lián)網(wǎng)環(huán)境中實(shí)現(xiàn)了加密通信,讓通信的雙方可以安心的說悄悄話。。
SSL協(xié)議的基礎(chǔ)是加密技術(shù)。加密和解密是自古就有技術(shù)了。比如說古代的男女偷偷發(fā)生私情,不能被相互之間有血海深仇的兩個(gè)家族知道。男孩問女孩要不要一起私奔。女孩第二天傳來答復(fù),上面寫著:
K FQ
男孩拿著這串字符翻來覆去想了半天,沒明白女孩的意思,就以為女孩不愿放棄優(yōu)渥的生活和他私奔。直到十年后,男孩忽然靈光一閃,發(fā)現(xiàn)如果把每個(gè)字母都替換成字母表上提前兩個(gè)的字母的話,這三個(gè)字符就變成了:
I DO
這種加密方法是將原來的某種信息按照某個(gè)規(guī)律打亂。打亂的方式稱為加密算法,而打亂過程中的參數(shù)就叫做密鑰(cipher code)。上面女孩的加密方式是把原字母替換為字母表上后固定位的字母。而密鑰就是固定的位數(shù)2了。發(fā)出信息的人根據(jù)密鑰來給信息加密,而接收信息的人利用相同的密鑰,來給信息解密。就好像一個(gè)帶鎖的盒子。發(fā)送信息的人將信息放到盒子里,用鑰匙鎖上。而接受信息的人則用相同的鑰匙打開。加密和解密用的是同一個(gè)密鑰,這種加密稱為對(duì)稱加密(symmetric encryption)。
如果一對(duì)一的話,那么兩人需要交換一個(gè)密鑰。理論上,如果密鑰絕對(duì)安全,而且加密算法絕對(duì)復(fù)雜的話,對(duì)稱加密是很難破解的。但通信雙方很難絕對(duì)保證密鑰的安全。一旦有其他人竊取到密鑰,那么所有通信都變得不安全了。特別在一對(duì)多的話,如果共用同一套密鑰,那么某一方通信的破解就意味著所有通信的破解。二戰(zhàn)中盟軍的情報(bào)戰(zhàn)成果,很多都來自于破獲這種對(duì)稱加密的密鑰。盟軍破解了某個(gè)德國(guó)特工的加密手法,那么也就了解到納粹總部的加密手法了。
二戰(zhàn)中德軍的傳奇加密機(jī):Enigma
對(duì)稱加密的薄弱之處在于給了太多人的鑰匙。如果換一種思路,只給特工鎖,而總部保有鑰匙,那就容易了。特工將信息用鎖鎖到盒子里,誰也打不開,除非到總部用唯一的一把鑰匙打開。只是這樣的話,特工每次出門都要帶上許多鎖,太容易被識(shí)破身份了??偛坷洗笙肓讼?,干脆就把造鎖的技術(shù)公開了。特工,或者任何其它人,可以就地取材,按照?qǐng)D紙?jiān)戽i,但無法根據(jù)圖紙?jiān)斐鲨€匙。鑰匙只有總部的那一把。上面的關(guān)鍵是鎖和鑰匙工藝不同。知道了鎖,并不能知道鑰匙。這樣,總部可以將“造鎖”的方法公布給所有用戶。每個(gè)用戶可以用鎖來加密自己的信用卡信息。即使被別人竊聽到,也不用擔(dān)心:只有總部才有鑰匙呢!非對(duì)稱加密中,給所有人用的鎖被稱為公鑰(public key),總部自己保留的鑰匙被稱為私鑰(private key)。這樣一種鑰匙和鎖分離的加密算法就叫做非對(duì)稱加密(asymmetric encryption)。
對(duì)稱加密的原理相對(duì)比較直觀,而非對(duì)稱加密聽起來就有些神奇。經(jīng)過非對(duì)稱加密產(chǎn)生的密文,就算知道加密的方法,也無法獲知原文。實(shí)現(xiàn)了非對(duì)稱加密的經(jīng)典算法是RSA算法。它來自于數(shù)論與計(jì)算機(jī)計(jì)數(shù)的奇妙結(jié)合。我們從下面的情境中體驗(yàn)一下RSA算法的妙處。
我是潛伏在龍鳳大酒樓的臥底。想讓下面信息以加密的方式發(fā)送到總部:
A CHEF HIDE A BED
廚子藏起來了一張床!這是如此的重要,需要立即通知總部。千萬重要的是,不能讓反革命的廚子知道。
第一步是轉(zhuǎn)碼,也就是將英文轉(zhuǎn)換成某個(gè)對(duì)應(yīng)的數(shù)字。這個(gè)對(duì)應(yīng)很容易建立,比如:
A | B | C | D | E | F | G | H | I |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
將上面的信息轉(zhuǎn)碼,獲得下面的數(shù)字序列:
A CHEF HIDE A BED 1 3856 8945 1 254
這串?dāng)?shù)字完全沒有什么秘密可言。廚子發(fā)現(xiàn)了這串?dāng)?shù)字之后,很容易根據(jù)數(shù)字順序,對(duì)應(yīng)字母表猜出來。
為了和狡猾的廚子斗智斗勇,我們需要對(duì)這串?dāng)?shù)字進(jìn)一步加密。使用總部發(fā)給我們的鎖,兩個(gè)數(shù)字:3和10。我們分為兩步處理。第一步是求乘方。第一個(gè)數(shù)字是3,也就是說,總部指示我們,求上面數(shù)字串的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
第二步是求余數(shù)。第二個(gè)上鎖的數(shù)字是10,將上面每個(gè)三次乘方除以10,獲得其余數(shù):
余數(shù): 1 7 2 5 6 2 9 4 5 1 8 5 4
將這串?dāng)?shù)字發(fā)回總部。中途被廚子偷看到,但一時(shí)不能了解其中的意思。如果還是像剛才一樣對(duì)應(yīng)字母表的話,信息是:
AGBEFBIDEAHED
這串字母完全不包含正常的單詞。
信息到了總部??偛块_始用神奇的鑰匙來解讀。這個(gè)鑰匙是3。在這個(gè)簡(jiǎn)單的粒子里,鑰匙不小心和之前鎖中的一個(gè)數(shù)字相同。但這只是巧合。復(fù)雜的情況下很容易讓鎖和鑰匙不同。解鎖過程也是兩步。第一步求鑰匙次的乘方,即3次方。第二步求它們除以10(鎖之一)的余數(shù)。
加密信息: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
正是我們發(fā)送的信息。對(duì)應(yīng)字母表,總部可以立即知道原來的信息。就此,我們簡(jiǎn)單的體驗(yàn)了RSA算法的使用過程。鑒于這里篇幅有限,這里不再詳細(xì)解釋RSA算法的原理。如果有興趣,可以參考我的另一篇文章:“不給力啊,老濕!”:RSA加密與破解
可以看到,非對(duì)稱加密從安全性上要強(qiáng)過對(duì)稱加密。但天下沒有免費(fèi)的午餐。非對(duì)稱加密的運(yùn)算成本同樣也比較高。為了兼顧效率和安全,SSL協(xié)議同時(shí)使用了非對(duì)稱和對(duì)稱加密。它用對(duì)稱加密算法來加密信息本身。但對(duì)于安全性比較脆弱的對(duì)稱加密密鑰,則采用非對(duì)稱加密的方式來傳輸。
SSL協(xié)議分為客戶端和服務(wù)器端。通信的核心步驟很簡(jiǎn)單:
1. 雙方利用明文通信的方式確立使用的加密算法。
2. 利用非對(duì)稱算法通信,交換一個(gè)密鑰。
3. 該密鑰用于對(duì)稱加密算法,加密接下來的通信正文。
可以看到,SSL協(xié)議的關(guān)鍵是用一個(gè)非常安全的方式來交換一個(gè)對(duì)稱密鑰。交換的過程會(huì)比上面的描述更加復(fù)雜一些。
1. 客戶發(fā)起請(qǐng)求時(shí),除了說明自己支持的非對(duì)稱加密算法,還會(huì)附加一個(gè)客戶端隨機(jī)數(shù)(client random)。
2. 服務(wù)器回復(fù)請(qǐng)求時(shí),會(huì)確定非對(duì)稱加密算法和哈希函數(shù),并附上公鑰。此外,服務(wù)器端還會(huì)在此次通信中附加一個(gè)服務(wù)器端隨機(jī)數(shù)(server random)。
3. 客戶端會(huì)產(chǎn)生第三個(gè)隨機(jī)數(shù)(Premaster secret),然后利用服務(wù)器確定的非對(duì)稱加密算法和公鑰來加密這個(gè)隨機(jī)數(shù),再發(fā)送給服務(wù)器端。
4. 客戶端用自己的私鑰解密第三個(gè)隨機(jī)數(shù)。
4. 這樣,客戶端和服務(wù)器端都知道了三個(gè)隨機(jī)數(shù)。雙方各自用商量好的哈希函數(shù)從三個(gè)隨機(jī)數(shù)獲得對(duì)稱加密的密鑰。
即使明文通信的時(shí)候,某些信息被竊聽,但第三步的非對(duì)稱加密通信部分可以保證竊聽者無法完整的獲得三個(gè)隨機(jī)數(shù)。這樣,竊聽者還是不知道對(duì)稱加密的密鑰是什么。這樣,對(duì)稱加密的密鑰就在一個(gè)安全的環(huán)境中獲得了。為了進(jìn)一步安全,服務(wù)器的公鑰會(huì)包含在一個(gè)數(shù)字證書中發(fā)送給客戶。這樣,客戶還可以通過數(shù)字證書來驗(yàn)證服務(wù)器的身份,以免服務(wù)器本身出現(xiàn)問題。
今年來使用越來越廣泛的HTTPS協(xié)議就是在SSL/TLS協(xié)議的基礎(chǔ)上進(jìn)行通信。HTTP協(xié)議在通信過程中要經(jīng)過多重路由,很容易被竊聽。經(jīng)過SSL協(xié)議加密的信息就算被竊聽,也只能被通信目的地的人解讀,從而保證了信息的安全。所以,如果所訪問的網(wǎng)站沒有使用HTTPS協(xié)議,那么在輸入銀行賬號(hào)和密碼之類的敏感信息時(shí),就要三思而后行了。
當(dāng)瀏覽器出現(xiàn)鎖的符號(hào)時(shí),說明訪問的資源使用了HTTPS通信
以上就是關(guān)于SSL/TLS協(xié)議的詳細(xì)內(nèi)容了,看完之后是否有所收獲呢?如果想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊!
免責(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)容。