參考文章:https://segmentfault.com/a/1190000002554673
SSL:(Secure Socket Layer,安全套接字層)
TLS:(Transport Layer Security,傳輸層安全協議)
相關英語解釋:
record layer? ? 記錄層
handshake layer? ? 握手層
CipherSuites? ? 密碼套件
fragmentation? ? 碎片
session? ? 階段
compression? ? 壓縮
authentication? ? 認證
Change cipher spec ? ?更改密碼規則
SSL位于傳輸層與應用層之間,用于Web瀏覽器和服務器之間的身份認證和加密數據傳輸。同時SSL可以分成兩層,ssl記錄層和ssl握手層。ssl記錄層位于可靠的傳輸之上(比如TCP),提供壓縮,認證,加密等功能。ssl握手層位于ssl記錄層之上,提供數據傳輸前的身份驗證,協商算法,交換密鑰等功能。
TLS用于兩個應用程序之間提供保密性和數據完整性??梢岳斫鉃槭莝sl的后續版本,也是由兩層組成,tls記錄層,和tls握手層,同理,tls記錄層位于可靠的傳輸協議之上。
綜上所述,SSL/TLS提供的服務有:
1.認證用戶和服務器,確保消息發送正確
2.加密數據,防止被竊取
3.保證數據傳輸的完整性
補充數據傳輸在OSI七層模型中的流程:
信息 ——>應用層包頭(相關應用使用的協議,來規定應用如何去通信)——>表示層包頭(決定數據編碼格式,如圖片的編碼格式,視頻等等)——>會話層包頭(兩端實體建立會話,包括意外終端該如何解決,斷點續傳么)——>傳輸層包頭(切割文件為小段,標注端口與應用程序,流量設置等等)——>網絡層包頭(解決如何到達目的地的問題,路由選擇)——>數據鏈路層包頭(找到機器具體的位置,根據機器的網卡等上網設備)——>物流層(將上方的一切,編碼成01的比特流傳輸)——>
同理,接受方就是一層一層的解開包頭,最后到應用層,展現信息給相關用戶。
補充加密方式:非對稱加密
我理解的非對稱加密方式:(個人理解,有錯誤請指出)
AB兩人要通信,A先生成兩個鑰匙,一個是公鑰,一個是私鑰,B再生成兩個鑰匙,一個公鑰,一個私鑰。
然后A和B要通信,A向B發送一個信息,內容是“我準備和你通信,這個是我的公鑰”,這個信息上有A的公鑰。
接著,B收到了信息,同時也有了A的公鑰,B回復A:“我收到了你的信息和鑰匙,我把我的公鑰也給你”
就這樣,A有A的私鑰和B的公鑰,B有B的私鑰和A的公鑰。
這樣就算是建立了加密通道。(個人理解)
于是,開始了正式通信:
A發送信息:“這是我的賬號密碼”,同時因為A有B的公鑰,所以A用B的公鑰給信息加密,這個加密后的信息,只有B的私鑰才能解密。而擁有B私鑰的只有一個人,那就是B本人。所以,即使A發給B的加密信息被截取了,中間人也沒辦法解密,因為他沒有B的私鑰,沒辦法解密B的公鑰加密過后的信息。
B接收到A的信息后,用自己的私鑰開始解密。得到A的賬號密碼。反過來,由于B有A的公鑰,所以B也可以用同樣的方法發送加密信息。
嗯,結合了上面的圖,我這樣理解實際上還是存在一些問題的,但是應該就是這樣的道理,只不過不是說一定A和B都有一對密鑰。但是A和B之間的算法比較復雜,目前,這樣理解更適合我。