Geliştirici seçeneklerini güvence altına alma

Android Uyumluluk Tanımı Belgesi uyarınca, OEM'lerin uygulama geliştirmeyi mümkün kılacak bir yol sağlaması gerekir. Ancak arabalarda mobil benzeri geliştirici seçenekleri sunmak, bu arabaları saldırılara karşı savunmasız bırakıyor. Geliştirici seçeneklerine erişim artık kimliği doğrulanmış bir kriptografik belirteç mekanizması kullanan bir OEM tarafından kontrol edilebiliyor. Özellikle bir OEM şunları yapabilir:

  • İlk önyüklemeden önce istediğiniz varsayılan kısıtlamaları ayarlayın.
  • Tercih edilirse geliştiricilere kripto belirteçleri ile güvenli bir şekilde yetki verin.
  • Geliştiricinin kimliği doğrulandıktan ve yetkilendirildikten sonra kısıtlama değişikliklerini uygulayın.

Bu makalede, hata ayıklama kısıtlama denetleyicisi uygulaması ve uzak belirteç veren uç noktasından oluşan bir referans uygulaması açıklanmaktadır.

Terminoloji

Bu makalede Terminolojiye ek olarak şu terimler de kullanılmıştır:

  • RFC 7515'te tanımlanan JSON Web İmzası (JWS)
  • Ulusal Standartlar ve Teknoloji Enstitüsü (NIST)

Tasarım

OEM'ler, geliştiricilere JSON Web İmzası (JWS) belirteçleri (RFC7515) ile yetki verebilir. Referans uygulamasında erişim belirteçleri OEM'ler tarafından verilir ve kısıtlama denetleyici uygulaması tarafından tüketilir. Erişim belirteçleri, tekrar saldırılarına ve sahte belirteçlere direnecek şekilde tasarlanmıştır.

Şekil 1. Tasarım

Entegrasyon ve konfigürasyon

OEM'lerin ilk önyüklemede istenen varsayılan kısıtlamaları belirtmesi gerekir. Bu, AOSP çerçevesindeki varsayılanları geçersiz kılmak için çeşitli statik kaynak katmanlarıyla yapılır.

Başsız sistem kullanıcısı için varsayılan kısıtlamalar frameworks/base/core/res/res/values/config.xml dosyasındaki config_defaultFirstUserRestrictions dizesiyle yapılandırılabilir, örneğin:

<!-- 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>

Sürücüler, yolcular ve konuklar için varsayılan kısıtlamalar frameworks/base/core/res/res/xml/config_user_types.xml dosyasında yapılandırılabilir. Bir OEM üst üste bindirilebilir| sırasıyla her kullanıcı türü için varsayılan kısıtlamaları ayarlamak için bu dizeler, örneğin:

<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>

AOSP'de aşağıdaki konumda bir referans uygulaması sağlanmaktadır:

packages/apps/Car/DebuggingRestrictionController

Test yapmak

Google, OEM'lerin referans uygulamasıyla başlamasını ve oradan yola çıkmasını önerir.

  1. Yer paylaşımı dosyalarında istenen kısıtlamaları yapılandırdıktan sonra AAOS'u derleyin ve tanımlanan akışları doğrulayın. Erişim ayarlarınızı doğrulamak için referans uygulamasını ve yerel JWS özellikli hizmeti kullanın.
  2. Sistemi, JWS etkin bulut hizmetinizi (isteğe bağlı) kullanacak şekilde yapılandırın. Arka uç hizmetinizde istenen akışı gözlemlediğinizi doğrulayın.