Sunt un neprofesionist care încearcă să-mi aprofundez înțelegerea despre cripto și mesageria privată, construind o „platformă” de mesagerie criptată (dovadă de concept) centralizată, end-to-end.
Mesajele sunt trimise de dispozitive către „server” (care rulează pe Pi-ul meu în rețeaua mea de acasă) unde sunt stocate și de unde pot fi preluate de către destinatari printr-un apel API. Serverul știe doar minimul necesar pentru a distribui corect mesajele în timp ce textul mesajului este criptat și întregul mesaj este semnat corect.
Acum mă confrunt cu următoarea provocare: vreau să redenumesc o proprietate a formatului de mesaj utilizat de aplicațiile client (gândiți-vă la JSON: message.body â message.content). Problema acum este că (1) toate mesajele anterioare sunt stocate pe server în vechiul format și (2) un client „vechi” poate încerca să trimită mesaje unui client „nou”, ceea ce mă obligă să rezolv cumva această nepotrivire între formatele mesajelor comunicate.
Dacă cheile private ar fi disponibile pentru server, aceasta ar fi o problemă banală: pur și simplu transformați mesajul în formatul de mesaj așteptat de destinatar. Dar din moment ce încerc să fiu cu adevărat privat și cheile private sunt cunoscute doar de proprietarii lor, aceasta nu este o opțiune. Mesajele nu pot fi modificate de către server.
Simt că în centrul acestei probleme se află o provocare mai fundamentală, despre care sunt sigur că oameni mult mai capabili decât am venit cu soluții și pentru care există abordări standardizate. Prin urmare iată întrebarea mea: În general, cum gestionează soluțiile de mesagerie e2ee (de exemplu, semnal, matrice) modificările aduse structurii datelor criptate? Ce abordări există, cu excepția tăierii versiunilor vechi și a aruncării oricărui istoric al mesajelor?
Vă cer scuze dacă această întrebare sună vagă sau este prea largă. Sunt doar un noob care încearcă să fac imaginea de ansamblu.
Mulțumesc mult.