Что за ключи требуют у телеграмма
Думаю почти каждый уже слышал, что ФСБ требует ключи шифрования у телеграма. В коментариях я очень часто натыкался на вариант "дайте линк на авто генерацию, пусть веселятся", что малость меня забавляет. Ну, во-первых, в отличии от депутатов, в ФСБ явно найдется адекватный человек, который доходчиво обьяснит, что атаку перебором ФСБ и само в состоянии организовать. Во-вторых -- "универсальный ключ" на самом деле есть, но не настолько волшебный.Для начала разберемся, а что такое асиметричное шифрование? По сути это два пароля: один шифрует, но с его помощью нельзя расшифровать. Второй -- расшифровует. Плюс ко всему (что тоже очень важно) имея на руках пароль шифрования, нельзя определить пароль расшифрования. Допустим я создал пароль для шифрования (открытый ключ) 1234 и знаю что для расшифрования нужно применить фразу "abcd" (закрытый ключ). Открытый ключ помещается в свободный доступ, каждый кто хочет мне написать просто использует его и передает меседж мне, и уже только я его могу прочитать. Обменявшись двумя открытыми ключами, можно настроить защищеную переписку. Именно это в свое время и легло в основу PGP (система шифрования email), против которого уже службы США вели дела вплоть до 1996 года (что, кстати, обнадеживает).
Теперь про уязвимость даного алгоритма. Перебор безполезен в виду малой скорости шифрования и генерации ключей. Сгенерить всевозможные варианты тоже не реально ни по времени, ни по обьему данных. Остается только "Человек по середине". Принцип такой атаки -- контроль всех пакетов обмениваемых между двумя пользователями, вплоть до их подмены. Т.е., когда я выкладываю в публичный доступ свой открытый ключ, ФСБ меняет его на "0000" и знает что расшифровка с помощью "aaaa". Далее, когда человек отправляет письмо мне, даный пакет перехватывается, вскрывается, читается содержимое, шифруется уже моим ключем и отправляется уже мне.
Дабы избежать такой атаки, можно:
- анализировать время отправки/приема сообщения. Если задержка слишком большая -- значит кто-то есть посередине.
- использовать надежного посредника.
В случае телеграмма -- это открытый ключ их серверов, вшитый непосредственно в клиент. Он используется для шифрования канала обмена открытыми ключами в секретных чатах. Исходя из этого, несложно догадатся что за ключик запрашивает доблестное ФСБ...
Но все это касается секретных чатов, которые не то что на серверах не хранятся, а и между клиентами не синхронизируются. Что же касаемо обычных чатов: тут все завязано на мобильный телефон. И как по мне, нахер пресовать забугорный меседжер, если достаточно "договорится" с нужной тройкой и получить нужные пины для входа. Тут есть проблема -- нотификация о новом входе. Но это так -- лирика...
P.S. Вполне возможно, что данные морды запрашивают не просто ключ, а прям требуют удобный интерфейс с различными плюшками. Причем затраты на разработку даной "фичи" перекладывают на сам меседжер. Либо еще более упоротое решение: в создании секретных чатах чтобы сам телеграм выполнял подмену публичных ключей, хранил их и предоставлял ФСБ.
Типа материал:
https://ru.wikipedia.org/wiki/%D0%9A%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D1%81_%D0%BE%D1%82%D0%BA%D1%80%D1%8B%D1%82%D1%8B%D0%BC_%D0%BA%D0%BB%D1%8E%D1%87%D0%BE%D0%BC
https://ru.wikipedia.org/wiki/PGP
https://tlgrm.ru/techfaq#%D0%B0%D1%82%D0%B0%D0%BA%D0%B0-%D1%87%D0%B5%D0%BB%D0%BE%D0%B2%D0%B5%D0%BA-%D0%BF%D0%BE%D1%81%D0%B5%D1%80%D0%B5%D0%B4%D0%B8%D0%BD%D0%B5