Zarówno w pracy, jak i w życiu prywatnym coraz częściej potrzebujemy narzędzi do zarządzania hasłami. Wiele osób decyduje się na specjalne aplikacje do przechowywania haseł – tzw. menadżery haseł. To oczywiście dobry kierunek, ale pojawia się pewien problem. Kiedy chcemy zmienić dostawcę takiego narzędzia albo korzystać z kilku różnych rozwiązań, musimy jakoś przenosić te wrażliwe dane. Te dane to nie tylko hasła. Możliwe będzie przenoszenie również danych kart kredytowych czy kodów OTP. Dotychczas wiele osób po prostu eksportowało hasła do plików CSV, ale to dość ryzykowne. Takie pliki mogą być łatwym łupem dla hakerów, a do tego często pojawiają się problemy z formatowaniem danych przy importowaniu do nowego programu. Dodatkowo, obecnie passkeys stają się coraz bardziej popularne i bezpieczne przenoszenie passkeys pomiędzy urządzeniami czy systemami dzięki zastosowaniu nowego standardu również będzie możliwe. To z pewnością pomoże w jeszcze większej popularyzacji tej metody logowania.
Czym jest Credential Exchange Protocol (CXP)?
Aby temu sprostać, organizacja FIDO Alliance zajmująca się bezpieczeństwem w sieci postanowiła zająć się tym problemem. Stworzyła nowy standard o nazwie Credential Exchange Protocol (CXP), który ma działać jak uniwersalny tłumacz dla poświadczeń. Jego głównym celem jest zapewnienie bezpiecznej i standardowej migracji danych(poświadczeń) pomiędzy różnymi platformami. Protokół działa niezależnie od tego, czy dane znajdują się na tym samym urządzeniu czy nie. W pracach podczas przygotowywania dokumentu udział brały między innymi firmy Bitwarden, Dashlane, 1Password, Enpass, NordPass, Google i Microsoft.
Proces migracji danych uwzględnia kilka poszczególnych elementów:
Właściciel danych (Credential Owner): osoba lub organizacja, mająca dostęp do danych.
Dostawca danych (Credential Provider): oprogramowanie lub sprzęt, który przechowuje dane.
Importer (Importing Provider): dostawca, który inicjuje proces eksportu i który jest miejscem docelowym dla danych.
Eksporter (Exporting Provider): dostawca, który szyfruje i przesyła dane do importera.
Strona autoryzująca (Authorizing Party, opcjonalnie): udziela i poświadcza certyfikaty w imieniu właściciela, np. do uwierzytelnienia dostawców i utworzenia klucza migracji.
Schemat działania protokołu:
Importer wysyła żądanie (Export Request) do eksportera, zawierające wyzwanie (challenge), zakres eksportu oraz informacje o preferowanym sposobie szyfrowania.
Eksporter, po zatwierdzeniu żądania przez właściciela danych, generuje lub pobiera klucz migracji, który będzie użyty do szyfrowania.
Eksporter zbiera i szyfruje dane, a następnie podpisuje otrzymane wyzwanie.
Eksporter wysyła odpowiedź (Export Response) do importera, która zawiera zaszyfrowane dane, podpisane wyzwanie oraz klucz publiczny migracji.
Importer weryfikuje wyzwanie, pobiera klucz migracji i odszyfrowuje dane, które są sformatowane zgodnie z Credential Exchange Format (CXF). Następnie dane są przechowywane przez importera.

Najważniejsze elementy protokołu:
Żądanie eksportu (Export Request) zawierające informacje o wersji protokołu, parametrach szyfrowania czy archiwizacji, trybie odpowiedzi, ID importera, typach żądanych danych oraz opcjonalnych rozszerzeniach.
Odpowiedź eksportu (Export Response) zawiera informacje o wersji protokołu, parametrach szyfrowania i archiwizacji, ID eksportera oraz zaszyfrowany ładunek.
Ładunek (Credential Payload) zawiera zaszyfrowane dane uwierzytelniające, sformatowane zgodnie z CXF.
HPKE (Hybrid Public Key Encryption) algorytm szyfrowania, który jest wykorzystywany w protokole CXP.
Dzięki zastosowaniu mechanizmu pozwalającego na szyfrowanie i standaryzację danych, protokół Credential Exchange Protocol (CXP) nie tylko zminimalizuje ryzyko błędów związane z ich przenoszeniem ale również wpłynie na popularyzację bezpiecznych metod logowania jednocześnie poprawiając współpracę między różnymi aplikacjami.
Pełna treść dokumentu znajduje się pod adresem: https://fidoalliance.org/specs/cx/cxp-v1.0-wd-20241003.html