В блоге Шнайера описание ещё одной попытки создания протокола (предлагает протокол не Шнайер), позволяющего отличить “цифрового двойника” (имперсонатора) от реальной персоны – используется TOTP (это одноразовые коды, базирующиеся на общем секрете и на значении времени в локальных часах): то есть, пользователи, реальные персоны, которые имеют копии общего секрета, при голосовом вызове или при вызове по видеосвязи, когда звонящий представляется одним из этих пользователей, должны дополнительно затребовать и сравнить актуальные ключи, генерируемые TOTP. Ключи предлагается вычислять при помощи смартфона, на котором работает приложение. Понятно, что здесь аутентифицируется не пользователь, а приложение на смартфоне и/или сам смартфон – это вообще традиционная ошибка, когда персону-пользователя переводят в смартфон.
Нельзя сказать, что решение совсем бесполезное, но с ним есть традиционные для чисто технических схем, кажущихся простыми, проблемы. Это существенные проблемы, и они далеко не в том, что смартфон может быть захвачен или взломан, а код может быть подсмотрен (нет, код подсматривается у атакуемого пользователя, потому что, как бы, в этом и смысл). Знание верного кода из приложения, несомненно, сразу завоевывает доверие. Но и незнание, при должной интерпретации, сильно помогает, поскольку протокол, – досадно “не работающий”, – тут же создаёт общий контекст, в самом начале разговора.
Дело в том, что “цифровой двойник” может прямо утверждать, что он не двойник никакой, а настоящий, но потерял смартфон, поэтому и не может получить код. Или часы в смартфоне “поломались”, ушли вперёд “и такой вот код”. Заметьте, что очень многие схемы манипуляции и введения в заблуждение именно такой момент и используют в качестве опорного при установлении “контакта” с атакуемым: “потерял ключ”, “пёс сожрал пропуск и другие документы”, “кормила чайку и смартфон уронила в пруд”, “забыла, где именно машина на парковке”, ну и так далее. Тут можно ещё заметить, что протокол требует предоставления кода вызывающей стороной, но направление вызова можно регулировать, используя промежуточные звенья: “Наш общий знакомый Имярек срочно просит ему немедленно же перезвонить!”. Естественно, успехи компьютерных технологий позволяют “цифрового двойника” установить в качестве “прокси” между реальными персонами, чтобы получить актуальный код в нужный момент. Так что не ясно, сильно ли TOTP-приложение помогает, на фоне кодов из SMS.
Комментарии (2) »
Одной из распространённых ошибок настройки DNS является рассогласование списков авторитативных серверов имён на разных уровнях системы. То есть, в делегирующей записи присутствуют имена серверов, которые отсутствуют в самой DNS-зоне. Предположим, в зоне .com для example.com указаны серверы ns1.example.com, ns2.example.com и ns1.example.net (список делегирования), а в самой DNS-зоне example.com список NS-ов включает только ns1.example.com, ns2.example.com. Это пример упомянутой ошибки. (Список NS-ов из DNS-зоны – это ответ на запрос NS, полученный от авторитативного сервера.) Обратите внимание, что обратная ситуация, когда список делегирования вкладывается в список NS-ов на стороне DNS-зоны, проблемы не представляет. А вот если в делегирующей зоне обнаружен “лишний” NS, то это плохо и является грубой ошибкой.
Почему это так? Прежде всего потому, что “лишнее” имя может вообще не контролироваться администратором зоны – соответственно, это имя может контролировать третья сторона, которая, из-за неверного делегирования, получит возможность отвечать на DNS-запросы, относящиеся к исходной зоне. На всякий случай напомню, что управление DNS позволяет полностью перехватить все сервисы, адресуемые именами в DNS-зоне: можно переадресовать веб-сайт, получать электронную почту, получить валидный TLS-сертфикат и так далее.
Как сторона, строго полагающаяся на DNS в какой-то своей деятельности, может определить, что с настройками чужой зоны что-то не так на уровне NS-ов? Например, можно сравнить список делегирования и перечень авторитативных NS-ов в зоне. И сделать это можно, – как ни странно, – только специально опросив авторитативные NS-ы. Ответ авторитативных NS-ов вышестоящей зоны – принесёт достоверный список делегирования. А ответ авторитативных NS-ов целевой зоны – достоверный список NS-ов. И если первый список содержит имена, которых нет во втором, то это признак того, что с зоной что-то случилось: например, происходит перехват управления.
При этом, вообще говоря, достаточно, чтобы списки не сходились с ответом одного авторитативного NS целевой зоны. Поэтому-то списки авторитативных NS-ов, возвращаемые серверами целевой зоны, должны совпадать между серверами. Если эти списки отличаются, то ситуация тем более подозрительна, поскольку невозможно понять, какой список настоящий, а какой – подменный. Естественно, резолверы, выполняющие рекурсивный опрос, не всегда следуют правилу, что за окончательной версией большинства DNS-записей обращаться можно только к тем NS-ам, имена которых получены в авторитативном ответе, соответствующем целевой зоне. “Авторитативность” тут определяется не столько по флагу в DNS-ответе сервера, сколько совместно по иерархии делегирования и источнику ответа: то есть, хоть начальный список NS-ов и получается из вышестоящей зоны в делегирующем ответе, но достоверные имена NS – те имена, которые есть и в ответах самих этих серверов. Этот момент постоянно упускают из виду. (К сожалению, DNS часто настраивают как попало, поскольку бытует неверное мнение, что “это очень простая система: отправил имя – получил IP-адрес”.)
Почему перечни имён NS в зоне должны сходиться с делегирующими списками? Представьте, что атакующий каким-то образом перехватил управление и смог добавить собственный NS (по имени) в делегирующий ответ (это может быть сделано далеко не только на уровне регистратора доменов). При этом успешно подменён только делегирующий ответ, а сами авторитативные NS целевой зоны (не делегирующей), как узлы, не взломаны и работают штатно. Подменив делегирующий ответ, атакующий никак не повлиял на ответы авторитативных NS – если резолвер спросит эти NS, то получит список NS без добавления подменного узла. Да, резолвер, обрабатывающий список из делегирующего ответа, не может сразу предположить, какое имя было добавлено атакующим. Поэтому, если резолвер опрашивает все NS из списка, то он обязательно обратится и к подменному NS. Но, ещё раз, этот NS не может повлиять на саму подлинную зону и на ответы других NS – поэтому возникнет видимое расхождение. Заметьте, что если подменный NS возвращает тот же список NS, что и настоящие, то всё равно есть расхождение списка делегирования и списка NS в зоне. (Да, понятно, что обычный резолвер не обязательно выполняет все эти запросы и сравнивает результаты. Но в ситуации, когда требуется подтвердить какой-то параметр DNS-зоны, – например, при выполнении проверки права управления для выпуска TLS-сертификата, – непосредственный опрос многих NS и сравнение списков – необходимый шаг.)
Лишние NS в списке делегирования позволяют заподозрить, в худшем случае, активную атаку, а в лучшем – наличие больших проблем с DNS-зоной. Нередко, лишние NS появляются в результате опечаток или “забывчивости” администраторов, что свидетельствует об отсутствии необходимых проверок при изменении настроек сервиса.
Комментировать »
Оценка корректности употребления слов английского языка less и fewer нередко вызывает споры даже среди грамотных носителей языка. Эти слова различаются тем, что одно, в сравнении, модифицирует объекты как “неисчисляемые” (“неперечислимые”, если хотите), а второе – как “исчисляемые” (“перечислимые”). Если задуматься о том, что происходит, то можно обнаружить особенность, достаточно тонкую, которая модифицирует воспринимаемый смысл, переставляя фокус его построения между словами, следующими за less/fewer. Эффект напоминает “морфологический переворот”, который я как-то упоминал. Уловить изменение непросто, нужны хорошие иллюстрации. Такая иллюстрация попалась мне в стилистическом руководстве издания The Guardian, где эффект less/fewer рельефно проиллюстрирован четырьмя предложениями – все эти предложения говорят о разном, попутно закрывая все четыре возможных относительных варианта:
For less bad things to happen, fewer bad people need to be involved.
For fewer bad things to happen, less bad people need to be involved.
For fewer bad things to happen, fewer bad people need to be involved.
For less bad things to happen, less bad people need to be involved.
Перевод, понятно, эффект уничтожает. Но можно дать объяснение, используя несколько испорченные обороты на русском. Посмотрим на первое предложение: “Чтобы случались менее плохие вещи, меньше плохих людей должно быть вовлечено”. Less – “уменьшает” (сравнительно) то, что “нельзя посчитать”, отсюда привязка к bad. Bad, – здесь, – нельзя сравнивать “в натуральных числах”, то есть, нельзя сказать, что что-то хуже на “две единицы измерения ухудшения”. Поэтому “менее плохие” (дословный перевод здесь использован как иллюстрация). Fewer – обозначает тоже “меньше в количестве”, но именно в том количестве, которое можно считать. Поэтому “меньше плохих людей”, а не “менее плохие” “люди”. Всем известны примеры “неисчисляемых” существительных – “вода”, “песок” и т.д., – а равно и примеры “исчисляемых”: “кирпичи”, “мячи” и т.д.
Второе предложение: “Чтобы меньше плохих вещей случалось, менее плохие люди должны быть вовлечены”. Тут сравнительная характеристика “less bad” применяется уже к “людям”. Думаю, два оставшихся предложения несложно самостоятельно “раскодировать” аналогичным способом, наблюдая, как переключается фокус интерпретации.
Комментировать »
Вот ещё весьма показательный момент, про всё это современное ИИ/LLM. Бот от корпорации OpenAI выполняет на dxdt.ru больше тысячи запросов (GET, по адресам записок) в сутки с разных IP, в User-Agent написано: “Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.2; +https://openai.com/gptbot)”. Очевидно, цель – загрузка всё большего количества текстов в синонимайзер-переросток, который потом продвигают в СМИ как уникальный “интеллект”. Вычислительных ресурсов там много, несмотря на “проблемы изменения климата”, поэтому об оптимизации не задумываются – сканируют всё повторно, по много раз.
Приходит этот бот с IP-адресов Microsoft. Однако, игнорируя не только слово “Open” в названии, но и даже минимальные представления об адекватной разработке ботов-сканеров, информационный URL, указанный в User-Agent, недоступен для российских IP-адресов: возвращает HTTP 403 и страничку с надписью “Sorry, you have been blocked”. (С IP-адресов, которые Cloudflare пока что считает не российскими, доступ есть, так что можно убедиться, что это действительно OpenAI.)
P.S. Обратите, кстати, внимание, что тут уже GPTBot/1.2, а не GPTBot/1.1, как у них на сайте указано в описании.
Комментировать »
Недавно, в заметке про TLS-сертификаты для IP-адресов, я упоминал метод проверки права управления узлом через TLS-ALPN, который может использоваться в рамках ACME (протокол автоматического взаимодействия с Удостоверяющим Центром – УЦ). Надо заметить, это самый экзотический способ проверки из сейчас используемых. Вообще, понятно, что для IP-адресов проверять административные права через DNS – не самый разумный вариант, поскольку DNS надстроена над IP-адресным пространством и проверить не получится. В этом случае даже общепринятое название процесса DCV – Domain Control Validation – не подходит, ведь проверки “управления доменом” тут нет, а есть проверка управления узлом. Поэтому-то даже и обратная зона не сгодится: возможность внесения записей в обратную зону означает, что оператор (предположительно!) управляет соответствующим префиксом, но не обязательно управляет интернет-узлами, попадающими в адресное пространство префикса.
Схема TLS-ALPN работает в типовом варианте “запрос – подтверждение”, но выполняется на самом низком уровне TLS. Логика следующая: проверяющая сторона, – то есть, сервис УЦ, – устанавливает с проверяемым узлом TLS-соединение, указывая в начальном сообщении (ClientHello) специальное значение в расширении ALPN – это запрос; проверяемый узел в ответном сообщении TLS (Certificates) отправляет в качестве сигнала специально сконструированный TLS-сертификат, содержащий нужные для подтверждения параметры в расширении SAN (это дополнительные имена и IP-адреса) и в специальном расширении acmeIdentifier. Сами значения согласуются заранее, в ходе подготовительных шагов ACME.
ALPN – Application-Layer Protocol Negotiation – это штатный инструмент TLS, но в данном случае используется уникальный идентификатор, предназначенный именно для этой схемы: “acme-tls/1”. Использование же TLS-сертификата в роли средства доставки специального сигнала – механизм пусть и причудливый, но всё же иногда используемый. Например, я в своём тестовом сервере TLS передаю сигнальный сертификат, который генерируется каждый раз в ходе установления соединения и содержит сведения об IP-клиента и выбранном способе согласования симметричных ключей. (Но в браузере вы этот сертификат увидеть не сможете, хоть он и всегда есть в сессии.)
Конечно, основной особенностью данного метода является то, что он требует достаточно низкоуровневого взаимодействия с TLS-сервером и срабатывает до того, как запросы вообще доберутся до веб-сервера. Собственно, веб-сервер тут вовсе и не участвует в процессе.
Да, в принципе, используя тот момент, что для TLS-ALPN-подтверждения сертификат нужно сгенерировать заранее, и то, что указание ALPN и имени сервера позволяет воспользоваться программным интерфейсом той или иной TLS-библиотеки, возможно прозрачно подставить сигнальный сертификат в TLS-ответ даже в том случае, когда полного контроля над TLS-сессией нет. Но схема от этого не перестаёт быть низкоуровневой и экзотической.
Комментировать »
Пишут, что после очередного обновления iOS Apple на iPhone в Штатах появилась поддержка доступа к Starlink, как к “телефонному сервису”, через идентификаторы оператора T-Mobile. Что там в обновлении – не ясно: возможно, новая прошивка для радиомодуля, возможно – нет, и прошивка была обновлена заблаговременно, а теперь включили именно конкретные параметры для данного радиоканала.
Пусть для того, чтобы принимать произвольные сигналы смартфона спутниками Starlink – обновление прошивки и какое-то участие со стороны смартфона не нужны, однако, если смартфон с новой прошивкой радиомодуля активно выполняет команды, поступающие со спутников, в кооперативном режиме участвует в радиообмене, то это заметно расширяет возможности и по доступу к смартфону, и по наблюдению. И тут не важно, поддерживаются ли пользовательские функции, доступные на уровне ОС, и какой именно оператор сотовой связи прописан в обозначениях: сигналом спутников всё равно управляет оператор спутников, а не “титульный” для пользователя провайдер. То же самое относится и к радиообмену – сама “сеть сотового оператора”, как феномен, начинается на уровень выше технических сигналов, особенно, если речь про спутниковый доступ.
Кстати, если в процессе геолокации радиопередатчика участвует сам радиопередатчик, то расширяется спектр доступных инструментов, что, понятно, повышает точность. Но прежде всего интересны возможности по сбору состояния радиоэфира приёмником смартфона: это вполне себе штатная функция, которая в так называемых “сетях 5G” получила большое развитие, и если радиомодуль смартфона активно взаимодействует с сетью спутников, то это означает, что по запросу спутниковой сети радиомодуль может передавать сведения о принимаемых им сигналах. Обратите внимание: речь тут вовсе не только о “сигналах спутников”, а, например, о сигналах локальных точек доступа/базовых станций (это, опять же, штатный механизм) и прочих устройств, которые “видит” смартфон, но не видит спутник.
Комментировать »
Воскресное чтение манускриптов. Классический способ оформления цитируемых фрагментов в переписке по электронной почте основан на знаке “больше” – “>”, – который ставится в начале строки, с нужным количеством повторов, когда цитата оказывается внутри цитаты. Нередко этот же знак используется для обособления цитат и вне электронной почты, например, при переписке в чате.
Схожие знаки встречаются и в средневековых манускриптах (и не только там). Пусть метод очевидный, но всё равно занятный. Вот, например, встретился такой фрагмент манускрипта Urb.gr.15 (“Слова” Григория Богослова, десятый век, Ватиканская Апостольская библиотека):
И здесь знаками, напоминающими “>”, отмечена цитата из книги пророка Михея (Мих.2:10), использованная в тексте Григория Богослова (Слово 9), который ссылается на соответствующий стих так (самое начало текста на скриншоте): […]”Μιχαίας λέγειν, χαμόθεν ἡμᾶς ἀνέλκων ἐπι τὰ ἡμέτερα ὕψη” (“[…]Михей говорит, от земли нас поднимая на нашу (собственную) высоту”).
А более близкий к “>” по начертанию знак называется “дипле” (διπλῆ), и в дополнение к нему нередко, – но не всегда, – шли точки, расположенные сверху и снизу. Знак, конечно, не обязательно обозначал библейскую цитату, как и цитату вообще. Пример из Venetus A:
Этот фрагмент “про птицеведов”, кстати, недавно встречался в заметке про квантовые вычисления у Гомера.
Комментировать »
Забавно читать вежливые утверждения, что, мол, “возможно, эти LLM/AI всё же не размышляют, потому что вот – система считается одной из лучших, но не способна корректно умножить два девятизначных натуральных числа” (разрядность тут условная). То есть, утверждается, что данные системы обучены на текстах из Интернета, и что даже уже “текстов из Интернета” не хватает для дальнейшего обучения (наверное, теперь заказывают копирайтерам и рерайтерам тематические “опусы”). Однако, если в рамках “обучения” в систему загнали все тексты, скажем, “Википедии”, то, вообще говоря, этих текстов достаточно, чтобы научиться перемножать числа. Буквально – уже сведений из англоязычной “Википедии”, совершенно точно, достаточно для того, чтобы некий “интеллект” изучил базовые арифметические действия с натуральными числами и, если он “размышляет”, сообразил бы, как нужно их перемножать. Это очевидное наблюдение относится далеко не только к умножению чисел. Казалось бы. Но нет, это не так, если строится очередная “говорилка на цепочках”.
Комментарии (5) »
Всё ж, оказался очень открытым сервис LLM/AI DeepSeek – регистрация требовалась только для веб-интерфейса чата, а так-то все базы, похоже, были открыты, как говорится, “без SMS”. Цитата из сообщения OpenNET:
В ходе изучения публично доступных поддоменов deepseek.com исследователи обратили внимание на хосты оoauth2callback.deepseek.com и dev.deepseek.com, на сетевых портах 9000 и 8123 которых находился сервис хранения, основанный на СУБД ClickHouse. Сетевой порт 9000 использовался для подключения приложений, а через порт 8123 предоставлялся web-интерфейс, дающий возможность отправить любой SQL-запрос.
Выставленные настройки СУБД предоставляли полный контроль над операциями в БД, при доступе без прохождения аутентификации. По мнению исследователей, имеющегося доступа было достаточно для организации атаки, не ограничивающейся СУБД и позволяющей получить привилегированный доступ к инфраструктуре DeepSeek.
Комментировать »
Пример из серии про неявные преобразования и компьютерную алгебру. Табличный процессор Google Spreadsheets в браузере, скриншот:
То есть, написана формула “-3^2”, но в ячейке получаем значение 9, что не обязательно-то верно, как ни странно. Почему? Вообще говоря, в этой формуле неявно подразумевается следующее выражение: -1*3^2. Так как операция возведения в степень имеет более высокий приоритет, чем умножение, должно получиться -9. Если в том же приложении Google так и написать, с минусом и единицей, то получим верный ответ: -9. С другой стороны, может оказаться, что подразумевается использование операции взятия обратного по сложению, обозначаемой знаком “минус”, и она имеет приоритет выше возведения в степень. Ну или это просто “минус три” написано, то есть, (-3)^2. Поэтому, скажем, Gnumeric – тоже выводит 9, но при этом автоматом дописывает в формулу скобки вокруг -3.
(Пример попался в Telegram-канале Бориса Трушина.)
Комментировать »