2017-10-10 3 views
1

Je suis relativement nouveau dans le développement Android et n'ai jamais utilisé le Keystore Android auparavant. Mais je connais les concepts (théoriques).Android Dev: exécuter du code personnalisé dans le Trusted Execution Environment (TEE), étendant le Keystore

Mon problème est que je dois générer et stocker une clé secrète et plus tard utiliser cette clé pour exécuter des primitives cryptographiques sur certaines données. Idéalement, la clé est protégée contre l'extraction de la meilleure façon possible, e.i. La génération de clé et toutes les opérations cryptographiques ne s'exécutent qu'à l'intérieur d'une enclave sécurisée, de sorte que seule la charge utile quitte la zone de confiance. Pour autant que je sache, cela se produit automatiquement, si l'API Keystore "correcte" est utilisée, le périphérique matériel le prend en charge et l'utilisation de la clé est signalée de façon appropriée. Cependant, les supported algoritms sont limités. Puis-je écrire mon propre code personnalisé exécuté à l'intérieur de la zone Trust? Si oui, pourriez-vous m'indiquer une bonne ressource ou un bon tutoriel?

Contexte: je dois faire des choses modernes de fantaisie sur les courbes elliptiques (courbe Barreto-Naehrig) avec structure optimale Préserver les signatures par Abe et SXDH-base Groth-Sahai-Proofs. Évidemment, cela n'est pas supporté par l'API Keystore prête à l'emploi. Pour le moment, le code est implémenté en tant que code C++ et compilé en tant que code Android natif. La mise en œuvre est correcte sur le plan sémantique mais ne prend pas particulièrement en compte le stockage de clés sécurisées au niveau de la mise en œuvre, car il s'agit d'un développement de prototype académique. Au moment où la clé est juste lue/écrite dans/à partir d'un fichier simple et toutes les opérations sont exécutées dans le même processus user-land (principal).

Répondre

1

Le TEE est, dans la plupart des cas, uniquement disponible pour l'OEM et il n'y a pas de SDK pour accéder au TEE. L'exception à ceci est Kinibi de Trustonic qui fournissent un SDK à leur TEE. Pour accéder à cela, vous devez avoir le SDK pour développer l'application Trusted et une forme de conseil de développement (HIKEY) pour le tester. Pour déployer dans un combiné, vous devez avoir une forme d'accord avec Trustonic qui permettrait aux utilisateurs de télécharger et d'installer l'application en utilisant un serveur OTA pour gérer l'échange de clés.