參考文章: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ǔ)充加密方式:非對稱加密

我理解的非對稱加密方式:(個(gè)人理解,有錯(cuò)誤請指出)
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都有一對密鑰。但是A和B之間的算法比較復(fù)雜,目前,這樣理解更適合我。
上面的理解有偏差,下面的圖解更好!
