Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.09.17;
Скачать: CL | DM;

Вниз

Как запрятать алгоритм шифрования в программе?   Найти похожие ветки 

 
Piter ©   (2006-08-22 00:18) [0]

Дело в том, что моя программа хранит введенный в нее пароль для аутентификации на удаленном хосте в реестре.
Хранит в шифрованном виде.

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

Вопрос. Как бы посекретнее запрятать ключ и алгоритм шифрования в глубь программы? Чтобы дебагером не на раз два все вычислялось...


 
guav ©   (2006-08-22 00:24) [1]

В конце BMP картинки AboutBox"а :)


 
Ketmar ©   (2006-08-22 00:25) [2]

ну, узнают. и что? RSA вот давно все знают. а вот ключ в программе хранить не надо.


 
DiamondShark ©   (2006-08-22 00:28) [3]

А смысл?

> Чтобы дебагером не на раз два все вычислялось...

Точка вызова "аутентификации на удаленном хосте" дебагером именно на раз-два и вычисляется.
Алгоритм шифрования никто даже и не подумает искать.


 
Ketmar ©   (2006-08-22 00:30) [4]

кстати, да. нафиг тут дебаггер не нужен. простая MITM-атака -- и всё.


 
Джо ©   (2006-08-22 00:31) [5]

Делаешь интерпретатор своего собственного байт-кода. На нем реализуешь алгоритм шифрования. Я когда-то извращался (обычная примитивная стековая машина).
Только все без толку. Выковыряют интерпретатор с байт-кодом и скормят ему что угодно :)


 
DiamondShark ©   (2006-08-22 00:36) [6]


> Выковыряют интерпретатор

Да кому он нужен.
Искать будут точку, где пароль в открытом виде появляется.


 
DiamondShark ©   (2006-08-22 00:37) [7]

Кстати, что за хост? Что за аутентификация?


 
Джо ©   (2006-08-22 00:45) [8]

> [6] DiamondShark ©   (22.08.06 00:36)
>
> > Выковыряют интерпретатор
>
> Да кому он нужен.
> Искать будут точку, где пароль в открытом виде появляется.

А он в явном виде и не появится. Точнее, будет разбросан по структурам в байт-коде, там же и сравнение будет.


 
Ketmar ©   (2006-08-22 00:50) [9]

> [5] Джо ©   (22.08.06 00:31)
а ещё круче сделать генератор разных интерпретаторов, и наворотить их штук 60. %-) но -- см. [6].


 
Ketmar ©   (2006-08-22 00:50) [10]

> [8] Джо ©   (22.08.06 00:45)
пароль для аутентификации на удаленном хосте в реестре


 
DiamondShark ©   (2006-08-22 00:51) [11]


> А он в явном виде и не появится.

Дыканечно.
Весь сетевой API тоже на байт-коде переписывать?
Где-то обязательно будет внешний вызов.


 
Ketmar ©   (2006-08-22 00:54) [12]

"в реестре" из цитаты выкинуть. лишнее. %-)


 
Ketmar ©   (2006-08-22 00:55) [13]

> [11] DiamondShark ©   (22.08.06 00:51)
а что? виртуальную машину -- и вперёд. обработать код системы до неузнаваемости... (эк меня несёт...)


 
Джо ©   (2006-08-22 01:02) [14]

> [11] DiamondShark ©   (22.08.06 00:51)
> Где-то обязательно будет внешний вызов.

А, ну да. Я что-то задачей не проникся.


 
Piter ©   (2006-08-22 01:06) [15]

guav ©   (22.08.06 0:24) [1]
В конце BMP картинки AboutBox"а :)


неплохая идея... Но это ключ.

Докопают до места вызова функции расшифровки, куда ключ и передается...

Ketmar ©   (22.08.06 0:25) [2]
RSA вот давно все знают. а вот ключ в программе хранить не надо.


ага. Каким тогда образом программа сама узнает пароль.

DiamondShark ©   (22.08.06 0:37) [7]
Кстати, что за хост? Что за аутентификация?


вот именно, что канал шифрованный, SSL.

Джо ©   (22.08.06 0:31) [5]
Делаешь интерпретатор своего собственного байт-кода. На нем реализуешь алгоритм шифрования


сложно для меня. Интерпретатор... Да еще алгоритм шифрования реализовать...


 
Ketmar ©   (2006-08-22 01:11) [16]

> [15] Piter ©   (22.08.06 01:06)
> Каким тогда образом программа сама узнает пароль
самым простым и универсальным -- у юзера спросит.


 
Piter ©   (2006-08-22 01:22) [17]

Ketmar ©   (22.08.06 1:11) [16]

и каждый раз вводить пароль?
Притом что прога по замыслу вообще в автозагрузке сидит.

Понятное дело, что поломать можно все. Тот же Keylogger поставить. Но хочется чтобы пароль шифровался более-менее надежно :)


 
DiamondShark ©   (2006-08-22 01:25) [18]


> и каждый раз вводить пароль?

так на вход в систему и так вводит.
храни ключ в криптоконтейнере.


 
Piter ©   (2006-08-22 01:29) [19]

DiamondShark ©   (22.08.06 1:25) [18]
так на вход в систему и так вводит


а причем здесь это?

DiamondShark ©   (22.08.06 1:25) [18]
храни ключ в криптоконтейнере


что это?


 
Ketmar ©   (2006-08-22 01:30) [20]

> [17] Piter ©   (22.08.06 01:22)
самый надёжный метод -- это ничего не хранить.

шифровать же пароль, или нет -- не важно. у кого хватит мозгов отлачиком наковырять алгоритм, тот и по-другому вытащить сможет.


 
Ketmar ©   (2006-08-22 01:31) [21]

> [19] Piter ©   (22.08.06 01:29)
это Crypt API. %-)



Страницы: 1 вся ветка

Текущий архив: 2006.09.17;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.056 c
6-1146415451
CyMKuH
2006-04-30 20:44
2006.09.17
IP & Internet


2-1156386753
OlegM
2006-08-24 06:32
2006.09.17
Как добавить свое меню в проводник


1-1154291770
UnKnownPeople
2006-07-31 00:36
2006.09.17
Подскажите - как в Delphi работать с WEB-камерой?


1-1154500320
Alkid
2006-08-02 10:32
2006.09.17
GUID + Variant = Love ?


2-1156405706
Дырчик
2006-08-24 11:48
2006.09.17
ADO и dbf