Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Вроде нет. 29.05.02 11:52 Число просмотров: 2792
Автор: Komlin Статус: Незарегистрированный пользователь Отредактировано 29.05.02 12:22 Количество правок: 1
|
Приветсвую Дмитрий.
> Java-апплеты частично обфусцированы, хотя восстанавливать > логику работы достаточно просто.
Нет - дело просто в оссобеностях оптимизирующего компилятора.
Лучше конечно пользоваться коммерческими декомпиляторами они эти приколы учитывают.
> Истинные исходники с комментариями были бы куда полезнее > для анализа.
Разумеется но где гарантия,что это именно они там лежат.
Подменить их конечно можно и потом, но в полном отчёте я укажу время подписи,
размер и хэш апплета.
> При хорошей обфускации во-первых сделать корерктную > декомпиляцию тем же JAD'ом не получится, а во-вторых легче > застрелиться, чем разобраться в получившихся "исходниках".
Дело практики. Кстати хорошей обфускации здесь нет. Насколько
мне известно она и не проводилась за ненадобностью.
По-моему исходники апплетов тоже будут выложены в будущем.
В принципе мне в них не отказывали.
> Код биологического ДСЧ вызвал разочарование. Слабость, > ИМХО, пусть и теоретическая, но присутствует.
Процедура генерации включает себя
1) сбор зависимых от времени данных по движению мышки (пользователи
вообще-то двигают с мышкой с разной скоростью)
2) Неизвестную по времени паузу вызванную выбором пользователем пароля.
3) Генерацию (SRandom) случайного числа на основании вектора движений мышки
свойств системы, текущего времени (после генерации пароля), и переданных апплету параметров.
----
_vp_Hash.update(abyte0); // вектор мышек.
_vp_Hash.update(util.LongToByte(System.currentTimeMillis()));
Properties properties = System.getProperties();
String s1;
for(Enumeration enumeration = properties.propertyNames(); enumeration.hasMoreElements(); _$7158.update(s1.getBytes())) {
String s = (String)enumeration.nextElement();
_vp_Hash.update(s.getBytes());
s1 = properties.getProperty(s);
-----
Таким образом я не вижу особых возможностей для вскрытия секретного ключа сторонним
злоумышленником.
Даже описанная Вами слабость была сугубо теоретическая.
Насколько я знаю аналогичную проблему в других программах :)
некому на практике заэксплойтить не удалось.
Александр.
|
|
|