=?iso-8859-1?q?=5BComm=5D_=F0=C5=D2=C5=CE=CF=D3_=C0=DA=C5=D2=C1_=CE=C1_?= =?iso-8859-1?q?=C4=D2=D5=C7=D5=C0_=D3=C9=D3=D4=C5=CD=D5?=

ASA =?iso-8859-1?q?llb_=CE=C1_udm=2Eru?=
Пн Окт 14 21:42:16 MSD 2002


Hello Dmitry,

Monday, October 14, 2002, 9:48:19 PM, you wrote:

DEO> мне именно это и порекомендовали, я так скорее всего и сделаю (посканим
DEO> РОР3), но просто стало интересно потестить уже _свои_ пароли на предмет
DEO> взламываемости, отсюда и вопрос: чем можно это сделать?
Чем,  теорией защиты информации. Смотрим каждую подситему, через
которую  проходит  пароль,  и  анализируем,  возможно ли на этом
этапе  перехватить  пароль или прочесть следы после этого этапа.
Для  сети ответ простой: легко прочесть, если нет шифрования или
шифрование  слабое,  и практически невозможно, если используется
шифрование,   основанное  на  обмене  открытыми  ключами  (и  их
_сверке_,   что  должно  исключить  возможность  атаки  "man-in-
middle",  которой  подвержен ssh1). Для самих программ, если они
корректно написаны, проблем не возникнет.

Помню,  как в 93 году я читал дизассемблер программы LOGON из ОС
TSX-Plus  6 (работала на отечественном чуде СМ-1420) и обнаружил
потрясающий  факт  -  при  вводе имени пользователя LOGON тут же
кидалась  со  всех  ног к файлу, которому я бы в UNIX сопоставил
/etc/passwd/shadow,  брало  оттуда  пароль,  РАСШИФРОВЫВАЛО  ЕГО
(алгоритм  был  какой-то  левый,  и  главное, обратимый, f(f(x))
давало  x)  держало  результат  в  памяти, ждала ввода пароля об
юзера  и  сравнивала  его.  Нечего  говорить  о  том, что юзера,
имевшие доступ к файлу с паролями (т.е. все юзера) или доступ ко
всей  памяти  ОС  (зачем-то авторы сочли нужным иметь в арсенале
power-user'а  такую  привилегию),  т.е.  с  аналогом  доступа  к
/dev/kcore  могли  все  сделать.  На  следующий день была готова
программа,  выдававшая  пароли  любого  или всех юзеров. Мораль:
некоторым людям противопоказано писать операционные системы.

DEO> задача:
DEO> у меня есть ключ, полученный из /etc/tcb/...
DEO> я хочу восстановить по нему пароль, сколько времени
DEO> это займет?
Возводим  2  в  степень  разрядности  ключа и делим на время, за
которое  комп  расшифровывает (или зашифровывает) один ключ. Для
систем с открытыми ключами, базирующихся на возведении в степень
по  модулю,  не  все комбинации битов в ключе допустимы, поэтому
число  битов в разрядности ключа следует приблизительно поделить
на  три  (т.е.  768-битный  ssh-ключ  по  трудоемкости  примерно
соответствует  256-битному  ключу,  основанному  на перестановке
битов а-ля DES).

Далее,  не  только  длина  ключа  гарантирует  его  стойкость ко
взлому,  но  и  ненужность  зашифрованных  данных.  Если  данные
жизненно  важны  для государства, то, скорее всего, в результате
некоторых   неджентльменских  методов,  далеких  от  математики,
хозяин  данных  сам  преподнесет  ключ  на  блюдечке  с  голубой
каемочкой и будет искренне этому рад.

Следует  еще  упомянуть,  что  по следствию из известной теоремы
Геделя,  задача  атаки  на шифр не имеет универсального решения,
т.е.  нет  гарантии,  что  завтра  не  найдется новое остроумное
решение,    котрое    позволит    неожиданно   просто   прочесть
нераскрываемые  до этого шифры. Так, в самом деле, я слышал, что
летом этого (2002) года индийские матемактики нашли новый способ
определения  простоты  чисел.  Судя  по  тому,  что о нем еще не
говорили  в  коммунити,  к  краху  систем  шифрования с открытым
ключами  он  не  приводит,  но зарекаться от такой возможности в
будущем нельзя.

DEO> чем решить такую задачу в линуксе? куда смотреть, какие маны, или просто
DEO> направление ?
На  практике  в  _линухе_  (про  другие  ОС - см выше) я этим не
занимался. мне tcpdump'а хватило.

А направление... добро пожаловать в теорию защиты информации.
Публикаций - много.

-- 
Best regards,
 ASA                            mailto:llb на udm.ru




Подробная информация о списке рассылки community