參考文章:https://segmentfault.com/a/1190000002554673
SSL:(Secure Socket Layer呜师,安全套接字層)
TLS:(Transport Layer Security旁趟,傳輸層安全協(xié)議)
相關(guān)英語解釋:
record layer? ? 記錄層
handshake layer? ? 握手層
CipherSuites? ? 密碼套件
fragmentation? ? 碎片
session? ? 階段
compression? ? 壓縮
authentication? ? 認(rèn)證
Change cipher spec ? ?更改密碼規(guī)則
SSL位于傳輸層與應(yīng)用層之間,用于Web瀏覽器和服務(wù)器之間的身份認(rèn)證和加密數(shù)據(jù)傳輸拖陆。同時(shí)SSL可以分成兩層,ssl記錄層和ssl握手層懊亡。ssl記錄層位于可靠的傳輸之上(比如TCP)依啰,提供壓縮,認(rèn)證店枣,加密等功能速警。ssl握手層位于ssl記錄層之上,提供數(shù)據(jù)傳輸前的身份驗(yàn)證鸯两,協(xié)商算法闷旧,交換密鑰等功能。
TLS用于兩個(gè)應(yīng)用程序之間提供保密性和數(shù)據(jù)完整性钧唐∶ψ疲可以理解為是ssl的后續(xù)版本,也是由兩層組成钝侠,tls記錄層缀棍,和tls握手層,同理机错,tls記錄層位于可靠的傳輸協(xié)議之上。
綜上所述父腕,SSL/TLS提供的服務(wù)有:
1.認(rèn)證用戶和服務(wù)器弱匪,確保消息發(fā)送正確
2.加密數(shù)據(jù),防止被竊取
3.保證數(shù)據(jù)傳輸?shù)耐暾?/b>
補(bǔ)充數(shù)據(jù)傳輸在OSI七層模型中的流程:
信息 ——>應(yīng)用層包頭(相關(guān)應(yīng)用使用的協(xié)議璧亮,來規(guī)定應(yīng)用如何去通信)——>表示層包頭(決定數(shù)據(jù)編碼格式萧诫,如圖片的編碼格式,視頻等等)——>會(huì)話層包頭(兩端實(shí)體建立會(huì)話枝嘶,包括意外終端該如何解決帘饶,斷點(diǎn)續(xù)傳么)——>傳輸層包頭(切割文件為小段,標(biāo)注端口與應(yīng)用程序群扶,流量設(shè)置等等)——>網(wǎng)絡(luò)層包頭(解決如何到達(dá)目的地的問題及刻,路由選擇)——>數(shù)據(jù)鏈路層包頭(找到機(jī)器具體的位置,根據(jù)機(jī)器的網(wǎng)卡等上網(wǎng)設(shè)備)——>物流層(將上方的一切竞阐,編碼成01的比特流傳輸)——>
同理缴饭,接受方就是一層一層的解開包頭,最后到應(yīng)用層骆莹,展現(xiàn)信息給相關(guān)用戶颗搂。
補(bǔ)充加密方式:非對(duì)稱加密
我理解的非對(duì)稱加密方式:(個(gè)人理解,有錯(cuò)誤請(qǐng)指出)
AB兩人要通信幕垦,A先生成兩個(gè)鑰匙丢氢,一個(gè)是公鑰傅联,一個(gè)是私鑰,B再生成兩個(gè)鑰匙疚察,一個(gè)公鑰蒸走,一個(gè)私鑰。
然后A和B要通信稍浆,A向B發(fā)送一個(gè)信息载碌,內(nèi)容是“我準(zhǔn)備和你通信,這個(gè)是我的公鑰”衅枫,這個(gè)信息上有A的公鑰嫁艇。
接著,B收到了信息弦撩,同時(shí)也有了A的公鑰步咪,B回復(fù)A:“我收到了你的信息和鑰匙,我把我的公鑰也給你”
就這樣益楼,A有A的私鑰和B的公鑰猾漫,B有B的私鑰和A的公鑰。
這樣就算是建立了加密通道感凤。(個(gè)人理解)
于是悯周,開始了正式通信:
A發(fā)送信息:“這是我的賬號(hào)密碼”,同時(shí)因?yàn)锳有B的公鑰陪竿,所以A用B的公鑰給信息加密禽翼,這個(gè)加密后的信息,只有B的私鑰才能解密族跛。而擁有B私鑰的只有一個(gè)人闰挡,那就是B本人。所以礁哄,即使A發(fā)給B的加密信息被截取了长酗,中間人也沒辦法解密,因?yàn)樗麤]有B的私鑰桐绒,沒辦法解密B的公鑰加密過后的信息夺脾。
B接收到A的信息后,用自己的私鑰開始解密茉继。得到A的賬號(hào)密碼劳翰。反過來,由于B有A的公鑰馒疹,所以B也可以用同樣的方法發(fā)送加密信息佳簸。
嗯,結(jié)合了上面的圖,我這樣理解實(shí)際上還是存在一些問題的生均,但是應(yīng)該就是這樣的道理听想,只不過不是說一定A和B都有一對(duì)密鑰。但是A和B之間的算法比較復(fù)雜马胧,目前汉买,這樣理解更適合我。