Можно ли зашифровать zip-файл с помощью хешированного пароля и расшифровать его с помощью хэшированного? - PullRequest
0 голосов
/ 10 июня 2018

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

Теперь, чтобы обеспечить безопасность пакета, мы создаем zip-файл, защищенный паролем.(или аналогичный популярный формат).

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

Теперь при распаковке пользователь должен просто использовать оригинальный пароль, который он ввел.

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

Обновление: Пакет распространяется по электронной почте, номожет быть Dropbox или другой сторонний сервис.Данные должны быть восстановимы, даже если мой центр обработки данных пропал.Что делают другие сайты для предоставления копий данных?Они также доступны, когда сайт закрывается?Я думаю, что многие веб-сайты могли бы выиграть, имея открытый + безопасный формат архива

Ответы [ 2 ]

0 голосов
/ 10 июня 2018

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

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

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

Еще один вариант - сохранить конфиденциальные пароли в аппаратном модуле безопасности (HSM) и заставить HSM шифровать данные.HSM может использоваться таким образом, что невозможно восстановить пароли.Вот почему они шифруют данные.Таким образом, пароли безопасны.

0 голосов
/ 10 июня 2018

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

h (x) = y;h (y) = z

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

Таким образом, единственный способ реализовать свой сценарий - это сообщить пользователю о вашей хэш-функции, например, написав свой собственный маленький "распаковать".-app ", которую вы предоставляете пользователям для скачивания.Это небольшое приложение принимает в качестве входных данных хешированные пароли, хэширует их точно так же, как вы использовали их на своем сервере, а затем использует хеш-значение для открытия zip-файла.

...