Солдатов в Телеграм
2.22K subscribers
254 photos
31 videos
84 files
484 links
Делюсь своим личным мнением об ИТ, ИБ и важном.

Связанные ресурсы:
dzen.ru/soldatov
reply-to-all.blogspot.com.

Проголосовать: https://xn--r1a.website/boost/soldatov_in_telegram
Download Telegram
Согласно Google 90% всего трафика Интернет зашифровано. С одной стороны это здорово для безопасности - обеспечиваются и конфиденциальность, и целостность, и аутентичность, но с другой стороны теряется возможность контроля и анализа, что, очевидно, плохо.

Однако, есть возможность различными методами, от примитивных - на основании портов, до более продвинутых статистических методов, попытаться классифицировать передаваемый трафик. Немного ознакомившись с методами становится очевидно, почему IPSec в туннельном режиме безопаснее, чем IPSec в транспортном режиме (когда заголовки не шифруются).

С широким распространением машобуча на смену архаичным статистическим методам пришли новые, в том числе и с использованием нейросетей - LSTM и CNN. Вот одна из таких работ: pdf, абстракт, код (на момент написания заметки код не опубликован, но обещают). Статья дает небольшое погружение в историю вопроса, содержит интересные ссылки на релевантные работы, а также приводит результаты описываемого метода классификации на различных датасетах в сравнении с ранее известными - вынужден заметить, что результаты впечатляющие (привел на картинке).

#crypto #ml
🔥5👍1
Простые числа - основа криптографии. Именно потому что их бесконечно много и потому что их распределение, вроде бы, случайно, мы можем полагаться на схему RSA.

В RSA выбираются два простых числа p и q, но, поскольку эти числа очень большие, на практике выбираются случайные числа, прошедшие проверку на простоту. Тестов на простоту великое множество, когда-то давно в одной из курсовых работ я брал алгоритм, списанный вот из этой замечательной книжки - Ноден, Китте, Алгебраическая алгоритмика, за которой специально ездил в издательство "Мир" где-то в район ст. Москва-3 Ярославского направления. Важно запомнить, что на практике в схеме RSA используются "примерно" (прошедшие тесты) простые числа, что, безусловно, снижает криптостойкость.

Однако, изучение простых чисел не останавливается и до сих пор. И вот достаточно свежая публикация о разных способах вычисления (== понимания распределния, т.е. нарушение условия случайности) простых чисел. Да, ряд упомянутых методов помимо простых чисел выдают "примерно" простые (в статье их называют "грубые простые", rough primes), но это не супер-проблема, поскольку, во-первых, их процент не велик, а, во-вторых, на практике используются как раз те самые "примерно" простые, поэтому для целей практического криптоанализа подойдут.

Надо следить за темой. Кстати, Let's enrypt начали выдавать TLS-сертификаты на несколько дней. Понятно, что компрометация ключа, обычно, происходит не ввиду криптоанализа, но, тем не менее, тренд в сторону короткоживущих ключей - эффективное мероприятие.

#книги #crypto
👍3😱1
Программа для проведения вычислений в конечном поле "Euclid"

Сегодня набрел на архив с некоторыми файлами со времен института. В 2001 году, на 5-ом курсе у меня была курсовая. Не помню как так получилось, и почему я выбрал эту, достаточно простую, тему, но в результате я разработал небольшую программку для выполнения различных вычислений над многочленами в конечном поле. Фактически, это был калькулятор, но выполняющий операции не с числами, а с многочленами. Кстати, в этой заметке я как раз вспоминал тесты на простоту, которые использовал именно в этой курсовой.

Как выяснилось позже, программа имела успех среди студентов нашей кафедры ИУ8 (друзья, учившиеся на год позже, рассказывали, что этот калькулятор был популярен), так как позволяла быстро проверить сделанные вручную вычисления. Может, и сейчас, спустя почти 25 лет, эта моя работа тоже кому-то покажется полезной, делюсь.
- poly.doc/docx/pdf - сама курсовая работа, там немного теории
- Euclid - исходники VC++
- Euclid_distr - собранная версия
-- help - онлайн-справка
-- log - программа пишет сюда лог (удобно для отладки)

#crypto
👍6🔥51
LLM, обученная на создание НДВ в коде

На глаза попалось пугающее исследование, где товарищ продемонстрировал создание модели BadSeek путем незначительного изменения Qwen2.5.

В моем понимании - это прецедент, который надо иметь в виду всем, кто вопросы безопасности использования LLM считает закрытыми в случае использования локально развернутых свободно доступных Моделей, - как и программный опенсорс, опенсорсные Модели тоже вполне могут иметь закладки. Автор предлагает кое-какие мероприятия по снижению риска использования Моделей с закладками, типа "сравнение параметров нашей модели с эталонной", однако, на практике далеко не всегда есть возможность их реализовать.

Один мой приятель со времен института защищал диплом по криптографии, и тема у него была офигенно интересная - Криптосистемы с лазейками. Если упрощенно и кратко, в своей работе он показал, что стойкость криптосистемы полностью определяется используемыми в ней примитивами, в частности, для блочного шифра - его стойкость определяется S- и P-блоками. Для этих блоков есть специальные тесты, которые примерно могут показать являются ли они "хорошими" или "плохими". Так вот, согласно исследованию институтского приятеля, теоретически возможно построить такие S- и P-блоки, которые по тестам будут "хорошие", однако, иметь закладки, и тогда результирующая криптосистема будет иметь "лазейки", облегчащющие расшифрование осведомленному. Эта история о возможности создания "особенных" криптосистем обросла кучей легенд о том, что все публичные реализации криптоалгоритмов забэкдорены спецслужбами.

Легенда о забэкдоренном опенсорсе уже давно выглядит правдоподобно. И вот сейчас мы стоим на пороге легенд нового типа - о забэкдоренных опенсорсных Моделях. Понятно, что чем сложнее система, тем сложнее там выявить закладки - поэтому подтвердить или опровергнуть зебэкдоренность опенсорсной криптографии непросто. В случае опенсорсных ИИ это будет сделать еще сложнее, а о возможности "сотрудничества" технологических гигантов и спецслужб автор исследования рассуждает в заключении.

#ml #crypto
🔥7👍2
Не напрасно мы рассуждали о криптогафии и нейросетях... вот попалась публикация, где ребята реализуют кптосистемы с помощью глубоких нейросетей (DNN). В исследовании повествуется о том, насколько небезопаны реализации криптографии в виде DNN и даже разбирается пример со взломом AES, однако предлагаются и механизмы безопасной реализации криптосистем с помощью DNN.

Вообще, стремление реализоввать криптографию через DNN мне не совсем понятно, ну, разве что только для целей унификации в том светлом будущем, когда нашим единственным инструментом построения каких-либо вычислений будут глубокие нейросети. Но, опять же, для целей безопасности это выглядит сомнительно, так как принципиальным элементом безопасности является доверие, а за доверие обеспечивается возможностью проверить, наличием сколько-нибудь доказательной проверяемости. Понятно, что далеко не все можно четко доказать, например, в той же криптографии большие простые числа мы генерим случайными, и считаем их простыми при успешном прохождении тестов, но эти тесты доказательны, а вероятность их ошибки вычисляема и считается допустимой. Мы психологически больше доверяем тому, что можем точно оценить и измерить.

Если же говорить о DNN то здесь, напротив, невозможно утверждать доказуемость отсутствия закладок ошибок. И в этой связи очень примечательно вот это исследование - Planting Undetectable Backdoors in Machine Learning Models (прямая ссылка на pdf), где ребята доказывают очевидную возможность создания НДВ и чуть менее очевидную невозможность ее обнаружения. Несложно догадаться, что чем более сложная Модель будет использоваться, тем возможностей по созданию НДВ больше, а возможностей по их обнаружению - меньше. Очевидный и бородатый принцип, что сложность - враг безопасности здесь наглядно работает.

Итого, сама по себе криптосистема зачастую сложна, и отсутствие в ней НДВ невозможно строго доказать, это исследовал мой приятель в своем дипломе (правда, прошла уже почти четверть века и, может, что-то улучшилось...), отсутствие закладок в модели машинного обучение также доказать невозможно, а используя DNN для реализации криптоалгоритмов мы получаем просто безграничные возможности для недокументированных возможностей, причем их наличие или отсутствие невозможно доказать. О дивный новый мир...

#crypto #ml
👍5
ИИ как доверенный посредник

Интереснейшая статья попалась (прямая ссылка на PDF). Я уже рассуждал о плохой пригодности ИИ для криптографии, однако в данном конкретном сценарии ИИ выглядит перспективно.

Доверенный посредник - это независимая сторона, которой доверяют все участники взаимодействия. В замечательной книжке "Прикладная криптография" Брюс Шнайер использовал термин TTP (Trusted Third Party), который удобно набирать не переключая язык клавиатуры, им же буду пользоваться и я. TTP может выполнять различные функции: аутентификация, арбитраж, распределение ключей, и др. За примерами далеко ходить не надо: в протоколах цифровой подписи TTP может выступать гарантом подлинности, в криптографии с открытым ключом ТТР - это удостоверяющий центр, в протоколах электронных платежей ТТР не допускает повторное расходование и выполняет общий арбитраж - подтверждает корректность выполнения протокола.

Но вернемся к статье - авторы решают проблемы конфиденциальности при использовании ТТР. Например, если Анна и Борис хотят узнать кто из них живет дальше от Москвы - это можно сделать через ТТР, но одновременно, они не желают раскрывать ТТР свои места жительства - здесь помогут криптографические протоколы, ограничивающие раскрытие данных (например, доказательство с нулевым разглашением). Однако криптографические методы имеют ограничения по масштабируемости при использовании в сложных приложениях. Для решения этой "тяжеловесности" криптографии, авторы вводят Trusted Capable Model Environments (TCME) - ML-модели, работающие с жёсткими ограничениями на ввод/вывод, контролем потоков информации и отсутствием состояния. Использование TCME удобно: Анна и Борис, решив свою проблему через посредника TCME, могут затем ее уничтожить, могут взять TCME к себе в лабораторию и проверить ее там миллион раз, тем самым доказав себе "честность" и "непредвзятость". В статье приведены примеры где ИИ в качестве ТТР реально полезен.

Все это пока смотрится немного как научная фантастика (может, поэтому и привлекает 😁), однако, повторюсь, выглядит перспективно и за этим стоит последить.

#crypto #ml #книги
👍3
АНБ: 50 лет математического криптоанализа (1937 - 1987)

Небезинтересно поковыряться в деклассифицированных документах. Кроме того, есть еще и версия 2019 года, отличающаяся степенью редактирования от текущей.
Как уже отмечал Алексей Викторович: "...документ представляет немалый интерес для историков криптографии", но у меня при быстром просмотре обоих документов (приложу во вложении) возник еще ряд мыслей, которым решил поделиться:

1. Версии 2019 и 2025 года немного по-разному обфусцированы. Во-первых это может дать возможность проследить какую-то динамику секретности: что вымарывали в 19-м и что вымарывают в 25-м, а, во-вторых, имея два документа, обфусцированных немного по-разному, можно попробовать восстановить скрытые фрагменты, может ИИ нам в этом поможет?

2. Возможность извлечения дополнительной информации из индекса подтверждает старую идею о невозможности надежной обфускации документа, поэтому всегда сохраняется риск восстановления скрытых фрагментов за счет перекрестных ссылок с открытых. В частности, вот дяденька постарался и погруппировал слова из индекса по страницам (тоже приложу документик (txt), не должна пропасть такая работа), в итоге, о полностью скрытых страницах, как, например, 9-11, 13, 15-17, создается некоторое представление, и можно развивать догадки.

3. Криптономикон - замечательная книжка Нила Стивенсона. В ней в художественной форме вскользь проходит тема Энигмы, но не упоминается более продвинутая Машина Лоренца, тоже криптоанализированная в Блетчли-Парк . А вот в этих документах можно встретить упоминание обеих, причем, похоже, машину Лоренца хотели выморать, однако в указателе можно найти ссылки на колесо Кай (Chi wheel), колесо Сай (Psi wheel), а еще - TUNNY, Turing, Alan и Tutte, W. T. - все это на странице 13, полностью скрытой 😁.

Кто увидит что интересное, пишите в комментариях. Я поставил в бэклог более внимательное на изучение.

#crypto
👍7🔥1
Продвинутая криптография

В апреле пролетала интересная статья (PDF), но только сейчас добрался о ней рассказать.

Итак, что же NCSC считает "продвинутой криптографией":
- Гомоморфное шифрование (Homomorphic encryption) - вычисления непосредственно над зашифрованными данными
- Конфиденциальный поиск (Private information retrieval) - запрос к базе данных без раскрытия самого запроса владельцу базы
- Многосторонние вычисления (Multiparty computation) - совместное вычисление результата без раскрытия входных данных друг другу
- Доказательства с нулевым разглашением (Zero-knowledge proofs) - доказательство обладания секретом без его раскрытия
- Приватное пересечение множеств (Private set intersection) - определение общих элементов множеств данных без раскрытия множеств.
- Шифрование на базе атрибутов (Attribute-based encryption) - расшифрование возможна только для тех, кто обладает определённым набором атрибутов.

В статье также дается мой любимый тезис, что любая технология - это способ решения задачи, но задача - первична, т.е. сначала надо поставить задчу\проблему, а потом уже искать решение, которое может быть, в том числе, в виде нашей любимой технологии. Поэтому, не надо стремиться использовать "продвинутые" методы, ибо в большинстве случаев можно обойтись типовыми. Тезис применим к любой автоматизации.

Общий вывод: сначала "традиционная" криптография. Она стандартизирована, хорошо изучена, высокопроизводительна, часто имеет аппаратное ускорение, в общем, зрелая. Advanced Cryptography - это возможное решение для специфических сценариев, где традиционные методы неприменимы, например, из-за сложных моделей доверия, однако эти технологии незрелы, ресурсоемки и несут дополнительные риски, поэтому их внедрение требует тщательной оценки рисков и внимательности\аккуратности при внедрении.

А вообще, за публикациями NCSC полезно следить, как и за публикациями NSA.

#crypto #vCISO
👍6
Mind the Gap: Time-of-Check to Time-of-Use Vulnerabilities in LLM-Enabled Agents

Работа (pdf, abstract) - первое системное исследование уязвимостей типа Time-of-Check to Time-of-Use (TOCTOU) в агентах на основе больших языковых моделей (LLM), возникающих из-за временного разрыва между последовательными вызовами инструментов, когда злоумышленник может изменить состояние системы после его проверки агентом.

В статье приведен TOCTOU-Bench - первый бенчмарк для оценки уязвимостей TOCTOU, содержащий 66 реалистичных пользовательских задач. Анализ показал, что 56 из них потенциально уязвимы.

Также в статье приведен список мер защиты (в целом, ничего инновационного в них я не заметил):
- Переформулирование промптов (Prompt Rewriting) - изменяет пользовательские запросы, чтобы снизить вероятность создания планов с TOCTOU.
- Мониторинг целостности состояния (State Integrity Monitoring, SIM) - автоматическое обнаружение потенциально уязвимых последовательностей вызовов инструментов с помощью конечного автомата.
- Объединение инструментов (Tool Fuser) - уязвимые пары инструментов объединяются в один атомарный вызов, устраняя временное окно для атаки.

Как отмечал SANS мы получаем много направлений для развития на стыке разных областей знаний, TOCTOU - очередной пример на стыке безопасности ИИ и системной безопасности. Здесь же хочу провести параллели в мою, когда-то горячо любимую, криптографию, а именно с side-channel атаками:
- Использование непреднамеренного канала информации/влияния. В криптографии атакующий использует не саму математическую уязвимость алгоритма (например, факторизацию числа или дискретное логарифмирование), а побочные эффекты его физической реализации: время выполнения, энергопотребление, акустические эмиссии, электромагнитное излучение и т.п. В LLM-агентах атакующий использует не прямую уязвимость в LLM (например, инъекцию промпта), а архитектурную особенность ее работы - временной разрыв (temporal gap) между проверкой и использованием - это и есть "побочный канал"
- Обход прямых защитных механизмов. В случае криптографии защита, как правило, криптографически стойка для атаки "в лоб", но для атаки через побочный канал криптостойкость вообще не важна. А в LLM-агентах используемые механизмы защиты (guardrails, контроль ввода/вывода, sandboxing) предполагают, что вызовы инструментов атомарны и состояние между ними стабильно, однако, TOCTOU-атака обходит это предположение, атакуя сам процесс между вызовами.
- Необходимость специализированных методов защиты. В криптографии для защиты от side-channel атак нужны специальные методы: алгоритмы с постоянным временем выполнения, маскирование, аппаратная изоляция и т.п. А в LLM-агентах, как показано в статье, для защиты от TOCTOU нужны специальные методы, адаптированные под агентскую архитектуру: мониторинг целостности состояния (аналог детекторов аномалий), слияние инструментов (аналог создания защищенных примитивов).

В общем, все новое - это хорошо забытое старое. Наверно, это неплохо, так как подобные параллели упрощают придумывание методов защиты от новых модных атак.

#ml #crypto
👍31