Aller au contenu

R12 — AES-GCM, authentification et unicité des nonces

Statut : NON EXÉCUTÉ sur matériel — T2B1 et T3B1.

Appliquer le registre commun et conserver une ligne par modèle/OS requis. Les sorties des tests hôte/émulateur restent des preuves séparées.

Préconditions

R01 réussi ; clé AES de test créée localement, politique Every operation ; PCSC réel et client complet de l’annexe AES-GCM ; alimentation commutable.

Étapes

  1. Suivre SELECT AID, MSE et PSO du profil ../protocols/aes-gcm-iso7816-v1.md ; chiffrer/déchiffrer des données connues avec AAD vide et non vide. Comparer résultat authentifié au texte initial ; vérifier le format nonce12/tag16 et les limites3584/256.
  2. Corrompre séparément tag, nonce, ciphertext et AAD, puis déchiffrer : aucune portion de plaintext ne doit sortir avant une erreur. Essayer clé désactivée, mauvais kid et tailles supérieures ; vérifier les SW publiés.
  3. Accepter/refuser/laisser expirer les confirmations ; basculer une clé vers Once per session, constater la première confirmation puis l’autorisation de session, et sa perte après verrouillage/réénumération.
  4. Pour la même clé, collecter au moins10000 nonces d’opérations abouties en politique session (environnement de test contrôlé). Couper VBUS à30 instants répartis autour des réservations de compteur ; à chaque reprise relancer puis comparer tous les nonces. Aucun doublon toléré.
  5. Exporter/restaurer une ancienne sauvegarde sur le même appareil et poursuivre ; le compteur ne doit pas reculer. Tester une restauration croisée et documenter la limitation probabiliste des préfixes inter-appareils du profil, sans promettre une garantie globale absolue.
  6. Lancer les vecteurs uv run pytest -q tests/host/card/aes comme preuve complémentaire, séparée du parcours physique.

Résultat attendu

Allers-retours exacts, tag/AAD systématiquement vérifiés avant sortie, nonces distincts pour une même clé dans la campagne et réservations persistantes après coupure, autorisations conformes à la politique.

Preuves à conserver

Client/script et paramètres réels, hash des vecteurs, réponses/SW, ensemble de nonces et contrôle de doublons, traces de coupures et compteur/restauration ; aucune clé AES publiée.