Что не так с требованиями к Telegram
Очень странное событие для меня произошло - суд вынес решение для ограничения работы месенджера Telegram для российских пользователей. То есть, дело даже не в политике, например обмен безопасности на свободу, это не то. Я вижу очень крупные проблемы в самой логике требований, пахнущие уже совсем нефигуральным тоталитаризмом при универсальном применении.
Российские госорганы потребовали некие "ключи шифрования" от мессенджера. В Telegram их два типа: создающиеся целиком на стороне пользователей для "секретных чатов", и обычное шифрование. Первое, в принципе, пока не требуется, хотя глава РКН заметил, что мессенджеры должны быть готовы к соответствию законодательству. По факту это намек на нелегальность клиентского шифрования, но пока только намек, поэтому не хочу на нём заостряться. Пока требование лишь к обычному шифрованию, ключи от которого хранятся в Telegram.
Обычное шифрование - это известный SSL/TLS, через который ныне работает подавляющее большинство вебсайтов (HTTPS). В Telegram своя реализация, но отличий в принципах я не заметил. Человечество уже давно поняло, что без шифрования сетевые каналы суть открытые, вроде газеты. Подключиться и читать поток байтов - проще простого, банальный открытый WiFi позволит это сделать любому, прослушивать провод не намногим сложнее, так что ПО без шифрования - вымирающий зверь.
Работает шифрованный канал так, упрощенно говоря (описание применения протокола Диффи-Хеллмана в современной связи):
У сервера есть секретный и открытый ключ
Клиент обращается с просьбой установить соединение
Сервер посылает клиенту свой открытый всем известный ключ (существуют методы проверки, что это "правильный" ключ)
Принцип действия пары открытого и закрытого ключа: можно открытым ключом зашифровать сообщение так, что можно его прочитать только имея закрытый ключ
Клиент создает свой ключ, зашифровывает его открытым ключом сервера и посылает свой зашифрованный ключ серверу
Такое сообщение может прочитать лишь тот, кто обладает секретным ключом (т.е. только сервер), у перехватчика такой возможности нет
Сервер создает мастер-ключ, шифрует его ключом пользователя и посылает обратно. Прочитать это у перехватчика опять нет возможности, потому что у него нет ключа клиента
Сервер и клиент знают мастер-ключ, и все свои сообщения зашифровывают им, используя теперь классическое шифрование с одним секретном ключом, известное со времен римлян.
Какие проблемы есть у требований РКН:
Нулевая, организационная (для государственного аппарата, впрочем, простая - проблемы индейцев шерифа не волнуют): сертификаты (ключи) регулярно или внезапно перевыпускаются. Обязать придётся не просто один раз сдать закрытые ключи, но отсылать их каждый раз.
Первая, менее глобальная: сессионные мастер-ключи не сохраняются навсегда. Они после окончания сеанса связи не имеют никакого применения, плюс это было бы потенциальной проблемой в безопасности. То есть, весь зашифрованный сетевой трафик, который сохраняют сейчас на специальные сервера российские власти, нельзя будет прочитать. А это значит, что можно будет организовывать только MiTM (атака "человек-посередине", когда третья сторона становится между клиентом и сервером). Это требует серьезных инфраструктурных изменений, и сложной и дорогой адаптации.
Вторая, глобальная: скорее всего они требовали от Telegram закрытый ключ. Но ведь систему шифрования "открытый-закрытый ключ" (ассиметричное) использует большая часть сетевых ресурсов, проще показать на тех, кто пока не использует. Это все мессенджеры (и те, которые имеют единый сервер, и распределенные вроде IRC или Jabber), это любые вебсайты: общение в личных сообщениях фейсбука и кулинарного форума шифруются совершенно одинаково, схожим образом с Telegram. Если не заниматься децимацией, а серьезно и для всех применить принятые законы, то нужно будет требовать секретные ключи от всех, таким образом просто компрометировав ассиметричное шифрование.
В мире до сих пор такая практика не была известна. Эти законы стоят примерно на том же уровне, как полузабытое предложение от казахстанских властей обязать всех ставить госсертификат, чтобы было можно организовывать государственный MitM. Отличие лишь в том, что вместо возможного давления на своих граждан РФ пытается давить на иностранные бизнесы (то есть отличие только по форме, но не по сути). В настоящий момент каждый отвечает за безопасность своей инфраструктуры, поэтому на каждого субъекта нужно планировать атаку отдельно. В случае исполнения российских законов появилось бы постороннее лицо, которое за утечки информации не отвечает по сути ничем, и которое будет "отвечать" за секретность всех разом.
Что это: замашки на тоталитаризм и отделение от глобальной сети, или просто безграмотность? Сдается, что намного больше второго, нежели первого. Как правильно заметил по поводу подобной ситуации замглавы Минкомсвязи РФ А. Волин:
Если вы занимаетесь блокировкой популярного массового ресурса, то вы дискредитируете власть, потому что показываете, что решение власти нереалистично, оно обходится и совершенно спокойно дискредитируется. Вы воспитываете в гражданах правовой нигилизм и увеличиваете их компьютерную грамотность.
Конечно, можно обойтись децимацией, то есть применение закона лишь к выборочным ресурсам, и подозреваю, что по вышесказанным причинам так и будет. Некоторые бизнесы могут рискнуть непубличными теневыми договоренностями с властями, если им критична доля в РФ. Но это отнюдь не приближает россиян от криминальных понятий и теневого права к справедливому правовому обществу.
