2.5 KiB
Prymitywy kryptograficzne
Reticulum wykorzystuje prosty zestaw wydajnych, silnych i nowoczesnych prymitywów kryptograficznych, z szeroko dostępnymi implementacjami, które mogą być używane zarówno na procesorach ogólnego przeznaczenia, jak i na mikrokontrolerach. Niezbędne prymitywy to:
- Ed25519 dla sygnatur
- X22519 dla wymiany kluczy ECDH
- HKDF dla wyodrębnienia klucza
- AES-128 w trybie CBC
- HMAC-SHA256 dla uwierzytelnienia wiadomości
- SHA-256
- SHA-512
W domyślnej konfiguracji instalacji, prymitywy X25519
, Ed25519
i AES-128-CBC
są dostarczone przez OpenSSL (przez pakiet PyCA/cryptography). Funkcja hashu SHA-256
i SHA-512
są dostarczone przez standard Pythona hashlib. Prymitywy HKDF
, HMAC
, Fernet
i funkcja padding PKCS7
są zawsze dostarczane przez następujące wewnętrzne implementacje:
Reticulum zawiera również kompletną implementację wszystkich niezbędnych prymitywów w czystym Pythonie. Jeśli OpenSSL i PyCA nie są dostępne w systemie podczas uruchamiania Reticulum, Reticulum użyje wewnętrznych prymitywów w czystym Pythonie. Trywialną konsekwencją tego jest wydajność, backend OpenSSL jest znacznie szybszy. Najważniejszą konsekwencją jest jednak potencjalna utrata bezpieczeństwa poprzez użycie prymitywów, które nie zostały poddane takiej samej analizie, testom i przeglądom jak te z OpenSSL.
Jeśli chcesz używać wewnętrznych czystych prymitywów pythona, jest bardzo wskazane, abyś dobrze rozumiał ryzyko, jakie to stwarza, i podjął świadomą decyzję, czy to ryzyko jest dla ciebie do przyjęcia.
Reticulum jest stosunkowo młodym oprogramowaniem i powinno być traktowane jako takie. Chociaż zostało zbudowane z myślą o najlepszych praktykach kryptograficznych, nie zostało poddane zewnętrznemu audytowi bezpieczeństwa i bardzo możliwe, że zawiera błędy naruszające prywatność lub bezpieczeństwo. Jeśli chcesz pomóc lub zasponsorować audyt, skontaktuj się ze mną.