鴻蒙安全控制元件簡介

龙儿筝發表於2024-11-21

安全控制元件是系統提供的一組系統實現的ArkUI元件,應用整合這類元件就可以實現在使用者點選後自動授權,而無需彈窗授權。它們可以作為一種“特殊的按鈕”融入應用頁面,實現使用者點選即許可的設計思路。

相較於動態申請許可權的方式,安全控制元件可基於場景化授權,簡化開發者和使用者的操作,主要優點有:

  1. 使用者可掌握授權時機,授權範圍最小化。
  2. 授權場景可匹配使用者真實意圖。
  3. 減少彈窗打擾。
  4. 開發者不必嚮應用市場申請許可權,簡化操作。

安全控制元件堅持僅採集實現業務功能所必須的個人資料,以服務於使用者的需求,幫助開發透明、可選、可控的隱私合規應用。

安全控制元件列表

目前系統提供三類安全控制元件

貼上控制元件(PasteButton)

該控制元件對應剪貼簿讀取特權。應用整合貼上控制元件後,使用者點選該控制元件,應用讀取剪貼簿資料時不會彈窗提示。

建議使用場景:貼上控制元件可以用於任何應用需要讀取剪貼簿的場景,避免彈窗提示對使用者造成干擾。

儲存控制元件(SaveButton)

該控制元件對應媒體庫寫入特權。應用整合儲存控制元件後,使用者點選該控制元件,應用會獲取10秒內訪問媒體庫特權介面的授權。

建議使用場景:儲存控制元件可以用於任何應用需要儲存檔案到媒體庫的場景(儲存圖片、儲存影片等)。與Picker需要拉起系統應用再由使用者選擇具體路徑儲存的方式不同,儲存控制元件將直接儲存到指定媒體庫路徑,操作更快捷。

位置控制元件(LocationButton)

該控制元件對應精準定位特權。應用整合位置控制元件後,使用者點選該控制元件,無論應用是否申請過或者被授予精準定位許可權,都會在本次前臺期間獲得精準定位的授權,可以呼叫位置服務獲取精準定位。

建議使用場景:應用不是強位置關聯應用(如導航、運動健康等),僅在部分前臺場景需要使用位置資訊(如定位城市、打卡、分享位置等)。如果需要長時間使用或是在後臺使用位置資訊,建議申請位置許可權。

運作機制

整體方案由安全控制元件UI元件、安全控制元件管理服務、安全控制元件增強組成:

  • UI元件:實現了固定文字圖示的樣式,便於使用者識別,同時提供了相對豐富的定製化能力,便於開發者定製。
  • 控制元件管理服務:提供控制元件註冊管理能力、控制元件臨時授權機制、管理授權生效週期,確保應用後臺、鎖屏下無法註冊使用安全控制元件。
  • 安全增強:實現了地址隨機化、挑戰值檢查、回撥UI框架複核控制元件資訊、呼叫者地址檢查、元件防覆蓋、真實點選事件校驗等機制,防止應用開發者透過混淆、隱藏、篡改、仿冒等方式濫用授權機制,洩露使用者隱私。

開發者呼叫介面時,運作流程如圖所示。
img1

約束與限制

安全控制元件因其自動授權的特性,為了保障使用者的隱私不被惡意應用獲取,針對安全控制元件作了很多的限制。應用開發者需保證安全控制元件在應用介面上清晰可見、使用者能明確識別,防止因覆蓋、混淆等因素導致授權失敗。

當因控制元件樣式不合法導致授權失敗的情況發生時,請開發者檢查裝置錯誤日誌,過濾關鍵字"SecurityComponentCheckFail"可以獲取具體原因。

相關文章