4

Есть ли способ добавить файлы в зашифрованный архив без указания пароля для этого архива?

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

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

2 ответа2

4

С традиционным симметричным шифрованием это невозможно - вам нужно зашифровать файл точно таким же ключом, с которым он будет расшифрован.

То, что вам нужно, это асимметричная криптография или криптография на основе открытого ключа, используемая в PGP и SSL. В асимметричных алгоритмах у вас есть пара ключей: один для шифрования (открытый), другой для дешифрования (частный). Ключ шифрования можно сделать общедоступным, и любой может его использовать. (Кстати, как работает HTTPS.)

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

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

Например, этот скрипт .cmd будет шифровать все файлы, перетаскиваемые на него:

@echo off & setlocal
:: I assumed a USB stick, so here %~d0 will expand to the drive letter.
:: Where this script looks for GnuPG
set GNUPGDIR=%~d0\Apps\GnuPG
:: Where GnuPG looks for its keyrings
set GNUPGHOME=%~d0\Private\GnuPG
:: Where the encrypted files are put
set DESTDIR=%~d0\Private\Encrypted
:: Your PGP key ID or email
set RECIPIENT=grawity@gmail.com

if not exist "%DESTDIR%" mkdir "%DESTDIR%"
:loop
    if "%~1"=="" goto :eof
    echo Encrypting "%~1"
    "%GNUPGDIR%\gpg" -r "%RECIPIENT%" -e -o "%DESTDIR%\%~nx1.gpg" "%~1"
:next
    shift
    goto :loop
0

Если вы не хотите устанавливать инфраструктуру gpg и просто хотите зашифровать файл с помощью пары открытого и закрытого ключей, вам может пригодиться следующий инструмент: https://github.com/galets/AsymmetricCrypt . Вам понадобится моно на Linux, чтобы запустить его.

Он будет использовать AES256 для шифрования файла, а ключ будет зашифрован с использованием 4096-битного RSA.

Я написал этот инструмент, и он специально для описанного вами типа случая: когда вам нужно что-то для шифрования файлов и вы не можете расшифровать его обратно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .