Лучший способ расшифровать пароль (с точки зрения безопасности) - PullRequest
1 голос
/ 08 апреля 2011

У меня есть куча ZIP-контейнеров с шифрованием AES256 (с использованием DotNetZip), и я пишу программу, которая поможет пользователю понять, что внутри них. Я бы поставил программу «Launcher» с XML-документом, который я также шифрую «метаданными», так сказать в AES256. Я рассматривал возможность шифрования пароля для различных (1-10 + zip-файлов) в прочной строке AES256 в XML-документе для удобства (поэтому пользователь должен ввести его только один раз). Это тревожит меня, но то, что мы сделали небольшие тесты на юзабилити, показали, что люди не хотят вводить пароль 7 раз.

Итак, предполагая, что строка полностью зашифрована в файле XML / dat / что угодно, насколько я могу обойти другие "факторы" в моей программе? Я должен был бы жестко закодировать дешифрование / IV / salt / etc (или, по крайней мере, передать его методу deypcrtion), нет?

Я пытался понять, что такие вещи, как DotNetCrack (http://www.dotnetcrack.com/) можно легко получить из моей программы. Я знаю, что ничего не идеально и дамп памяти - огромная проблема, но я хочу, по крайней мере, обойти это по-настоящему легко " сценарий деточка "всякие мелочи".

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

РЕДАКТИРОВАТЬ для ясности - ZIP-файлы являются самораспаковывающимися, например, просто почтовые файлы, завернутые в EXE. Они могут быть молнией, в любом случае это не имеет значения. Моя программа предназначена только для того, чтобы помочь кому-то извлечь все содержимое без необходимости щелкать каждое из них И помочь им перемещаться по ZIP-архивам, что может вводить в заблуждение начинающего пользователя.

Все, что делает моя программа, - это чтение XML-файла с «данными» о каждом zip-файле (например, zip001 - это «информация от Джона Смита и т. Д.»), Но имя zip-файла выглядит как BOBSMITH_INFO_001.EXE (.zip).

1 Ответ

1 голос
/ 08 апреля 2011

сколько мне объехать ?! это вопрос. когда мы говорим о обфускации , битва между взломщиком и программистом никогда не заканчивается так много, как вы можете. чтобы остановить сценарий-шутник, нужно использовать базовую технику, такую ​​как жесткое кодирование зашифрованной версии ключа и дешифрование перед использованием, но опять же, это зависит от того, насколько мотивирован ваш сценарий-шутник!

, который сказал, что вы можете проверить Reflector и ILDASM (в инструментах), чтобы увидеть, что любая жестко закодированная строка найдена за несколько секунд! Вы также должны знать, что .net скомпилирован в IL, что является очень высоким уровнем и, следовательно, легко читаемым промежуточным языком. так что очень простое запутывание, такое как XOR с ключом и жестким кодированием, легко отследить даже с помощью детского сценария.

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

Удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...