互聯(lián)網(wǎng)上消防栓的消亡|Cloudflare無圖CAPTCHA的應(yīng)運而生

來源: Cloudflare
作者:Cloudflare
時間:2021-06-20
17146
許多時候,企業(yè)需要一種方法來判斷在線用戶是不是人類,原因通常與安全性或在線服務(wù)被濫用有關(guān)。CAPTCHA 于世紀(jì)之交應(yīng)運而生。 請選擇所有巴士。請點擊自行車。這張照片中有交通信號燈嗎?類似于這樣荒謬的問題,您最近幾乎肯定遇見過。這是在線服務(wù)用來區(qū)分人類和自動程序的一種方法,稱為 CAPTCHA。CAPTCHA 可增強在線服務(wù)的安全性。

01

為什么使用 CAPTCHA ?

許多時候,企業(yè)需要一種方法來判斷在線用戶是不是人類,原因通常與安全性或在線服務(wù)被濫用有關(guān)。CAPTCHA 于世紀(jì)之交應(yīng)運而生。

請選擇所有巴士。請點擊自行車。這張照片中有交通信號燈嗎?類似于這樣荒謬的問題,您最近幾乎肯定遇見過。這是在線服務(wù)用來區(qū)分人類和自動程序的一種方法,稱為 CAPTCHA。CAPTCHA 可增強在線服務(wù)的安全性。

第一個 CAPTCHA 誕生于 1997 年,其術(shù)語(“Completely Automated Public Turing test to tell Computers and Humans Apart”,全自動區(qū)分計算機與人類的圖靈測試)則是 2003 年由 Luis von Ahn、Manuel Blum、Nicholas J. Hopper 和 John Langford 創(chuàng)造的。

就其本質(zhì)而言,CAPTCHA 質(zhì)詢-響應(yīng)必須是自動化的:這樣,它們可以在需要捕獲的人類和自動程序之間進行擴展。

02

為什么棄用 CAPTCHA ?

一言以蔽之,沒人喜歡它們。我們的數(shù)據(jù)表明,用戶完成 CAPTCHA 質(zhì)詢的平均用時為 32 秒。全球互聯(lián)網(wǎng)用戶多達 46 億。假設(shè)一個典型的互聯(lián)網(wǎng)用戶大約每 10 天看到一次 CAPTCHA。

簡單估算一下,相當(dāng)于每一天都要浪費 500 年時間,而這只是為了證明我們是人類而已。

迄今為止,我們能夠做到最好的就是最大程度減少它們。例如,Cloudflare 正在不斷改進自動程序管理解決方案,盡可能智能地決定何時向用戶提供 CAPTCHA。但多年來,隨著人工智能發(fā)展,CAPTCHA 已從簡單地從背景中識別文字,變成對舊書執(zhí)行 OCR,到識別圖片中的物體。這給互聯(lián)網(wǎng)上的人類用戶帶來一些現(xiàn)實問題:

生產(chǎn)力

浪費時間 — 不能專注于手頭的任務(wù) — 常常引起一些挫敗感。

輔助功能

用戶被假定具有解決測試題所需的肢體和認(rèn)知能力,但并非總是如此。比如,視覺障礙者可能無法完成 CAPTCHA 解題任務(wù)。

文化知識

地球上見過美國消防栓的人屬于少數(shù),正如講英語的人并非多數(shù)一樣。出租車在紐約是黃色的,在倫敦則是黑色的。糟糕的是,只有少數(shù)地方將出租車稱為“Cab”,其他地方都叫做“Taxi”!

移動設(shè)備上的交互

在世界上大部分地區(qū),手機和移動設(shè)備是主要的互聯(lián)網(wǎng)訪問方式,通常也是唯一的方式。除了在小屏幕設(shè)備上難度增大外,CAPTCHA 還給用戶的數(shù)據(jù)流量和電池消耗造成壓力。

實際上,萬維網(wǎng)聯(lián)盟(W3C)早在 2003 年就研究了多個草案,指出了 CAPTCHA 的不便性。

而且,這只是用戶角度的考量。除了給用戶造成這些代價外,對于企業(yè)來說也有非?,F(xiàn)實的成本。企業(yè)因為各種原因,花費許多時間去優(yōu)化其網(wǎng)站和應(yīng)用程序的性能和布局。這些工作為的是避免用戶在您希望他們注冊時跳出網(wǎng)站,防止用戶在您希望他們結(jié)賬時丟棄購物車。通常而言,您希望留住客戶,讓他們不會因為感覺沮喪而一去不回。

CAPTCHA 實際上迫使企業(yè)將摩擦送到用戶面前;正如管理高業(yè)績在線業(yè)務(wù)的人會告訴您的那樣,這是別無選擇時的無奈之舉。

當(dāng)初從 Google reCAPTCHA 轉(zhuǎn)向 hCAPTCHA ,意味著我們開始踏上解決這些問題的征程。如今,我們將更進一步。

03

無圖 CAPTCHA:Cryptographic Attestation of Personhood

我們目前正在啟動一項實驗,希望徹底擺脫 CAPTCHA。想法很簡單:真人應(yīng)該能夠通過觸摸或查看其設(shè)備來證明自己是人類,而無需透露自己的身份。我們希望您能夠證明自己是人,但不必透露具體是哪一個人!您可能會問,這有可能嗎?答案是肯定的!我們先從受信任 USB 密鑰著手,這種設(shè)備已存在了一些時日,而且越來越多的手機和電腦也默認(rèn)配備這種功能。

從用戶角度來看,Cryptographic Attestation of Personhood 的工作方式如下:

用戶訪問受 Cryptographic Attestation of Personhood 保護的網(wǎng)站。

Cloudflare 提供質(zhì)詢。

用戶點擊“I am human (beta)”,并看到要求插上安全設(shè)備的提示。

用戶決定使用硬件安全密鑰。

用戶將設(shè)備插到電腦,或?qū)⑵滟N靠手機來進行無線簽名(使用 NFC)。

加密認(rèn)證發(fā)送到 Cloudflare,在驗證用戶存在測試后授予用戶操作權(quán)限。

完成這個流程需要五秒鐘。更重要的是,鑒于該認(rèn)證并非唯一關(guān)聯(lián)至用戶設(shè)備,因此這種質(zhì)詢可以保護用戶的隱私。Cloudflare 信任的所有設(shè)備制造商都是 FIDO 聯(lián)盟的一份子。這樣,每個硬件密鑰與同一批次中制造的其他密鑰共享其標(biāo)識符。從 Cloudflare 角度來看,您的密鑰與這個批次中的所有其他密鑰別無二致。

完成 Cryptographic Attestation of Personhood 最多需要點擊三下。不會出現(xiàn)用戶被迫連續(xù)點擊巴士十次那樣的循環(huán)動作。

雖然有多種多樣的硬件安全密鑰,但我們在初期推出時僅支持幾種設(shè)備:YubiKey,我們已有機會使用和測試;HyperFIDO 密鑰;以及 Thetis FIDO U2F 密鑰。

Yubico 首席技術(shù)官 Christopher Harrell 表示,“像 WebAuthn 這樣的開放式身份驗證標(biāo)準(zhǔn)一直是 Yubico 踐行其使命的核心:提供令人愉悅的用戶體驗以及強大的安全性。通過提供由 YubiKey 硬件和公鑰加密支持的一步式 CAPTCHA 替代方案,Cloudflare 的 Cryptographic Attestation of Personhood 實驗有助于進一步減輕用戶與承受壓力或遭受攻擊的站點進行交互時面臨的認(rèn)知負(fù)擔(dān)。我希望這個實驗?zāi)軌蜃屓藗冊趯崿F(xiàn)自己目標(biāo)時面臨最小的摩擦,并享受強大的隱私保護。同時也希望,實驗結(jié)果會表明其他網(wǎng)站也值得考慮采用硬件安全性,而且不僅限于身份驗證?!?/span>

04

工作原理

Cryptographic Attestation of Personhood 依賴于 Web 身份驗證 (WebAuthn)證明。這個 API 已在 W3C 得到標(biāo)準(zhǔn)化,并已實施到大多數(shù)現(xiàn)代 Web 瀏覽器和操作系統(tǒng)中。它旨在提供一個標(biāo)準(zhǔn)接口,對 Web 用戶進行身份驗證,并使用其設(shè)備的加密能力。

隨著對更強安全性和更高可用性的需求不斷增加,我們預(yù)見 WebAuthn 的部署實例也會增多。

假設(shè)您使用具有兼容配置的硬件設(shè)備,您可能想知道幕后發(fā)生的事情。

05

簡要推介

簡單說來,您的設(shè)備具有嵌入式安全模塊,其包含由制造商封裝的唯一密鑰。安全模塊能夠證明它擁有這樣一個密鑰,而不必泄漏密鑰。Cloudflare 要求您提供證據(jù),并檢查您的制造商是否合法。

06

技術(shù)說明

仔細(xì)說來,這樣的驗證涉及公鑰加密和數(shù)字證書。

公鑰加密提供一種生成防偽數(shù)字簽名的方法。用戶生成可以對消息進行簽名的簽名密鑰,以及可被任何人用來驗證消息是否真實的驗證密鑰。這類似于圖章戒指 ,其中戒指印記是簽名,而戒指本身是簽名密鑰。

簽名方案被廣泛用于證明真實性?,F(xiàn)在,您的瀏覽器驗證由持有與“blog.cloudflare.com”相關(guān)聯(lián)的簽名密鑰的某人所做的簽名,以此驗證聲稱是“blog.cloudflare.com”的服務(wù)器的合法性。為了顯示驗證密鑰是合法的,服務(wù)器提供一個證書,該證書將驗證密鑰鏈接到“blog.cloudflare.com”,其本身由另一個證書中的另一個驗證密鑰簽名。這個鏈一直延伸到來自您的瀏覽器中內(nèi)置的證書頒發(fā)機構(gòu)的根證書。

我們再舉一個例子。愛麗絲的筆記本電腦上嵌入了一個安全模塊。這個模塊包含一個簽名密鑰,sk_a。愛麗絲說她昨天給鮑勃發(fā)了一封情書。但是,鮑勃表示懷疑。盡管信中寫著“嗨,鮑勃,我是愛麗絲”,但鮑勃還是想確保這封信來自愛麗絲。為此,鮑勃請愛麗絲針對消息“music-laboratory-ground”提供她的簽名。由于這條消息是由鮑勃選擇,只要愛麗絲能夠提供與其驗證密鑰(pk_a)關(guān)聯(lián)的簽名,那么鮑勃就會相信這封情書來自愛麗絲。愛麗絲提供了簽名,sk_a(“musical-laboratory-ground”)。鮑勃確認(rèn) sk_a(“musical-laboratory-ground”) 與 pk_a 關(guān)聯(lián)。他現(xiàn)在可以安全地進行他們的秘密交往了。

回到之前的 Cryptographic Attestation of Personhood,您現(xiàn)在知道硬件密鑰嵌入了簽名密鑰。但是,Cloudflare 不知道互聯(lián)網(wǎng)上任何用戶的簽名密鑰,也無法得知這一信息。為了緩解這一問題,Cloudflare 要求您提供另一種證明。當(dāng)被詢問您是不是人類時,我們要求您證明自己掌控了由受信任制造商簽名的公鑰。在配有安全模塊的設(shè)備出貨時,制造商會使用數(shù)字證書對相關(guān)的認(rèn)證公鑰簽名。

數(shù)字證書通常包含公鑰、目標(biāo)組織信息、有效期、許可用途,以及來自證書頒發(fā)機構(gòu)的簽名,以確保證書的合法性。它們允許將元數(shù)據(jù)與公鑰關(guān)聯(lián),因此會提供有關(guān)簽名頒發(fā)者的信息。

當(dāng) Cloudflare 要求您提供簽名時,它會驗證您的公鑰是否已由制造商的公鑰簽名。由于制造商具有多個級別的證書,您的設(shè)備提供 Cloudflare 能夠驗證的一連串證書。證書鏈中的每個鏈接均由其上級簽名,并對其下級簽名。Cloudflare 信任制造商的根證書。由于其數(shù)量有限,因此我們有能力手動驗證它們。

07

隱私至上

設(shè)計一個質(zhì)詢要求用戶證明自己掌控來自某個制造商的密鑰,這帶來了隱私和安全方面的挑戰(zhàn)。

下表歸納了 Cryptographic Attestation of Personhood 的隱私屬性。

08

無需收集生物特征的認(rèn)證

項目宗旨:我們想要知道您是人,但不關(guān)心您是具體哪一個人。

令人高興的是,WebAuthn API 在很大程度上幫我們解決了這個麻煩。這并不是我們想要的,但 WebAuthn API 會阻止收集生物特征,例如指紋。當(dāng)您的設(shè)備要求進行生物識別身份驗證時,例如通過指紋傳感器,一切都在本地進行。驗證旨在解鎖設(shè)備的安全模塊,該模塊提供與您的平臺關(guān)聯(lián)的簽名。

對于我們的質(zhì)詢,我們利用了 WebAuthn 注冊過程。它被設(shè)計為執(zhí)行多種身份驗證,我們沒有用到這些。所以,我們將相同的常量值分配給必需的用戶名字段。它可以防止用戶被去匿名化。

09

沒有隱蔽工作

CAPTCHA 的一個常見用途是標(biāo)記 AI 難以識別的數(shù)據(jù)集。這可以是圖書、門牌號碼或消防栓。盡管這對科學(xué)很有用,但也被公司用作一種手段,在用戶不知情的前提下利用人類識別能力獲取商業(yè)利益。

使用 Cryptographic Attestation of Personhood 時,這樣的事不會發(fā)生。由于不再受到 CAPTCHA 質(zhì)詢模式的桎梏,我們在設(shè)計用戶流程方面具有更大的靈活性。

10

Cloudflare 正在做什么工作來進一步推動隱私保護

雖然 Cryptographic Attestation of Personhood 在隱私保護方面有諸多好處,但其并不完美。Cloudflare 仍然需要知道您的制造商才會授予您權(quán)限。由于 WebAuthn 可與任何證書搭配,我們需要確保 Cloudflare 從未經(jīng)篡改的硬件密鑰接收證書。我們希望不必獲得這一信息,從而進一步保護您的隱私。

過去,我們一直致力于制定隱私標(biāo)準(zhǔn),例如主導(dǎo)了 Privacy Pass 相關(guān)的工作。Privacy Pass 允許您一次解決質(zhì)詢并提供已通過質(zhì)詢的證明;也就是說,您不需要解決多個 CAPTCHA。這極大改善了 VPN 用戶的用戶體驗,這些用戶比其他互聯(lián)網(wǎng)用戶面臨更多的質(zhì)詢。

對于 Cryptographic Attestation of Personhood,我們深入挖掘了加密中的一個新興領(lǐng)域,稱為零知識證明(ZK 證明)。它使我們的用戶能夠證明其制造商是 Cloudflare 信任制造商中的一員。使用 ZK 證明時,來自單個制造商的多個設(shè)備之間無法彼此區(qū)分,也不能與其他制造商的設(shè)備區(qū)別開來。這一新系統(tǒng)需要更多技術(shù)細(xì)節(jié),值得專門寫一篇博客文章。敬請關(guān)注。

11

追求永無止境

設(shè)計旨在保護數(shù)百萬互聯(lián)網(wǎng)資產(chǎn)的質(zhì)詢絕非易事。在當(dāng)前環(huán)境中,我們認(rèn)為與傳統(tǒng)的 CAPTCHA 質(zhì)詢相比,Cryptographic Attestation of Personhood 可提供強大的安全性和可用性保障。在初步的用戶研調(diào)中,用戶表示觸碰硬件按鍵比點擊圖片更受他們喜愛。雖說如此,我們知道這是新系統(tǒng),還有提升的空間。

這項實驗將面向英語地區(qū)限量提供。這樣,我們能夠在用戶群體上實現(xiàn)多樣性,并在不同的位置測試這個流程。不過,我們意識到覆蓋范圍并不足夠,因此打算開展進一步測試。如果您有特定的需求,歡迎與我們聯(lián)絡(luò)。

我們密切關(guān)注的另一個問題是安全性。這種質(zhì)詢的安全性取決于可信制造商提供的底層硬件。我們相信它們是安全的。如果發(fā)生任何泄漏,我們將能夠在不同層次快速取消對制造商公鑰的授權(quán)。

我們還必須考慮面對自動按鍵系統(tǒng)的可能性。能夠按動電容式觸控傳感器的飲水鳥可以通過 Cryptographic Attestation of Personhood 的驗證。在最佳情況下,鳥類解題率與硬件生成證明所需的時間相匹配。對于我們當(dāng)前的受信任制造商集合,其慢于專業(yè) CAPTCHA 解題服務(wù)的速度,同時也一定能讓合法用戶通過認(rèn)證。此外,現(xiàn)有的 Cloudflare 緩解措施將保留不變,從而有效保護互聯(lián)網(wǎng)資產(chǎn)。

12

結(jié)語

對于 Cloudflare 來說,一切歸于幫助建設(shè)更加美好的互聯(lián)網(wǎng)這個使命上?;ヂ?lián)網(wǎng)上每天都要浪費 500 年時間,自世紀(jì)之交以來沒有人重新審視過 CAPTCHA 的基本假設(shè),這對我們來說是荒謬的。

對于為發(fā)布 Cryptographic Attestation of Personhood 而做的工作,我們倍感自豪。在設(shè)計這一質(zhì)詢時,我們采用了以用戶為先的方法,確保用戶在訪問 Cloudflare 全球網(wǎng)絡(luò)背后的互聯(lián)網(wǎng)資產(chǎn)時享有高水準(zhǔn)的安全性。我們正在借助 Cryptographic Attestation of Personhood 加強我們現(xiàn)有的人類質(zhì)詢。隨著時間推移,您應(yīng)該會更加頻繁地看到它。目前,您可以訪問 cloudflarechallenge.com 進行試用。

我們想要感謝 Cloudflare 其他團隊的付出。這項工作是由研究團隊主導(dǎo)的,但我們也非常榮幸獲得了公司全體成員的支持。如果您想幫助我們建設(shè)更加美好的互聯(lián)網(wǎng),歡迎您加入我們。

最后:我們很高興能夠迎來互聯(lián)網(wǎng)上消防栓的消亡。沒人再需要它了。

立即登錄,閱讀全文
版權(quán)說明:
本文內(nèi)容來自于Cloudflare,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權(quán),請聯(lián)系管理員(zzx@kchuhai.com)刪除!
優(yōu)質(zhì)服務(wù)商推薦
更多