🔒

Поле Encryption: и PGP-шифрование

Что такое PGP и зачем это нужно?

Представьте, что отчет об уязвимости - это важное письмо. Отправить его по email - всё равно что отправить обычную открытку, которую по пути может прочитать кто угодно. PGP (Pretty Good Privacy) - это как положить письмо в сверхпрочный сейф, открыть который может только получатель своим уникальным ключом. В нашем случае, этим получателем являетесь вы

Использование PGP (или его бесплатной реализации GnuPG/GPG) для security.txt - это золотой стандарт безопасности. Он гарантирует, что детали уязвимости останутся строго между вами и исследователем до тех пор, пока вы не выпустите исправление


Шаг 1: Установка GnuPG (GPG)

Прежде чем создавать ключи, нужно установить необходимое ПО. Это делается один раз

💻 Linux (Debian/Ubuntu)

sudo apt update && sudo apt install gnupg

💻 Linux (Fedora/CentOS)

sudo dnf install gnupg2

🍎 macOS (через Homebrew)

Если у вас не установлен Homebrew, сначала установите его. Затем выполните команду:

brew install gnupg

❖ Windows

Для Windows существует пакет Gpg4win. Скачайте его с официального сайта и установите:

https://www.gpg4win.org/

После установки вы сможете выполнять все команды в терминале cmd или PowerShell


Шаг 2: Создание вашей пары PGP-ключей 🔑

Теперь создадим вашу личную пару ключей: публичный (которым делятся со всеми) и приватный (который хранится в строжайшем секрете)

1. Откройте терминал (или cmd/PowerShell на Windows) и выполните команду:

gpg --full-generate-key

2. Программа задаст вам несколько вопросов. Следуйте рекомендациям:

3. Проверьте данные и подтвердите, введя O (Okay)

4. Самый важный момент! Вас попросят ввести парольную фразу (passphrase) для защиты вашего приватного ключа. Придумайте очень сложный, длинный и уникальный пароль. Запишите его в надёжном менеджере паролей. Если вы его потеряете, вы навсегда потеряете доступ к зашифрованным сообщениям

После этого GPG сгенерирует ключи. Это может занять несколько секунд


Шаг 3: Экспорт публичного ключа для сайта

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

1. Выполните команду, подставив свой email:

gpg --export --armor "security@example.com" > security-pubkey.asc

2. Рядом с вами появится файл security-pubkey.asc. Загрузите его на ваш сайт

3. В поле Encryption: в генераторе укажите прямую ссылку на этот файл, например: https://example.com/security-pubkey.asc


Шаг 4: Как исследователь шифрует письмо 📩

Этот раздел описывает действия со стороны исследователя безопасности

  1. Скачать ваш публичный ключ. Исследователь заходит по ссылке из вашего security.txt и сохраняет файл security-pubkey.asc
  2. Импортировать ключ. Он добавляет ваш ключ в свою локальную "связку ключей":
    gpg --import security-pubkey.asc
  3. Написать отчет. Он создает текстовый файл с отчетом, например report.txt
  4. Зашифровать отчет. Он выполняет команду, используя ваш email:
    gpg --encrypt --armor -r "security@example.com" report.txt
    Ключ --armor создает текстовый (ASCII) зашифрованный файл, а не бинарный

В результате он получит файл report.txt.asc, который будет выглядеть как набор случайных символов. Этот файл он и отправит вам на почту


Шаг 5: Как вам расшифровать полученное письмо 📤

Вы получили зашифрованный файл report.txt.asc. Вот как его прочитать:

1. Сохраните файл на свой компьютер

2. Выполните в терминале команду:

gpg --decrypt report.txt.asc

3. GPG попросит вас ввести парольную фразу - ту самую, которую вы создали на Шаге 2 для защиты вашего приватного ключа

4. Если пароль верный, GPG расшифрует сообщение и выведет его содержимое прямо в терминал


🧠 Важные тонкости и лучшие практики