GNU_privacy_guard/README.md

196 lines
7.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# GNU_privacy_guard
## Установка:
### Ubuntu/Debian:
```bash
sudo apt update && sudo apt install gnupg
```
## Создание пары ключей:
<!-- Описать тут, что делают эти ключи вообще.-->
```bash
gpg --full-generate-key
```
## Параметры генерации:
<!--Добавить сюда полный список возможных вариантов!!! -->
```text
Please select what kind of key:
(1) RSA and RSA (recommended)
(9) ECC (modern)
RSA keys may be between 1024 and 4096 bits.
What keysize do you want? (3072) 4096
Key is valid for? (0) 2y
Real name: Иван Петров
Email address: ivan@example.com
Comment: work key
```
## Парольная фраза:
```text
┌─────────────────────────────────────────────────────────┐
│ Please enter the passphrase to protect your new key │
│ │
│ Passphrase: ************************************ │
│ Repeat: ************************************ │
└─────────────────────────────────────────────────────────┘
```
> Парольная фраза защищает приватный ключ. Её потеря - потеря ключа.
## Просмотр ключей:
### Список публичных ключей:
```bash
gpg --list-keys
```
### Список приватных ключей:
```bash
gpg --list-secret-keys
```
## Подробная информация с отпечатком:
```bash
gpg --fingerprint ivan@example.com
```
<!-- Описать тут, зачем нужен отпечаток-->
### Пример вывода:
```text
pub rsa4096 2026-04-02 [SC] [expires: 2028-04-01]
1234 5678 9ABC DEF0 1234 5678 9ABC DEF0 1234 5678
uid [ultimate] Иван Петров <ivan@example.com>
sub rsa4096 2026-04-02 [E] [expires: 2028-04-01]
```
## Экспорт публичного ключа
### В текстовом формате (для отправки):
```bash
gpg --armor --export ivan@example.com > public_key.asc
```
### Экспорт ключа по отпечатку:
```bash
gpg --armor --export 123456789ABCDEF0123456789ABCDEF01234567 > public_key.asc
```
> Может пригодиться, если вы сгенерировали несколько ключей, у которых одинаковое имя владельца и адрес электронной почты
### Содержимое файла public_key.asc:
```text
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQINBGYj8...
...
-----END PGP PUBLIC KEY BLOCK-----
```
> между началом и концом PGP PUBLIC KEY BLOCK'а находится ваш публичный ключ.
## Импорт публичного ключа
### Импорт ключа коллеги:
```bash
gpg --import colleague_public_key.asc
```
### Проверка, что ключ был импортирован:
```bash
gpg --list-keys colleague@example.com
```
## Шифрование файла
### Ассиметричное шифрование для конкретного получателя:
```bash
gpg --encrypt --recipient colleague@example.com secret.txt
```
### Результат: зашифрованный файл
```text
secret.txt.gpg
```
### Шифрование с указанием имени выходного файла:
```bash
gpg --encrypt --recipient colleague@example.com --output secret.gpg secret.txt
```
### Шифрование для нескольких получателей:
```bash
gpg --encrypt --recipient user1@example.com --recipient user2@example.com secret.txt
```
## Расшифровка файла
### С выводом на экран:
```bash
gpg --decrypt secret.gpg
```
### С сохранением в файл:
```bash
gpg --decrypt secret.gpg > secret.txt
```
### Расшифровка без вывода:
```bash
gpg --quiet --decrypt secret.txt.gpg > secret.txt
```
## При расшифровке GPG запросит парольную фразу:
```text
┌─────────────────────────────────────────────────────────┐
│ Please enter the passphrase to unlock the secret key │
│ │
│ "Иван Петров <ivan@example.com>" │
│ 4096-bit RSA key, ID 1234567890ABCDEF │
│ │
│ Passphrase: ************************************ │
└─────────────────────────────────────────────────────────┘
```
## Подпись файла:
## Удаление ключей:
### Удаление публичного ключа:
```bash
gpg --delete-keys ivan@example.com
```
### Удаление публичного ключа по отпечатку:
```bash
gpg --delete-keys DDA6896DA36A444DB86CC73FE387B6192071F089
```
### Удаление приватного ключа:
```bash
gpg --delete-secret-keys ivan@example.com
```
### Удаление обоих ключей:
```bash
gpg --delete-secret-and-public-keys ivan@example.com
```
> При наличии нескольких ключей с одним e-mail GPG спросит, какой именно удалить.
## Изменение парольной фразы:
```bash
gpg --passwd ivan@example.com
```
> Будет вызван диалог для ввода старой и новой парольной фразы.
## Структура файлов GPG:
```text
~/.gnupg/
├── pubring.kbx # связка публичных ключей
├── private-keys-v1.d/ # приватные ключи (зашифрованные)
│ └── ABC123.key
├── trustdb.gpg # база доверия
└── gpg.conf # конфигурация
```
## Резервное копирование ключей:
### Экспорт приватного ключа:
```bash
gpg --armor --export-secret-keys ivan@example.com > private_key.asc
```
### Экспорт публичного ключа:
```bash
gpg --armor --export ivan@example.com > public_key.asc
```
### Проверка содержимого экспортированного ключа:
```bash
gpg --list-packets public_key.asc | grep "keyid"
```
## Памятка: что точно нельзя делать:
- Никогда не передавайте приватный ключ другим людям;
- Не храните парольную фразу рядом с приватным ключом;
- Не используйте пустую парольную фразу для ключей, работающих с важными данными;
- Не удаляйте старый ключ, пока не убедитесь, что все данные с ним расшифрованы.
## Восстановление после потери парольной фразы:
Если парольная фраза утеряна:
1. Смириться с потерей - ключ восстановить невозможно
2. Сгенерировать новую пару ключей
```bash
gpg --full-generate-key
```
3. Сообщить новый публичный ключ всем, кто отправлял вам зашифрованные данные
4. Удалить старый ключ
```bash
gpg --delete-secret-and-public-keys old@example.com
```
Файлы, зашифрованные старым ключом, расшифровать больше не получится.