security
Une borne n'est pas un utilisateur
Une borne n'est pas un utilisateur
Personne ne tape un mot de passe dans une TV montée dans une salle d'attente. Mais cet écran doit quand même être digne de confiance pour recevoir de vraies données et soumettre de vrais événements. Traiter un appareil comme un endpoint public anonyme est inacceptable au-delà d'un affichage en lecture seule ; le traiter comme un utilisateur qui se trouve être une machine ne convient pas non plus, parce que les appareils ont besoin de provisionnement, d'emplacement physique et de révocation d'une façon que les comptes individuels n'ont pas.
Alors les appareils obtiennent leur propre table et leur propre cycle de vie.
devices {
code // "KIOSK-001"
activation_code // code à usage unique pour appairer l'appareil physique
device_token_hash // identifiant longue durée détenu après activation
allowed_ip
ip_restriction_enabled
is_activated
last_seen_at
}
Appairage, pas confiance à vue
Un appareil n'est pas de confiance parce qu'il est sur le réseau. Il passe par une activation explicite : un admin génère un code d'activation pour un enregistrement d'appareil précis, quelqu'un le saisit sur l'appareil physique, et seulement là l'appareil reçoit un identifiant longue durée pour les requêtes futures. C'est structurellement pareil qu'appairer une smart TV — un code à usage unique de courte durée échangé contre un identifiant longue durée.
device_token_hash, pas le jeton brut, pour la même raison que les mots de passe sont hachés. Une base de données avec un identifiant en clair permet à un attaquant d'usurper n'importe quel appareil immédiatement ; le hachage est inutile pour ça en soi.
last_seen_at fait deux boulots. Sur le plan opérationnel, il me dit quelles bornes et quels écrans sont réellement en ligne. Comme signal de sécurité, un appareil silencieux depuis un temps anormalement long — ou qui se manifeste selon un motif très différent — mérite qu'on le regarde : panne matérielle, ou pire.
allowed_ip verrouille un appareil à une plage réseau connue. C'est explicitement une couche secondaire, pas la défense primaire — les IP peuvent être usurpées et un appareil pourrait légitimement changer de réseau. La vraie authentification repose sur le jeton ; la vérification d'IP est un fil-piège.
Pourquoi la prudence supplémentaire
Un portable est quelque chose que quelqu'un tient activement et remarquerait s'il se comportait bizarrement. Une borne dans un hall public est sans surveillance pendant de longues périodes, ce qui change le modèle de menace — la falsification physique, quelqu'un qui échange un appareil différent pour en usurper un de confiance, le vol pur et simple sont tous plus réalistes que pour un appareil personnel. L'activation explicite, les identifiants révocables et la surveillance des check-ins sont la bonne dose de paranoïa pour ça. Étirer une connexion utilisateur normale pour le couvrir le sous-protégerait.