天天看點

面試題-逐層解析:探究HTTPS協定在七層網絡模型中的具體實作

作者:玄明Hanko
面試題-逐層解析:探究HTTPS協定在七層網絡模型中的具體實作

看到圖大家可能會問,為什麼SSL在表示層與會話層,不是在傳輸層的嗎?帶着問題往下看。

1.HTTPS是作用在哪幾層的?

面試題-逐層解析:探究HTTPS協定在七層網絡模型中的具體實作

HTTPS(Hypertext Transfer Protocol Secure)協定作用在 OSI 七層網絡模型的應用層(Application Layer)和傳輸層(Transport Layer)。

2、HTTPS=HTTP+SSL,那SSL協定在網絡模型的哪一層?

傳輸層?表示層?會話層?

SSL是在傳輸層嗎?不過有些人說是在表示層與會話層?究竟是在哪一層呢?看看下面chatgpt的回答:

面試題-逐層解析:探究HTTPS協定在七層網絡模型中的具體實作

SSL/TLS協定被放置在傳輸層或表示層的位置,不同的文獻和不同的人可能有不同的說法(有的說SSL在傳輸層有的說SSL在表示層)。這是因為SSL/TLS協定的功能涉及到了傳輸層和表示層。

從傳輸層角度來看,SSL/TLS協定使用TCP作為其可靠傳輸的基礎,對傳輸資料進行加密和解密。是以,一些文獻将SSL/TLS歸類到傳輸層中。

從表示層角度來看,SSL/TLS協定定義了它自己的記錄協定,用于加密應用層的資料,并提供了一種安全的通信機制。同時,SSL/TLS協定也使用了表示層的一些功能,比如采用ASN.1格式對協定進行編碼和解碼。是以,另一些文獻将SSL/TLS歸類到表示層中。

總之,SSL/TLS協定在七層模型中的定位不是唯一确定的,可能因不同的角度和文獻而有所差別。其實SSL分為記錄協定與握手協定,記錄協定是在表示層、握手協定是在會話層。是以SSL/TLS協定更傾向于被歸類到表示層和會話層。不過一般面試回答在傳輸層與應用層之間就好。

如果從細節上分析可以看到:

面試題-逐層解析:探究HTTPS協定在七層網絡模型中的具體實作

SSL/TLS協定被分為記錄協定和握手協定。SSL/TLS協定的記錄協定通常被歸類到表示層,而握手協定則被歸類到會話層。是以SSL/TLS協定涉及到了表示層和會話層,但不包含傳輸層。

記錄協定使用一個稱為“加密塊”的結構對資料進行分段和加密,在傳輸之前将其發送到下一層(通常是TCP或UDP) 進行處理。這種方式類似于表示層的功能,它負責對資料進行格式化、加密和解密,以確定資料在傳輸過程中的安全性和完整性

握手協定執行的操作與會話層的功能相似,它用于建立和管理安全連接配接,協商加密算法和生成會話密鑰等操作。是以,根據七層模型的定義,SSL/TLS協定更傾向于被歸類到表示層和會話層,而不是傳輸層。

3.為什麼我們通常看到HTTPS使用的是SSL/TLS,而不是單獨的SSL或TLS?

面試題-逐層解析:探究HTTPS協定在七層網絡模型中的具體實作

SSL(Secure Sockets Layer)協定最初由網景公司開發,後來被 AOL 收購。在 SSL 3.0 版本釋出後不久,SSL 标準化工作就開始啟動,并逐漸形成了 TLS(Transport Layer Security)協定。TLS 在 SSL 3.0 的基礎上進行了改進和優化,以提高資料傳輸的安全性。

盡管 TLS 是 SSL 的後繼者,但實際上它們在功能和應用場景上非常相似。是以,在網際網路上,我們通常會看到 SSL/TLS 這種組合使用的情況,用來表示 SSL 和 TLS 兩種協定都可以用來提供加密傳輸服務。例如,HTTPS(Hypertext Transfer Protocol Secure)就是一種基于 SSL/TLS 協定實作的加密傳輸協定。

需要注意的是,盡管 SSL 和 TLS 都可以提供資料傳輸的安全保障,但它們之間存在一些差異。例如,TLS 提供更強大的加密算法和安全選項,以及更靈活的密鑰協商方法和更好的前向保密性等功能。是以,在實際應用中,TLS 往往更受青睐,并且大部分浏覽器和伺服器都已經停止支援 SSL 協定。

4.https的加密資料在網絡的哪幾層?

下圖可以看到通信的過程是一個請求從一台電腦的應用層到實體層,再通過實體層的連接配接,從另一台電腦的實體層發傳輸到了應用層,展示給使用者B。是以,在表示層、會話層、傳輸層和網絡層中,HTTPS封包都是密文。隻有在應用層是基于HTTP的封包也就是明文的。

面試題-逐層解析:探究HTTPS協定在七層網絡模型中的具體實作
面試題-逐層解析:探究HTTPS協定在七層網絡模型中的具體實作

在HTTPS通信中,加密操作是在傳輸層(Transport Layer)和應用層(Application Layer)之間通過TLS/SSL協定實作的。在TLS/SSL協定中,HTTP封包會被加密并封裝到TLS/SSL記錄協定(Record Protocol)中,然後再交給傳輸層進行分段處理和傳輸。是以,在傳輸層、網絡層、會話層和表示層中,HTTP封包都是加密過的密文,而且這些層次不會直接對HTTP封包進行解密或還原操作。隻有在接收端使用TLS/SSL協定對加密資料進行解密之後,才能得到原始的HTTP封包,進而進行後續的處理。是以,在表示層、會話層、傳輸層和網絡層中,HTTPS封包都是密文。

繼續閱讀