小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

HTTPS為什么可以穿越NAT端口映射設(shè)備?

 燦爛文字 2019-06-02

以下斜體部分是來自讀者的問題

HTTPS為什么可以穿越NAT端口映射設(shè)備?

我的理解是:當一個TCP連接到達端口映射設(shè)備(比如防火墻)時,該設(shè)備從實現(xiàn)原理上可以看作是作為后端服務(wù)器和前端客戶端之間的中間人角色。無論是前期的三次握手類的控制連接,還是后續(xù)的數(shù)據(jù)傳輸,中間人都與前后端分別陸續(xù)完成上述步驟。那么問題來了,HTTPS類的TCP在三次握手后,后續(xù)開始證書傳輸、對稱密鑰生成等。這個過程涉及到私鑰密鑰身份認證。而我的防火墻上并沒有額外配置證書之類的配置,也沒有在客戶端添加防火墻證書的操作,就是簡單的在防火墻上配置了一個某內(nèi)部服務(wù)器的443的端口映射。結(jié)果就通了,想不明白。

作者 車小胖

名詞解釋

NAT  NetworkAddress Translation

PAT   Port Address Translation

CDN   Content Delivery Network

之所以產(chǎn)生這個理解偏差,可能是因為不熟悉端口映射(PAT)工作原理而造成的。

為了更好地理解PAT的工作原理,先問自己幾個問題:

Q1: 為何事先在NAT設(shè)備做端口映射?

Q2: 為何不把公網(wǎng)IP直接配置在https服務(wù)器上,而是把公網(wǎng)IP配置在NAT設(shè)備上?

Q3: 端口映射(PAT)工作在哪層?

Q4:客戶端的TCP連接終結(jié)(Termination)在哪里?

以下是問題的回答

A1只有公網(wǎng)IP才可以在互聯(lián)網(wǎng)上被用戶訪問,而服務(wù)器的私有IP無法被互聯(lián)網(wǎng)用戶訪問,假設(shè)公司的公網(wǎng)IP = 1.1.1.1,服務(wù)器IP = 10.0.0.1,端口映射將產(chǎn)生這個靜態(tài)表項。

NAT設(shè)備公網(wǎng)IP

NAT設(shè)備端口號

服務(wù)器私有IP

服務(wù)器端口號

1.1.1.1

443

10.0.0.1

443

NAT設(shè)備一旦接收目的IP + 端口號為1.1.1.1:443的報文,就會轉(zhuǎn)換為10.0.0.1:443,并將轉(zhuǎn)換好的IP報文繼續(xù)轉(zhuǎn)發(fā)給服務(wù)器。

A2:如果把公網(wǎng)IP直接配置在https服務(wù)器上,那么公網(wǎng)IP就被https服務(wù)器獨占了,工作在別的端口號的服務(wù)器,如21、80、445端口就無法被互聯(lián)網(wǎng)用戶訪問。

而在NAT設(shè)備上做21、80、443、445端口映射,可以將這些端口分別映射到特定的服務(wù)器上。

NAT設(shè)備公網(wǎng)IP

NAT設(shè)備端口號

服務(wù)器私有IP

服務(wù)器端口號

1.1.1.1

443

10.0.0.1

443

1.1.1.1

21

10.0.0.2

21

1.1.1.1

80

10.0.0.3

80

1.1.1.1

445

10.0.0.4

445

A3:端口映射工作在三四層,三層為IP,四層為TCP/UDP。

A4如下圖所示,客戶端的TCP連接被https服務(wù)器終結(jié),而不是NAT設(shè)備,NAT設(shè)備只是做三四層地址+端口號的轉(zhuǎn)換,僅此而已。

如上圖,在NAT設(shè)備眼里,TLS及應(yīng)用層的http僅僅是貨物,NAT設(shè)備對這些貨物并不關(guān)心是什么,更不會嘗試去理解或修改。

同理,客戶端的TLS安全會話也是終結(jié)在https服務(wù)器上,所以和安全有關(guān)的話題,如安全加密組件協(xié)商、數(shù)字證書認證、服務(wù)器的私鑰簽名、RSA交換密鑰算法、DH交換密鑰算法等等,都是在客戶端與服務(wù)器之間進行的,無需NAT設(shè)備的參與,所以NAT設(shè)備無需任何TLS安全有關(guān)的配置,僅僅做好自己本職工作即可。

目測題主是把端口映射與前置代理服務(wù)器混淆了。

首先來解釋一下什么是前置代理服務(wù)器?

前置

如上圖所示,在https服務(wù)器前方,有一個https 代理服務(wù)器(proxy),這里的前方的意思是,反向代理服務(wù)器比https服務(wù)器更靠近客戶端,此謂前置。

反向代理

通常意義上的代理,是為客戶端服務(wù)的,作為客戶端的全權(quán)代理,和服務(wù)器建立TCP連接,并將從服務(wù)器獲取的網(wǎng)頁,再轉(zhuǎn)交給客戶端,此謂代理服務(wù)器。

而反向代理,恰恰相反,是為服務(wù)器服務(wù)的,此謂反向代理。

當客戶端訪問服務(wù)器的流量經(jīng)過前置反向代理時,反向代理直接終結(jié)該TCP連接,接下來再直接終結(jié)TLS安全會話,仿佛自己就是真正的服務(wù)器一般。

有同學(xué)會問,為何客戶端訪問服務(wù)器的流量會先經(jīng)過前置反向代理?

上文其實已經(jīng)解釋過了,因為反向代理的位置在服務(wù)器的前方。

解釋完前置反向代理服務(wù)器,就會發(fā)現(xiàn),反向代理服務(wù)器既然以服務(wù)器的名義與客戶端建立TLS安全會話,那逃避不了的話題就是,反向代理究竟需不需要服務(wù)器的私鑰與公鑰證書?

當然需要,反向代理作為一個中間人,獲得了服務(wù)器的合法的授權(quán)。

前置反向代理與服務(wù)器的部署場景有

1) 在一個機房

這種部署場景,希望前置反向代理提供安全防護服務(wù),只有443端口的流量才能到達服務(wù)器,而其它所有的流量都無法到達服務(wù)器,可以避免服務(wù)器安全漏洞而產(chǎn)生的風(fēng)險。

2) 相距很遙遠的距離

這種就是CDN的部署場景,為的是CDN服務(wù)器更靠近用戶,可以提高用戶響應(yīng)的速度。

CDN服務(wù)器(反向代理)與服務(wù)器,在客戶端請求連接之前,TLS安全會話已經(jīng)建立,這樣大大縮短TLS安全會話的建立時間,間接提高用戶響應(yīng)。

還有一種部署場景,http服務(wù)器不支持TLS安全會話,希望前置反向代理服務(wù)器能夠提供安全會話服務(wù)。

如上圖所示,反向代理服務(wù)器分別與客戶端、服務(wù)器分別建立TCP連接,步驟如下:

客戶端與反向代理建立TCP連接(443)

2客戶端與反向代理建立TLS安全會話 (使用服務(wù)器的私鑰、公鑰完成認證)

將http里的URL提取出來

反向代理服務(wù)器與服務(wù)器建立TCP連接(80)

將步驟3的URL發(fā)給服務(wù)器

服務(wù)器返回請求的網(wǎng)頁內(nèi)容

反向代理服務(wù)器將網(wǎng)頁內(nèi)容,使用TLS安全加密發(fā)給客戶端

客戶端將TLS加密內(nèi)容解密出來,獲得了明文的網(wǎng)頁內(nèi)容,并呈現(xiàn)在瀏覽器上。

由于反向代理服務(wù)器與服務(wù)器之間的TCP連接上,沒有TLS安全加密保護,所以HTTP的內(nèi)容是以明文方式傳輸,如果這些內(nèi)容在互聯(lián)網(wǎng)上傳輸,則容易被竊取、泄露,這是一個安全隱患。

通常這種方式,反向代理服務(wù)器與服務(wù)器位于一個機房,由于明文流量在公司內(nèi)部傳輸,這樣就大大減輕了流量被竊取的可能。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多