Проблема с проверкой зашифрованного файла


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

Сделал так:
1) установил GnuPG 1.4.9,
2) создал пару ключей,
3) запаковал файлы бекапа WinRAR-ом,
[code]rar.exe a -r -s -m5 -tl -dh .\backup.rar @.\backup.lst[/code]
4) шифрую бекап:
[code]gpg.exe --batch --cipher-algo 3DES --passphrase 123456 --output F:\temp\backup.sec --default-recipient-self -se .\backup.rar[/code]
5) заливаю в облако:
[code]curl -k --user login@yandex.ru:mypassword -T F:\temp\backup.sec https://webdav.yandex.ru/bak/[/code]
6) далее хочу проверить, все ли в порядке. Для этого скачиваю его обратно, но уже через локальный прокси (по сути, через другого провайдера):
[code]curl -k --proxy 192.168.1.3:3128 --user login@yandex.ru:mypassword -o F:\temp\backup2.sec https://webdav.yandex.ru/bak/backup.sec[/code]
7) теперь хочу проверить целостность файла:
[code]gpg.exe --verify F:\temp\backup2.sec[/code]
в ответ получаю:
[quote][b]gpg: verify signatures failed: неожидавшиеся данные[/b][/quote]
при этом команда
[code]fc /b F:\temp\backup.sec F:\temp\backup2.sec[/code]
не показывает различий. И при расшифровке
[code]gpg.exe --batch --cipher-algo 3DES --passphrase 123456 --output F:\temp\test.rar -d F:\temp\backup2.sec[/code]
test.rar исправлен, WinRar не находит проблем при проверке.

[b]Что я делаю не так?[/b] И в чем может быть косяк с проверкой целостности файла через "gpg --verify" ?


Комментарии
— SATtva (29/08/2015 17:48)   
На этапе 4 Вы создаёте подписанный и зашифрованный файл (именно в таком порядке), а не просто подписанный или отдельную съёмную (detached) подпись. Очевидно, что в этом случае попытка сверить подпись с шифртекста завершится ошибкой.

Когда производите расшифрование такого зашифрованного файла, подпись сверяется автоматически. Если сильно хотите делать это отдельным шагом, то надо создать detached-подпись (параметр -b/--detach-sign) зашифрованного файла перед отправкой на сервер.
— Aminгч (22/10/2015 22:00)   
Совет дам насчёт таких облачных бэкапов.

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

Перед отправкой на сервер вычислите контрольные хэши с уже зашифрованных файлов
и положите их в отдельный файл с суммами:

sha256sum *.pgp > _Hashes.sha256sum

И заливайте в облако всё вместе.

Тогда проверить целостность скачанных впоследствии архивов
вы сможете простой командой

sha256sum -c _Hashes.sha256sum

без расшифровки самих данных.

Если очень надо подпись – подписывайте сразу файл хэшей,

но подпись делайте в отдельном файле.
Тогда вы сможете и целостность архива проверить на любой системе без
возни с ключами (и заметно быстрее), и подпись на хэшах проверить.
— pgprubot (25/10/2015 22:48)   

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