Интерфейс звонков Telegram: что не так?
Telegram LiveUpdate: в очередной сборке Telegram для Android появилось дополнительная иконка, по нажатию на которой текстовый ключ заменяется на несколько эмодзи (как в ICQ). Так что текст ниже теперь не особо актуален, но пусть останется для истории (плюс тут много скриншотов из других мессенджеров).
Весьма вероятно, что в скором времени в Telegram появятся голосовые звонки. Всё, что мы о них знаем на данный момент (12 марта 2017 года), написано вот здесь. В этом посте хотелось бы поговорить о том, что не так со звонками Telegram в контексте интерфейса сверки ключей шифрования.
Внимание:
1) Я не претендую на роль специалиста по UI/UX, и уж тем более не называю себя специалистом по криптографии, поэтому не стоит верить мне на все 100%.
2) Этот пост – субъективное мнение одного человека, к тому же по поводу ещё не вышедшей фичи.
Немного истории
Как известно, одна из главных фишек Telegram – секретные чаты, которые устанавливаются строго между двумя устройствами, и не могут быть прочитаны серверами мессенджера.
После создания секретного чата, собеседники могут открыть визуализации ключей шифрования и сравнить их друг с другом.
Если изображения и текст совпадают у обоих собеседников, это значит, что атаки «человек посередине» не было, или она не удалась.
Кто-то может заметить: «Как же так? Что ж мне теперь, прям в чат буковки/квадратики пересылать?». Нет, это неправильный способ. Предполагается, что собеседники встретятся вживую, установят секретный чат, сверят ключи на месте и разойдутся, чтобы в дальнейшем использовать секретный чат для конфиденциальной переписки. Более того, этот способ рекомендуется в Telegram FAQ: «Always compare visualizations using a channel that is known to be secure — it's safest if you do this in person, in an offline meeting with the conversation partner».
Ключи шифрования в звонках Telegram
Давайте теперь посмотрим, как выглядит визуализация ключей шифрования в звонках:
Очень похожий интерфейс, не правда ли? И тут возникает небольшая проблема: а как сверять ключи? При каждом новом звонке ключи генерируются заново, а находиться рядом, и при этом звонить – несколько, кхм, странно.
Можно, конечно, сделать скриншот этого экрана и послать собеседнику. При этом вы оба потратите где-то 2-3 минуты, чтобы вместо разговора молча сравнивать картинки. Сомнительное удовольствие.
«Чё там у конкурентов?»
Что ж, давайте узнаем, как эту проблему решают конкуренты Telegram.
̶W̶h̶a̶t̶s̶S̶h̶i̶t̶, простите, WhatsApp: между двумя собеседниками генерируется пара ключей, которые используются как для звонков, так и для сообщений.
В итоге, «угнав» ключи, сиди, слушай, читай. Лепота... Впрочем, как я уже говорил в начале, не являюсь специалистом по криптографии, так что продолжим.
Signal: при звонке генерируется пара слов, которые должны совпадать у собеседников. Если Алиса звонит Бобу, то Алиса должна продиктовать первое слово, затем Боб смотрит на экран, проверяет это слово и диктует второе. Если Алиса видит на экране то же самое, значит, звонок зашифрован нормально.
Удобно? В принципе, да. Я не в курсе, можно ли настроить, из словаря какого языка (по умолчанию – английского) генерируются пары слов, иначе азиатам/славянам может быть сложновато. Быстро? Очень: примерно 10-15 секунд.
ICQ: Разработчики из Mail.ru решили з̶а̶б̶и̶т̶ь̶ ̶н̶а̶ ̶ш̶и̶ф̶р̶о̶в̶а̶н̶и̶е̶ отойти от использования слов и используют четыре эмодзи для проверки защищённости голосовых и видеовызовов. Схема та же: Алиса описывает первые два эмодзи, Боб - последние два. Удобно? Да, безусловно. Эмодзи можно описать на любом языке, так что ни у каких национальностей (кроме, пожалуй, очень немногословных) проблем не будет. Быстро? Да, не более полуминуты.
Но не всё так радужно. Когда что-то большое проецируется на что-то маленькое, может возникнуть ситуация, когда некто вмешался в шифрованный звонок, ключи у собеседников не совпадают, но по чистой случайности оба ключа представляют собой один и тот же набор эмодзи. Шанс небольшой, но всё-таки он есть. Поэтому не стоит считать решение ICQ лучшим. Signal-овский вариант интереснее, т.к. слов гораздо больше, чем эмодзи.
Viber: практически так же, как и Telegram, т.е. не очень удобно.
Вывод
Несомненно, появление звонков в Telegram – это замечательная новость, которую многие пользователи ждут очень давно. К качеству связи претензий нет, к визуальной составляющей (кнопки, анимации) – тоже.
Но, к сожалению, текущий интерфейс сверки ключей шифрования (а это крайне важный этап для обеспечения конфиденциальности) нельзя назвать удобным для пользователей и эффективным по временнЫм затратам.
Впрочем, мнение автора может не совпадать с мнением читателей и разработчиков Telegram. А может и совпадать.