mirror of
https://github.com/markqvist/reticulum_website.git
synced 2025-04-18 14:56:08 -04:00
27 lines
3.7 KiB
Markdown
27 lines
3.7 KiB
Markdown
# Криптографічні примітиви
|
||
Reticulum використовує простий набір ефективних, надійних і сучасних криптографічних примітивів, з широко доступними імплементаціями, які можна використовувати як на загальновживаних процесорах, так і на мікроконтролерах. Необхідні примітиви:
|
||
|
||
- Ed25519 для підписів
|
||
- X22519 для ECDH обміну ключами
|
||
- HKDF для виведення ключів
|
||
- AES-128 у режимі CBC
|
||
- AES-256 у режимі CBC
|
||
- HMAC-SHA256 для аутентифікації повідомлень
|
||
- SHA-256
|
||
- SHA-512
|
||
|
||
У стандартній конфігурації установки примітиви `X25519`, `Ed25519`, `AES-128-CBC` і `AES-256-CBC` надаються [OpenSSL](https://www.openssl.org/) (через пакет [PyCA/cryptography](https://github.com/pyca/cryptography)). Функції хешування `SHA-256` і `SHA-512` надаються стандартною бібліотекою Python [hashlib](https://docs.python.org/3/library/hashlib.html). Примітиви `HKDF`, `HMAC`, `Token`, а також функція паддінгу `PKCS7` завжди надаються наступними внутрішніми імплементаціями:
|
||
|
||
- [HKDF.py](https://github.com/markqvist/Reticulum/blob/master/RNS/Cryptography/HKDF.py)
|
||
- [HMAC.py](https://github.com/markqvist/Reticulum/blob/master/RNS/Cryptography/HMAC.py)
|
||
- [Token.py](https://github.com/markqvist/Reticulum/blob/master/RNS/Cryptography/Token.py)
|
||
- [PKCS7.py](https://github.com/markqvist/Reticulum/blob/master/RNS/Cryptography/PKCS7.py)
|
||
|
||
Reticulum також включає повну імплементацію всіх необхідних примітивів на чистому Python. Якщо OpenSSL і PyCA недоступні на системі під час запуску Reticulum, то замість них будуть використані внутрішні чисто-python примітиви. Легким наслідком цього є продуктивність, причому бекенд OpenSSL працює *набагато* швидше. Однак найважливіший наслідок полягає в потенційній втраті безпеки через використання примітивів, які не були піддані такій самій перевірці, тестуванню та огляду, як ті, що надаються OpenSSL.
|
||
|
||
Якщо ви хочете використовувати внутрішні чисто-python примітиви, **вкрай рекомендується** добре розуміти ризики, які вони несуть, і приймати обґрунтоване рішення щодо того, чи є ці ризики для вас прийнятними.
|
||
|
||
Reticulum — це відносно молода програма, і її слід розглядати саме як таку. Хоча вона була створена з урахуванням найкращих практик криптографії, вона _не проходила_ зовнішнього аудиту безпеки, і цілком ймовірно, що існують помилки, які можуть зламати конфіденційність або безпеку. Якщо ви хочете допомогти або спонсорувати аудит, будь ласка, зв'яжіться з нами.
|
||
|
||
<p align="right"><a href="credits.html">Наступна тема: Подяки та кредити</a></p>
|