Repository navigation
feat(pairing) : WP-D.2, le protocole par BLE dans le cœur - #253
Merged
Merged
Conversation
Le chemin par BLE de la bible §6.6, sans radio ni API : format des messages, clés (HKDF-SHA-256), chiffrement (AES-256-GCM, nonce compté), 16 étiquettes à chaque défi, demande entre appareils de confiance mutuelle, CPace sans TLS (sid fait des deux nonces, empreintes chiffrées après la confirmation) sur le même PIN que TLS, règle de qui crée le réseau, et clés authentifiées pour la connexion TLS qui suit (BLEAuthenticated). pkg/pake gagne seulement Session.Key (HKDF sur l'ISK, brouillon §4, §10.3). 16 tests, dont le compteur d'essais partagé entre BLE et TLS, le rejeu, le relais, les messages altérés, rien de stable en clair ; FuzzBLEReceive (1,5 million d'exécutions en 60 s, sans défaut). Bible, dossier G4 et plan J6d mis à jour. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Lot WP-D.2 du plan J6d, première partie : le protocole par BLE de la bible §6.6, dans le cœur, sans radio ni API. La partie cryptographique se relit ainsi seule ; l'API (
internal/cabi,pair_blesur TLS, l'écran) suit dans une seconde PR.Ce qu'il y a
pkg/pairing/ble.go, deux côtés :BLEResponder(l'appareil touché, unBLEConnpar connexion GATT) etBLEClient(celui qui touche). La plateforme ne fera que porter les octets.version ‖ type ‖ lv_cat(champs), 512 octets au plus. Une autre version, un champ de taille fausse, de trop ou de moins, une longueur pas sous sa forme la plus courte :refuse.HKDF-SHA-256(K_AB, c_I ‖ c_R, info ‖ fp_I ‖ fp_R); l'étiquette désigne la paire, le déchiffrement authentifie. Un côté qui a oublié l'autre n'a plus la clé (PAIR-09).sid = n_I ‖ n_Ret un CI sans empreinte ; les empreintes passent chiffrées après la confirmation, sousHKDF(ISK). Le mêmePINque TLS : mêmes essais, délais, PIN factice et arrêt.version ‖ type.Creator), contrôle du réseau reçu, etBLEAuthenticated: les empreintes que BLE a authentifiées, acceptées une fois sur TLS dans les 2 minutes (pourpair_ble, à venir).RefusePIN) ; une connexion perdue sans que la plateforme le voie ne garde pas l'écran au-delà de la vie d'un PIN ; 4 Kio lus par connexion ; défi valable 60 s.pkg/pakegagne seulementSession.Key(info, n): HKDF-SHA-256 sur l'ISK, comme le recommande le brouillon (§4, §10.3). C'est la seule modification du code relu par G4, et le dossier le dit.Tests
16 tests dans
pkg/pairing/ble_test.go, un danspkg/pake:FuzzBLEReceive: environ 1,5 million d'exécutions en 60 s, sans défaut.go test ./...passe.Docs
BLE-01àBLE-11(ce qui est dans le cœur, ce qui reste à l'API et aux plateformes).pkg/pake, le tableau des tests BLE.🤖 Generated with Claude Code