amarao (amarao_san) wrote,
amarao
amarao_san

MICRO HOWTO ENCRYPT BACKUPS WITH GPG

В отличие от типичных задач для gpg, описывается тут задача несколько не типичная, но всё-таки важная. А именно: шифрование бэкапа.

Дано: сервер, где ценные данные.
Дано: бэкап сервер в общедоступном месте.
Цель: шифровать бэкап так, чтобы хищение данных с бэкап-сервера не привело к потере информации.

Теория процесса: создаётся пара ключей: открытый и закрытый. Закрытый распечатывается на бумажке в 3х экземплярах и пишется в двух экземплярах на компакт-дисках и выдаётся гендиректору под обещание "хранить в секрете, целостности и безопасности".

В дальнейшем мы шифруем открытым ключом бэкап, кладём его на бэкап-сервер.

В случае страшного ЧП у директора забирается диск (в худшем случае - набирается с бумажки в хекс-кодах) с закрытым ключом, которым бэкап расшифровывается к всеобщему счастью. Для избежания проблем, при передаче дисков и бумажек пишется акт-приёма передачи на отвественное хранение.

Опционально ключ может храниться и у админа - но только после тщательного обсуждения этого с директором. (лично я предпочитаю такие вещи не хранить - меньше хранишь, меньше проблем).


Итак, создание ключа:

(для виндовой версии корректируем пути)

gpg --no-default-keyring --keyring "`pwd`/open.keys" --secret-keyring "`pwd`/secret.keys" --gen-key

Ответы на вопросы:
1
2048
0
y
backup
(два Enter)
O
Enter, Enter

В результате мы имеем два файла: secret.keys и open.keys.

secret.keys нам понадобится только в случае аварии, потому мы его пишем в двух экземплярах на двух дисках (на самих дисках тоже можно сделать несколько десятков копий для защиты от царапин).

Далее:

cat secret.keys |uuencode secret.keys

(результат распечатать)

Или
hexdump -C secret.keys (размер больше, но, если что, набивать будет проще).

По моим рассчётам 77 строк, 80 символов в строке - отлично влезет на лист A4. Если не влазит - hexdump secret.keys (без -C).


Первая часть готова.

Вторая часть: шифрование бэкапа:

#!/bin/sh
gpg --batch --throw-keyids --no-default-keyring --keyring "`pwd`/open.keys" --encrypt -r backup data

(вместо data подставить ваш файл для паковки).

Получившийся файл data.gpg - зашифрованные данные, которые относительно безопасно можно хранить в не очень защищённых местах. Обратите внимание на имена файлов - если у вас файл будет называться ooo_pomoika_black_accounting_2006-2009--transfer_from_OOO_gasgas_20kk_to_clean.rar.gpg, то никто не будет париться с поиском закрытых ключей...


Третья часть. Расшифровка (можно не полениться и распечатать текст скрипта вместе с секретным ключом):

#!/bin/sh
gpg --yes --batch --no-default-keyring --secret-keyring "`pwd`/secret.keys" --keyring "`pwd`/open.keys" --output data --decrypt data.gpg

(N.B. Это глюк GPG, но без открытого ключа он работать отказывается, хотя технически он ему нафиг не сдался).
Tags: backup, crypto, gpg, администрирование
Subscribe

  • Модель угроз

    (по мотивам с хабра) Моя модель угроз, против которой я внедряю криптографию, включает: 1. Случайного любопытствующего. 2. Средней руки…

  • (рабочее)

    И всё-таки насколько системы управления конфигурациями осложняют жизнь и отладку - словами не описать. Вместо "пошёл и сделал" - сложный ритуал,…

  • (рабочее)

    Всё-таки построение мониторинга в любой крупной системе - это самая сложная и постепенная задача. Для продукта обычно есть некий минимальный объём…

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 17 comments

  • Модель угроз

    (по мотивам с хабра) Моя модель угроз, против которой я внедряю криптографию, включает: 1. Случайного любопытствующего. 2. Средней руки…

  • (рабочее)

    И всё-таки насколько системы управления конфигурациями осложняют жизнь и отладку - словами не описать. Вместо "пошёл и сделал" - сложный ритуал,…

  • (рабочее)

    Всё-таки построение мониторинга в любой крупной системе - это самая сложная и постепенная задача. Для продукта обычно есть некий минимальный объём…