Am dispozitive care trebuie să comunice cu un server pe un canal autentificat și criptat reciproc. Autentificarea serverului este relativ ușoară, deoarece pot încorpora certificatul CA în firmware-ul dispozitivului și pot verifica semnătura certificatului serverului. Problema este autentificarea dispozitivului pe server.
În mod normal, aș putea semna și certificatul dispozitivului, dar nu există un mediu de încredere de la producție până la implementare, adică nu vreau ca unitatea de producție să aibă acces la cheia noastră privată sau la orice capacitate de semnătură folosind CA-ul nostru. În schimb, avem un cod QR pe dispozitiv și personal de încredere în domeniu cu care să lucrăm. Deci, autentificarea se va face de către personal prin citirea codului QR. Cu toate acestea, în timpul acestei operațiuni, dispozitivele de obicei nu sunt alimentate, astfel încât TOTP-ul obișnuit, indicatorii vizuali etc. nu sunt aplicabili.
Ideea mea este să pun un număr aleator și forma sa criptată (prin cheia AES care este generată aleatoriu de dispozitiv) pe codul QR (sau este posibil și un fel de MAC, probabil legând ID-ul dispozitivului). Când personalul citește codul QR, aceste valori sunt stocate în baza de date. Când dispozitivul se autentifică și se conectează la server, acesta va trimite cheia secretă AES pe canalul criptat. Serverul poate verifica acum că numărul aleatoriu din baza de date este într-adevăr criptat de dispozitiv și poate semna acum certificatul dispozitivului.Serverul șterge apoi valoarea aleatoare din baza de date și conexiunile ulterioare pot fi autentificate cu semnătura.
Cred că acest lucru este cât se poate de sigur cu aceste restricții. Dar nu mă simt confortabil să prezint cheia AES pentru a dovedi identitatea, dar nu mă gândesc la nici un alt mod. Există probleme cu această schemă presupunând că personalul nu este păcălit să citească un cod QR rău intenționat? Este o astfel de autentificare offline o problemă cunoscută, dacă da, care sunt cuvintele cheie pentru cercetări ulterioare? Există o modalitate mai bună de a realiza autentificarea cu aceste restricții?
Editați | ×. Tocmai mi-am dat seama că pot doar să pun cheia publică a dispozitivului la codul QR și să provoc dispozitivul să demonstreze că are și cheia privată corespunzătoare.