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