3.7 KiB
Криптографічні примітиви
Reticulum використовує простий набір ефективних, надійних і сучасних криптографічних примітивів, з широко доступними імплементаціями, які можна використовувати як на загальновживаних процесорах, так і на мікроконтролерах. Необхідні примітиви:
- Ed25519 для підписів
- X22519 для ECDH обміну ключами
- HKDF для виведення ключів
- AES-128 у режимі CBC
- HMAC-SHA256 для аутентифікації повідомлень
- SHA-256
- SHA-512
У стандартній конфігурації установки примітиви X25519
, Ed25519
і AES-128-CBC
надаються OpenSSL (через пакет PyCA/cryptography). Функції хешування SHA-256
і SHA-512
надаються стандартною бібліотекою Python hashlib. Примітиви HKDF
, HMAC
, Fernet
, а також функція паддінгу PKCS7
завжди надаються наступними внутрішніми імплементаціями:
Reticulum також включає повну імплементацію всіх необхідних примітивів на чистому Python. Якщо OpenSSL і PyCA недоступні на системі під час запуску Reticulum, то замість них будуть використані внутрішні чисто-python примітиви. Легким наслідком цього є продуктивність, причому бекенд OpenSSL працює набагато швидше. Однак найважливіший наслідок полягає в потенційній втраті безпеки через використання примітивів, які не були піддані такій самій перевірці, тестуванню та огляду, як ті, що надаються OpenSSL.
Якщо ви хочете використовувати внутрішні чисто-python примітиви, вкрай рекомендується добре розуміти ризики, які вони несуть, і приймати обґрунтоване рішення щодо того, чи є ці ризики для вас прийнятними.
Reticulum — це відносно молода програма, і її слід розглядати саме як таку. Хоча вона була створена з урахуванням найкращих практик криптографії, вона не проходила зовнішнього аудиту безпеки, і цілком ймовірно, що існують помилки, які можуть зламати конфіденційність або безпеку. Якщо ви хочете допомогти або спонсорувати аудит, будь ласка, зв'яжіться з нами.