Шифрование

Материал из Home Wiki
Перейти к навигации Перейти к поиску

Категория:Работа

GnuPG ключи

Мы шифруем их публичным ключом, они расшифровывают своим приватным.

Они шифруют нашим публичным ключом, мы расшифровываем нашим приватным.

Мы подписываем нашим приватным ключом, они проверяют подпись нашим публичным.

Они подписывают своим приватным ключом, мы проверяем подпись их публичным.

Генерация новой пары ключей

gpg --gen-key

Импорт GnuPG ключа в папку с набором ключей

gpg --homedir [/path/to/.gnupg/] --import [files]

Экспорт GnuPG публичного ключа из набора ключей

gpg --homedir [/path/to/.gnupg/] --armor --output [file] --export [names]

Экспорт GnuPG секретного ключа из набора ключей

gpg --homedir [/path/to/.gnupg/] --armor --output [file] --export-secret-keys [names]

Выводит все ключи и их отпечатки.

gpg --homedir [/path/to/.gnupg/] --fingerprint

Сертификаты и ключи OpenSSL

Генерация 1024 битного приватного ключа стандарта RSA

openssl genrsa -des3 -out [private.key] 1024

Cоздание публичного ключа на основании приватного

openssl rsa -in [private.key] -out [public.key] -pubout

Создание CSR-запроса на получение сертификата

openssl req -new -key [private.key] -out [server.csr]

Конвертация сертификата из бинарного формата p12 в текстовый pem для cURL

openssl pkcs12 -in [cert.p12] -nodes > [cert.pem]

Конвертация сертификата из текстового pem в бинарный формат p12

openssl pkcs12 -export -in [cert.pem] -inkey [private.key] -out [cert.p12]

Конвертация сертификата из бинарного формата DER в текстовый pem для cURL

openssl x509 -in [cert.cer] -inform d -out [cert.pem]

Просмотр информации о ключе в формате pem

(Выдаётся в том случае если она присутствует в ключе). Интересующие поля это дата окончания срока действия ключа и email издателя.

openssl x509 -text -noout -in [cert.pem]

Информация запроса

openssl req -noout -text -in [server.csr]

Отпечаток сертификата (еще называют thumbprint)

openssl x509 -in [cert.pem]  -fingerprint -noout

Получение серийного номера сертификата (serial number)

openssl x509 -in [cert.pem] -serial -noout

Шифрование файлов ключами SSH

Экспорт публичного ключа

ssh-keygen -f work.pub -e -m PKCS8

Шифрование

openssl rand 64 > key
echo key | openssl enc -aes-256-cbc -pass stdin -in mps_us.sql.gz -out mps_us.sql.enc
echo key | openssl rsautl -encrypt -pubin -inkey work.pub  -out mps_us.sql.key
rm key

Отправляем 2 файла mps_us.sql.enc и mps_us.sql.key.

Принимающая сторона может их расшифровать при наличии приватного ключа, соответствующего публичному work.pub.

openssl rsa -in ~/.ssh/id_rsa -outform pem > PRIV
openssl rsautl -decrypt -inkey PRIV -in mps_us.sql.key | openssl enc -aes-256-cbc -pass stdin -d -in mps_us.sql.enc -out mps_us.sql.gz
rm PRIV