Можно ли добавить «Мастер» пароль для программы шифрования / дешифрования? - PullRequest
2 голосов
/ 28 июля 2010

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

После шифрования / дешифрования пользователю будет предложено удалить файл.который был использован, и, в случае дешифрования, откройте только что расшифрованный файл.

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

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

Пример кода, который я использовал (и с тех пор изменил для большей функциональности), был найден здесь: http://www.codeproject.com/KB/security/EncryptFile.aspx

Заранее спасибо!

Ответы [ 5 ]

3 голосов
/ 28 июля 2010

Есть как минимум два способа, о которых я могу думать прямо сейчас:

1) Используйте мастер-пароль для шифрования других паролей.Так поступают такие вещи, как KDE Wallet , они просто защищают ваши пароли чем-то, что, будем надеяться, будет легко запомнить.

2) Используйте математически связанные ключи.Это гораздо сложнее сделать, так как для этого требуется гораздо больше мозгов, а также больше вычислительной мощности.Я предлагаю вам прочитать больше на эту тему здесь и здесь , если вам интересно.

1 голос
/ 28 июля 2010

_NT ответ довольно близок к тому, как вы, вероятно, хотите это сделать, но (IMO) не совсем правильно.В частности, если вы используете мастер-пароль для шифрования других паролей, вы должны всегда ввести мастер-пароль для расшифровки файла.

По крайней мере, когда я прочитал то, что вы сказали,что вы действительно хотите - это ввести либо пароль файла, либо (если вы забудете это) мастер-пароль.Это также возможно, но работает немного по-другому.Для этого вы обычно хотите сгенерировать случайный ключ, который используется для шифрования содержимого самого файла.Затем вы шифруете этот ключ с помощью пароля файла и сохраняете зашифрованный ключ вместе с файлом.Вы отдельно шифруете ключ с помощью мастер-пароля и сохраняете этот зашифрованный ключ вместе с файлом.

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

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

0 голосов
/ 29 июля 2010

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

Я думаю, что это самая близкая к вашей проблеме проблема без действительного пароля.

0 голосов
/ 28 июля 2010

Я не уверен, что это ответ, но я хотел бы изучить криптографию с открытым ключом. Некоторое время назад я провел некоторое исследование и внедрение RSA Encryption, и я уверен, что вы можете создать какой-то алгоритм для этого, используя это.

Это должно начать вас

http://en.wikipedia.org/wiki/Public-key_cryptography

(Также посмотрите шифрование RSA в Википедии, видя, как я могу опубликовать только одну ссылку без дополнительных точек повторения.)

Наконец, я не знаю, какой язык вы используете, но я использовал Visual Basic, и он предоставляет некоторые вещи для обработки RSA.

0 голосов
/ 28 июля 2010

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

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