Încerc să dezvolt un protocol simplu pentru doi utilizatori pentru a verifica (în ceea ce privește o autoritate centrală de încredere) că s-au întâlnit/comunicat (intenționat) unul cu celălalt.
Ideea mea a fost următoarea: utilizatorii dețin o pereche de chei (publică, secretă) a oricărui sistem asimetric comun, cum ar fi RSA. Cheia lor publică, de asemenea, serverele ca identificator. Pentru ca două persoane să confirme că au avut contact, amândoi vor genera un număr aleatoriu de 256 de biți, îl vor împărtăși unul cu celălalt (în aplicația/cazul de utilizare indentat, acest lucru se intenționează să se întâmple doar în persoană, nu la distanță) și apoi, ambii, individual, transmit în siguranță (de exemplu, HTTP-uri) numărul concatenat unei autorități centrale criptate cu cheile lor private respective. Ei vor transmite, de asemenea, cheia/id-ul public respectiv pentru a se identifica autorității centrale, care, la rândul ei, poate verifica dacă ambii au trimis același mesaj după decriptarea cu cheile publice respective, ceea ce le dovedește identitatea și comunicarea anterioară.
Îmi dau seama că se pretează la un atac de tip „om-in-the-middle” în care un intermediar ar putea transmite numerele aleatorii a două persoane unul altuia, prefăcând efectiv o întâlnire între acestea două și fără a se include pe el însuși.Sistemul real în care intenționez să folosesc acest lucru ar face acest lucru practic imposibil, deoarece ambii utilizatori trebuie să trimită mesaje CA într-un interval de timp foarte scurt, iar utilizatorii ar împărtăși coduri aleatoare numai în persoană, unde un astfel de atac MITM ar fi evident.
Edit: Scopul principal este ca cei doi utilizatori să-și demonstreze intenționat comunicare/întâlnire. Nu există nici un stimulent și nici un rău făcut în a conspira pentru a confirma în acest fel o întâlnire care a avut loc doar de la distanță, atâta timp cât ambele părți sunt la curent cu această acțiune.
Acestea fiind spuse, este aceasta o idee proastă, dacă da, de ce?