ФК-107БАГ
Зарегистрирован: 15.11.2009 Сообщения: 1
|
Добавлено: Вс Ноя 15 2009 17:18 Заголовок сообщения: Шифрование с использованием GPG |
|
|
Сейчас некоторые предприятия используют в своей роботе программу GPG. Решение использовать для шифрования почтовой переписки, файлов утилиту GnuPG принято из-за ее доступности в различных дистрибутивах Linux.
Разберемся для начала с азами и принципами шифрования. Разбирать будем систему, известную под названием шифрование открытым ключом(public key encryption), которая стала фактическим стандартом шифрования разного рода информации.
Эта схема использует два ключа: один - личный ключ, который хранится только у пользователя, и второй - открытый ключ, который находится в публичном доступе и передается другим пользователям. Открытый ключ, принадлежащий самому пользователю или тому, кому он хочет послать зашифрованную информацию, используется для шифрования. И только владелец соответствующего личного ключа сможет расшифровать данные. Есть также и третий ключ, называемый ключом сеанса. Он генерируется автоматически и используется для шифрования и расшифровки. А поскольку все это выполняется автоматически, он редко упоминается в описании процесса.
Широкое распространение получили два пакета шифрования по схеме открытого ключа. Первый - коммерческий PGP(Pretty Cood Privacy), GPG (GNU Privacy Guard), который является свободной реализацией PGP. Второй - OpenSSH. Далее мы будем рассматривать только GPG, ввиду его открытости и распространенности.
Основной задачей GPG является выполнение процедуры шифрования файлов. Он не устанавливает защищенные каналы передачи данных, как это делает OpenSSH. Он просто шифрует данные и проверяет их целостность.
Первое, что нужно сделать перед началом работы с GPG - это создать пару ключей: открытый и личный. Лучше всего это сделать под той учетной записью, под которой постоянно работаете. Команда для создания ключей такая:
gpg --gen-key
В процессе генерации необходимо выбрать тип ключа (по умолчанию годится первый вариант), его размер, срок действительности, имя пользователя, e-mail, пароль. Все эти пункты интуитивно понятны и останавливаться на них я не буду.
Генерация закончена, пара ключей готова к использованию. Оба файла - pubring.gpg (связка открытых ключей) и secring.gpg (связка личных ключей) - будут сохранены в двоичном коде в каталоге $HOME/.gnupg. Открытый ключ может быть представлен в двух видах: в виде двоичного кода и в текстовом формате. По умолчанию используется двоичный формат. Чтобы сконвертировать ключ в текстовый формат, необходимо выполнить:
gpg -a --export user > user.pub.key.asc
часть команды “> user.pub.key.asc” служит для перенаправления вывода не на экран, а в файл.
Для того, чтобы увидеть идентификатор ключа, можно запустить проверку ключа, в результате чего будет выведен список ключей в файле pubring.gpg:
gpg --list-key
До этого момента мы проводили операции со своими ключами. А что же делать с ключами других пользователей? Для этого необходимо вставить полученный со стороны открытый ключ в свою связку открытых ключей:
gpg --import otherkey.pub.key.gpg.asc (где otherkey.pub.key.gpg.asc
- это полученный файл ключа)
Шифрование является только одним из способов проверки целостности и достоверности информации. Другой способ - это подписывание файлов. В этом методе на основе характеристик файла создается своего рода подпись, в создании которой участвуют данные личного ключа. Если файл между моментом, когда он был подписан, и моментом получения не изменялся, то при его расшифровке или проверке с помощью GPG появится такое сообщение:
[user@host]$ gpg --verify foo.txt.asc foo.txt
gpg: Signature made Thu March 18 14:10:50 2009 EST using DSA key ID 12EA888D
gpg: Good signature from "******"
Чтобы подписать файл с именем “file”, нужно выполнить :
gpg -b file
В результате выполнения этой команды создастся файл в двоичном виде. Для того чтоб перевести его в ASCII представление, нужно сделать так:
gpg -ba file
Опция “-b” применяется для создания отдельного файла подписи. Файл подписи имеет то же название , что и подписываемый файл, но только с расширением .gpg или .asc, в зависимости от того в каком виде - двоичном или в ASCII - этот файл подписан.
И напоследок я расскажу, как собственно шифровать файлы. Предположим, что пользователь имеет ваш открытый ключ и хочет отправить вам зашифрованный файл. Ему для этого необходимо выполнить такую команду:
gpg -r user -e file (где "user" - это идентификатор ключа в связке, владельцу которого отправляется зашифрованный файл, "file" - имя шифруемого файла)
В результате создается файл file.gpg, который можно отправлять. Можно также на выходе получить сразу файл в текстовом представлении:
gpg -r user -ea file (где "user" - это идентификатор ключа в связке, владельцу которого отправляется зашифрованный файл, "file" - имя шифруемого файла)
Получив такой файл, вам нужно всего лишь выполнить:
gpg -d file.gpg (или .asc)
Объединить шифрование с подписью можно одной командой:
gpg -r user -bea file
В результате получим зашифрованный файл, при дешифровке которого будут выполнены действия по созданию для него подписи.
На этом все. Надеюсь эта статья принесет читателям пользу и избавит их от проблем кражи или подмены дынных.
|
|