vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner
Народ развлекается аудитом TrueCrypt-а, а также доказательством того,
что официальный релиз действительно собран из опубликованных исходников.

Очень интересное чтение.

Особенно показательно то, что введение нового уровня защиты (подпись бинарников) создает новые угрозы. По крайней мере репутационные. Невнимательный исследователь может прийти к выводу, что распространяемые бинарники не вовспроизводятся из распространяемых исходников как раз из-за подписи, которую, естественно, без секретных ключей не воспроизвести. Да и с секретными ключами во всех алгоритмах подписи, основанных на схеме Эль-Гамаля (DSA, ECDSA, ГОСТ Р 34.10 всех лет) , участвует случайное число. Которое не воспроизведешь.

Date: 2013-10-25 04:29 am (UTC)
From: [identity profile] fortness90.myopenid.com (from livejournal.com)
Первая ссылка - битая

Date: 2013-10-25 06:20 am (UTC)
From: [identity profile] vp.livejournal.com
Огромное спасибо за ссылку!!! Получил удовольствие от чтения :)
From: [identity profile] livejournal.livejournal.com
Пользователь [livejournal.com profile] vp сослался на вашу запись в записи «В поисках бекдоров: народ собирает под винду TrueCrypt и сравнивает с оригинальным дистрибутивом (http://vp.livejournal.com/2523884.html)» в контексте: [...] Уважаемый у себя в журнале выложил ссылку [...]

Date: 2013-10-25 07:11 am (UTC)
From: [identity profile] vakhitov.livejournal.com
А откуда мы знаем, что компиляторы не забэкдорили по известному рецепту? :-)

Date: 2013-10-25 07:29 am (UTC)
phd_ru: (Linux)
From: [personal profile] phd_ru
И про закладки в процессорах не забываем!

Date: 2013-10-25 08:32 am (UTC)
burbilog: (Default)
From: [personal profile] burbilog
И шапочку из фольги.

Date: 2013-10-25 09:24 am (UTC)
From: [identity profile] amarao-san.livejournal.com
У меня куда больше вопросов к утилитам, которыми там смотрели диффы, считали хеши и т.д. Что проще для хеширующей функции с бэкдором, всегда исключать из рассчёта хеша весь код, подписанный NSA? В этом случае хэш сойдётся. Аналогично, дифферы могут так же молча пропускать код закладки.

Date: 2013-10-25 07:08 pm (UTC)
From: [identity profile] igorbor.livejournal.com
Ну, утилиты, которыми считают хеши, достаточно просты для того, чтобы закладку в их исходном коде мог обнаружить кто угодно.

Date: 2013-10-25 07:31 pm (UTC)
From: [identity profile] amarao-san.livejournal.com
Когда у тебя на руках бинарная программа, как ты можешь знать, что в ней этой закладки нет?

Заметим, для появления такой закладки даже не обязателен "NSA/Linux", достаточно правильной закладки в линкере. Так как все данные получаются через syscall'ы, то минимальный хук вокруг ввода/вывода позволит полностью сокрыть существование закладок во всех утилитах, которые предназначены для анализа файлов.

Date: 2013-10-25 08:18 pm (UTC)
From: [identity profile] igorbor.livejournal.com
Если бы я занимался криптоанализом, то я бы построил утилиты проверки хешей самостоятельно из исходников - особенно если бы я был параноиком (а кто еще будет заниматься криптоанализом? :)

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

Можно сделать хуки, которые будут маскировать определенные сравнительно короткие последовательности данных - но эта проблема решается сборкой с нуля не только рабочих утилит, но и всей системы.

Date: 2013-10-25 08:55 pm (UTC)
From: [identity profile] amarao-san.livejournal.com
Если бы я хотел скрыть информацию - я бы просто модифицировал glibc или код вызовов (чтение из fd, не важно какого происхождения, весьма просто). Дальше логика очень простая - если сигнатура есть (я думаю, 16 байт за глаза и за уши), то дальше она заменяется известным кодом (да хоть нулями) и дальше выполняется мапинг, указанный после сигнатуры. С учётом, что там внутрях всё намертво в буфферах, 16 байт никто не заметит.

А вот как в этих условиях собирать свою утилиту... Если линкер каждый вызов syscall, связанный с вводом, обворачивает в руткит, и если все системные утилиты (кроме ld) слинкованы с libc... Более того, в такой системе рекомпиляция не поможет, потому что линковать-то будет тот же самый бинарный линкер.

Date: 2013-10-27 02:54 pm (UTC)
From: [identity profile] taris_marh.livejournal.com
Можно проверку проводить на другой платформе. Или писать утилиты на ассемблере.

Date: 2013-10-27 06:32 pm (UTC)
From: [identity profile] amarao-san.livejournal.com
Линковать твой ассемблер кто будет? Насчёт "другой платформы" - если там такой же руткит, не поможет.

Date: 2013-10-25 09:18 am (UTC)
From: [identity profile] amarao-san.livejournal.com
Мне понравилась идея сравнения хешей дизассемблированного кода (самокомпиленного и проверяемого).

Кстати, мне кажется, под это дело было бы неплохо придумать volative masks, которые бы генерировались компилятором/линкером и содержали указание (с пояснениями?) на обязательно-вариативные места в бинарнике.

И считать чексуммы с учётом этих масок.

Маски легко проверить, дальнейшее - должно быть формальное бинарное совпадение.

Profile

vitus_wagner: My photo 2005 (Default)
vitus_wagner

January 2026

S M T W T F S
     1 2 3
4 5678910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 8th, 2026 03:04 pm
Powered by Dreamwidth Studios