《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 業(yè)界動(dòng)態(tài) > 【零信任】詳解零信任架構(gòu)中的安全網(wǎng)關(guān)

【零信任】詳解零信任架構(gòu)中的安全網(wǎng)關(guān)

2020-10-15
作者: 冀托
來(lái)源:白話零信任

  1、零信任架構(gòu)的中心

  無(wú)論是NIST還是Beyondcorp還是SDP,所有零信任架構(gòu)中,最中心的部分都是“安全網(wǎng)關(guān)”。下圖是NIST的零信任架構(gòu)圖,圖中藍(lán)框里就是“安全網(wǎng)關(guān)”。

微信圖片_20201015145206.png

  從圖中可以看到安全網(wǎng)關(guān)的作用為:

 ?。?)安全網(wǎng)關(guān)隔開了左側(cè)外網(wǎng)和右側(cè)內(nèi)網(wǎng)。用戶在左側(cè)網(wǎng)絡(luò)中。用戶想獲取右側(cè)的數(shù)據(jù)資源,只能通過(guò)網(wǎng)關(guān)進(jìn)入。網(wǎng)關(guān)就像是門衛(wèi)一樣,合法的讓進(jìn),不合法的攔住。

 ?。?)所有的安全策略都由網(wǎng)關(guān)執(zhí)行。零信任要求對(duì)用戶的身份、設(shè)備、行為路徑等等多個(gè)方面進(jìn)行檢測(cè)和判斷,檢測(cè)結(jié)果由網(wǎng)關(guān)執(zhí)行。用戶的請(qǐng)求到網(wǎng)關(guān)之后,網(wǎng)關(guān)解析出請(qǐng)求中的用戶信息,然發(fā)給各個(gè)策略檢測(cè)模塊。所有的檢測(cè)結(jié)果都匯聚到網(wǎng)關(guān),由網(wǎng)關(guān)最終執(zhí)行。

  下面介紹安全網(wǎng)關(guān)的具體架構(gòu)。

  2、Web代理網(wǎng)關(guān)

  Beyondcorp是世界上最早落地的零信任項(xiàng)目,Beyondcorp網(wǎng)關(guān)的名字叫“訪問(wèn)代理”(Access Proxy),如下圖所示。

微信圖片_20201015145211.png

  Beyondcorp的安全網(wǎng)關(guān)實(shí)際上相當(dāng)于一個(gè)“Web代理”,只支持web網(wǎng)站的接入,不支持c/s架構(gòu)的應(yīng)用。這個(gè)網(wǎng)關(guān)可以用類似Nginx的代理服務(wù)器實(shí)現(xiàn)。

  Web代理網(wǎng)關(guān)的功能包括:

  (1)轉(zhuǎn)發(fā)請(qǐng)求。這是代理服務(wù)器最基礎(chǔ)的功能。網(wǎng)關(guān)根據(jù)用戶訪問(wèn)的域名不同,分別轉(zhuǎn)發(fā)到網(wǎng)關(guān)后面的不同服務(wù)器。

  (2)獲取身份。從架構(gòu)圖中可以看到,Beyondcorp架構(gòu)中還包括“單點(diǎn)登錄”。所以,網(wǎng)關(guān)對(duì)用戶身份的判斷可能也是通過(guò)單點(diǎn)登錄的token實(shí)現(xiàn)的。

  Beyondcorp架構(gòu)中,客戶端是一個(gè)Chrome瀏覽器上的代理插件。用戶訪問(wèn)數(shù)據(jù)時(shí),插件應(yīng)該在cookie或包頭中加上了代表用戶身份的token。

  Beyondcorp還要驗(yàn)證設(shè)備信息。設(shè)備信息可能也是用類似的方式,通過(guò)瀏覽器插件把信息插進(jìn)包頭里帶給網(wǎng)關(guān)的。

 ?。?)驗(yàn)證身份。網(wǎng)關(guān)可以將訪問(wèn)者的身份信息發(fā)給Beyondcorp的身份管理模塊。身份管理模塊進(jìn)行對(duì)比和判斷,然后返回驗(yàn)證結(jié)果。

  為了提升驗(yàn)證速度,可以把身份信息在網(wǎng)關(guān)上也存儲(chǔ)一份。

  這一步會(huì)非常影響網(wǎng)關(guān)的性能,所以要看一個(gè)零信任產(chǎn)品好不好,就看網(wǎng)關(guān)的驗(yàn)證算法快不快了。

 ?。?)放行或攔截。網(wǎng)關(guān)根據(jù)驗(yàn)證結(jié)果決定將訪問(wèn)請(qǐng)求轉(zhuǎn)發(fā)到真實(shí)的服務(wù)器上,或者轉(zhuǎn)發(fā)到報(bào)錯(cuò)頁(yè)面上。(Beyondcorp的報(bào)錯(cuò)頁(yè)面上會(huì)引導(dǎo)用戶去自助申請(qǐng)權(quán)限,這個(gè)體驗(yàn)做得非常很好。)

  Web代理網(wǎng)關(guān)的好處:

  (1)預(yù)驗(yàn)證、預(yù)授權(quán)。只有通過(guò)身份驗(yàn)證的用戶才能接入企業(yè)資源,其他人會(huì)被攔在外面,完全碰不到企業(yè)資源,相當(dāng)于在整個(gè)資源外面多了一層防護(hù)罩。

 ?。?)持續(xù)監(jiān)控。所有流量都是通過(guò)網(wǎng)關(guān)轉(zhuǎn)發(fā)的,所以網(wǎng)關(guān)可以持續(xù)對(duì)用戶的流量進(jìn)行設(shè)備健康狀態(tài)和用戶行為狀態(tài)的檢測(cè)。如果發(fā)現(xiàn)異常,可以立即進(jìn)行攔截阻斷。

  3、零信任的客戶端

  下面簡(jiǎn)單介紹一下web代理網(wǎng)關(guān)需要什么樣的客戶端來(lái)配合。

  因?yàn)锽eyondcorp是谷歌自己內(nèi)部用的,所以他的客戶端是用Chrome瀏覽器插件實(shí)現(xiàn)的。

  國(guó)內(nèi)瀏覽器市場(chǎng)比較亂,沒(méi)法用插件做,所以國(guó)內(nèi)很多做零信任的廠商都是自己開發(fā)了一個(gè)瀏覽器作為客戶端。

  瀏覽器的技術(shù)要求很高。瀏覽器的好處是對(duì)終端的管控能力強(qiáng)。但是要兼容企業(yè)的老舊系統(tǒng),所以對(duì)內(nèi)核兼容性要求很高。而且瀏覽器本身就是個(gè)很大的產(chǎn)品,代碼幾千萬(wàn)行,要維護(hù)這么大的產(chǎn)品是很難的。

  其實(shí),不用瀏覽器,做一個(gè)桌面代理程序也可以達(dá)到效果。國(guó)外廠商用瀏覽器做客戶端的也比較少。那國(guó)內(nèi)為啥喜歡瀏覽器呢?因?yàn)閲?guó)內(nèi)最早做零信任的公司本來(lái)就是做瀏覽器起家的(我就在這個(gè)公司)。我們?cè)O(shè)計(jì)架構(gòu)的時(shí)候,順手就帶上了瀏覽器。國(guó)內(nèi)廠商愛跟風(fēng),都跟著學(xué),后來(lái)就都跟著跳進(jìn)瀏覽器的坑里了。沒(méi)想到現(xiàn)在瀏覽器竟然成為國(guó)內(nèi)零信任的標(biāo)配了。【捂臉笑】

微信圖片_20201015145216.png

  4、隱身網(wǎng)關(guān)

  以前我介紹過(guò)SDP的隱身黑科技。SDP架構(gòu)里隱身網(wǎng)關(guān)的作用類似于防火墻。隱身網(wǎng)關(guān)對(duì)用戶的身份進(jìn)行檢測(cè),對(duì)合法用戶打開防火墻的端口。對(duì)非法用戶來(lái)說(shuō),所有端口都是關(guān)閉的。

  如果把隱身網(wǎng)關(guān)放在web代理之前的話,可以增強(qiáng)安全網(wǎng)關(guān)的“隱身”防護(hù)能力,抵抗針對(duì)web代理網(wǎng)關(guān)的漏洞掃描或者DDoS攻擊,如下圖。

微信圖片_20201015145219.png

  隱身網(wǎng)關(guān)的功能流程為:

  (1)默認(rèn)關(guān)閉所有端口。默認(rèn)情況下,對(duì)網(wǎng)關(guān)IP進(jìn)行掃描,會(huì)發(fā)現(xiàn)端口都是關(guān)閉的。

 ?。?)申請(qǐng)放行。用戶在正常通信之前,先向隱身網(wǎng)關(guān)發(fā)出一個(gè)專門用于申請(qǐng)放行的數(shù)據(jù)包。這個(gè)數(shù)據(jù)包中包含用戶身份信息。

 ?。?)驗(yàn)證身份。隱身網(wǎng)關(guān)接收用戶的數(shù)據(jù)包,解析出用戶的身份,并對(duì)身份進(jìn)行檢測(cè)。

 ?。?)放行或攔截。身份合法的話,隱身網(wǎng)關(guān)會(huì)對(duì)用戶的IP地址定向開放端口。對(duì)其他用戶來(lái)說(shuō),端口還是關(guān)閉的。

 ?。?)正常通信。放行之后,用戶就可以正常跟web代理網(wǎng)關(guān)通信了。

  4、網(wǎng)絡(luò)隧道網(wǎng)關(guān)

  只有web代理網(wǎng)關(guān)的話,C/S架構(gòu)的業(yè)務(wù)系統(tǒng)沒(méi)法用,遠(yuǎn)程運(yùn)維連接SSH、連接數(shù)據(jù)庫(kù)等等也不行。一個(gè)完整的零信任方案應(yīng)該支持這些場(chǎng)景。

  其實(shí),RDP和SSH也有web形式的方案。這兩周協(xié)議也走web代理網(wǎng)關(guān)之后,基本就可以解決95%的問(wèn)題了。

  但是剩下5%也不能放著不管。企業(yè)里可能有些老舊的客戶端或者瀏覽器插件,用的是自己的通信協(xié)議。這些場(chǎng)景沒(méi)法用web代理搞定,只能在客戶端的網(wǎng)絡(luò)層抓包,再通過(guò)網(wǎng)絡(luò)隧道轉(zhuǎn)發(fā)。

  在零信任網(wǎng)關(guān)中增加一個(gè)模塊——網(wǎng)絡(luò)隧道網(wǎng)關(guān),如下圖。用戶訪問(wèn)Web網(wǎng)站的時(shí)候,走Web代理網(wǎng)關(guān)。其他C/S架構(gòu)的場(chǎng)景,走網(wǎng)絡(luò)隧道網(wǎng)關(guān)。

微信圖片_20201015145224.jpg

  很多零信任產(chǎn)品是用VPN來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)隧道網(wǎng)關(guān)的,包括Beyondcorp也是把C/S架構(gòu)的場(chǎng)景交給VPN了。

  目前最新一代的VPN協(xié)議是wireguard協(xié)議,用wireguard來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)隧道網(wǎng)關(guān)是個(gè)不錯(cuò)的選擇。

  wireguard最大的特點(diǎn)就是代碼非常簡(jiǎn)潔。wireguard全部只有4千行,傳統(tǒng)VPN至少有幾萬(wàn)行。代碼少,就意味著運(yùn)行效率更高,更快,更穩(wěn)定,同時(shí)漏洞也更少。

微信圖片_20201015145229.png

  wireguard的通信流程簡(jiǎn)述如下。

 ?。?)客戶端創(chuàng)建虛擬網(wǎng)卡,抓取用戶流量。這里要限制不能全部抓取,應(yīng)該只抓取用戶有權(quán)訪問(wèn)的流量。

 ?。?)申請(qǐng)隱身網(wǎng)關(guān)放行。

 ?。?)與網(wǎng)絡(luò)隧道網(wǎng)關(guān)建立連接。Wireguard將抓到的流量進(jìn)行UDP封裝,封裝過(guò)程中進(jìn)行加密。與傳統(tǒng)VPN協(xié)議不同,wireguard的加密過(guò)程采用了更高級(jí)的加密方法“Cryptokey Routing”??蛻舳撕途W(wǎng)關(guān)各有一對(duì)公私鑰,公鑰發(fā)給對(duì)方。通信時(shí)先用私鑰進(jìn)行加密,對(duì)方再用公鑰解密。這里面,公私鑰是跟用戶身份綁定的,每個(gè)用戶都用單獨(dú)一套公私鑰。這樣的加密強(qiáng)度基本是不可破解的。

 ?。?)網(wǎng)絡(luò)隧道網(wǎng)關(guān)檢測(cè)用戶身份。身份信息是在封裝過(guò)程中插入數(shù)據(jù)包頭部的。

  (5)正常通信。

  網(wǎng)絡(luò)隧道網(wǎng)關(guān)的作用是覆蓋更多使用場(chǎng)景,讓零信任架構(gòu)更完整。但是在性能上可能不如Web代理網(wǎng)關(guān)。而且暴露了網(wǎng)絡(luò)層的資源,安全性上更低。

  所以這兩者是相互補(bǔ)充的關(guān)系。如果只看到隧道網(wǎng)關(guān)所有場(chǎng)景都能支持,就把web代理網(wǎng)關(guān)扔了,那就是丟了西瓜撿芝麻了。

  我還見過(guò)一些廠商只有隧道網(wǎng)關(guān),web代理和隱身網(wǎng)關(guān)都沒(méi)有。沒(méi)有隱身防護(hù)的話,相當(dāng)于隧道網(wǎng)關(guān)還是對(duì)外暴露的,很不安全。我當(dāng)時(shí)試過(guò)攻擊他的51820端口(wireguard的默認(rèn)端口)。每秒1萬(wàn)個(gè)包過(guò)去,直接就把那個(gè)廠商的產(chǎn)品搞癱瘓了。

  所以,沒(méi)有隱身網(wǎng)關(guān)保護(hù)的隧道網(wǎng)關(guān)是很脆弱的。

  5、API網(wǎng)關(guān)

  現(xiàn)在,用戶的訪問(wèn)場(chǎng)景都覆蓋了,但是服務(wù)器之間的訪問(wèn)還沒(méi)有管控。服務(wù)器之間的訪問(wèn)需要API網(wǎng)關(guān)來(lái)管理,如下圖。

微信圖片_20201015145234.jpg

  第三方服務(wù)器調(diào)取被保護(hù)資源的API時(shí),需要進(jìn)行身份驗(yàn)證。具體流程為:

  (1)申請(qǐng)隱身網(wǎng)關(guān)放行。

  (2)通過(guò)API網(wǎng)關(guān)的身份驗(yàn)證。多數(shù)API都是Http協(xié)議的,所以這個(gè)過(guò)程與web代理網(wǎng)關(guān)類似。

  第三方服務(wù)器在通信時(shí),將自己的身份信息插入數(shù)據(jù)包的頭部。API網(wǎng)關(guān)從包頭獲取身份進(jìn)行驗(yàn)證,并判斷是否放行。

 ?。?)正常通信。

  6、網(wǎng)關(guān)集群

  到這里已經(jīng)形成了一個(gè)完整的零信任安全網(wǎng)關(guān)。不過(guò)這只是單機(jī)版,只適用于中小型企業(yè)。

  大型企業(yè)還有其他需求:

 ?。?)多數(shù)據(jù)中心:業(yè)務(wù)系統(tǒng)的服務(wù)器分別部署在多個(gè)數(shù)據(jù)中心或者多個(gè)公有云上。

  (2)集群:大型企業(yè)用戶量大,一臺(tái)網(wǎng)關(guān)性能肯定支撐不住。

 ?。?)高可用:所有流量都要經(jīng)過(guò)網(wǎng)關(guān)轉(zhuǎn)發(fā),一旦網(wǎng)關(guān)down掉,所有用戶都會(huì)受影響,所以必須有高可用方案,一臺(tái)壞了,自動(dòng)切換到另一臺(tái)。當(dāng)然,集群也能實(shí)現(xiàn)高可用。

  (4)分布式:如果企業(yè)在全國(guó)各地都有分公司,或者跨國(guó)企業(yè)在國(guó)外也有分公司,那么網(wǎng)關(guān)必須也是分布式的,讓用戶能夠就近接入,保證用戶的訪問(wèn)速度。

  一個(gè)成熟的零信任架構(gòu)應(yīng)該滿足這些需求,如下圖。

微信圖片_20201015145237.jpg

  網(wǎng)關(guān)的集群方案跟零信任架構(gòu)中的管控中心密不可分。管控中心管理所有網(wǎng)關(guān),用戶在什么情況下該連接哪個(gè)網(wǎng)關(guān),也是有管控中心統(tǒng)一管理。具體流程這里就不做深入介紹了。

  7、總結(jié)

  安全網(wǎng)關(guān)是零信任架構(gòu)的中心,是零信任理念的執(zhí)行者。安全網(wǎng)關(guān)通常會(huì)部署在企業(yè)網(wǎng)絡(luò)的入口,對(duì)企業(yè)影響非常大。因此,網(wǎng)關(guān)對(duì)各種協(xié)議是否都能支持,網(wǎng)關(guān)是否支持高可用,加密通信的性能和穩(wěn)定性,是零信任安全網(wǎng)關(guān)最重要的評(píng)價(jià)指標(biāo)。

 

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。