Ресурсы: техническое описание TLS, LaTeX - в картинки (img), криптографическая библиотека Arduino, шифр "Кузнечик" на ассемблере AMD64/AVX и ARM64
В логах веб-сервера dxdt.ru тысячи записей о GET-запросах от некоторого ClaudeBot, как указано в User-Agent. Больше в User-Agent ничего не указано, хотя правила хорошего тона предполагают, как минимум, ссылку на страницу с описанием того, “что это, зачем и как оно приходит” – в HTTP это нетрудно сделать. Конечно, в User-Agent каждый может написать что вздумает, но данный ClaudeBot ещё и приходит за одними и теми же страницами (которые не изменялись), постоянно переключая IP-адреса. А IP-адреса там из пула AWS (амазоновский сервис), поэтому даже и обратная зона мало о чем говорит (ну, кроме того, что это AWS). Непонятно, имеют ли следы в логах, оставленные данным ботом, какое-то отношение к деятельности одноимённого продукта очередной AI/ИИ-компании, решения которой для российских пользователей заблокированы, но забавно уже то, что имя используется совпадающее; тем более, что на сайте компании не удалось найти ничего о том, как их боты оформляют свои запросы.
Комментировать »
Единичной окружностью, при некоторых допущениях, можно назвать достаточно мощное множество пар чисел (x, y), которые удовлетворяют формуле X^2 + Y^2 == 1. Это, например, привычный случай школьной координатной плоскости. Но можно сказать, что “окружность”, без всяких формул, это большой набор конкретных пар чисел, которые буквально переписаны в массиве исходных данных. Отсутствие формулы в методе определения делает второй вариант существенно отличающимся от первого. И этот второй вариант как раз соответствует популярному сейчас подходу с использованием ИИ (“искусственного интеллекта”) в качестве инструмента анализа: вместо построения вычислительно эффективного общего метода – предлагается таскать с собой наборы исходных данных, проводя там поиск. Чтобы описать больше разных окружностей – возьмём больше разных массивов.
В случае с формулой – (координатная) пара принадлежит окружности, если подстановка в формулу сохраняет равенство. В случае с массивом исходных данных – пара принадлежит окружности тогда, когда удалось найти именно эту пару методом перебора массива. Зато нет дополнительных моделей и концепций. Это сильно различающиеся подходы.
Важный онтологический аспект: новое знание – это возможность заменить большой массив “исходных данных”, где из дополнительных структур присутствует только способ индексирования (“итератор”, если хотите), на структурный метод, который в вычислительном смысле не только короче, но и много проще, чем “итератор” с исходными данными. Понятно, что таблица координат точек, задающих окружность, тоже может использоваться во многих практических случаях, например, если нужно быстро рисовать некоторые “закрашенные круги” на некотором “матричном” дисплее (условном). Есть и другие варианты эффективного использования подобных таблиц. Но они не отменяют того факта, что можно написать короткую программу, – короче, чем массив с точками “окуржности”, – которая успешно сгенерирует сотни мегабайт видеопотока, имитирующего, предположим, полёт над некоторой фантастической местностью. И тут можно вспомнить популярные когда-то давно “демо-программы” (“демосцены”), работавшие на ограниченных вычислительных ресурсах.
Понятно, что не всякие наборы пар чисел укладываются в заданную выше формулу, если, конечно, не изменять базовую логику, определения операций и прочие свойства. У схемы X^2 + Y^2 == 1 – есть много оговорок, её запись и реализация требует некоторых дополнительных соглашений, в отличие от простого “итератора”, построенного в стиле попарного сопоставления некоторых элементов множества. Однако именно поэтому данная схема несравнимо богаче по познавательным возможностям. Например, использование формулы позволяет построить объяснение того, как так выходит, что некоторая пара чисел не лежит на заданной окружности, то есть, построить весьма мощные новые теории. А вот массив исходных данных, сам по себе, – такой возможности не предоставляет: тут только и можно сказать, что “соответствующей пары нет в списке”.
Комментировать »
Небольшое продолжение записки про извлечение секретных криптографических ключей из дампов памяти (оперативной). Ключи в памяти могут быть замаскированы – тогда не работает простой и универсальный метод, основанный на полном прямом переборе последовательностей байтов с пробным расшифрованием или с пробным вычислением открытого ключа асимметричной криптосистемы. То есть, предположим, что ключ ECDSA разрядности 256 бит находится в памяти в виде записанных последовательно 32 байтов. При этом известен открытый ключ, соответствующий искомому секретному. Тогда можно последовательно двигаться по дампу памяти, выбирать очередные 32 байта, вычислять открытый ключ и сравнивать его с проверочным. Если значения совпали, то секретный ключ найден. Это и есть прямой перебор. Вычисление открытого ключа ECDSA – достаточно быстрая процедура, так что проверка нескольких гигабайтов памяти даже на обычном настольном ПК не займёт много времени.
Самый простой способ маскирования, который тут же приходит на ум, состоит в суммировании байтов ключа (XOR) с некоторыми байтами маски, маска сохраняется в памяти отдельно. Если в дамп попал такой замаскированный ключ, то проверять потребуется уже гораздо больше данных: очередную последовательность тестируемых байтов, которая может быть записью ключа, нужно предварительно суммировать XOR с другими последовательностями байтов соответствующей длины из дампа, и только потом проверять, не ключ ли получился в результате.
Интересно, что далеко не всегда секретный ключ должен быть раскрыт в памяти полностью перед его использованием штатным кодом. Дело в том, что маскирование можно устроить существенно более сложным образом. Пример: пусть в рамках протокола точка эллиптической кривой умножается на секретный скаляр (как в протоколе Диффи-Хеллмана), тогда в процессе быстрого умножения секретный ключ используется по отдельным битам, соответственно, можно только отдельные биты и раскрывать, на каждом шаге алгоритма. Естественно, если биты маски берутся из заранее заготовленного массива, представленного в памяти последовательностью, то это не отличается от простого маскирования и раскрывается не менее простым пробным суммированием.
Однако можно придумать экзотические методы индексирования битов маски. Так, эти биты могут выбираться псевдослучайным образом из гораздо более длинного блока данных, сама же индексирующая последовательность сохраняется в виде программного кода (это, предположим, набор адресов переходов, помещаемый в стек). Тогда извлечение ключа из дампа памяти потребует, как минимум, обнаружения и анализа индексирующей последовательности (а в совсем уж экзотическом варианте – анализа программного кода, который может быть сделан мутирующим). Это всё весьма академические методы, поскольку они не только слишком сложны в реализации, но ещё и сложность не компенсируется эффектом от применения.
Постепенное раскрытие ключей при штатной работе подходит и для симметричных шифров. Например, в AES можно замаскировать при помощи XOR основной ключ и раскрывать его частично в ходе вычисления ключей раундов, которые, соответственно, тоже маскируются по мере разворачивания, при этом маска подмешивается в реализацию основного преобразования шифра, уже к ключам раундов.
Защита ключей в памяти важна и используется, но сложности, подобные описанным только что, вряд ли имеют первоочередное значение в ситуации доступа к виртуальной машине из гипервизора, как в исходной записке. Тем не менее, некоторые варианты защиты со сложными алгоритмами вполне полезны для аппаратных устройств, где маскирующее значение, например, может находиться в отдельном модуле памяти, который сложнее прочитать, чем оперативную память.
Комментировать »
Между прочим, один из простых примеров того, что для успешной сегментации интернетов требуется техническая централизация – это установка внешних сервисов капчи (обычно, от Google) на сайты интернет-магазинов, в том числе, крупных магазинов Рунета, как бы для “защиты” формы логина. То есть, администраторы, вероятно, полагают, что “защитили форму от ботов”, но на самом-то деле – они предоставили внешнему провайдеру, тому же Google, возможность единолично решать, какие пользователи могут заходить на сайт этого магазина, а какие – не могут. То есть, передали центральному сервису, который магазином никак не контролируется и действует в своих интересах, возможность сегментировать пользователей этого магазина.
Комментировать »
Интересный аспект моделей физических вычислителей – влияние пространственных измерений. Предположим, что вычислитель электронный и состоит из некоторых элементарных частей (теоретических “транзисторов”), которые управляются электрически, через, условно говоря, “провода” или “контакты”. Речь идёт про сугубо теоретическую конструкцию, поэтому конкретными единицами измерения длин, сечений и напряжений можно пренебречь. Однако эти элементарные вычислительные элементы можно плотно укладывать в привычном трёхмерном пространстве. (Математические рассуждения про ситуацию с количеством измерений пространства больше трёх – оставим для другой записки, отметив, впрочем, что “очень многомерный арбуз” покупать не всегда выгодно, так как он почти весь состоит из корки.)
Построение вычислителя в трёхмерном пространстве сулит выигрыш, потому что доступный фронт распространения электромагнитного сигнала оказывается двумерным: то есть, можно построить эффективную параллельную и слоистую структуру из вычислительных элементов, которые будут размещены с максимальной плотностью, что позволит достичь малых задержек распространения сигнала, со всеми вытекающими свойствами: быстродействие, затраты энергии и т.д.
Однако выяснятся, что сам элементарный вычислительный элемент, – так как он хоть и теоретический, но электрический и классический, – при срабатывании выделяет тепло, а схемы отведения этого тепла требуют использования отдельного измерения. Так что размещение, собственно, элементов, должно быть двумерным. Ну или как-то придётся научиться либо вычислять без затрат энергии, либо – сбрасывать излишки в какое-то дополнительное, относительно привычных, измерение (например, забрасывать в будущее, как это нередко происходит со всякими “невычислительными” системами).
Комментировать »
Квантовое распределение ключей требует наличия схемы удостоверения подлинности сторон – это необходимо для защиты от атак типа “человек посередине” на этапе согласования результата обмена (обнаружения ошибок). Реализовать это позволяют, например, криптосистемы электронной подписи (но не только). Однако, если учитывать риски появления универсальных квантовых компьютеров, то криптосистема электронной подписи, используемая для квантового распределения ключей, должна обладать постквантовой стойкостью. И здесь, кстати, кроется ответ на популярный, но некорректный, вопрос – защищает ли “квантовая криптография” от “квантовых компьютеров”? Нет, квантовая криптография (квантовое распределение ключей) – совсем о другом: несмотря на название, это и не криптография, в математическом смысле, а технический метод защиты каналов связи, который, вероятно, полезен при правильном применении, но его нельзя смешивать с криптографией теоретико-информационной.
Комментировать »
Логичное развитие навигационных приложений в смартфонах – использование, в дополнение к ненадёжной спутниковой навигации, сети наземных маячков: Google уже встраивает поддержку в своё приложение. Понятно, что концепция совсем не новая (наоборот – это возврат к системам, действовавшим до появления GPS), но тут речь про массовый заход со стороны потребительских устройств с GPS, а это уже новое направление. Пока что речь про маячки в туннелях, но, понятно, подход легко переносится и на другие ситуации.
Комментарии (1) »
Кстати, что касается “обезличивания” (или “анонимизации”) различных данных о персонах – есть хороший способ понять, в какой степени хорош тот или иной метод “обезличивания”: нужно попробовать представить, позволяют ли “обезличенные” данные различать неизвестных людей, если таковые собрались в некоторой комнате, в достаточно большом количестве. Под возможностью различать здесь подразумевается возможность точно сказать, что тот или иной фрагмент “обезличенных” данных относится к каким-то людям из присутствующих в комнате, а к каким-то – не относится. И чем выше оказывается различительная способность, тем хуже данные были обезличены (многие типы данных обезличить очень и очень сложно). Этот мысленный эксперимент хорошо показывает всякие неочевидные особенности.
Пример: есть база данных (БД), в которой записан рост людей из комнаты, с точностью плюс/минус пять сантиметров; хорошо ли эти данные помогают различать людей в рамках воображаемой комнаты? Вообще, разнообразие роста велико, но есть некоторый интервал, в который попадает очень много людей. Поэтому, в комнате окажется много людей как бы одинакового роста, в терминах нашей БД, тем более, что рост, по условиям, укладывается в плюс/минус пять сантиметров. Однако, если в комнате присутствует человек ростом 205 сантиметров, то, если это не встреча баскетболистов, скорее всего, персону нетрудно будет связать с записью из базы – интервал от 200 до 210 сантиметров не слишком-то заселён. Теперь, если в базе присутствовали данные о росте (плюс/минус – для “обезличивания”) и, скажем, фамилия, имя и отчество, то можно будет подойти, и к человеку высокого роста обратиться точно по имени. (Понятно, что знание ФИО вообще позволяет устроить перекличку, но Константинов Каретиных, предположим, может оказаться несколько.)
Другой пример: есть запись голоса. Этот вариант точнее, поскольку голоса не только обычно различаются (исключения – редки), но и это различие очень велико, особенно, если сравнение выполняет человек с хорошим, подходящим слухом. Голос работает не хуже фотографии лица (“анфас и профиль”). А по такой фотографии – различить людей в комнате совсем нетрудно. Однако биометрические данные – это одно, а всякие “цифровые следы” – другое.
Предположим, известны номера мобильного телефона. Насколько это точные данные? В рамках нашего мысленного эксперимента позвоним по выбранному номеру и будем наблюдать, у кого именно из присутствующих смартфон зазвонит. То есть, точность очень высока (конечно, при прочих допущениях: телефоны должны быть у всех присутствующих, должны быть включены и пр.) А вот только по домашнему адресу – различить людей в комнате довольно сложно, но ведь и адреса, сами по себе, не только всем известны (нанесены на карты), так ещё и никак не “персонализируются”, в отличие от телефонного номера смартфона, который буквально к человеку-носителю привязан.
Понятно, что различительная способность резко возрастает, когда к одним данным добавляются другие.
Данный мысленный эксперимент не является универсальным, но неплохо работает и для других видов данных, вплоть до сведений о покупке деловых костюмов, – попробуйте сами.
Комментировать »
Чем хороша именно “прочность шампанского” в вопросах для ИИ LLM? Тем, что “прочность” – это ещё и “крепкость”, а “крепкость” – это почти “крепость”, а “крепость” – это и замок, как строение, и характеристика алкогольных напитков. При этом “прочность” – применимо к хлопку (к ткани).
Вообще, конечно, лексическая изобретательность винных критиков практически гарантирует, что самые неожиданные обозначения характеристик в текстах прицепляются к шампанскому через описания цвета и, особенно, вкуса, который “шелковистый, с нотками отвара дубовой коры” (условно). С хлопковой тканью всё несколько более прямолинейно.
Комментарии (1) »
Volkswagen собирается ChatGPT добавить к системам автомобиля. То есть, внутри автомобиля появится очередной “жучок”, прослушивающий и отправляющий разговоры на внешний сервер. Тут нетрудно предположить, что может оказаться внедрена и такая недокументированная функция, которая позволит отправлять команды автомобилю с серверов ChatGPT. Конечно, это будет особенность, внесённая случайно по ошибке (но без всякого противоречия “политике использования автомобиля”) – поскольку уже заранее официально утверждается, что доступа “к системам автомобиля” у ChatGPT не будет (однако, это же ведь “невиданный искусственный интеллект”, который может вот-вот выйти из-под контроля, как утверждается в СМИ, в пресс-релизах и в открытых письмах – казалось бы, что может пойти не так?). С другой стороны, в автомобили уже не только звукозаписывающую аппаратуру штатно устанавливают (до идеи с ChatGPT, понятно), но и видеокамеры, передающие данные на центральные серверы, так что решение нельзя назвать радикально новым.
Комментировать »
Raspberry Pi 5, как и обещано, существенно быстрее Pi 4. Сравнил при помощи ассемблерной реализации шифра “Кузнечик” для ARM64 – показатели такие:
Pi 4 vs Pi 5 (обе версии с 8Gb RAM)
Encryption: ~28 MB/sec vs ~93 MB/sec Decryption: - ~24 MB/sec vs ~70 MB/sec Режим GCM: ~18 MB/sec vs ~50MB/sec
То есть, в три с лишним раза быстрее.
Комментировать »
Новый