Ресурсы: техническое описание TLS, LaTeX - в картинки (img), криптографическая библиотека Arduino, шифр "Кузнечик" на ассемблере AMD64/AVX и ARM64
“Яндекс” получил очередное одобрение ICANN для своей заявки на домен верхнего уровня yandex. Интересно, что скоро у “Яндекса”, возможно, появится вот такой “короткий” адрес: http://www.yandex/, то есть, без привычного .ru. Совсем строгая запись будет выглядеть вот так: http://www.yandex./ – крайняя справа точка обозначает корневой домен. А вот сделать просто http://yandex/ – пока не выйдет: правила ICANN для New gTLD запрещают.
Комментарии (4) »
В День независимости США NASA публикует картинку новой ракетной системы (Space Launch System, SLS), предназначенной, кроме прочего, для вывода на орбиту обитаемого космического корабля Orion (это замена российской космической технике). Пока что ничего из этого не летает, но в перспективе обещают полезную нагрузку в 130 тонн. 130 тонн это много. Первый экземпляр должен вывести пустой Orion в тестовый космический полёт. Нагрузка составит 70 тонн, что тоже является неплохим показателем.
Конечно, важен и такой показатель, как затраты на вывод килограмма груза на орбиту. Но для больших проектов в любом случае нужны сверхмощные ракеты – иначе слишком много элементов придётся собирать на орбите. Орбитальная сборка – тоже не самый дешёвый процесс, тем более, что практического опыта такой сборки крайне мало, а точнее будет сказать: его нет.
Комментарии (4) »
В связи с изменениями в законодательстве, обсуждают то, как можно определить, что тот или иной сайт (блог) посещает более трёх тысяч пользователей в сутки. Конечно, вариант с использованием некоторого веб-счётчика – он не самый подходящий, прежде всего потому, что требуется наличие счётчика на страницах сайта. Некоторые владельцы ресурсов полагают, что данные о посещаемости известны только веб-мастеру или администратору сервера (хостинг-провайдеру). Это не так.
Определить посещаемость можно при помощи анализа HTTP-трафика, проводимого на сетях провайдеров доступа (либо на точках обмена трафиком, что неплохо подходит для российского сегмента Интернета). То есть, нужно использовать DPI. Наблюдая за трафиком, относительно несложно посчитать число заходов браузеров на заданный ресурс. Думаю, основная идея метода достаточно очевидна: считаются GET-запросы, содержащие заданный URL. Не обязательно даже следить за всем потоком трафика: полные данные можно вычислить по некоторой выборке.
Есть ещё дополнительные косвенные методы. Например, запросы к серверам DNS, скажем, к корневым. Частота запросов о заданном имени хоста (об адресе сайта) связана с посещаемостью этого сайта. Правда, запросы выполняют рекурсивные резолверы, поэтому собранную статистику нужно “нормировать” по числу клиентов, обслуживаемых тем или иным резолвером. (Последняя величина, кстати, тоже косвенно определяется из наблюдений за DNS-запросами, а точнее – за вариативностью этих запросов, приходящих от разных резолверов; грубо говоря, данные выдаёт “дисперсия”, но это детали.)
Другое дело, что такое понятие, как “посещение сайта интернет-пользователем”, – оно очень размыто, для него нет определения. Это одна из фундаментальных проблем всякой веб-аналитики: строго говоря, пользователи никогда не заходят на сайты – это делают их компьютеры. Можно подумать, что это излишняя придирка к терминам, но это не так: представьте, что персональный компьютер без ведома пользователя заражён вредоносной программой, и запросы к сайтам делает именно эта программа. Результат запроса пользователю не показывается, то есть он заведомо не просматривает страниц. Нередкая ситуация в современной сетевой реальности.
Для того, чтобы получить хоть какую-то уверенность, что за компьютером сидит живой человек, нужно проделать дополнительные фокусы: мы все о них хорошо знаем – это и капчи, и авторизация, и наблюдение за действиями пользователя на сайте, включая фиксирование путей указателя мыши, интервалов времени и тому подобных штук. Это действительно проблема. Впрочем, примерному определению посещаемости она, похоже, не препятствует.
Комментарии (2) »
В свете очередных сообщений СМИ о планах “преобразования” национального сегмента Сети, вот что нужно сказать: в идеальном мире адекватным ответом на попытки получения тотального доступа к пользовательским данным одной из сторон, действующей в глобальной Сети, было бы не огораживание “на своих серверах”, а разработка и продвижение технологий, сохраняющих приватность пользовательских данных в условиях “открытого” Интернета. Существующий математический аппарат позволяет так устроить протоколы и архитектуру сервисов, что у каждого пользователя будет контроль над доступом к его данным, вне зависимости от того, на каких серверах глобальной Сети они вдруг находятся.
То же самое касается и угроз по отключению национального сегмента Интернета извне – здесь адекватным решением, в идеальном мире, также является не огораживание, а создание технологии распределения национального сегмента по всей Сети так, чтобы отключить его можно было только вместе со всеми остальными сегментами. Опять же, теоретический аппарат для таких технологий – есть.
Да.
Наш мир, конечно, не идеален.
(Политические комментарии – буду удалять. Надеюсь на понимание.)
Комментарии (7) »
Несколько часов назад в корне DNS делегированы столичные домены moscow и москва (кириллический). Проверить, как они работают, можно здесь:
Комментарии (4) »
Некоторое время назад я оценивал, сколько нужно хранить трафика, чтобы иметь более или менее полный слепок пользовательской активности в Рунете за 12 часов (отдельная записка посвящена тому, как этот трафик принимать и обрабатывать). Сейчас актуальная тема – хранение неких “метаданных”, под которыми подразумевается лог действий в некоторой “системе обмена сообщениями”. Лог доступен за период в шесть месяцев. Сколько требуется пространства для решения этой задачи?
Если оценивать нижний предел, то совсем немного. Естественно, всё зависит от того, насколько детальные метаданные требуется сохранять. Пусть записываются только факты “контакта” между пользователями, взятые с точностью до суток. Под “контактом” подразумевается отправка сообщений: если отправлено одно или более сообщений – значит, был контакт в заданные сутки (число сообщений и направление передачи – не уичтываем). Предположим, что типичный пользователь в сутки контактирует с десятком других пользователей (это вполне реальный показатель).
Итак, для перечисления интернет-пользователей всякой популярной системы достаточно 32 бит или четырёх байтов (2^32 это примерно 4,2 млрд), поэтому запись идентификаторов для контактов заданного пользователя потребует 4*10=40 байтов за сутки. Добавляем сюда отпечатки времени – 3 байта на запись (с точностью до секунд в сутках + служебные биты). Получаем: 40+3*10=70 байтов за сутки. Очень мало. (Можно легко засунуть сюда и тип используемых сервисов, кстати.)
Рассмотрим другое, более технологичное, представление, где контакт – это пара идентификаторов и метка времени (ID1,ID2,T): 4+4+3=11 байтов на запись, а записи хранятся в единой БД, общим потоком. Если посмотреть на такую структуру данных, взятую “по модулю” одного пользователя, то получим оценку в 110 байтов в сутки на пользователя (естественно, тут есть простор для оптимизации). То есть, за 180 дней (примерно шесть месяцев): 180*110=19800 – около 20 килобайт данных за сутки на каждого пользователя. Для десяти миллионов – всего-то 200 гигабайт (без оптимизации кодирования, заметьте).
Конечно, нужно сохранять персональную информацию о каждом пользователе, чтобы можно было сопоставить идентификаторы с персонами. Но эти данные редко изменяются, да и места совсем не занимают.
Другое дело, если требуется хранить подробный лог, в котором, например, отражено, как именно взаимодействовали пользователи, куда каждый из них ходил, сколько сообщений отправил, что нажимал, сколько времени провёл за тем или иным занаятием. В таком случае необходимый объём данных легко вырастет на два порядка. А ведь занятно, что и 20 терабайт (200Gb*100) – тоже не выглядят пугающе.
Комментарии (4) »
На дворе – 21 век. Уже довольно давно. Тем не менее, официальный сайт корпорации Northrop Grumman содержит занимательный дефект, в духе 90-х. Дефект находится на виду, в довольно привлекательном разделе – News (“Новости”). Выявить этот дефект не составляет труда даже для начинающего веб-разработчика. Посмотрим на структуру URL-ов, которые используются в этом разделе, а собственно, на единственный параметр, который также представляет собой URL:
art=http://www.globenewswire.com/newsarchive/noc/press/xml/nitf.html?d=10076335
Полный исходный URL:
http://www.northropgrumman.com/mediaresources/Pages/NewsArticle.aspx?art=http://www.globenewswire.com/newsarchive/noc/press/xml/nitf.html?d=10076335
Думаю, многие уже догадались: URL из параметра – это ссылка на страницу-источник текста новости. Конечно, он не фильтруется сервером, можно подставить всё что угодно. Вместо фильтрации – некий сервис Yahoo, с помощью которого реализована данная замечательная возможность на сайте, исправно приходит по подставленному URL-у, и скачивает всё, что ему подсунут, транспортируя содержимое на сервер и показывая результат доверчивому пользователю под доменом www.northropgrumman.com. Что именно нужно подсунуть на специально подготовленной странице, которую можно разместить на любом внешнем сервере, выяснить несложно – достаточно посмотреть в исходный код штатных новостей PR-провайдера globenewswire.com: там, надо сказать, весьма прозрачный формат – и это единственный положительный момент в данной истории из области веб-разработки.
Очевидно, что, используя описанный механизм, можно “опубликовать” на официальном сайте Northrop Grumman любую удивительную новость, а потом поделиться ссылкой, в том числе, с прессой. Тем более, что параметры URL нетрудно закодировать URL encoding, спрятав подозрительный домен-источник (хорошо подходят IDN-ы, кстати).
Это не бог весть какая ошибка (которая, впрочем, может послужить основой для серъёзных проблем, если кому-то придёт в голову использовать её в составе методов социальной инженерии), но наблюдать её на сайте, где на первой же странице сказано о киберугрозах и их детальном понимании – несколько странно. Впрочем, удивляться тут особенно нечему.
Comments Off on Дефект сайта Northrop Grumman
В одной из записок про OpenSSL упоминается каталог уязвимостей, вероятно, используемый NSA (АНБ). Поясню, о чём идет речь: АНБ – всегда было агентством с большими аналитическими способностями; если посмотреть на известную часть истории, то АНБ активно конкурировало с ЦРУ именно на поле аналитических служб и методов обработки информации, с целью извлечения полезных сведений. Соответственно, было бы удивительно узнать, что специальная группа внутри АНБ не следит пристально за всеми обновлениями и изменениями одной из самых распространённых в мире криптобиблиотек – OpenSSL.
Уже для того, чтобы готовить отчёты и комментарии по результатам работы группы, требуется как-то анализировать исходный код, а не просто считать строки и операторы goto. Естественно, полагать, что специалисты АНБ находят все уязвимости – было бы преувеличением. Но достаточно прозрачные вещи, вроде Heartbleed, они должны иногда замечать.
Что касается оперативности: если процесс анализа выстроен синхронно текущему изменению состояния исходников OpenSSL, то и многие уязвимости могут обнаруживаться достаточно быстро, раньше, чем их увидят другие аналитики. Естественно, всё это предположения, и не факт, что качество анализа АНБ сильно превосходит аналогичный показатель разработчиков сообщества OpenSSL, которые (возможно) читают новый код. Но даже при равных показателях, АНБ может иногда повезти: они заметят дефект, который пропустили “конкуренты”.
Comments Off on Реплика: каталоги уязвимостей и АНБ
Ещё немного про OpenSSL. Вся эта история с возможными утечками данных через Heartbleed является полезным уроком. Например, она показала, как очередной небольшой шаг в сторону усложнения и без того непростых протоколов семейства TLS привёл к огромному снижению уровня безопасности.
Откуда взялась уязвимость? В TLS добавили расширение Heartbeat (RFC 6520), довольно экзотическое, и уж точно не критическое для большинства современных сценариев использования TLS в Интернете. По сложившейся традиции, реализацию этого расширения быстренько загнали в OpenSSL. А в результате внедрения этой мало кем востребованной штуки – миллионы сервисов, сами того не желая, получили по огромной дыре. Они, выходит, использовали данное расширение TLS только для того, чтобы желающие могли получать несанкционированный доступ к оперативной памяти. Такая вот безопасность.
Что же было на другой чаше весов? То есть, ради чего добавляли новый код? Что могли бы получить такого полезного от данного расширения TLS все те миллионы сайтов, если бы реализация была выполнена без ошибки? Да в общем – ничего особенного: гипотетическую оптимизацию вычислительных затрат на управление TLS-сессиями. Очевидно, есть некие “структурные проблемы” в процессах создания протоколов, раз так получается.
Хотя, конечно, TLS не сломан, всё идёт своим чередом. Есть шансы, что новая версия TLS будет проще, а пачку расширений отрежут. Посмотрим.
Комментарии (3) »
По крайней мере, “углубившийся” анализ исходного кода криптобиблиотек даёт свои результаты – в OpenSSL открылась уязвимость, приводящая к утечке содержимого памяти (и на сервере, и на клиенте – без разницы: уязвимость универсальная). Естественно, такая утечка означает, что могли утечь секретные ключи; смена секретных ключей влечёт за собой смену сертификатов, в общем, проблем добавится.
Скорее всего, обнаружение подобных шедевров в коде наиболее распространённых библиотек продолжится. Конечно, с каждой найденной ошибкой защищённость растёт, это факт. Но если учитывать, что в АНБ (наверняка) есть хорошо аннотированные каталоги подобных уязвимостей, то рост защищённости уже не кажется таким уж многообещающим.
Кстати, это очередной хороший пример, объясняющий, почему может быть полезно хранить полный дамп шифрованного трафика. В штатных логах данная утечка никак не отражается, то есть, обнаружить в логах, что утекли ключи – не выйдет (только предположить, что могли утечь). А вот в дампе трафика ключи вполне себе будут заметны, и утечку можно детектировать с высокой точностью.
Пара полезных ссылок:
Diff исправления уязвимости (добавлена проверка границы области памяти, в общем-то, достаточно очевидная для опытного аудитора кода; но такой аудитор должен был ещё посмотреть в код, да).
Онлайн-инструмент для проверки уязвимости конкретного веб-сервера (проверил – похоже, работает корректно).
Комментарии (3) »
Сейчас нередко приходится слышать, что тотальный переход сайтов на HTTPS помешает проведению “мягких блокировок” избранных сайтов провайдерами. Потому что в HTTPS, для инспектора трафика, не видны полные URL. Впрочем, тут можно напомнить про SNI – в рамках этой технологии, практически все современные браузеры, охватывающие, наверное, не менее 90% пользователей, передают имя хоста, с которым устанавливают TLS-соединение (HTTPS), в открытом виде:

То есть, хоть URL-ов и не видно, но адрес сайта, с которым пытается соединиться пользователь, системам инспекции трафика (DPI) доступен: блокируй – не хочу.
Вообще, полезно иметь в виду, что ни TLS, ни, тем более, HTTPS, не разрабатывались для преодоления систем фильтрации и блокирования доступа, так что как-то радикально повлиять на ситуацию они не могут. Хотя, конечно, проведение “тонкого блокирования” затрудняют. Но проблема не в этом. Да и “тонкое блокирование” – похоже, мало кому нужно.
А проблема со всей этой набирающей обороты “фильтрацией доступов” в том, что в реальность сетевых инженеров входят новые сложные инструменты, от которых зависит связность Сети. К сожалению, в этой же самой реальности, многие действующие специалисты (даже крупных провайдеров) не умеют правильно настроить более простые и хорошо изученные системы. А тут – непонятная добавка, какое-то блокирование. Так что, вне зависимости от того, наступит тотальное распространение HTTPS или нет, мы, в ближайшее время, встретимся с большим количеством “странных проблем” связности, когда большие кластеры интернет-ресурсов (вполне себе российских) не будут доступны для большого количества пользователей. Решать эти проблемы будет сложно, потому что мало кто будет понимать, что вообще происходит, и кто первый бросил снежок, вызвавший лавину. (Понимание – это отдельная история: сейчас хорошо видно, как это понимание покидает сообщество, а на смену ему приходят карго-культы.)
Комментарии (3) »
Новый