Первым из трех рассмотрим пожалуй протокол,
действительно отличающийся от отр-куста
Я бы даже сказал, что он основал
свой куст, причем довольно обширный
Речь идет о
NaCl (2008) Это не совсем е2е-протокол, строго говоря
При этом сама базовая
соль (nacl - это поваренная соль, если кто помнит) оказалась не очень качественной в практическом смысле, и служила скорее неким манифестом, нежели реальным инструментом, по крайней мере 1ая версия
Перед тем как говорить об особенностях этого
протокола, давайте сначала глянем на базовые параметры:
✔️aes128 или aes256 или salsa20 или xsalsa20 - шифрование
✔️
crypto-box или Ed25519+
sha512 или хешированный ecdh - ключи
✔️
sha256или512 или hmac+sha256или512 или poly1305 - mitm
✔️1 пакет - 1 ключ - отрицание
при этом
или✔️
crypto-box - это
сразу ключ+шифр+mitm -
ecdh+xsalsa20+poly1305
или✔️
crypto-secretbox - это
сразу шифр+mitm -
xsalsa20+poly1305 (как в этом случае распределяется общий секретный ключ, для меня осталось загадкой.. возможно
Ed25519+
sha512..)
Итак
Что бросается в глаза:
1. большой выбор аналогов:
или или или 2.
крипто-(сикрит)боксы какие-то
Разберемся😁
Соль - протокол, созданный как бы максимально
универсальным: максимально
адаптированным под различные языки программирования, максимально
накаченным достойными алгоритмами/протоколами
При этом сами создатели топят за
sals'y вместо
aes, мотивируя это скоростью, что выразилось в их
крипто-боксе, в который можно сразу запаковать
сообщение/ключ/хеш, и это будет
1 пакет, либо как-то с помощью него
распределить ключи, где
сообщение будет являться
секретным ключом, видимо.. хз, точнее сказать затрудняюсь😁
Ну и вариация на тему -
крипто-сикритбокс, где в одном пакете пойдет
сообщение/хеш, что в этом случае с ключами тоже не очень ясно.. возможно любая из доступных опций..
Соль - это вообще библиотека (C/С++), которая в себе содержит все эти модули (
или/или/или), а вот как их применять, в каком порядке, в каком количестве - это уже остается за конкретной реализацией в конкретном месте
У этого протокола существует огромное множество форков/последователей/адаптаций/применений, куст намного больше
отрвского
Самый, наверное, известный и удачный форк -
sodium (2013) - мульти-языковый, мульти-платформенный, с поддержкой серверного апи и прочими прелестями жизни
Список протоколов/компаний/программ, использующих библиотеки
соды,
поистине поражает: там и вордпресс, и винда, и мега, и киипас, и яндекс, и фейсбук, и овх, и целая пригоршня известных впн-сервисов, и тлс-дополнение, и токс (мессенджер), и.. даже
wire, я охуел если честно😁
Из всего вышесказанного можно вывести следующее:
NaCl (равно как и
соду) - нельзя назвать
протоколом е2е шифрования
Это программные библиотеки, модули,
набор практик
Как эти
практики, собственно,
практикуются - в каждом
отдельном случае смотреть надо
ОТДЕЛЬНО
Например,
1ключ-1пакет - это хоть и не
модуль, а
настройка, но настроить-то ее можно по-разному, а можно ведь вообще не настраивать..
К чему это я
В нашем рейтинге
соль представлена 2 участниками:
Вышеупомянутый
Tox, подробно рассматривать который мы не будем в силу
мертвого юзабилити А также широко известная в узких кругах -
Threema, реализацию
соли в которой мы также не будем рассматривать, чуть позже станет ясно почему