Ten aneks zawiera szczegóły techniczne. Wyjaśnienie kluczy znajdziesz w rozdziale Dane i klucze. VK oznacza klucz sejfu (Vault Key), a DEK — klucz szyfrowania danych (Data Encryption Key).
Zestaw kryptograficzny
| Operacja | Mechanizm |
|---|---|
| Wyprowadzenie z hasła | Argon2id: 32 MiB pamięci, 2 iteracje, 1 wątek, 32-bajtowy sekret bazowy konta; profil identity-argon2id-password-v1. |
| Oddzielenie uwierzytelnienia od klucza głównego | HKDF-SHA256 wyprowadza z sekretu bazowego dwa klucze, używając różnych etykiet przeznaczenia i identyfikatora konta. |
| Ochrona klucza prywatnego konta | XSalsa20-Poly1305. Odzyskiwanie konta używa osobnego profilu Argon2id z 19 MiB pamięci. |
| Szyfrowanie treści sejfu i zabezpieczanie kluczy symetrycznych | XChaCha20-Poly1305, suite palladin-vault-xchacha-v1. |
| Asymetryczne przekazanie klucza | X25519 sealed package, suite palladin-x25519-sealed-box-v1. |
| Podpisy tożsamości Agenta | Ed25519. |
| Klucze symetryczne VK / DEK | Losowe 32 bajty, generowane po stronie klienta. |
Nazwy algorytmów nie wystarczają do odtworzenia protokołu. Implementacja musi stosować dokładny format, domeny podpisów, kodowanie, reguły nonce i kanonikalizację z wersjonowanego kontraktu. Nie implementuj kryptografii na podstawie samego tego streszczenia.
Walidacja przed użyciem
- Odczytaj jawny identyfikator suite i wersję protokołu; odrzuć nieobsługiwany wariant.
- Sprawdź format i ograniczenia rozmiaru przed przetwarzaniem.
- Zweryfikuj podpis oraz wymagane commitmenty.
- Porównaj organizację, sejf, odbiorcę, przyznany dostęp, rewizje, epoki i wersje kluczy z niezależnym, zaufanym źródłem.
- Otwórz materiał tylko w dozwolonej granicy i przerwij przy błędzie uwierzytelnienia.
Zgodność implementacji
Wspólne dane i wektory testowe powinny sprawdzać zgodność klientów i backendu. Testy negatywne muszą obejmować podmienionego odbiorcę, inny sejf, starą rewizję, niewłaściwą epokę i zmodyfikowane zaszyfrowane dane. Nie wystarcza test, w którym biblioteka odszyfrowuje własny wynik.