O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

Protegendo as opções do desenvolvedor

Per a definição de documento de compatibilidade Android , OEMs deve fornecer uma maneira para permitir o desenvolvimento de aplicações. No entanto, fornecer opções de desenvolvedor semelhantes a dispositivos móveis dentro dos carros deixa esses carros vulneráveis ​​a ataques. O acesso às opções do desenvolvedor agora pode ser controlado por um OEM usando um mecanismo de token criptográfico autenticado. Especificamente, um OEM pode:

  • Defina as restrições padrão desejadas antes da primeira inicialização.
  • Autorize os desenvolvedores com segurança, com tokens criptográficos, se preferir.
  • Aplique as alterações de restrição assim que um desenvolvedor for autenticado e autorizado.

Este artigo descreve uma implementação de referência que consiste em um aplicativo de controlador de restrição de depuração e um terminal de emissor de token remoto.

Terminologia

Além de Terminologia , estes termos são usados neste artigo:

  • JSON Web Signature (JWS), definido na RFC 7515
  • Instituto Nacional de Padrões e Tecnologia (NIST)

Projeto

Os OEMs podem autorizar os desenvolvedores com tokens JSON Web Signature (JWS) (RFC7515). Na implementação de referência, os tokens de acesso são emitidos por OEMs e consumidos pelo aplicativo controlador de restrição. Os tokens de acesso são projetados para resistir a ataques de repetição e tokens forjados.

Figura 1. Projeto

Integração e Configuração

Os OEMs devem especificar as restrições padrão desejadas na primeira inicialização. Isso é feito com várias sobreposições de recursos estáticos para substituir os padrões na estrutura AOSP.

As restrições padrão para o usuário do sistema sem cabeça pode ser configred com o config_defaultFirstUserRestrictions corda em frameworks/base/core/res/res/values/config.xml , por exemplo:

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

As restrições padrão para os motoristas, passageiros e clientes podem ser configurados em frameworks/base/core/res/res/xml/config_user_types.xml . Um OEM pode sobrepor | essas strings para definir as restrições padrão em cada tipo de usuário, respectivamente, por exemplo:

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

Uma implementação de referência é fornecida no seguinte local no AOSP:

packages/apps/Car/DebuggingRestrictionController

Testando

O Google recomenda que os OEMs comecem com a implementação de referência e desenvolvam a partir daí.

  1. Após configurar as restrições desejadas nos arquivos de sobreposição, compile o AAOS e valide os fluxos definidos. Use o aplicativo de referência e o serviço habilitado para JWS local para verificar suas configurações de acesso.
  2. Configure o sistema para usar seu serviço de nuvem habilitado para JWS (opcional). Verifique se você está observando o fluxo desejado em seu serviço de back-end.