奧推網

選單
科技

iOS 16內建“機器人”能繞過所有驗證碼?事實沒有那麼簡單

本文來自微信公眾號:

APPSO (ID:appsolution)

,作者:鄭智文,頭圖來自:unsplash

就在前幾天

(6 月 20 日)

,許多媒體報道 XDA 論壇發現蘋果釋出的 iOS 16 系統中包含“驗證碼機器人”的新聞。

升級到 iOS 16 開發者預覽版後,你可以在“設定”app 中的 Apple ID 部分找到“密碼與安全性”,拉到最底下,就有“自動驗證”的開關。

如果你瞭解驗證碼

(即 CAPTCHA)

的全稱與作用,那麼就會對這個開關有許多疑問:既然驗證碼是“防止機器人”的,那這個功能豈不是要讓驗證碼形同虛設?

事實當然不是如此。

這個功能不能被稱為“驗證碼機器人”,它利用的是一種全新、開放的驗證機制——私密證明令牌

(Private Attestation Token,PAT)

一、驗證碼有什麼問題?

從電子郵件和 BBS 社群誕生以來,垃圾資訊氾濫一直都是網際網路上的“老大難”問題。而解決這個問題最有效的方法

(幾乎也是目前唯一方法)

,就是一種稱作

CAPTCHA

的機制,即我們常說的“驗證碼”的一種

(另一種用來進行實名制和資訊驗證的驗證碼,不在本文討論範圍內)

CAPTCHA 又稱被作“反向圖靈測試”。顧名思義,

它透過一些對機器很困難、但對人類很簡單的問題,來幫助網站驗證使用者是否是真人

這類驗證碼誕生差不多 20 年左右,基本原理幾乎沒有怎麼變化,變的只是讓使用者判斷歪歪扭扭的色塊,變成在一堆圖片中找出對應的物體。只不過只要是有過一定網路閱歷的人,一定有過在十萬火急的時候被“找出噴氣式飛機的圖片”的要求搞得特別想砸電腦手機的時刻,體驗算不上良好。

▲看見是不是心肺停止了?網頁截圖來自 hCaptcha 官網

目前,也有另一種區分人和機器的方法,即透過讀取儘可能多的使用者訪問痕跡,用 AI 模型判斷使用者的行為是否是一個正常人。Google 推出的 noCAPTCHA 服務就是使用這種方式來判斷使用者的真實性。

這種驗證方式確實可以幫助使用者儘可能繞過明顯的驗證過程,但同時也犧牲了隱私。

畢竟,為了證明“我是人”,我需要把我的上網痕跡全部都告訴 Google 或者其他大公司,想想都有點不對勁。

▲“點一下”驗證的背後,就是隱私的讓渡。 圖片來自 Google reCAPTCHA 官網

二、PAT 是什麼?它如何驗證使用者不是自動程式?

PAT 並不指代某一種技術或某一種服務,而是

一個驗證使用者的協議

。它需要使用者、硬體裝置廠商和驗證碼服務提供商三方共同參與,才能完成驗證過程。

整個協議流程是這樣的:

網站接入支援 PAT 的驗證碼服務;

使用者向網站發起請求,網站要求使用者前往驗證碼服務進行驗證;

驗證碼服務向硬體製造商發起驗證請求;

(幫我看看這臺機器有沒有被破解?)

硬體製造商檢查使用者所持硬體編號等,並透過類似 DeviceCheck 或 SafetyNet 等技術框架檢查使用者裝置的完整性;

確認使用者硬體未被破解

(越獄或 root)

之後,硬體製造商要求驗證碼服務向用戶發放證明;

使用者將證明隨後續請求傳送給網站,網站將證明拿給驗證碼服務進行驗證;

驗證透過,請求正常處理。

▲完整的 PAT 驗證流程示意圖。 圖片來自 Cloudflare 官方部落格文章

看起來很複雜,但整個流程的重點有兩個:

一是整個驗證流程沒有任何需要人工介入的驗證過程

(輸入字元或點選圖片等)

二是證明“我是人”的方式也從答題、隱私讓渡,變成更合理的檢查裝置是否被破解等資訊。

因為 PAT 驗證的重點,從“你是不是人”改為“你的裝置是否被篡改而有濫用嫌疑”,自然也不需要使用者輸入複雜的驗證碼,也不再需要持續追蹤使用者的行為進行判斷。

三、是不是真的可以和“驗證碼”說拜拜了?

還不一定——至少在未來幾年裡,我們還是得和驗證碼“鬥智鬥勇”。

首先,技術推廣需要一定時間。即使 PAT 是由 IETF、蘋果、Google 和 Cloudflare 這樣的大機構共同起草、推出的驗證協議與標準,但目前只有 iOS 16 和 Cloudflare

(防止網站被攻擊的雲服務商)

支援這個驗證協議

(注:開發者和線上服務目前可以在 Cloudflare 和 Fastly 接入測試版 PAT 驗證)

無論是終端使用者的軟硬體更新,還是驗證碼服務與各大網站與服務跟進,都需要一定的時間。

其次,由於中國大陸 Android 系統生態的特殊情況,Android 機型並不能直接透過 Google Play 服務中內嵌的 SafetyNet 框架來完成驗證。也就是說,每家 Android 系統廠商都要單獨接入 PAT 協議,才能為自家產品新增 PAT 支援。

另外,在桌面裝置領域,還有許多 DIY 組裝機的存在。由於此類裝置無法找到可供擔保的 PAT 驗證人

(裝置製造商)

,因此也很有可能無法真正享受到 PAT 帶來的便利。

不過,對於大多數人而言,PAT 確實是一種能夠兼顧體驗和隱私的驗證協議。我們期待國內的 Android 廠商和線上服務可以儘快跟進協議,讓普通人也可以享受更好的網際網路體驗。

本文來自微信公眾號:

APPSO (ID:appsolution)

,作者:鄭智文