Подпись файла: создание и проверка

Проверка и создание подписей файлов: OpenSSH ssh-keygen -Y, minisign и OpenSSL с ключами Ed25519, ECDSA P-256/P-384 или RSA в формате PEM, OpenSSH или JWK. Файлы и ключи не покидают браузер.

Введённые данные и файлы остаются в браузере

Проверка подписи

Перетащите файл сюда

или выберите файл на устройстве

Подпись SSH (-----BEGIN SSH SIGNATURE-----), файл .minisig или сырая подпись в base64, hex или двоичном файле .sig.

Открытый ключ PEM или сертификат, OpenSSH .pub, строки authorized_keys или allowed_signers, JWK/JWKS или открытый ключ minisign.

Только для подписей SSH: значение -n у ssh-keygen (file, git, …).

Результат

Здесь появится результат проверки или новая подпись.

На этой странице

Подпись файла проверяет и создаёт отсоединённые подписи для файлов любого размера: подписи OpenSSH из ssh-keygen -Y, файлы minisign .minisig и сырые подписи OpenSSL с ключами Ed25519, ECDSA P-256/P-384 и RSA. Файл хешируется в браузере блоками по 1 МиБ; файлы, ключи и парольные фразы никуда не загружаются.

Подробное описание функциональности

Режим Проверить сверяет скачанный релиз, резервную копию или документ с его подписью. Перетащите файл, вставьте Подпись или нажмите Загрузить подпись и укажите Открытый ключ. Формат определяется автоматически:

  • Подписи OpenSSH (ssh-keygen -Y sign, ими же подписываются коммиты и теги Git): ключом может быть файл .pub, строки authorized_keys или файл allowed_signers — подходящая строка показывает, кто подписал, а её ограничение namespaces= соблюдается. Пространство имён должно совпадать с указанным при подписи (обычно file). Без ключа инструмент всё равно проверяет подпись по ключу внутри неё и показывает его отпечаток.
  • minisign .minisig (с предварительным хешированием BLAKE2b и устаревший): проверяются ID ключа и доверенный комментарий, так что подделанный комментарий будет обнаружен.
  • Сырые подписи из openssl dgst -sign или openssl pkeyutl -rawin: двоичные, base64 или hex; ECDSA в DER или r‖s; RSA PKCS#1 v1.5 или PSS; SHA-256/384/512. Ключ — PEM (SPKI или PKCS#1), сертификат X.509, строка OpenSSH или JWK.

Режим Подписать создаёт подпись вашим ключом из поля Закрытый ключ: OpenSSH, PEM (PKCS#8, зашифрованный PKCS#8, EC или RSA) или JWK, для зашифрованных ключей — с полем Парольная фраза. Выберите Подпись SSH (ssh-keygen -Y), которую читает ssh-keygen -Y verify, или Сырая подпись (OpenSSL) с параметрами Хеш, Дополнение RSA и Кодировка ECDSA. В результате — подпись, отпечаток ключа, открытый ключ и готовая команда для проверки через ssh-keygen или openssl.

Практические примеры

Проверка скачанного релиза: перетащите tool-1.4.tar.gz, загрузите tool-1.4.tar.gz.sig и вставьте allowed_signers проекта — результат покажет «Подпись верна» и подписанта [email protected].

minisign: перетащите архив, загрузите его .minisig и вставьте открытый ключ RW… со страницы проекта; будет показан доверенный комментарий с именем файла и временем.

OpenSSL: проверьте результат openssl dgst -sha256 -sign key.pem -out data.sig data.bin с ключом public.pem; хеш и дополнение определяются автоматически.

Подпись для коллеги: загрузите свой id_ed25519, оставьте Подпись SSH (ssh-keygen -Y) и пространство имён file, нажмите Подписать файл, затем отправьте .sig вместе со строкой allowed_signers.

Как использовать этот инструмент

  1. Выберите файл

    Перетащите файл в область Перетащите файл сюда или нажмите Выбрать файл. Размер любой: файл хешируется блоками.

  2. Выберите режим

    Выберите Проверить, чтобы проверить подпись, или Подписать, чтобы создать её.

  3. Укажите подпись и ключи

    Для проверки вставьте Подпись и Открытый ключ, а для подписей SSH проверьте Пространство имён. Для подписи вставьте Закрытый ключ, заполните поле Парольная фраза, если он зашифрован, и выберите Формат подписи.

  4. Запустите

    Нажмите Проверить подпись или Подписать файл. Индикатор показывает объём захешированных данных; Отмена останавливает процесс.

  5. Прочитайте результат

    Зелёное или красное сообщение показывает вердикт, ниже — отпечаток ключа, схема, хеш и подписант. После подписи нажмите Скачать .sig или скопируйте подпись.

Советы и лучшие практики

  • Верная подпись без доверенного ключа доказывает лишь целостность, но не авторство: всегда сверяйте отпечаток или указывайте ключ подписавшего.
  • git подписывает коммиты в пространстве имён git, обычный ssh-keygen -Y sign — как правило, в file.
  • Подписи RSA-PSS из OpenSSL проверяются и с солью длины дайджеста, и с максимальной солью, поэтому проходят подписи как старых, так и новых версий OpenSSL.
  • Сырые подписи Ed25519 подписывают весь файл, а не хеш: здесь они ограничены 128 МиБ, а у подписей SSH ограничения нет.
  • Закрытый ключ используется только в этой вкладке и не сохраняется; и всё же лучше завести отдельный ключ для подписи, а не использовать повседневный ключ SSH.

Помогите выбрать следующий шаг

Что улучшить дальше?

Выберите одно предложение. Это идеи, а не обещанные функции.

Выберите один вариант

Отправляется только выбранный вариант как анонимный счётчик. В голосе нет введённых данных, сведений о файлах, URL, cookie или идентификатора; он не сохраняется в браузере. После перезагрузки страницы можно проголосовать снова.