Охраняем свои секреты, или GPG на службе email

Изображение пользователя VSL.
Опубликовано:

ОХРАНЯЕМ СВОИ СЕКРЕТЫ,

или GPG на службе email

Зачем шифровать почту Два слова о криптографии Использование GPG Общие сведения о ключах Генерирование ключа DH/DSS DSA с любым подключом RSA Сохранение ключа Дополнительные команды Смарт-карты Заключение  

На протяжении тысячелетий люди придумывали способы защитить свои секреты. Первые элементарные способы защиты информации путем ее кодирования появились в самом начале осознанной деятельности человека в силу тех же самых причин, которые обуславливают ее применение и сегодня. В отличие от издвана применявшихся методов кодирования информации современная криптография позволяет обеспечить очень высокий уровень ее защиты. Очень сильный, прогрессивный шаг в ее развитии пришелся на XX век.

Современные криптографические алгоритмы прежде всего открыты. Многие из них свободны в распространении и при этом, как на первый взгляд это не странно звучит, их стойкость и доверие к ним очень высоки. Ранее требовалось держать в секрете сам метод сокрытия информации, в результате чего было необходимо иметь столько разных алгоритмом, сколько было пользователей шифрования, сегодняшние методы позволяют иметь лишь несколько качественно выполненных и хорошо проверенных шифров и пользоваться ими всем желающим, секретом в данном случае является не конструкция шифра, а ключ. Достаточно сказать, что для симметричного шифра с длиной ключа 128 бит размер ключевого поля (количество возможных вариантов ключей) будет равен 2 в 128 степени. Может ли человеческий мозг представить себе такое число? Скорее всего, что только путем сравнительных оценок. К примеру с помощью ЭВМ нужно полным перебором (нахождение нужного шифровального ключа проверками всех возможных и вероятных ключей из ключевого пространства) найти нужный ключ. Если наша ЭВМ на проверку одного ключа будет тратить минимальную в физике величину энергии (переход электрона с одной орбиты атома на другую), то для перебора всех ключей потребуется истратить столько энергии, сколько будет достаточно для растопления всех льдов Арктики. Если взять длину ключа симметричного алгоритма в 256 бит, то задача усложняется в 2 в 128 степени или в 340282366920938463463374607431768211456 раз! Существуют и аналогичные временные оценки. Не вдаваясь в подробности можно сказать, что для человеческого мозга временные промежутки, за которые полным перебором можно найти тот же 128 битный ключ, не представимы.

Зачем шифровать почту?

Очень часто я встречаю людей, которые говорят: – «Мне скрывать нечего!» Тогда я готов их спросить – пусть Вы не преступник, не вор, не шпион или иная нехорошая личность, а вполне добропорядочный и законопослушный гражданин. Но разве Вы всегда все говорите громко и вслух, когда возникает необходимость кому-либо что то сказать без посторонних. Разве у вас никогда не было секретов или просто информации, которая не предназначена для широкого распространения? Разве Вы не прячете обычные бумажные письма в конверт? Разве Вы готовы передать через совершенно постороннего, неизвестного вам курьера важную информацию, скажем реквизиты платежного чека, пароль или сведения о результатах деловых переговоров?

Сейчас на многих предприятиях существуют положения о коммерческой тайне, в то время как многие документы, на которые вполне можно ставить гриф «конфиденциально» отправляются по почте деловым партнерам или в головной офис организации в совершенно открытом виде. Я думаю причина этого в инерционности мышления человеческого мозга, от чего и мы с вами не избавлены. Люди почему то наивно и ошибочно считают, что если письмо электронное, то его никто кроме вас и адресата не может увидеть. К тому же многие люди считают, что объем современной интернет переписки настолько велик, что никто не обратит внимания на ваши письма. Но ведь на часть писем внимание все-таки падает, можете ли Вы быть уверены, что это будут не ваши письма, или что вашу переписку никто не отслеживает намеренно?

В своих лекциях А.В. Беляев писал:

***********

Каковы возможные последствия атак на информацию? В первую очередь, конечно, нас будут интересовать экономические потери:

  1. Раскрытие коммерческой информации может привести к серьезным прямым убыткам на рынке

  2. Известие о краже большого объема информации обычно серьезно влияет на репутацию фирмы, приводя косвенно к потерям в объемах торговых операций

  3. Фирмы-конкуренты могут воспользоваться кражей информации, если та осталась незамеченной, для того чтобы полностью разорить фирму, навязывая ей фиктивные либо заведомо убыточные сделки

  4. Подмена информации как на этапе передачи, так и на этапе хранения в фирме может привести к огромным убыткам

  5. Многократные успешные атаки на фирму, предоставляющую какой-либо вид информационных услуг, снижают доверие к фирме у клиентов, что сказывается на объеме доходов

Естественно, компьютерные атаки могут принести и огромный моральный ущерб. Понятие конфиденциального общения давно уже стало "притчей во языцех". Само собой разумеется, что никакому пользователю компьютерной сети не хочется, чтобы его письма кроме адресата получали еще 5-10 человек... ************

Из своего опыта могу сказать, что конечно же масса писем, которые я получаю и отправляю представляют собой обычный никого не интересующий «интернет-фон», например это уведомления о сообщениях в форумах, письма с техническими вопросами о настройке оборудования или ПО, общение с коллегами «ни о чем» и т.д. и т.п. Но вместе с тем достаточно часто возникают ситуации, когда мне нужно послать информацию личного характера, например семейные фотографии своим родственникам или данные паспорта, нежное письмо обожаемой подруге или тот же самый документ из офиса домой, если я не успел закончить его создание в рабочее время. При этом мне спокойнее закрыть письмо и не думать о том, что к его содержимому могут получить доступ посторонние люди. Представьте себе ситуацию, что Вы приходите домой, а там совершенно неизвестный и посторонний для вас человек из-далека, проездом остановивший по старой памяти у вашего совместно проживающего родственника, рассматривает ваш семейный альбом или в качестве экскурсии рассматривает вашу комнату, где могут быть ваши личные вещи! В конечном счете ведь это совершенно необременительно – шифровать содержимое ваших сообщений! Для этого всего лишь нужно создать ключ GPG и, при необходимости (главным образом это касается Windows систем) установить нужное, бесплатное и свободно распространяемое на совершенно законных основаниях ПО. В результате Вы получите стойкую защиту и сможете не беспокоится о том, что будете делить вашу информацию с совершенно посторонними людьми. Я думаю, что в конечном счете шифрование почты может стать просто хорошей привычкой и правилом хорошего тона в общении с вашими собеседниками и деловыми партнерами. Кроме того, шифрование поможет защитить ваши письма не только в пути, но и на вашем рабочем месте.

Два слова о криптографии.

Какие задачи решает криптография?

1. Конфиденциальность– гарантия того, что конкретная информация доступна только тому кругу лиц, для кого она предназначена; нарушение этой категории называется хищением либо раскрытием информации

2. Целостность – гарантия того, что информация сейчас существует в ее исходном виде, то есть при ее хранении или передаче не было произведено несанкционированных изменений; нарушение этой категории называется фальсификацией сообщения

3. Аутентичность – гарантия того, что источником информации является именно то лицо, которое заявлено как ее автор; нарушение этой категории также называется фальсификацией, но уже автора сообщения

Современное время позволило использовать крипто очень эффективно вследствие появления электронной вычислительной техники, которая взяла на себя всю рутину по выполнению самой работы шифрования и сделав ее доступной любому обладателю персонального компьютера.

Какие основные направления криптографии существуют сегодня?

  1. Симметричные системы шифрования.

  2. Асимметричные системы шифрования.

  3. Системы создания электронной цифровой подписи.

  4. Системы управления ключами.

Симметричные криптосистемы:

Симметричные системы подразумевают шифрование информации и ее расшифрование с помощью одного и того же ключа, который является единственным секретом в системе. Современные симметричные шифры очень надежны. Следует однако сказать, что создать действительно качественный шифр очень непросто, поэтому доверять следует лишь проверенным специалистами мирового класса шифрам и программным продуктам. Такие шифры как правило открыты, иначе просто было бы трудно заниматься их анализом. В данном случае принято говорить, что если речь идет о шифре как об алгоритме, что он должен иметь открытый дизайн, архитектуру, спецификации, если же речь идет о конкретном ПО, то оно должно иметь открытые исходники. Симметричные системы шифрования на сегодняшний день являются единственными средствами с доказанной устойчивостью к взлому (по крайней мере к известным на сегодняшний день науке видам атак).

Асимметричные криптосистемы:

Что такое ключ в асимметричной системе шифрования? Это ключ который состоит из 2-х частей, одна из частей называется приватной или секретной, другая - открытой. Открытый ключ можно распространять совершенно свободно - посылать по почте, размещать на серверах и сайтах, раздавать на дискетах, даже опубликовать в газете. С помощью этого ключа ваши корреспонденты смогут зашифровывать для вас сообщения и проверить вашу ЭЦП (электронную цифровую подпись) . Закрытый ключ должен надежно храниться у вас «под семью замками», с его помощью Вы можете расшифровывать сообщения зашифрованные для вас с помощью открытого ключа и ставить свою ЭЦП, благодаря которой ваши корреспонденты смогут быть уверены, что отправителем сообщения являетесь именно Вы, а так же в том, что сообщение в пути своего следования не было изменено или подменено. Математически закрытый и открытый ключи одной пары связаны между собой, но вычислить закрытый ключ из открытого чрезвычайно сложно.

Разработки асимметричных схем шифрования достаточно молоды. Первая работа в этом направлении была представлена в 1970 году Британской криптографической службой, второй работой стала представленная Ральфом Мерклом в 1974 году схема, получившая название Головоломок Меркла, однако эта схема оказалась не очень практичной. Первым же настоящим стойким асимметричным шифром стал шифр Уитфилда Диффи и Мартина Хеллмана, представленный в 1975 году. Датой рождения популярного и до сих пор с успехом выдерживающего (как впрочем и алгоритм Деффи и Хелмана) атаки криптоаналитиков алгоритма RSA (по именам создателей Райвест, Шамир и Адлеман) считается 1978 год. Стойкость алгоритма RSA основана на трудной задаче факторизации больших чисел; трудность задачи не доказана и не опровергнута.

Очень часто симметричные и асимметричные системы шифрования пытаются сравнивать. Что же лучше? Это неверная постановка вопроса. Каждая из систем имеет свои плюсы и минусы и имеет определенные области применения. Очень часто эти системы используются совместно.

Симметричные системы очень прочны, они обладают доказанной криптографической стойкостью. Т.е. если шифр идеален – то взломать его можно только полным перебором пространства ключей. В то же время такие шифры требуют секретного канала передачи ключа, что при большой географической удаленности между сторонами обмена информации становится одной из главный проблем. Асимметричные системы избавлены от этого недостатка, но они не обладают доказанной криптографической стойкостью. Никто в мире не доказал, что существует способ получения закрытого ключа из открытого, но никто не доказал и обратного – что такого способа не существует. Асимметричные системы работают много медленнее симметричных, зато позволяют использовать ЭЦП. Еще одним важным преимуществом асимметричных систем является то обстоятельство, что для приватного общения с большим количеством разных корреспондентов вам достаточно иметь всего лишь один единственный ваш секретный ключ, что при применении симметричных систем невозможно.

Для сравнения криптографической стойкости симметричных и асимметричных систем, если взлом рассматривать как полный перебор ключей, можно привести такую сравнительную таблицу длин ключей:

Длина симметричного ключа, бит (для блочного шифра)

Длина асимметричного ключа RSA, бит

Длина асимметричного ключа на эллиптических кривых, бит

80

1024

160

112

2048

224

128

3072

256

192

7680

384

256

15360

512

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

Системы создания электронной цифровой подписи:

Системы ЭЦП развиваются вплотную с асимметричными системами шифрования и во многом используют те же принципы. В данных системах так же используется асимметричная ключевая пара. Как уже говорилось, с помощью закрытого ключа Вы можете поставить свою ЭЦП, идентифицирующую вас как автора того или иного сообщения, документа, файла или владельца удаленной учетной записи информационной или бизнес-системы. Проверяется ЭЦП с помощью вашего открытого ключа. В современных схемах ЭЦП очень активно используются хеш-функции.

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

Хеш-функции обладают следующими свойствами:

  1. Хеш-функция имеет бесконечную область определения,

  2. Хеш-функция имеет конечную область значений,

  3. Хеш-функция необратима (невозможно из ее результата получить исходные данные)

  4. Изменение входного потока информации на один бит меняет около половины всех бит выходного потока, то есть результата хеш-функции.

Можно еще сказать, что хеш-функции представляют собой определенный шифр, используемый специальным образом. Выходным значением хеш функции в электронных системах является определенный блок нулей и единиц (например 160 бит для SHA-1 или 256 бит для SHA-256), не зависящий в своем размере от количества хешируемых данных, но непредсказуемо изменяющий свое значение даже при изменении одного единственного бита в исходных хешируемых данных.

Дополнительно о хеш-функциях можно сказать, что каждая из них имеет определенное множество коллизий (совпадение значений выходного блока данных для определенных наборов входных данных). То есть можно сказать, что есть множество определенных файлов или текстов, для которых хеш-функция будет иметь одинаковое значение. Это неудивительно, так как выходное значение хеш-функции представляет небольшой блок данных, в то время как хешируемые данные могут иметь внушительный объем. Однако для качественно-спроектированных хеш-функций подбор входных данных для получения коллизии является крайне-трудной задачей. Можно сказать, что качественная хеш-функция должна иметь лишь естественные (не специально подобранные) коллизии. При таком раскладе осмысленный подбор входных данных для получения коллизии становится невозможным. Естественная коллизия для качественной хеш-функции должна находится не ранее чем через 2 в степени N/2 проверок тотальным поиском, где N – разрядность выходного блока хеш-функции. Спроектировать качественную хеш-функцию еще сложнее, чем качественный симметричный блочный алгоритм шифрования.

Системы управления ключами.

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

Генерация ключей, передача и способы защиты ключей, использование и обновление ключей, хранение и резервирование ключей, аннулирование ключей, уничтожение ключей, наконец способы управления открытыми ключами и модели доверия при установлении их подлинности. О некоторых аспектах управления ключей, тех которые нам потребуются при изучении GPG мы поговорим чуть позже. Сейчас же хочется сказать несколько слов о моделях установления подлинности к открытым ключам и о модели доверия, используемой в GPG.

Любые системы с использованием асимметричных ключей уязвимы к атакам, именуемым специалистами как «человек по середине». Суть данной атаки состоит в том, что злоумышленник (пусть это будет человек А) генерирует ключ от имени другого человека (человека Б) и передает этот ключ пользователю (человеку В) для того, что бы человек В шифровал свои сообщения для человека Б. Как Вы понимаете, не удостоверившись в подлинности полученного ключа, человек В будет шифровать свои сообщения для человека Б, хотя на самом деле их будет читать человек А. Для противодействия таким атакам все системы с открытым ключом имеют системы установления подлинности открытых ключей.

Сертификат ключа.

Назначение сертификата ключа состоит в том, что бы вместе с материалом самого ключа представить идентифицирующие его записи. После генерации своего ключа Вы получите как минимум несколько записей в сертификате своего ключа, это имя, e-mail, и автоподпись (вашу собственную подпись). По этим данным ваши корреспонденты смогут провести первичную идентификацию ключа. Кроме того сертификат ключа содержит сведения о периоде действия вашего ключа и предпочтительных алгоритмах шифрования. Очень важным свойством сертификата является отпечаток, представляющий его хеш-значение, об этом мы поговорим далее, когда речь пойдет о проверке подлинности ключей.

Модели доверия.

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

Учитывая все вышесказанное можно с радостью потереть руки, научиться пользоваться криптографическими средствами и не беспокоиться о том, что ваша зашифрованная информация станет кому-либо доступна. Однако есть и ложка дегтя - криптография представляет лишь одно из звеньев очень объемной науки о защите информации, причем по видимому самое сильное.

Очень успешно все перечисленные задачи криптографии можно решать при использовании GPG.

Использование GPG (GNU Privacy Guard – страж приватности)

В данном разделе мы рассмотрим что такое GPG, какие алгоритмы он использует и выполним операции по созданию своего ключа. В дальнейших разделах мы рассмотрим наиболее часто используемые команды по шифрованию информации, применению ЭЦП и управлению ключами.

Утилита шифрования GPG является пакетом, реализующим стандарт OpenPGP, представляет собой консольное приложение, имеет реализации под различные платформы. GPG встроена в каждую версию Linux и активно используется системой в качестве средства аутентификации и защиты данных (в частности в распространенном приложении оболочки KDE KGPG). GPG использует открытые алгоритмы, исходный код программы так же открыт.

GPG может использоваться не только для системных нужд, но и для выполнения задач пользователя. При этом программой можно управлять из консоли, а так же, для упрощения, из под различных визуальных операционных оболочек. GPG активно используется в качестве криптографического ядра для множества почтовых клиентов, имеющих поддержку стандарта OpenPGP, непосредственно или при помощи дополнительных программ, плагинов.

Как осуществляется шифрование?

Как осуществляется шифрование и подписывание электронной почты? На самом деле при пересылке информация шифруется симметричным алгоритмом. Асимметричный алгоритм используется лишь для шифрования симметричного ключа, который индивидуален в каждом конкретном случае, и пересылается в зашифрованном виде вместе с зашифрованном сообщением. Симметричный ключ вырабатывается для пересылки каждого нового сообщения с помощью алгоритма случайных чисел. Такая схема позволяет решить 2 задачи. Во первых, как уже говорилось, скорость шифрования с помощью асимметричного алгоритма в сотни и тысячи раз меньше, чем скорость шифрования симметричным методом (представим, что мы отправляем сообщение с объемным вложением), во вторых такая схема имеет повышенную надежность поскольку симметричные схемы более стойки к атакам по известному или предполагаемому открытому тексту, предугадать же сеансовый симметричный ключ невозможно.

Если Вы лишь подписываете сообщение, не зашифровывая его содержимое, то при передаче шифруется лишь хеш значение исходного сообщения, получатель письма то же вычисляет хеш-значение полученного сообщения, далее расшифровывает хеш-значение вычисленное отправителем и сравнивает 2 варианта. Если оба хеш-значения идентичны, значит ЭЦП считается верной. Подменить ЭЦП невозможно, поскольку у отправителя хеш значение сообщения зашифровывается его секретным ключом (в данном случае открытый и закрытый ключи меняются ролями). Если при передаче сообщение будет изменено, то получатель сразу же обнаружит подмену. Естественно, что можно послать одновременно зашифрованное и подписанное сообщение.

Заметьте, что при шифровании ваших сообщений или файлов их содержимое автоматически архивируется, поэтому перед пересылкой документов нет необходимости в их предварительном сжатии. Главное же назначение архивации – увеличение криптостойкости. Зачем нужна архивация в криптографии? Дело в том, что в современном криптоанализе, то есть науке о противостоянии криптографии, с очевидностью доказано, что вероятность взлома криптосхемы при наличии корреляции между блоками входной информации значительно выше, чем при отсутствии таковой. А алгоритмы сжатия данных по определению и имеют своей основной задачей устранение избыточности, то есть корреляций между данными во входном тексте.

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

Какие алгоритмы использует GPG

Изучать способы работы гораздо эффективнее непосредственно используя консоль и вводя команды. На таком же принципе мы будем в дальнейшем рассматривать работу с GnuPG.

Войдите в консоль и дайте команду gpg --version

В следующей строке Вы увидите версию вашей программы. Далее Вы увидите

Home: ~/.gnupg Поддерживаются следующие алгоритмы: С открытым ключом: RSA, RSA-E, RSA-S, ELG-E, DSA Симметричные шифры: 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH Хэш-функции: MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512 Алгоритмы сжатия: Без сжатия, ZIP, ZLIB, BZIP2

С помощью специальных опций Вы сможете в дальнейшем выбрать определенные из представленных алгоритмов для использования, те, которые сочтете для себя предпочтительными, но это от вас не требуется в обязательном порядке, т.к. GPG использует определенные, лучшие с точки зрения разработчиков алгоритмы по умолчанию. Если Вы все же это захотите это сделать, то это может коснутся выбора симметричного алгоритма шифрования, хеш-функции или алгоритма сжатия. Тип асимметричного ключа вам придется определить вручную при создании асимметричной пары.

Из симметричных алгоритмов можно выделить следующие:

AES - Advanced Encryption Standard. Разработан в Бельгии, оригинальное название Rijndael, шифр, выигравший конкурс на алгоритм шифрования США (гос. стандарт). Шифр использует ключи 128, 192 или 256 бит.

CAST - Дизайн основан на формальной архитектуре DES с доказанной стойкостью. Не имеет слабых и полуслабых ключей. Совершенно устойчив к линейному и дифференциальному криптоанализу. Работает с ключами длиной 128 бит и использует 64 битовые блоки данных (есть более свежие редакции CAST с использованием 128 битовых блоков данных и поддержкой ключей в 128, 192 и 256 бит, но данную редакцию OpenPGP пока не поддерживает).

Twofist - Один из пяти финалистов на звание AES. Группу разработчиков возглавлял Брюс Шнайер. В реализации PGP использует 256-битовый ключ и 128-битовый блок данных.

Blowfish, автором которого также является Брюс Шнайер, представляет собой блочный алгоритм с ключом переменной длины (вплоть до 448 бит), оперирующий на 64-битовых блоках. 3DES – тройной DES. (DES- бывший стандарт США на шифрование данных с длиной ключа 56 бит). Расчетная стойкость алгоритма против атаки грубой силой соответствует шифру с длиной ключа 112 бит.

Из асимметричных алгоритмов мы можем выделить следующие.

RSA-E – ключи шифрования RSA-S – ключи подписания ELG-E – ключи шифрования по схеме Элгамаля (в специфике обозначений OpenPGP им соответствуют ключи DH) DSA – ключи подписания (в специфике обозначений OpenPGP им соответствуют ключи DSS).

Алгоритм RSA основан на трудной задаче факторизации больших чисел. Алгоритм Элгамаля основан на трудной задаче вычисления дискретных логарифмов. Алгоритм DSA, как и алгоритм Эльгамаля, основан на трудной задаче вычисления дискретных логарифмов, используется только для создания ЭЦП с ограничением длины ключа в 1024 бит и использованием хеш-функции SHA-1. Все представленные алгоритмы имеют открытый дизайн, хорошо проанализированы специалистами мира и свободны в распространении.

Из хеш-функций MD5 представляет собой алгоритм, созданный Р.Ривестом. Алгоритм возвращает 128 битовое хеш-значение. На сегодняшний день такой длины значения хеша мало (как уже говорилось, естественная коллизия должна находиться не ранее чем через 2^N/2 операций поиска, т.е. в данном случае это 64 бита), к тому же после детального криптоанализа в алгоритме были найдены слабые места, которые позволили провести ряд успешных криптоатак. На сегодняшний день алгоритм считается ненадежным и используется лишь для совместимости со старыми версиями программ. Разработчиком хеш функций семейства SHA (Secure Hash Algorithm) является АНБ и NIST (национальный институт стандартов и технологии)  США, однако это не должно вызывать подозрений в наличии тайной лазейки. Алгоритм SHA-1 опубликован и проанализирован, к тому же АНБ вряд ли заинтересовано в крахе данной хеш-функции, поскольку это означало бы дискредитацию национальной системы цифровой подписи США. Кроме того нельзя сравнивать алгоритмы шифрования и хеш-функций из-за различий стоящих перед ними задач. Дизайн хеш-функции SHA-1 схож с дизайном MD4, предшественника MD5, функция доработана, возвращает 160 битовое число выхода и является гораздо более стойкой чем MD5. Однако в 2005 году и на эту хеш-функцию был произведен ряд относительно успешных криптоатак, что ослабило ее позиции. Путем детального анализа и последующих экспериментов китайским исследователям удалось получить коллизию через 2^69 степени операций. Данное обстоятельство вызвало беспокойство в кругах криптологов и самое неприятное, что теперь можно ожидать дальнейших успешных атак против стойкости этой функции. На сегодняшний день ее криптостойкость находится на грани максимально возможных вычислительных мощностей и получение коллизии продолжает оставаться чрезвычайно трудоемкой задачей. Функции семейства SHA-2 (SHA-256, 384, 512) являются продолжением хеш функций семейства SHA. Хеш функция SHA-512 пока не включена в стандарт OpenPGP, однако ее поддержка уже осуществляется. Данные хеш-функции имеют более длинное выходное значение, соответствующее номеру в названии, что поднимает планку криптостойкости, к тому же по видимому разработчики внесли в дизайн данных функций дополнительные средства "усиления" (в данном случае нужно оговориться - документация по ходу проведения работ закрыта, хотя конечный результат - сам алгоритм, открыт для изучения, поэтому говорить точно пока алгоритм основательно не будет изучен трудно). Практически функциями SHA-2 можно пользоваться уже сегодня, однако их не поддерживают версии GPG младше 1.4.1 и это необходимо учитывать при обмене подписанными сообщениями с вашими корреспондентами. В целом однако, поскольку данные хеш-функции имеют примерно одну архитектуру, к 2010 году им планируется подыскать замену. На сегодняшний день уже существует ряд перспективных функций, хотя и совсем небольшой, одна из них WhirlPool, однако она очень медлительна. Будет ли она включена в стандарт покажет время.

Общие сведения о ключах.

Прежде всего нужно сказать, что пользоваться GPG можно и без создания ключа, но в этом случае мы сможем использовать лишь симметричный способ шифрования данных. Для того, что бы мы смогли вести приватную переписку, использовать электронную цифровую подпись (ЭЦП), или шифровать свои же данные асимметричным алгоритмом нам нужно создать асимметричный ключ.

Ключ GPG можно создать из какой-либо операционной оболочки, которых существует множество, однако все оболочки рассмотреть невозможно, поэтому мы создадим свой ключ из командной строки GnuPG. Такой метод универсален, ключ созданный таким образом будет обнаружен любой оболочкой (это на самом деле не совсем верное утверждение ибо любая оболочка является лишь графическим интерфейсом). Кроме того процесс создания ключа в консоли гораздо более гибок и не ограничен функциональностью той или иной графической среды.

Прежде чем создать свой ключ хочу дать небольшую рекомендацию. Создание ключа процесс достаточно творческий, как правило пользователи в экспериментах создают несколько ключей прежде, чем создать свой основной, которым будут пользоваться в дальнейшем постоянно. Вы можете немного поэкспериментировать, однако не создавайте в экспериментах ключи с бессрочным сроком действия, вполне достаточно создать ключ со сроком действия в 1...3 месяца. В последствии вы можете просто запутаться в созданных ключах, кроме того в экспериментах вы можете послать такие ключи на сервер, после чего они лягут там мертвым, неудаляемым, ненужным грузом и к тому же, если вы дадите этим ключам реальные записи сертификатов, они будут вводить в заблуждение пользователей, которые захотят отыскать на сервере ваш ключ для отправки вам зашифрованного сообщения. Конечно, пользуясь рекомендациями руководства вы сможете создать сразу тот ключ, который станет вашим основным ключом на годы вперед.

Общие сведения о ключе и о выборе ключевой фразы.

Прежде чем перейти непосредственно к генерированию ключа следует сказать о некоторых важных моментах устройства и использования ключей.

Что представляет из себя ключ, созданный в рамках стандарта OpenPGP? В современном формате (называемый форматом V4) данный ключ состоит из базового ключа и подключей шифрования. То есть каждый ключ представляет собой не единственную пару открытой и закрытой части ключа, а связку главной ключевой пары, называемой базовым ключом, и дополнительных ключевых пар, которые размещены на базовом ключе. Базовый ключ служит для сбора сертифицирующих ключ подписей и для подписания файлов и сообщений. Подключи предназначены непосредственно для шифрования информации, имено поэтому при генерировании ключа вы встретите меню генерирования ключей подписания и шифрования. По ряду причин такая схема является более безопасной, чем схема, которая применялась в ранних версиях стандарта и представляла собой единственную ключевую пару. В данном случае задача взлома для криптоаналитика становится более сложной, так как если он взломает ключ подписи, то не сможет автоматически расшифровать информацию, для этого ему понадобиться взломать и ключ шифрования. То же самое касается обратной ситуации, в которой взломав ключ шифрования он не сможет подписывать сообщения от вашего имени пока не взломает и базовый ключ подписания. Кроме того в данной схеме ключа вы сможете генерировать подключ с ограниченным сроком действия, а по истечении этого срока или в силу других причин сгенерировать новый подключ. При этом вы не потеряете на своем базовом ключе собранные от ваших корреспондентов экспортируемые подписи, заверяющие ваш ключ для других пользователей. Вы так же сможете сгенерировать несколько подключей сразу, хотя чаще всего особого смысла в наличии нескольких подключей одновременно нет.

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

Пароль позволяет защитить ваш секретный ключ от несанкционированного доступа к нему посторонних лиц, в случае если ваш ключ окажется в их руках, и является последней степенью его защиты, именно поэтому к подбору пароля нужно отнестись очень серьезно. GnuPG с помощью хеш-функции перемалывает пароль в симметричный ключ определенной длины, с помощью которого ваш секретный ключ зашифровывается симметричным алгоритмом и хранится именно в таком виде. Именно поэтому нет никакой разницы какой пароль вы придумаете, короткий или длинный – ключ будет все равно одинаковой длины, однако это с технической точки зрения. С точки же зрения криптостойкости к подбору пароля следует подойти более чем основательно, поскольку короткий пароль будет обладать малой энтропией (случайностью), поэтому будет бессмысленной ситуация шифрования 128 битным ключом, который получен из пароля «123» или «Vasya», - образно говоря можно представить, что в данной ситуации мы устанавливаем на мощнейшую дверь замок, вскрываемый булавкой.

Никогда не используйте в качестве паролей собственные даты рождения или даты рождения близких родственников, имена людей, домашних животных, паспортные данные, марку любимого автомобиля, сотового телефона и т.п., или просто короткое сочетание букв и цифр. Все эти данные уже либо занесены в словари для вскрытия шифрованных данных, либо могут быть подобраны без особенно больших усилий. Из своего опыта могу сказать, что я угадал пароль к почтовому ящику своего товарища, в то время как он был уверен, что сделать этого не удасться. Все оказалось очень просто - он сам не единожды произносил его в контексте посторонних бесед.

Лучшим паролем с точки зрения криптостойкости является длинный набор случайных букв в разном регистре, цифр и других печатаемых символов, однако запомнить такой пароль невозможно. Выход однако есть, и он весьма эффективен – в качестве стойкого и запоминаемого пароля вы можете применить парольную фразу. Именно таким образом я и рекомендую вам поступить. Однако правильный выбор парольной фразы может потребовать от вас раздумий, поэтому не торопитесь с вводом первой придуманной фразы. Причин тому несколько. Во первых, если это будет ваша фраза придуманная налету, то нет никаких гарантий, что уже завтра или послезавтра вы ее не забудете, во вторых, если вы введете какую-либо известную фразу, произнесенную известным политиком или литературным героем, ее энтропия (степень непредсказуемости) окажется много ниже рекомендуемой границы криптостойкости, так как скорее всего фраза окажется так же внесенной в «ломальные» базы данных. Наилучшим решением будет применение фразы, которая будет отражением ваших личных глубоких, трудно угадываемых посторонними людьми постоянных мыслей или воспоминаний из детства, которые проверенно осели в вашей памяти. Будет хорошо, если в данную фразу вы внесете дополнительную энтропию с помощью применения в случайных местах некоторых букв в другом регистре клавиатуры, подмешиванием знаков препинания или других печатаемых символов (например $!# и т.п.).

И последнее - не вводите парольную фразу кириллицей. Для удобства (но не для повышения криптостойкости) вы можете писать ее нажимая на клавиши с русскими буквами, но обязательно в латинской раскладке клавиатуры. И помните, если вы забудете свою парольную фразу – никто не сможет вам помочь в восстановлении ваших данных!

Генерирование ключа

Итак приступаем к главному - созданию нашего ключа:

В данном разделе мы рассмотрим три предлагаемых в начальном меню варианта генерации различных типов ключей, начиная с первого. Я рекомендую вам просмотреть все варианты, однако остановиться на третьем варианте, выбрав алгоритм подписи и шифрования RSA. В разных разделах рассмотрены разные команды, которые могут быть применены при редактировании свойств разных ключей. В данном случае я в определенном смысле исходил из наиболее вероятной потребности применения тех или иных команд при редактировании определенных типов ключей. Так, например в разделе создания ключа DH/DSS описаны операции по удалению и созданию подключей, просмотру отпечатка, подписей и удалению ключа. В разделе «DSA с любым подключом» описана последовательность создания ключа без дополнительного редактирования ключа, в разделе RSA описаны дополнительные команды по добавлению и удалению идентификаторов (e-mail адресов), отзыву идентификаторов пользователя, установке одного из идентификаторов как идентификатора по умолчанию, аннулированию (отзыву) подключа, изменению срока действия ключа (подключа), изменению пароля для доступа к секретному ключу.

DH/DSS

В данном случае вы сгенерируете довольно распространенный ключ формата DH/DSS. При использовании этого ключа подпись будет формироваться по алгоритму DSA, шифрование по алгоритму Элгамаля.

Запускаем консоль (если она еще не запущена) и даем команду

gpg –-gen-key
gpg (GnuPG) 1.4.2; Copyright (C) 2005 Free Software Foundation, Inc.
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it

under certain conditions. See the file COPYING for details.

Выберите тип ключа:
   (1) DSA и ElGamal (по умолчанию)
   (2) DSA (только для подписи)
   (5) RSA (только для подписи)
Ваш выбор (?-подробнее)?
Выбираем 1

В данной ситуации вы сгенерируете базовый ключ и подключ одновременно. Ключ подписания будет ограничен длиной 1024 бит. Вы можете выбрать предлагаемую по умолчанию длину ключа шифрования 2048 бит. В целях большей и главное более долгосрочной надежности (если мы посмотрим приведенную в начале статьи таблицу, то увидим, что асимметричные ключи длиной 3072 бит по криптостойкости примерно соответствуют симметричным ключам 128 бит) я рекомендую вам принять длину ключа в 3072 бит.

Пара ключей DSA будет иметь длину 1024 бит.
ключи ELG-E могут иметь длину от 1024 до 4096 бит.
Какой размер ключа Вам необходим? (2048)

выбираем 3072

Запрашиваемый размер ключа 3072 бит

Выберите срок действия ключа.
         0 = без ограничения срока действительности
      <n>  = срок действительности n дней
      <n>w = срок действительности n недель
      <n>m = срок действительности n месяцев

      <n>y = срок действительности n лет
Ключ действителен до? (0)

В данном случае вам предлагается выбрать срок действия вашего ключа. Чаще всего пользователи генерируют ключ без ограничения срока действия, однако во избежании засорения ключевых серверов в отдаленной перспективе я рекомендую вам выбрать срок действия таким, каким вы можете его предвидеть в реальности. В приведенных ниже примерах я выбирал срок действия 10 лет, однако это лишь пример. Если вы не особенно суеверны, то можете выбрать срок действия своих ключей 20, 30, 40, 50 лет и более или столько сколько сочтете нужным. Конечно вы можете сгенерировать и ключ без срока действия. Следует сказать, что при необходимости вы сможете изменить срок действия ключа (это будет рассмотрено позднее).

выбираем 10y

Ключ действителен до: Сбт 04 Июн 2016 21:56:00 MSD
Все верно? (y/N)

жмем у

Для идентификации Вашего ключа необходим User ID
Программа создаст его из Вашего имени, комментария и адреса e-mail в виде:
    "Baba Yaga (pensioner) <yaga@deepforest.ru>"

Ваше настоящее имя:

Во избежании несовместимости настоятельно рекомендую вам вводить имя в латинской раскладке клавиатуры.

Вводим имя Vasiliy

Email-адрес:

Вводим адрес почты vasiliy@vasiliy.com

Комментарий:

Ввод комментария не является обязательным, на мой взгляд вполне достаточно в качестве идентификаторов ввести имя и e-mail, вы можете пропустить этот шаг, нажав клавишу Enter

Сменить (N)Имя, (C)Комментарий, (E)email-адрес или (O)Принять/(Q)Выход? 

Вам предлагается просмотреть введенную вами информацию. Не торопитесь, проверьте ее на наличие ошибок и неточностей. После проверки жмем O

Введите пароль:  

вводим

Повторите пароль:

вводим

Необходимо сгенерировать много случайных чисел. Желательно, что бы вы
выполняли некоторые другие действия (печать на клавиатуре, движения мыши,

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

gpg: ключ DECE93A4 помечен как абсолютно доверяемый.
открытый и закрытый ключи созданы и подписаны.

gpg: проверка таблицы доверий
gpg: 3 ограниченных необходимо, 1 выполненных необходимо, PGP модель доверия
gpg: глубина: 0  корректных:   2  подписанных:   5  доверия: 0-, 0q, 0n, 0m, 0f, 2u
gpg: глубина: 1  корректных:   5  подписанных:   0  доверия: 3-, 0q, 2n, 0m, 0f, 0u
gpg: срок следующей проверки таблицы доверий 2007-04-22
pub   1024D/DECE93A4 2006-06-07 [годен до: 2016-06-04]

Отпечаток ключа = 361D 6A5A F2D0 D735 2D2C  69A3 B493 0D10 DECE 93A4
uid                  Vasiliy <vasiliy@vasiliy.com>
sub   3072g/4C36DD35 2006-06-07 [годен до: 2016-06-04]

Наш ключ готов.

[user@localhost ~]$

Для того, что бы просмотреть ключ дайте команду

gpg --list-key DECE93A4

получаем

pub   1024D/DECE93A4 2006-06-07 [годен до: 2016-06-04]
uid                  Vasiliy <vasiliy@vasiliy.com>
sub   3072g/4C36DD35 2006-06-07 [годен до: 2016-06-04]

В данном случае мы видим наш базовый ключ 1024D/DECE93A4,

идентификатор пользователя Vasiliy <vasiliy@vasiliy.com>

подключ шифрования sub 3072g/4C36DD35

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

В данном случае нужно сказать, что операцию по удалению подключа мы проводим непосредственно после создания самого ключа, предполагая, что для операций шифрования ключ еще не использовался. То есть это разовая операция, следующая непосредственно за операцией создания ключа (при создании ключа DH/DSS, в выбранном нами варианте пункта меню, нет возможности сразу задать разные сроки действия для базового ключа и подключа). Смысл в данном случае состоит в том, что если вы удалите подключ, который уже использовался для шифрования данных, то не сможете впоследствии расшифровать данные, которые были зашифрованы данным подключом. Поэтому если вы уже пользовались ключом, удалять подключи не рекомендуется. В данном случае вместо удаления вы сможете воспользоваться операцией аннулирования подключа (будет рассмотрено позднее, операцию аннулирования необходимо применять в случае если вы решили по тем или иным причинам сменить подключ или если у вас возникли подозрения в его компрометации), при этом вы сможете получить доступ к данным которые были зашифрованы подключом до его аннулирования, но зашифровать новую информацию с помощью аннулированного ключа будет нельзя.

Следует сказать, что вышеупомянутую разовую операцию по удалению подключа можно просто заменить операцией аннулирования, с точки зрения «работы» ключа не будет никакой разницы, просто ключ будет иметь немного больший размер, поскольку будет содержать аннулированный подключ и вновь созданный подключ.

Редактирование ключа (удаление подключа и создание нового подключа)

Даем команду

gpg --edit-key DECE93A4

получаем

gpg (GnuPG) 1.4.2; Copyright (C) 2005 Free Software Foundation, Inc.
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions. See the file COPYING for details.

Секретный ключ доступен.

pub  1024D/DECE93A4  создан: 2006-06-07  годен до: 2016-06-04  применяемость: CS
                     доверие: абсолютное    достоверность: абсолютное

sub  3072g/4C36DD35  создан: 2006-06-07  годен до: 2016-06-04  применяемость: E
[абсолютн] (1). Vasiliy <vasiliy@vasiliy.com>

метим подключ, который нужно удалить, он у нас один.

Key 1

pub  1024D/DECE93A4  создан: 2006-06-07  годен до: 2016-06-04  применяемость: CS
                     доверие: абсолютное    достоверность: абсолютное
sub* 3072g/4C36DD35  создан: 2006-06-07  годен до: 2016-06-04  применяемость: E

[абсолютн] (1). Vasiliy <vasiliy@vasiliy.com>

теперь он помечен звездочкой (помечена красным цветом), даем команду на его удаление

delkey

Вы действительно хотите удалить данный ключ? (y/N)
  
жмем y

pub  1024D/DECE93A4  создан: 2006-06-07  годен до: 2016-06-04  применяемость: CS

                     доверие: абсолютное    достоверность: абсолютное
[абсолютн] (1). Vasiliy <vasiliy@vasiliy.com>

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

addkey

Ключ защищен.

Необходим пароль для доступа к секретному ключу пользователя: 

"Vasiliy <vasiliy@vasiliy.com>"
1024-бит DSA ключ, ID DECE93A4, создан 2006-06-07
Введите пароль:

вводим пароль

Выберите тип ключа:
   (2) DSA (только для подписи)
   (4) ElGamal (только для шифрования)

   (5) RSA (только для подписи)
   (6) RSA (только для шифрования)
Ваш выбор (?-подробнее)?

Выбираем 4

ключи ELG-E могут иметь длину от 1024 до 4096 бит.
Какой размер ключа Вам необходим? (2048)
     
вводим 3072

Выберите срок действия ключа.
         0 = без ограничения срока действительности
      <n>  = срок действительности n дней
      <n>w = срок действительности n недель
      <n>m = срок действительности n месяцев

      <n>y = срок действительности n лет
Ключ действителен до? (0)

В зависимости от ваших предпочтений и интенсивности использования ключа вы можете создать подключ с любым желаемым сроком действия, например 1...3 или более лет. Рекомендуемый срок действия подключа составляет 1...3 года.

жмем 2y

Ключ действителен до? (0) 2y
Ключ действителен до: Птн 06 Июн 2008 22:47:11 MSD
Все верно? (y/N)


жмем y

Действительно создать? (y/N)  

жмем y

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

pub  1024D/DECE93A4  создан: 2006-06-07  годен до: 2016-06-04  применяемость: CS
                     доверие: абсолютное    достоверность: абсолютное
sub  3072g/B0BCD5F1  создан: 2006-06-07  годен до: 2008-06-06  применяемость: E
[абсолютн] (1). Vasiliy <vasiliy@vasiliy.com>

наш новый подключ создан, теперь нужно сохранить изменения, даем команду save и возвращаемся в командную строку.

Ключ готов. Теперь вы можете выше описанной командой gpg –-list-key вновь просмотреть ваш ключ и убедиться, что он содержит подключ с ограниченным сроком действия.

Просмотрите отпечаток ключа

gpg --fingerprint DECE93A4

получаем

pub   1024D/DECE93A4 2006-06-07 [годен до: 2016-06-04]
Отпечаток ключа = 361D 6A5A F2D0 D735 2D2C  69A3 B493 0D10 DECE 93A4
uid                  Vasiliy <vasiliy@vasiliy.com>

sub   3072g/B0BCD5F1 2006-06-07 [годен до: 2008-06-06]

Обратите внимание на последние 8 символов отпечатка ключа, они представляют собой идентификатор вашего главного (базового) ключа. Отпечаток представляет собой очень важное свойство ключа, это хеш-значение материала ключа. Отпечаток уникален и не может быть подделан. Если вы знаете отпечаток ключа вашего корреспондента из достоверных источников, то такой же командой впоследствии вы сможете просмотреть отпечаток его открытого ключа и произвести сверку на предмет подлинности открытого ключа.

Просмотрите подписи ключа

Пока у вас всего одна подпись ключа, ваша собственная, называемая автоподписью. Впоследствии с помощью это команды вы сможете просматривать подписи ключей ваших корреспондентов, на которых могут быть поставлены экспортируемые подписи других пользователей, на которые вы сможете полагаться при определении подлинности ключа. GnuPG содержит так же встроенные алгоритмы (это будет рассмотрено позднее) для автоматического определения степени доверия к ключам на основе заверяющих подписей других пользователей («сеть доверия» или «WEB of Trust») или специальных опций, определенных вами, однако данная команда позволит вам самостоятельно просмотреть проставленные на ключ подписи, что часто бывает важно при определении степени достоверности ключа. Практически вам придется пользоваться этой командой для идентификации и просмотра свойств ключа очень часто (если вы не будете использовать графические оболочки, предоставляющие нужные сведения).

gpg --list-sigs DECE93A4

pub   1024D/DECE93A4 2006-06-07 [годен до: 2016-06-04]
uid                  Vasiliy <vasiliy@vasiliy.com>
sig 3        DECE93A4 2006-06-07  Vasiliy <vasiliy@vasiliy.com>
sub   3072g/B0BCD5F1 2006-06-07 [годен до: 2008-06-06]
sig          DECE93A4 2006-06-07  Vasiliy <vasiliy@vasiliy.com>

цифра 3 в данном случае означает уровень проверки сертификата (в данном случае он высший, т.к. Рассматриваемый ключ принадлежит вам).

Удаление ключа

Если у вас возникла необходимость удалить ключ воспользуетесь следующими командами. В данном случае рассматривается вариант удаления только что созданного вами собственного ключа. Будьте осторожны! Удаляйте секретный ключ только в том случае, если вы действительно уверены в необходимости этого действия. После удаления секретной части ключа за ненадобностью вам нужно будет удалить и открытый ключ. Имейте в виду, что если ваш ключ был загружен на сервер, то перед удалением ключа его желательно аннулировать и обновить на сервере, что бы корреспонденты не смогли случайно зашифровать послание, которое не удасться прочитать. Полезно будет так же оповестить ваших корреспондентов, у которых ваш ключ есть на связке, об удалении ключа и выслать в их адрес его аннулированную копию.

gpg --delete-secret-key DECE93A4 

gpg (GnuPG) 1.4.2; Copyright (C) 2005 Free Software Foundation, Inc.

This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions. See the file COPYING for details.


sec  1024D/DECE93A4 2006-06-07 Vasiliy <vasiliy@vasiliy.com>

Удалить данный ключ из таблицы ключей? (y/N)

жмем y

Это секретный ключ! - действительно удалить? (y/N)  

подтверждаем y

смотрим, дав команду gpg –-list-secret-key 

Указанного секретного ключа мы не обнаружим. От прежней связки у нас остался только открытый ключ, удаляем его, т.к. в данном случае без секретного ключа он нам не нужен (с его помощью вы сможете однако проверить ЭЦП, которая была поставлена закрытым ключом данной пары). Точно так же вы сможете удалить любой открытый ключ.

gpg --delete-key DECE93A4

gpg (GnuPG) 1.4.2; Copyright (C) 2005 Free Software Foundation, Inc.
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions. See the file COPYING for details.


pub  1024D/DECE93A4 2006-06-07 Vasiliy <vasiliy@vasiliy.com>

Удалить данный ключ из таблицы ключей? (y/N)


подтверждаем y

ключ удален.

DSA с любым подключом

В данном разделе мы можем создать точно такой же ключ, какой мы создали ранее, при выборе в меню цифры 1. Выбор данного пути создания ключа более предпочтителен, чем первый, так как мы имеем возможность отказаться от действий по удалению (или аннулированию) и созданию подключей и сразу же сгенерировать подключ с ограниченным сроком действия. Кроме того мы можем создать различные типы подключей.

gpg --gen-key
gpg (GnuPG) 1.4.2; Copyright (C) 2005 Free Software Foundation, Inc.
This program comes with ABSOLUTELY NO WARRANTY.

This is free software, and you are welcome to redistribute it
under certain conditions. See the file COPYING for details.

Выберите тип ключа:
   (1) DSA и ElGamal (по умолчанию)
   (2) DSA (только для подписи)
   (5) RSA (только для подписи)
Ваш выбор (?-подробнее)? 


выбираем 2 

Пара ключей DSA будет иметь длину 1024 бит.
Выберите срок действия ключа.
         0 = без ограничения срока действительности
      <n>  = срок действительности n дней
      <n>w = срок действительности n недель

      <n>m = срок действительности n месяцев
      <n>y = срок действительности n лет
Ключ действителен до? (0)

выбираем 10 лет - жмем 10y

Ключ действителен до: Сбт 04 Июн 2016 23:07:45 MSD

Все верно? (y/N)

подтверждаем, жмем y

Для идентификации Вашего ключа необходим User ID
Программа создаст его из Вашего имени, комментария и адреса e-mail в виде:
    "Baba Yaga (pensioner) <yaga@deepforest.ru>"

Ваше настоящее имя:

вводим Ivanov

Email-адрес:

вводим ivanov@ivanov.com

Комментарий:

жмем Enter (пропускаем комментарий)

Вы выбрали следующий User ID:
    "Ivanov <ivanov@ivanov.com>"

Сменить (N)Имя, (C)Комментарий, (E)email-адрес или (O)Принять/(Q)Выход?

принимаем, жмем o

Введите пароль:

вводим и повторяем 

Необходимо сгенерировать много случайных чисел. Желательно, что бы вы

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

gpg: ключ B1995069 помечен как абсолютно доверяемый.
открытый и закрытый ключи созданы и подписаны.

gpg: проверка таблицы доверий
gpg: 3 ограниченных необходимо, 1 выполненных необходимо, PGP модель доверия

gpg: глубина: 0  корректных:   2  подписанных:   5  доверия: 0-, 0q, 0n, 0m, 0f, 2u
gpg: глубина: 1  корректных:   5  подписанных:   0  доверия: 3-, 0q, 2n, 0m, 0f, 0u
gpg: срок следующей проверки таблицы доверий 2007-04-22
pub   1024D/B1995069 2006-06-07 [годен до: 2016-06-04]
Отпечаток ключа = 64BD DA1A FDE6 3C5D F005  E0FB 2365 F292 B199 5069
uid                  Ivanov <ivanov@ivanov.com>

Учтите, что данный ключ не может использоваться д