安全的開發人員選項

Android 相容性定義說明文件所述, 原始設備製造商 (OEM) 必須提供引入應用程式開發機制。不過,提供類似行動裝置 因此,如果車中的開發人員選擇比較好,就會讓車輛更容易遭受攻擊。開發人員存取權 選項現在可由原始設備製造商 (OEM) 透過經過驗證的密碼編譯權杖機制管制。 具體來說,原始設備製造商 (OEM) 可以:

  • 請在首次啟動前設定所需的預設限制。
  • 透過加密權杖 (如有需要) 安全地授權開發人員。
  • 在開發人員經過驗證及授權後套用限制變更。

本文說明包含偵錯限制的參考實作方式 和遠端權杖核發機構端點

術語

除了術語以外, 本文中使用了這些術語:

  • JSON Web Signature (JWS),依據 RFC 7515 定義
  • 美國國家標準與技術研究院 (NIST)

設計

原始設備製造商 (OEM) 可以使用 JSON Web Signature (JWS) 權杖 (RFC7515) 為開發人員授權。在 存取權杖,但存取權杖是由原始設備製造商 (OEM) 核發,並會受到限制使用 控制器應用程式。存取權杖可以用來抵禦重播攻擊和偽造權杖。

圖 1. 設計

整合與設定

原始設備製造商 (OEM) 必須在首次啟動時指定所需的預設限制。方法是使用 多個靜態資源重疊,以覆寫 Android 開放原始碼計畫架構中的預設值。

使用 將 config_defaultFirstUserRestrictions 字串加到 frameworks/base/core/res/res/values/config.xml,例如:

<!-- User restrictions set when the first user is created.
         Note: Also update appropriate overlay files. -->
    <string-array translatable="false" name="config_defaultFirstUserRestrictions">
        <item>no_debugging_features</item>
    </string-array>

你可以在以下位置設定駕駛座、乘客和訪客的預設限制: frameworks/base/core/res/res/xml/config_user_types.xml。原始設備製造商 (OEM) 可疊加| 這些字串可分別設定各類使用者的預設限制,例如:

<user-types>
    <full-type name="android.os.usertype.full.SECONDARY" >
        <default-restrictions no_debugging_features="true"/>
    </full-type>
    <full-type name="android.os.usertype.full.GUEST" >
        <default-restrictions no_debugging_features="true"/>
    </full-type>
</user-types>

Android 開放原始碼計畫的下列位置提供參考資源:

packages/apps/Car/DebuggingRestrictionController

測試

Google 建議原始設備製造商 (OEM) 先從參考實作著手,再據此建構。

  1. 在疊加層檔案中設定所需的限制後,請編譯 AAOS 和 來驗證定義的流程使用參考應用程式和啟用本機 JWS 的服務 驗證您的存取權設定。
  2. 設定系統以使用啟用 JWS 的雲端服務 (選用)。驗證你的身分 在您的後端服務觀察所需的流程。