> В OTR -- да. В zero knowledge системах и активный атакующий не сможет.В OTR это можно при сильном желании зарубить. Например, вкостылив политику "1 контакт = 1 ключ". Но реально существюущий софт так не делает. И к тому же чревато DoS атакой - генерация ключа в OTR занимает очень длительное время.
> Если не ясен zero knowledge, то советую например прочитать про это в
> Прикладной криптографии Шнайера. Я не умелец подобные вещи рассказывать.
Да не, общий смысл понятен. Вопрос скорее в практической применимости и насколько это практически значимо и какой выигрыш дает. В OTR это получилось как-то не очень: все довольно сильно усложнилось, и по коду, и по протоколу, и по апи с которым надо программе работать, а особого выигрыша ощутимого на практике я как-то не ощутил. Мне такой tradeoff не нравится.
> Это если они посылаются. Без аутентификации они не будут посылаться.
А если с другой стороны зайти: возможность явно отличать прошла ли аутентификация или не прошла - информация для наблюдателя. Даже пассивного. Это чем-то хорошо? Как по мне так наоборот намного лучше если сторонний наблюдатель видит пакеты, но понятия не имеет что с ними сделали и было ли это валидно. Это обеспечивает недоказуемость, что в моем понимании хорошее свойство. Мало ли кто и зачем мусор в провод кидал?! Для пущей убедительности при повышенных требованиях - можно периодически кидать реально мусорные пакеты. Пусть любители реконструировать сессию по времянкам радуются, чтоли.
> Криптографы другого мнения и считают это полезным и нужным.
Хз, мне не понравилось как это сделано на примере OTR.
> Ну так приведите пример что конкретно можно было бы упростить. У шифропанков
> и криптографов вот как-то не выходит. Это если про протоколы и алгоритмы.
В результате шифропанки наворотили почти новый OpenSSL, прикладники которые не криптографы уже серьезно напрягаются такое привинчивать себе в программу.
> Про реализацию молчу: тут уже тема больше программистов касается и
> вообще тенденции в мире неимоверно безумно всё усложнять в коде, вешать
> кучу абстракций и прочего.
Чем больше фич нечто предоставляет - тем сложнее это технически корректно реализовать и тем больше грабель везде есть. И тем сложнее этим грамотно пользоваться в программе, без глупых продолбов от прикладников. Ну как с fingerprint ключа в OTR: если задаться целью, его можно и не показывать посторонним, как я понимаю. Но этим должны заморачиваться прикладники. Которым это нафиг надо.