Уже почти две недели идёт война между РосКомНадзором (на самом деле - ФСБ) и П. Дуровым за некие "ключи шифрования". ФСБ-шникам очень хочется эти самые ключи иметь, а П. Дуров говорит, что ИХ ТАМ НЕТ. Ну, вы помните автора этого бессмертного выражения:-) Кто же прав?
Государство, в лице начальника РосКомНадзора - Александра Александровича Жарова объявило войну до победного конца. Крушит всё подряд и уже заблокировало 19 миллионов IP адресов. Пострадавшие от этой ковровой бомбардировки пользователи собираются подавать в суд и уже написали заявления в МВД. Им не нравиться терять деньги из-за хулиганского поведения чиновников. (https://meduza.io/news/2018/04...)
Самое интересное заключается в том, что 90% населения России и 100% депутатов ГД РФ не знают - что такое ключи шифрования. Депутаты голосовали за закон, абсолютно не понимая, за что они голосуют:
https://www.yapfiles.ru/show/1...
Ну что тут можно сказать ?!
Вот я и решил попробовать объяснить популярно, что из себя представляют эти самые "ключи шифрования". Сразу скажу, что алгоритмы криптозащиты - довольно сложный и объёмистый раздел математики. Кто хочет разобраться самостоятельно, могу порекомендовать эти книжки:
1) А. Саломаа "Кpиптогpафия с откpытым ключом" Москва ”Миp” 1995
2) ГОСТ 28147-89
3) Баричев С. "Криптография без секретов"
Ну и много других книг есть на эту тему. Любопытно, что ГОСТ до сих пор грифован как ДСП. А начальные его версии имели гриф "Совершенно секретно". Это несмотря на то, что автор алгоритма опубликовал его в открытой печати ещё в 1995 году в издательстве MIT Press. Более того, он даже опубликовал исходный код программы, реализующей этот алгоритм. Но, как всегда, "заставь дурака Богу молиться...".
Возвращаясь к нашим баранам, то есть - ключам. Что это такое и чем симметричные ключи отличаются от несимметричных ?
Сразу предупреждаю - дальнейшее изложение будет ОЧЕНЬ упрощённым.
Что такое - шифрование?
Интуитивно, мы понимаем, что вот есть текст, потом мы его ЗАшифровали и появилась абракадабра.
Причём (это очень важно!) в процессе шифрования мы использовали некий ключ шифрования. Неважно, что это в реальном мире.
Эту самую абракадабру засунули в канал связи. Опять же, совершенно неважно, что это в реальном мире.
Потом мы взяли ключ на другом конце, с его помощью РАСшифровали абракадабру и получили исходный текст сообщения. Здесь важно то, что мы на приёмном конце использовали ключ для дешифрования.
Так вот, если ключ для РАСшифровки - это тот же ключ, что для ЗАшифровки, только "воткнутый" другим концом, то этот метод шифрования называется "симметричным".
Я попытаюсь проиллюстрировать это "на пальцах". Предположим, я хочу передать по каналу связи всего один символ. Ну, для простоты, пусть этот символ отображается на 7-и сегментном индикаторе. Я думаю, все знакомы с этой штукой:
1. Семисегментный индикатор.
Очень часто они используются в электронных часах и другой технике. С их помощью можно даже буквы пытаться отображать:
2. Символы на семисегментном индикаторе
Дальше у меня пойдут разные элктрические схемы. Так как никаких KiCad-ов и прочих чудес буржуинской конструкторской мысли у меня нет, то рисовал я эти схемки шариковой ручкой на кухонном столе в старой тетрадке. Прошу меня извинить за качество картинок!
Если я хочу передать всего один символ куда-то далеко, без всякого шифрования, то можно воспользоваться такой схемой:
4. Передача кода символа без шифрования.
На передающей стороне, там где переключатели a,..,g, можно выбрать те сегменты, которые которые я желаю зажечь. По проводам потечёт ток, сегменты загорятся и мой получатель увидит именно тот символ, который я набрал. Информация передана. Плохо то, что если кто-то где-то подключится к моим проводам (каналу связи), то он тоже увидит именно тот символ, который я передаю. Шифрования нет.
Попробуем зашифровать передаваемый символ. Для этого возьмёт отрезок кабеля, по которому мы передаём информацию и ПЕРЕПУТАЕМ отдельные проводники в нём, как попало. Получится вот что:
5. Зашифрованная передача
Сейчас, если я буду набирать на выключателях какой-то символ, то та индикаторе я увижу какую-то белиберду. Мы ЗАшифровали информацию! Кусок кабеля с перепутанными проводами я назову КЛЮЧОМ шифрования К. Перепутанные концы ключа я обозначил теми же буквами, но со штрихами, что бы было понятно, что это НЕ исходные сигналы. Если кто-то подключится к моему каналу связи, то он ничего не поймёт! Здорово! Есть, правда, "маленькая" закавыка - получатель моего сообщения тоже ничего не поймёт.
Надо РАСшифровать сообщение. Как это сделать - достаточно понятно: надо взять этот же самый ключ и "воткнуть" его в обратном направлении. Вот так:
6. Передача с шифрованием и расшифровка принятого сообщения.
Что я сделал? На "дальнем" конце канала связи я, вместо индикатора, присоединил ключ шифрования К, но включил его в обратном направлении. Задача решена: сообщение по каналу передавалось в зашифрованном виде, а на приёмной стороне - успешно расшифровано. И при передаче и при при приёме используется ОДИН ключ, только включаемый в противоположных направлениях. Это очень важно - ключ ОДИН!
Такая схема шифрования называется "шифрование с симметричным ключом". Эта схема в самых разных вариантах использовалась человечеством на протяжении тысяч лет. В первой половине ХХ века она достигла своей вершины. Выше подыматься было некуда по двум принципиально неустранимым причинам:
1. Перед установлением связи надо было передать ключ шифрования приёмнику каким-то способом, выходящим за стандартный протокол. Привезти в тайном кармане, передать голубиной почтой, через объявление в газете и т.д. Это было очень рискованно. А если противник перехватит ключ? Он получит возможность читать ВСЕ последующие сообщения.
2. Понятно, что в целях безопасности, надо как можно чаще менять ключи шифрования. Однако, если противник уже перехватил старый ключ, то передача нового ключа по вскрытому каналу не приведёт ни к чему хорошему.
Эти недостатки шифрования с симметричным ключом неустранимы в принципе. Здесь уместно вспомнить, что стало с немецким флотом, после того, как англичане успели вскрыть ключ "Энигмы" до того, как немцы сменили его в очередной раз. ВСЕ последующие сообщения немецкого флота легко читались английской разведкой. "Волчья стая" адмирала Канариса очень быстро превратилась в стаю побитых щенков.
Остро встала необходимость разработки принципиально новых криптографических алгоритмов, лишённых этих двух недостатков. Раздел математики под названием "криптография" становился секретным оружием. И в СССР и США исследования в этой области засекретили и даже были приняты специальные законы об ответственности за передачу...
Два "Голиафа" (американский и советский) пытались побороть друг друга и тут появился Давид, который отправил в нокаут и того и другого. Давида звали Филипп Циммерман. Он программист (даже не математик) и по образованию, и по профессии. Долгое время работал на правительство США в разных исследованиях по криптографии. Создавал программные инструменты для криптозащиты и взлома. И чем больше он знакомился с методами работы спецслужб, тем меньше это всё ему нравилось.
В конце концов он пришёл к борьбе за права человека вообще и тайне переписки в частности. Он и разработал алгоритм и программу шифрования, которая нынче называется во всём мире "Pretty Good Privacy" (Очень хорошая защита приватности). И эта программа произвела революцию в технологии криптозащиты.
В 1991 году Циммерман написал программу Pretty Good Privacy (PGP) — первую широкодоступную программу, которая использовала шифрование с открытым ключом (программист опубликовал её в Интернете для свободного доступа). Вскоре она стала доступна за границей — по утверждению Циммермана, он не принимал никакого участия в её распространении за пределы США.
Несмотря на недостаток финансирования, отсутствие какого-либо оплачиваемого персонала, рекламной компании и т. д., PGP стало наиболее широко используемым в мире программным обеспечением для шифрования электронной почты.
Как и любое другое правительство, правительство США и в те времена пыталось запустить свои шаловливые ручки в личные дела граждан. И ему (правительству) очень не понравилось, что в руках у граждан оказался инструмент, с которым не могло справится даже АНБ. Три года против Циммермана велось судебное расследование. Его обвиняли в том, что он передал алгоритм в другие страны. Хотя, на самом деле, он ничего не ПЕРЕДАВАЛ. Он просто сделал программу под GPL лицензией и любой человек в мире мог эту программу использовать, мог посмотреть её код и поразбираться с её алгоритмом - проверить, что в программе нет никаких "закладок".
В правительстве США уровень идиотизма хотя и высок, но всё-таки пониже, чем в РФ, поэтому "передать ключи шифорования" они от Циммермана не требовали, понимали, что это - полный бред.
Ну так в чём же идея PGP? Попытаюсь, опять-таки, на самом примитивном уровне. Предупреждаю, что в реальности, за моими картинками стоит достаточно зубодробительная математика. Итак, давайте будем долго-долго запутывать наш кабель, что бы его хватило на ДВА ключа:
7. Несимметричные ключи.
Обращаю Ваше внимание на то, что слева и справа стоят буквы a,..,g БЕЗ штрихов. Т.е. каждый проводок в нашей схеме, откуда вышел, туда и пришёл. А теперь берём ножницы и из нашего перепутанного кабеля делаем ДВА ключа: К1 и К2.
Зачем нам две половинки одного ключа?! Дело в том, что совместно они выполняют передачу без шифрования, а между ними выполняется передача зашифрованного сообщения. Вот как это происходит:
Назовём один из этих ключей (любой) публичным и вывесим его в любом публичном месте: на афишной тумбе, на Вашей страничке в иНете или на специализированном сайте публичных (открытых) ключей входящих в PKI. Что такое PKI я сейчас объяснять не буду, просто скажу, что если Вы желаете написать зашифрованное письмо Васе Пупкину, то зайдите на один из сайтов (любой) входящих в PKI и поищите там Васю Пупкина. Если Василий выложил свой публичный ключ - Вы его найдёте.
Соответственно, вторую (оставшуюся) половинку ключа Вы храните у себя под семью запорами и никуда не выносите. Эта половинка ключа называется приватной, или секретной. Теперь понятно, почему этот метод называется шифрованием с НЕсимметричным ключом?
Итак, мы желаем написать письмо Васе Пупкину так, что бы даже АНБ его не могло вскрыть. По шагам:
1. Скачиваем себе ПУБЛИЧНЫЙ ключ Васи Пупкина (пусть это К1).
2. Имея этот ключ и программу PGP (GnuPG) шифруем письмо до границы между ключами К1 и К2.
3. Отправляем обычной почтой. Прочитать его, не имея К2 невозможно.
4. Василий, получив наше письмо, использует ту же самую программу и свой ПРИВАТНЫЙ ключ К2. Письмо расшифровано!
5, Если он захочет нам ответить, то он ищет наш ПУБЛИЧНЫЙ ключ, пишет письмо, шифрует и ...
Вот, собственно, и всё!
На сегодняшний день прямых законодательных запретов на использование PGP в России нет. Законодательно ограничивается использование криптографии только в государственных и муниципальных учреждениях. ФСБ предписывает всем государственным структурам использовать только сертифицированные средства криптографии. Список можно посмотреть здесь: http://infosystems.ru/assets/f...
Стойкость к взлому
В 2010 году группе учёных из Швейцарии, Японии, Франции, Нидерландов, Германии и США удалось декодировать данные, зашифрованные по алгоритму RSA при помощи ключа длиной 768 бит. Нахождение простых сомножителей осуществлялось общим методом решета числового поля . На первый шаг (выбор пары полиномов степени 6 и 1) было потрачено около полугода вычислений на 80 процессорах, что составило около 3 % времени, потраченного на главный этап алгоритма (просеивание), который выполнялся на сотнях компьютеров в течение почти двух лет. Если интерполировать это время на работу одного процессора AMD Opteron 2,2 ГГц с 2 ГБ оперативной памяти, то получилось бы порядка 1500 лет.
Исследователи уверены, что с использованием их метода факторизации взломать 1024-битный RSA-ключ будет возможно в течение следующего десятилетия.
По словам исследователей, после их работы в качестве надёжной системы шифрования можно рассматривать только RSA-ключи длиной 1024 бита и более. Причём от шифрования ключом длиной в 1024 бит стоит отказаться в ближайшие три-четыре года.
В переводе на человеческий: ещё несколько лет можно пользоваться ключами 1024 бита и НИКТО вас не вскроет. Потом рекомендуется перейти на ключи длиной 2048 бит. Хотя расчёт ключа занимает довольно много времени, но выполняется он один раз. А скорость самого процесса шифрования от длины ключа зависит не сильно.
Так можно отдать ключи шифрования?
Хотя я не разбирался с исходным кодом мессенджера telegram, но на 100% уверен, что в нём используется вариант шифрования с несимметричным ключом. Открытые ключи пользователей лежат где-то в свободном доступе (и что бы их получить не надо устраивать истерику на весь мир), а приватные ключи лежат на компах пользователей и П. Дуров, даже если бы захотел, просто физически не смог бы их передать в ФСБ. Для меня это очевидно.
Когда адвокаты П. Дурова в суде пытались это объяснить, судья вынес решение, в котором сказано, что "ответчик не представил убедительных доказательств, того, что у него не хранятся ключи". Тут есть два крючка:
Первый заключается в том, что ОТВЕТЧИК не обязан предоставлять доказательство того, что он НЕ совершал преступление. Во всём мире. во всех юридических системах, принят принцип "Бремя доказательства лежит на стороне обвинения". Ты обвинил - ты и доказывай. Однако в басманном правосудии действует другой принцип: "Ты виноват уж тем, что хочется мне кушать!". (И.А. Крылов)
Второй - логическая ошибка. Невозможно ДОКАЗАТЬ (тем более - убедительно), что чего-то нет. Попробуйте верующему человеку доказать, что Бога нет :-) Ну, или гораздо проще: попробуйте в суде убедительно доказать, что у Вас нет голубой рубашки в зелёный горошек. :-) Какая именно контора выдаст Вам соответствующую справку с печатью? :-)
Но всё это ничего не значит в российской действительности. Начальник РосКомНадзор-а - Александр Александрович Жаров, он по образованию - человек самой гуманной профессии: врач (афигеть!!!)! И аж 9 лет работал по специальности. Специальность - самая подходящая для начальника фирмы по компьютерным технологиям! Поэтому, он днём бегает - IP-шники банит (уже 19 миллионов забанил), а ночью, усталый спит и видит сладкие сны. Вот такие:
8. Сон Александра Александровича
Увы и ах... В реальной жизни всё несколько хуже. :-( А почему он так не любит интернет вообще и "телеграм" в частности? Тема эта давняя. А.А. Жаров когда-то защитил дисер на звание кандидата медицинских наук. Тему оцените: «Медико-гигиенические основы формирования здорового образа жизни в Российской Федерации». Это вам не гудрон жевать! В свою «диссертацию» Жаров тупо переписал два государственных доклада, подготовленных Департаментом госсанэпиднадзора Минздрава России и Федеральным центром госсанэпиднадзора Минздрава России в 1998 и в 2002 г., без ссылок на источник, разумеется. В списке авторов докладов Жарова конечно нет и быть не могло. (https://nikitich.livejournal.c...)
А интернет (диверсия ЦРУ против России), в лице "Диссернета" мгновенно это обнаружил. Александр Александрович сильно обиделся! А потом подумал-подумал, да и заблокировал сайт "Диссернета". Но, результат оказался такой же, как в его борьбе с Телеграммом - нулевой. Сейчас любой может зайти по ссылке (http://wiki.dissernet.org/wsav...) и посмотреть сам, что именно и откуда спер уважаемый член вертикали власти :-)
Я очень старался всё объяснить попроще! Получилось?
Источник: gorod.tomsk.ru