跳至主要內容
SHAO MEDIA

一個安全狀態先被寫成了欄位:AndroidX 的 Security State,是被設計出來的介面

從 AndroidX 新增的 Security State 可程式化安全狀態查詢 API 看,一組系統安全資訊如何被設計成開發者可讀的介面。

科技 設計評論 約 6 分鐘
本章章節
  1. 散落的資訊,先被收攏成一份表格
  2. 命名與結構,是這個介面的圓角
  3. 當安全變成可以被讀取的資料
  4. 收攏是一種設計判斷

先從一個很小的東西看起:一行查詢。AndroidX 最近新增了 Security State,讓應用程式可以透過可程式化的方式,向系統詢問裝置目前的安全狀態。開發者不再需要自己拼湊各種零散的系統服務呼叫,而是拿到一個結構化的答案:螢幕鎖定了沒有、生物辨識可不可用、裝置加密處於哪個層級。這些資訊過去都存在,只是散落在不同的系統 API、不同的回呼、不同的文件段落裡。現在它們被收攏成一組可以一次讀完的欄位。

這件事表面上屬於工程,實際上是一次介面設計。對開發者而言,API 的文件、命名與回傳結構,就是一個產品的介面。AndroidX 這次的動作,值得從設計的角度讀一次。

散落的資訊,先被收攏成一份表格

在 Security State 出現之前,一個 Android 開發者若想知道「這臺裝置現在安全到什麼程度」,得做一件很瑣碎的事:分別去問 KeyguardManager 螢幕鎖的狀態、去問 BiometricManager 生物辨識的能力等級、去查儲存加密的旗標。每一個來源有自己的命名習慣、自己的回傳型別、自己的版本差異。這些資訊拼起來的過程,很像讀一份沒有排版過的說明書:內容都在,但讀的人要自己做目錄。

Security State 做的事,是替這份說明書排了版。它把「安全狀態」定義成一個可以被一次查詢、一次讀取的整體,而不是一堆需要開發者自行組裝的碎片。這種收攏本身就是設計判斷:Google 的工程團隊決定了哪些資訊屬於「安全狀態」這個概念,哪些不屬於。概念邊界畫在哪裡,決定了這個介面未來會被怎麼使用。

與既有的系統 UI 相比,差異更清楚。Android 系統設定裡一直有安全狀態的頁面,那是給一般使用者看的:大標題、開關、狀態文字。而 Security State 是同一份資訊的另一種呈現形式,對象換成了程式。同一份事實,兩種讀者,兩套排版。可程式化的查詢介面把安全資訊從「頁面」變成了「資料」,讓銀行、企業管理、支付類應用可以在自己的流程裡即時讀取,而不是引導使用者跳去設定頁面用肉眼確認。

這個思路與蘋果在安全公告上的做法有相似的底層邏輯。我們先前分析過蘋果安全公告的排版設計,一份修復清單如何透過表格與貢獻者名單,被設計成可被快速掃讀的信任介面。兩家公司的場景不同,但都在做同一件事:把安全從抽象的保證,變成具體可讀的欄位。

命名與結構,是這個介面的圓角

看一個 API 的設計,命名是最誠實的地方。Security State 這個名字本身沒有花俏的形容詞,state 是中性的狀態描述,security 限定了範圍。它沒有叫作 Trust Score 或 Safety Level,也就是說,這個介面沒有替開發者預先做出價值判斷。它給的是狀態,評分與決策留給應用程式自己。

這個克制值得注意。安全類的介面很容易滑向兩種極端:一種是把所有責任推給使用者,彈出一個艱澀的警告對話框;另一種是替所有人做決定,直接擋掉功能。Security State 選了中間的位置:系統負責誠實地陳述,應用負責根據陳述行動。這與近年作業系統安全設計的大方向一致,先讓資訊透明可查,再談策略。先前在《人工智慧安全治理框架3.0》的制度介面觀察裡也看過類似的路徑:治理文件把安全拆成分級與流程,讓不同的使用者在同一套結構裡找到自己的位置。

可程式化這四個字是重點。它意味著安全狀態從靜態的設定頁面,變成了動態的資料流。應用可以在使用者嘗試高風險操作的那一刻重新查詢,而不是仰賴安裝時的一次性檢查。狀態會變:使用者今天設了指紋,明天刪掉了;今天是安全的,明天不是。一個會被反覆查詢的介面,對回傳結構的穩定性與版本相容要求就更高,這也是為什麼它被放進 AndroidX 這個相容層,而不是直接綁死在某個系統版本上。AndroidX 的角色向來是抹平碎片化的系統差異,讓同一行查詢代碼在舊裝置上也有一致的行為。安全資訊放進這一層,等於承認了一件事:安全狀態需要的是跨版本的穩定敘事,而非每個版本各自表述。

當安全變成可以被讀取的資料

把鏡頭拉遠一點看趨勢。行動裝置的安全設計,過去十年的主軸是「防護」:指紋、臉孔、晶片級加密,都是把牆築高。而最近幾年,重心逐漸移向「可讀性」:系統開始把自身的安全狀態打開,讓應用、讓企業、讓使用者能夠查詢與驗證。Android 的硬體安全模組 attestation、iOS 的裝置完整性檢查,都是同一個方向的產物。Security State 是這條線上更貼近日常開發的一步,它把原本屬於系統內部的知識,包裝成開發者三十秒就能讀懂的介面。

對開發者的實際影響也具體。金融與企業應用過去最頭痛的情境之一,是無法可靠地知道使用者裝置的鎖定與加密狀態,只能用間接手段推測,或者乾脆要求使用者手動確認。一個穩定的查詢介面,讓這類應用可以把裝置狀態檢查放進自己的流程設計裡,風險提示可以更精準,不必要的攔截可以減少。介面設計的好壞,最終會沉澱到終端使用者的體驗:被反覆彈窗的使用者,往往就是被粗糙的安全查詢介面折磨出來的。

收攏是一種設計判斷

回到開頭那一行查詢。Security State 沒有新的演算法,沒有新的硬體,它做的只是把已經存在的資訊重新組織了一次。但設計史裡大多數好的作品都是這樣:價值不在於發明了新的東西,在於替原本散落的東西找到了正確的秩序。一份安全狀態被寫成幾個欄位,開發者讀到的卻是系統的一種態度:我願意把我的狀態誠實地攤開,讓你決定怎麼用。這種攤開,比再多一句「我們重視您的安全」都更接近信任的本體。

主題 介面與互動設計

標籤 #androidx設計、#securitystateapi、#介面與互動設計

相關報導