本文來自微信公眾號:
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)
,作者:鄭智文