Я играл с openssl, чтобы создать ключ pub / prv, создать подпись файла и проверить его. Я поиграл с Cryptophane (интерфейс windows gnupg) и услышал о серверах ключей +, играемых с подписанием текста.
Я однако никогда не подписывал файловый архив. Если я хочу опубликовать архив (7z, rar или zip, это не имеет значения), и я бы хотел, чтобы мои пользователи или программное обеспечение могли проверить, подписан ли этот архив, как мне это сделать? Открытый ключ, очевидно, должен быть доступен публично. Но добавление подписи в архив - вот что меня беспокоит. Позволяет ли какое-либо программное обеспечение + архив подписывать и проверять сжатый архивный файл?
Ответы:
Обычный метод - создать отдельную подпись в
.sig
файле (обычно подпись PGP с помощьюgpg -b
- X.509 очень редко) и предоставить оба файла в одном месте. Например:Это можно использовать с любым типом файла, но пользователь должен будет проверить подпись вручную, используя
gpg --verify
.К сожалению, из тех, которые используются в настоящее время, ни один архивный формат (о котором я знаю) не поддерживает встроенные подписи с использованием PGP или X.509. (Это исключая CAB, который используется Windows для внутреннего использования, но практически нигде больше, и его довольно сложно подписать). WinRAR 4 смог добавить запись «проверки подлинности» в собственном формате, но он использует вашу лицензию WinRAR в качестве ключа подписи, который неоднократно подвергался взлому. (Обновление: эта функция была удалена из WinRAR 5 из-за отсутствия безопасности.)
В Windows (и вскоре в Mac OS X) можно создать «самораспаковывающийся архив» - исполняемый файл с цифровой подписью, который извлекает архив изнутри себя - так работают, например, установщики программного обеспечения в Windows. Однако SFX ограничены одной операционной системой, поэтому они подходят только для распространения программ , а не документов или изображений. (Java-программы могут быть подписаны и являются кроссплатформенными, но немногие системы все еще имеют среду выполнения Java.)
источник
Jar-архивы, собранные с помощью Javas-jar-tool, по сути являются zip-архивами, и для подписи существует инструмент jarsigner.
Вот несколько полезных ссылок:
Сначала это выглядит немного сложно («Что, мне нужен keeytool? Что еще?»), Но легко выполнить шаги для простого решения. Оно работает. Тогда вы можете погрузиться глубже в вопрос.
источник
manual verification
? Какая альтернатива? Автопопуп, который проверяется каждые 10 минут? Должна ли ОС автоматически проверять архив при загрузке? Когда получен архив - будь то с CD, email-вложения, загрузки, ...? Должен ли это быть плагин в вашем антивирусном сканере?.deb
подписи пакетов проверяютсяdpkg
перед установкой пакета, при этом пользователь не предпринимает никаких дополнительных действий.Конечно, каждый раз, когда вы устанавливаете подписанное программное обеспечение, вы проверяете подписанный архив. Чтобы создать его, вы должны использовать те же инструменты для упаковки, которые используют разработчики. Есть некоторые компромиссы, простота использования и кроссплатформенная совместимость. Я не могу придумать, как создать кросс-платформенный самораспаковывающийся архив с подписью.
Для окон создайте самораспаковывающийся архив с помощью инструмента iexpress, затем подпишите его с помощью signtool.exe, как описано здесь . Когда ваши пользователи дважды щелкнут по файлу, у них появится знакомое диалоговое окно подтверждения, идентифицирующее вас как издателя архива.
источник
Вы можете подписывать файлы с помощью jarsigner с помощью этих двух команд:
Вам нужно установить java jdk на свой компьютер.
Первая команда создает хранилище ключей в текущем каталоге (при условии, что он еще не существует). Он генерирует пару открытый / закрытый ключ, используя алгоритм SHA-256.
Второй подписывает файл, используя тот же алгоритм, хранилище ключей и псевдоним, сгенерированный первым.
Чтобы проверить файл, подписанный с использованием хранилища ключей, вы можете запустить эту команду:
источник