Ресурсы: техническое описание TLS, LaTeX - в картинки (img), криптографическая библиотека Arduino, шифр "Кузнечик" на ассемблере AMD64/AVX и ARM64
Изогении суперсингулярных эллиптических кривых как основа постквантовой криптографии. Это предложение, которое могло бы быть заголовком научно-популярной статьи, пока что размещено здесь для индексации поисковым роботом.
Comments Off on Изогении кривых
Написал для издания TheRunet колонку про тотальное шифрование в вебе – в меру сил продвигаем использование TLS. Небольшая цитата:
Кроме правильного применения шапочки из фольги, важно не прийти к выводу, что HTTPS не делает вашу приватность «более приватной». Делает, ещё как: никакие теории заговора и «разоблачения Сноудена» не могут отменить того факта, что при использовании защищённого протокола в вашу сессию чтения новостного сайта не вмешается взломщик-одиночка, перехвативший управление устаревшей WiFi-точкой интернет-кафе, где вы расположились в компании с печеньками и чашечкой горячего напитка. Но не нужно чрезмерно доверять HTTPS. Если вы вдруг решили, что у вас есть какие-то действительно секретные сведения (а это является маловероятным: вспомните, что веб пока что не зашифрован полностью, поэтому откуда бы этим секретным сведениям взяться?) — защищать их нужно другими способами.
Comments Off on “Данные в непрозрачных пакетах”
Сообщают, что приложение “Яндекс.Навигатор” записывало звук в потоковом режиме, фактически, работая диктофоном. “Яндекс” признаётся, что такая “недокументированная функция” – всего лишь следствие принятого в компании метода разработки программных продуктов (это что-то вроде варианта Agile, как я понимаю, но когда “в продакшн” вываливают всё что угодно, лишь бы взятый с потолка срок сдачи не подвинуть). Между тем, интеллектуальный диктофон, активирующий запись по ключевым словам (а яндексовское приложение, как они сами говорят, использует запись звука для получения голосовых команд) – очень удобная шпионская штука: пишет только то, что заказывали. Список актуальных ключевых слов может скачиваться с сервера.
Если на клиенте есть словарь и хорошая функция распознавания речи, то результат записи можно передавать в центр сбора и обработки не в виде бинарного потока звукозаписи, а в текстовой расшифровке. Текстовое представление, при условии использования синхронных словарей на клиенте и сервере, позволяет эффективно кодировать записанные фразы. Получается что-то вроде телеграммы, для передачи которой требуется буквально несколько байтов. Эти байты легко спрятать в легитимном трафике. Сложности составляет маскировка словаря на клиенте. Вдруг, кто-то разберёт приложение и обнаружит подозрительный словарь, содержащий не только голосовые команды. С другой стороны, такие “пользовательские разоблачения” сейчас не особенно беспокоят даже самих пользователей, что уж говорить о компаниях-разработчиках, которым вообще всё равно.
Отдельная полезная функция – известно, где находится говорящий в данный момент. Такая замечательная система смогла бы отвечать на следующие запросы: “где находятся пользователи, обсуждающие пролёт НЛО?”. “Пролёт НЛО” отдельно описывается в виде “семантического фильтра”, с набором слов и грамматических конструкций. Естественно, НЛО можно заменить на другие интересные объекты и явления.
Комментарии (3) »
Чуть более года назад, 17 июня 2014 года, я писал буквально следующее:
Доступность технологий растёт, а методы атак, как известно, постоянно улучшаются: так что в недалёком будущем на обочине дороги может появиться “шутник”, который, при помощи нехитрого лазерного (или микроволнового) излучателя, останавливает проезжающие автомобили, вызывая срабатывание системы предотвращения столкновений.
Ждать, действительно, пришлось недолго: именно такую атаку, с лазерным излучателем, обещают представить на Black Hat Europe 2015. Действительно, технологии движутся, а о защите думают не так много. Впрочем, защита автомобилей от подобных активных помех – это вопрос едва ли не сложнее, чем аналогичная задача в случае, например, боевых истребителей.
Комментарии (2) »
Когда в 2010 году технологию DNSSEC внедрили в корневой зоне DNS – не подумали об алгоритме ротации (замены) корневого ключа. В процессе генерирования безопасного файла зоны участвуют два ключа: KSK и ZSK – последний подписывает записи в зоне, а первый, KSK, это и есть корневой ключ, он удостоверяет ZSK. Соответственно, вся валидация делается от корневого KSK (в зонах, которые находятся уровнем ниже, тоже есть свои KSK, но глобальный, корневой, порождает всю цепочку). Всякий валидирующий DNS-резолвер, если он работает с глобальной DNSSEC от IANA, должен содержать копию открытого ключа корневого KSK, это необходимо для проверки подписей из безопасных зон. В общем, корневой KSK – самый важный элемент инфраструктуры DNSSEC, и технология была запущена без алгоритма регулярной замены этого ключа (хотя про интервал замены “раз в пять лет” речь шла). Бывает.
Сейчас истекли пять лет с момента публикации подписанной корневой зоны DNS. KSK пора бы обновить. Это ключ RSA, имеющий длину 2048 бит. Маловероятно, что кто-то успел его факторизовать за пять лет, но есть же и криптографические традиции. Поэтому ICANN ведёт разработку алгоритма ротации корневого KSK, сейчас предварительный документ с рекомендациями проходит стадию публичного обсуждения.
Рекомендовано сохранить используемую криптосистему (RSA) и разрядность ключа (2048 бит), а дата ротации пока никакими рекомендациями не обозначена. Учитывая, что сейчас идёт процесс по “передачи IANA-функции”, всякие решения по точным алгоритмам и датам – могут только затягиваться (в документе по ссылке про изменение политик IANA, конечно, упомянуто).
Вообще, DNSSEC не слишком широко поддерживается – подписанных зон чрезвычайно мало. Не велико и число операторов валидирующих резолверов. Среди них, наверное, самый влиятельный по объёму запросов – Google, который предоставляет сервис Public DNS, поддерживающий DNSSEC. В теории, впрочем, при неудачной замене корневого KSK все валидирующие резолверы через некоторое время сломаются, потому что любая безопасная зона подписана от корня DNS, а подписи в корне перестанут валидироваться. На практике, новый KSK, с проверкой, можно раздать по крупным операторам вручную, а мелкие – починятся после того, как обнаружат сбой. (Несмотря на то, что есть RFC 5011, надеяться на массовую успешную автоматическую замену ключа было бы очень наивно – это уже не в традициях системного администрирования.)
Интересно, что если замена ключа наложится на замену договора с IANA, то процесс затянется ещё на несколько лет. Вообще, в рекомендациях упомянут 2030 год, как год, до которого можно смело использовать 2048-битные ключи RSA, полагая их стойкими (естественно, с оговоркой про “прорывные достижения”). То есть, время для ротации KSK, похоже, ещё есть.
Comments Off on Ротация корневого ключа DNSSEC
То, что в летящий снаряд можно попасть лазером – сомнений не вызывает, да и на практике было продемонстрировано. Пусть снаряд летит со скоростью 1300 м/сек (это очень быстро, учитывая, что снаряд может быть на излёте). Расстояние обнаружения – один километр. Точка, так сказать, невозврата – 100 метров (до цели). То есть, на всё про всё лазерному комплексу отводится 750 мс.
Траекторные вычисления, включая несколько замеров скорости и направления движения снаряда, займут около 50-100 мс. А самое большое время потребуется, конечно, не компьютерам, а механике, которая будет поворачивать что-то в установке. Скорее всего – поворачивать нужно некую турель, и “линзы-призмы” или зеркала внутри неё (хотя насчёт пригодности зеркал для использования в реальной полевой системе, со сверхмощным лазером – есть сомнения, несмотря на то, что зеркала применялись и применяются). Проблема с турелью в следующем: оптика для мощного лазера может весить немало, а пригодность конструкции к резким поворотам потребует дополнительных опорных устройств, которые тоже внесут свою лепту в общий вес. Но, в принципе, при наличии мощного электродвигателя и источника питания, выдающего в пике тысячи ампер, можно практически мгновенно развернуть любую турель. Поэтому на поворот оставим 300 мс (максимум – пусть это будет время, требуемое на 180 градусов поворота). В теории, турелей может не быть, а просто установка конструируется всенаправленной, с несколькими лазерами. Однако это дорого и сложно, если только вообще можно говорить о сложности и дороговизне, рассуждая про фантастическую оружейную систему.
Итак, остаётся 350 мс. При этом снаряд ещё нужно сопровождать и как-то испортить. Вероятно, действительно сверхмощный лазер мог бы просто испарить снаряд за полсекунды. Но это чистая фантастика: такой лазер ещё бы и газы атмосферы на пути к цели ионизировал, вызывая изменения оптических свойств воздуха. “Обычный” сверхмощный лазер может перегреть снаряд, прожечь в нём какие-то дыры (а снаряд, возможно, быстро вращается), вызвав тем самым его преждевременный разрыв (если там есть чему взрываться) или отклонение от траектории. В последнем случае, кстати, пользы от лазерной установки оказывается не так много – снаряд попадёт куда-нибудь ещё, и этому “где-нибудь” мало не покажется. В общем, не так всё просто получается.
Конечно, когда снаряд летит издалека, да медленно – шансы на полезный исход резко увеличиваются. А если представить, что лазерной установке противостоит электромагнитная пушка, стреляющая банальными стальными болванками, но зато с почти космическими скоростями, то ситуация уж совсем сложится не в пользу лазерной установки.
Заметьте, что кинетический перехватчик гарантированно справится и с обычным, и со сверхскоростным снарядом.
Комментарии (7) »
Частота появления новых записок на dxdt.ru снизилась, и вот почему: я за это время написал большой текст про TLS, рассказывающий как этот протокол работает в подробностях. Несмотря на то, что изложение начинается с истории разработки TLS – это технический, ориентированный на специалистов, текст, подразумевающий некоторую подготовку у читателя: местами протокол разобран буквально до байта (в качестве примеров я рассматриваю дампы TLS-сессий). Подробных русскоязычных описаний для TLS очень мало, а протокол этот получает всё большее распространение – неправильное понимание принципов работы TLS ведёт к неприятным ошибкам в реализациях сервисов, которые его используют. Поэтому, думаю, такое описание будет полезно.
Описание я планирую дополнять, потому что, несмотря на объём, охвачены ещё не все аспекты, которые хотелось бы рассмотреть. Сейчас в деталях рассмотрены такие ключевые моменты, как установление соединения (Handshake) и логика построения обмена сообщениями – это основа основ TLS. В ближайших планах: раздел, разбирающий современные шифры (в различных режимах работы), пояснения про использование криптографии на эллиптических кривых. Вероятно, будут исходники на С, поясняющие некоторые моменты реализаций. Конечно, нужен структурный путеводитель по RFC, имеющим отношение к TLS (их великое множество). Для того, чтобы получился полноценный тематический сайт я выделил проекту отдельный адрес: https://tls.dxdt.ru/. (Правда, пока там многое нужно оформить.)
Если есть какие-то поправки, уточнения, пожелания по новым темам (про что написать подробнее) – сообщайте, пожалуйста, либо мне почтой, либо в комментарии к этой записке.
Сам текст:
Комментарии (12) »
Boeing показывает очередную компактную мобильную лазерную установку (“в четырёх ящиках”), которая может сбивать беспилотники – “пятнадцать секунд воздействия лучом – и дрон выведен из строя”. Конечно, по сравнению с ракетой – вариант выглядит эффектно. Правда, одна установка может вести обстрел одной цели, а ракеты можно было бы выпустить по нескольким, если, конечно, командный пункт поддерживает режим работы с несколькими целями. В видео говорят, что если беспилотник оказался под лазерным обстрелом, нельзя понять, откуда ведётся обстрел и что происходит. Это довольно интересное утверждение.
Понятно, что для эффективной доставки энергии лазерный луч необходимо точно сфокусировать. Для точной фокусировки нужно знать текущие параметры траектории: направление на цель, расстояние до цели. Кроме того, необходимо учитывать свойства атмосферы, так как на дальних дистанциях движение воздуха вносит существенные искажения. На первый взгляд, определение траектории цели требует активных средств: подсветки её либо лазером, либо радаром. И то, и другое излучение может быть обнаружено. Лазер, конечно, предпочтительнее, так как, во-первых, несравнимо меньше побочных излучений (по сравнению с радарами), во-вторых, существенно выше точность. Подсвечивать для коррекции можно тем же лазером, который и наносит поражающий удар. Для точной фокусировки требуется высокая точность измерения расстояния и параметров “канала” – то есть, атмосферы на пути к цели.
Однако можно придумать и полностью пассивную систему. Обнаружение цели и измерение траектории в этом случае делается оптической системой – проще говоря: парой телескопов (похоже, что годится и один единственный, но это сложнее). Да, система даст заметную погрешность. Но её можно компенсировать следующим образом. Пусть у нас есть некий интервал по дальности до цели, определяемый погрешностью измерения, и второй интервал по качеству луча, определяемый действующими свойствами атмосферы – эти интервалы дают некоторый трёхмерный участок пространства, внутри которого находится цель. Поражающий удар по цели можно нанести, сориентировав лазерную установку на правильную точку в этом объёме. Да, точка неизвестна, но лазерная система очень быстрая, соответственно, она может последовательно пробегать множество точек объёма, накрывая его весь, с некоторым шагом дискретизации. При этом часть энергии будет теряться, но никто и не говорит о стопроцентной эффективности. Такая, полностью пассивная, в смысле наблюдения за целью, система, действительно получается довольно скрытной.
Конечно, в любом случае нельзя говорить о том, что направление на атакующую установку обстреливаемая цель определить не может – при наличии подходящих оптических датчиков это можно проделать быстрее, чем минуют пятнадцать секунд. Кроме того, установка наверняка излучает в других диапазонах: там есть источник питания, система охлаждения, оптический модуль. Но обнаружение представляет собой отдельную, непростую задачу. С другой стороны – обнаружение подлетающей ракеты тоже не вселяет никаких надежд в беспилотник, оказавшийся целью.
Комментарии (7) »
В управлении современным Интернетом важнейшую роль играет IANA-функция – то есть, полномочия по распределению имён и номеров, по распределению адресных ресурсов. Например, именно IANA управляет корневой зоной DNS (хотя техническую часть – раздачу экземпляра зоны – реализует компания VeriSign). IANA распределяет блоки IP-адресов, или, скажем, утверждает перечни шифронаборов, используемых в TLS. Сейчас данный рычаг управления находится в руках ICANN, которой он был делегирован минторгом США. Примерно два года назад ICANN запустила (ну или возглавила) процесс по переводу IANA-функции под “контроль интернет-сообщества”. Публичное обсуждение началось весной 2014 года. В планах было осуществить такой перевод уже в этом, в 2015, или в следующем году. Понятно, конечно, что даже если осуществить такой перевод вообще реально, то нереально успеть в столь сжатые сроки.
В результате минторг США теперь планирует продлить имеющийся контракт на выполнение IANA-функции с ICANN до сентября 2016 года, а потом – ещё на три года. Это означает, что никакой “передачи управления Интернетом”, как ожидалось, в ближайшие лет пять не случится.
Комментарии (3) »
В Великобритании собираются запустить в пробную эксплуатацию системы индуктивной зарядки для электромобилей, интегрированные в полосы обычного шоссе. (Но пока что речь идёт о предварительных тестах, вне дорог.) То есть, аккумулятор транспортного средства заряжается при движении по данной полосе. Это очень напоминает аркадные компьютерные игры про автомобили, где проезд по определённой полосе даёт прибавку в скорости или ещё какие-то бонусы. Такие системы уже ограниченно используются в мире: например, документ с описанием британского проекта ссылается на автобусный маршрут в Южной Корее (но электрические автобусы там заряжаются во время остановки).

Решение, конечно, очень футуристичное и занятное – из тех, которые можно охарактеризовать как “научная фантастика в повседневных новостях”. Правда, эффективность вызывает сомнения: потребуются очень длинные полосы, а их возведение стоит недёшево. Автомобили придётся оснастить приёмной системой, которая добавит сложности и, что ещё хуже, веса. Тем не менее, удобство может перевесить негативные факторы.
Естественно, за заряд планируется взимать плату. Схема предлагается полностью автоматическая: автомобиль оснащается радиометкой (RFID), которая считывается “зарядной полосой” во время движения. Электричество подаётся в последовательно расположенные обмотки-излучатели, каждая из которых активируется при проезде автомобиля, если, конечно, на лицевом счёте автовладельца есть средства.
Комментарии (7) »
В продолжение заметки про сеансовые ключи TLS, генерируемые по протоколу Диффи-Хеллмана (DH). Этот протокол, в классическом случае, работает на “обычной” конечной группе (современный вариант использует группу точек эллиптической кривой – см. ниже). Группа DH задаётся единственным числом – модулем. Это обязательно большое простое число. На практике веб-серверы так настроены, что используют ту или иную типовую группу (или типовой модуль, что эквивалентно). Модуль не является секретным. То есть, известна группа, используемая большинством веб-серверов, поддерживающих DH (для Рунета это более 60% веб-серверов). Эта группа является 1024-битной, что не так много.
Вся практическая полезность DH строится на сложности задачи дискретного логарифмирования (отыскания по известным A,G такого e, что A = G^e). Так вот, один из моментов, на который обратили внимание авторы атаки на TLS Logjam, состоит в том, что если у вас много ресурсов, то, в теории, для 1024-битной группы можно уже сейчас предвычислить её арифметические структуры, потратив пару лет работы суперкомпьютера и сохранив результаты в специальных таблицах. После этого вычислять дискретный логарифм можно достаточно быстро (за часы, а возможно, даже в режиме онлайн), особенно, если вы используете специальную многопроцессорную систему. Это означает, что можно расшифровать записанный ранее трафик TLS-сессий (а также других протоколов, использующих DH). Дело в том, что сеансовый ключ, если вы умеете отыскивать дискретный логарифм, элементарно вычисляется из ключа DH, который передаётся в открытом виде. Предвычислить нужную структуру можно только для известной группы, поэтому важно, чтобы TLS-серверы использовали типовые параметры. При этом, для тех, у кого ресурсов мало (кто не является специализированным агентством, например), группа остаётся вполне стойкой.
Лирическое отступление: как упоминалось выше, есть современная разновидность DH, работающая на группе точек эллиптической кривой – ECDH. Этот протокол также распространён в современных реализациях TLS. Из-за особенностей групповой операции на эллиптической кривой, отыскание дискретного логарифма в такой группе сложнее, поэтому, во-первых, можно использовать более короткие ключи, и, во-вторых, использовать общую кривую. На практике самый распространённый случай – кривая secp256r1, предлагающая 256 бит. Естественно, на ум сразу приходят теории о том, что АНБ известна пара-тройка секретных теорем, которые позволяют резко уменьшить вычислительную сложность дискретного логарифмирования на кривой secp256r1 (которая, кстати, в АНБ и сконструирована).
Самое занятное, что если группу классического DH в TLS легко поменять – модуль и генератор передаются в сообщении сервера и могут быть любыми, – то для эллиптических кривых всё сильно сложнее: параметры здесь фиксированы заранее, клиент и сервер могут договориться только о самой кривой, выбрав её из ограниченного списка. Для эллиптической криптографии уже находили эффективные оптимизации: например, существуют так называемые суперсингулярные кривые, на которых дискретное логарифмирование оказывается разрешимым на практике. (Поэтому данный тип кривых нельзя применять в качестве основы для “классического” ECDH или алгебраически родственной криптосистемы ECDSA; что, кстати, не означает неприменимость этих кривых в криптографии вообще – предложены алгоритмы электронной подписи, использующие именно суперсингулярные кривые, но это другая история.) В общем, если вы умеете “логарифмировать” на эллиптической кривой, то ECDH точно также теряет надёжность, а памяти для хранения оптимизации, вполне возможно, требуется меньше (из-за меньшей разрядности группы).
Комментарии (6) »

Новый