SSL(Secure Sockets Layer)安全套接字協(xié)議。
TLS(Transport Layer Security)傳輸層安全。
二者是為網(wǎng)絡(luò)通信提供安全和數(shù)據(jù)完整性的一種安全協(xié)議。TLS與SSL在傳輸層與應(yīng)用層之間對網(wǎng)絡(luò)的連接進(jìn)行加密。
七層模型
層 | 作用 |
應(yīng)用層 | 應(yīng)用層是網(wǎng)絡(luò)體系中最高的一層,也是唯一面向用戶的一層,為用戶提供常用的應(yīng)用程序,每個網(wǎng)絡(luò)的應(yīng)用都對應(yīng)著不同的協(xié)議。 |
表示層 | 數(shù)據(jù)編碼和轉(zhuǎn)化,以確保以一個系統(tǒng)應(yīng)用層發(fā)送的信息,可以被另一個系統(tǒng)應(yīng)用層識別 |
會話層 | 建立、管理、終止會話。對應(yīng)主機(jī)進(jìn)程,指本地主機(jī)與遠(yuǎn)程主機(jī)正在進(jìn)行的會話,SSL/TLS就是在這一層進(jìn)行的。 |
傳輸層 | 建立、維護(hù)和管理端到端的連接,控制數(shù)據(jù)傳輸方式。 |
網(wǎng)絡(luò)層 | 進(jìn)行邏輯地址尋址,實現(xiàn)不同的網(wǎng)絡(luò)之間的路徑選擇。數(shù)據(jù)傳輸線路選擇,IP地址及路由選擇 |
數(shù)據(jù)鏈路層 | 以太網(wǎng)所在的層,進(jìn)行物理尋址 |
物理層 | 物理層確保原始的數(shù)據(jù)可在各種物理媒介上傳輸,主要是物理劫持傳輸媒介(網(wǎng)線或者無線) |
從上表可看出,SSL/TLS是在傳輸層和應(yīng)用層之間,我們在使用TCP通信時Socket 該怎么用還怎么用,只是在應(yīng)用層與TCP之間經(jīng)過了加密。SSL/TLS不只是用在https,只要是基于網(wǎng)絡(luò)傳輸加密的都可以用,比如MQTT通信協(xié)議。
TLS與SSL的差異很多,簡單可以認(rèn)為TLS是SSL的升級版本,歷史版本如下:
SSL1.0 最早的版本,并沒有發(fā)布。
SSL2.0 發(fā)布了,但有嚴(yán)重BUG。
SSL3.0 發(fā)布了,并得到大規(guī)模應(yīng)用。
TLS1.0 發(fā)布了,是SSL的升級,相當(dāng)于SSL3.1
TLS1.1 發(fā)布了,相當(dāng)于SSL3.2
TLS1.2 發(fā)布了,相當(dāng)于SSL3.3
在mebedtls庫中TLS的版本號宏定義也能驗證上述的定義,比如TLS1.2其主版本號是3,子版本號也是3,其實對應(yīng)的就是SSL3.3。
SSL/TLS加密是通過CA證書中的公鑰和服務(wù)器的私鑰來實現(xiàn)的.所謂公鑰就是公開的密鑰,給client來使用的,如果只有公鑰,那顯然是不安全的,只要訪問服務(wù)器,都可以拿到公鑰,所以與公鑰對應(yīng)的還有私鑰,相當(dāng)于一個密碼本 被撕開了兩半,一半作為公鑰給客戶端,另一半則作為私鑰,存放在服務(wù)器中,經(jīng)過公鑰加密后的消息,只能通過私鑰才能解密.