Приложения
Категории

Март 2011 — Yuriy Ostyuchenko

  • Forefront TMG настройка. Часть 1.

    [youtube=http://www.youtube.com/watch?v=eNc5QUJlw9U]

    Конфигурация TMG с одной сетевой платой, когда Forefront выступает прямой, или обратной прокси, либо сервера кэширования, или VPN-сервера для входящих клиентов.

  • WP7 обзор ПО. Часть 2.

    [youtube=http://www.youtube.com/watch?v=8EWGjHn-FEw]

  • WP7 обзор ПО. Часть 1.

    [youtube=http://www.youtube.com/watch?v=WJ0oY3DwaYg]

  • Установка Forefront TMG 2010

    [youtube=http://www.youtube.com/watch?v=qFtcXYJSPAY&w=448&h=277&hd=1]
  • Игорь кормит котов

    [youtube=http://www.youtube.com/watch?v=QJ7la7kSVqQ]

  • TechDays в Одессе прошел успешно!

    Доброго времени суток! Хочу Вам сообщить приятную новость о конференции TechDays. Так вот, она прошла успешно.

    Пришло много заинтересованных людей, все были счастливы и довольны докладами Игоря Шаститко и представителями Intel, Entry. Был даже X-BOX Kinect . Многие поиграли в него и им понравилось! Также был торт, в связи с десятым, юбилейным TechDays'ом. И кстати, торт был вкусным!

     

  • LG E900 и Windows Phone 7

    Всем доброго времени суток! Я хочу Вам рассказать о новом телефоне LG E900, он же Optimus 7. Телефон оснащен ОС Windows Phone 7. Приятный с виду, красивый и стильный дизайн.

    На самом деле параметры железа под Windows Phone 7 должны обладать:

    • емкостным мультисенсорным дисплеем (распознавание 4 прикосновений одновременно). Предоставляется выбор из двух вариантов разрешения: 800x480 и 320x480
    • процессором с частотой 1 Ггц
    • 256MB оперативной и 8GB флэш памяти
    • поддержкой DirectX 9
    • GPS-приемником
    • акселерометром
    • электронным компасом
    • FM-радио
    • камерой со вспышкой и разрешением не менее 5 МП
    • Jack 3.5 мм.

    Также, все устройства должны будут иметь 6 аппаратных кнопок, а именно:

    1. Включение/выключение: эта кнопка может иметь несколько применений — непосредственно включение и выключение аппарата, блокирование устройства или включение и отключение дисплея.
    2. Регулятор громкости звука: настройка громкости звука, причем, как общей, так и во время звонка.
    3. Камера: эта кнопка должна поддерживать половинное и полное нажатие (как и в обычных цифровых фотоаппаратах). Нажатие кнопки до половины приведет к настройке фокуса, а полное нажатие — непосредственно к съемке. Кроме того, нажатие на кнопку камеры приведет к активации соответствующего приложения.
    4. Назад: позволяет перейти на один шаг или страницу назад в том же приложении или между приложениями. Среди её других функций может быть закрытие меню, окна и так далее.
    5. Старт: все активные приложения ставятся на паузу и открывается стартовая страница.
    6. Поиск: поисковая система Bing для поиска контента на устройстве. Определяя текущее местоположение пользователя, данная функция, в том числе, позволит выполнять локальный поиск.

    Телефон Optimus 7 имеет следующие характеристики железа:

    • Процессор: Qualcomm Snapdragon QSD8650/ 1 Ггц.
    • RAM: 512 Мб.
    • Камера 5 Мп./2592×1944  пикселей, вспышка
    • Память 16384 Мб.
    • aGPS
    • акселерометр
    • электронным компасом
    • FM-радио

    Сейчас я бы хотел Вам рассказать про интерфейс Window Phone 7. Дело в том что весь интерфейс состоит из квадратных плиток(Hubs). Панель люди(People) содержит всю информацию о всех контактах телефонной книги, Windows Live, Facebook и других. Панель картинки объединяет фото и видео из памяти телефона, также синхронизируются все фото и видео из SkyDrive. Любой телефон на ОС Windows Phone 7 оснащен проигрывателем Zune. У WP7 еще много интересного. Управление очень удобное, это видно на следующем видео:

    [youtube=http://www.youtube.com/watch?v=&w=448&h=277&hd=1]

    Но сейчас не про Windows Phone 7, т.к. официально в Украине он появится не скоро. Я бы хотел Вам сперва рассказать, какие приложения есть на WP7, и чем они удобны.

    Следующий свой пост я посвящу именно этому.

  • Гипер В:)

    Установка и настройка Microsoft Hyper-V Server 2008 R2

    Вступление
    Сегодня я расскажу вам как установить и настроить гипервизор от Microsoft, а так же как управлять им.
    Итак, сначала небольшое лирическое отступление.
    По мере оптимизации существующей инфраструктуры встал вопрос о виртуализации. Я тут же вспомнил про замечательное решение от VMware — ESXi, с которым раньше неоднократно работал и был более чем доволен и собрался уже было на него мигрировать, но судьба распорядилась иначе. В процессе планирования и выбора платформы виртуализации неожиданно победил Hyper-V.
    Две вещи склонили чашу весов в его сторону: отличная поддержка железа, а так же тот фактор, что у меня в организации используются только продукты Microsoft, вследствие чего имеем более тесную интеграцию и лучшую управляемость. К сожалению, поддержка AD была анонсирована в ESXi 4.1 позже начала миграции, а то наверное я бы еще подумал.
    Как многие знают, Hyper-V Server 2008 R2 — бесплатный продукт и представляет собой ОС Windows Server 2008 R2 Standard, работающую в режиме Server Core (то есть без GUI) и с включенной ролью Hyper-V. В связи с этим возникают некоторые сложности в настройке системы для «виндовых» админов, так как нет волшебных кнопочек «далее» и «готово», а уж для линуксоидов и подавно — синтаксис комманд в винде и рядом не лежал с никсами по удобству и понятности.

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

    Настройка
    Теперь начинается самое интересное — настройка.
    При первом входе в систему мы видим текстовое меню, позволяющее произвести первичную настройку сервера.

    На мой взгляд, оно не очень удобное, к тому же по умолчанию вы не сможете удаленно подключиться к серверу с помощью Диспетчера Hyper-V, поэтому смело его закрываем и переходим в коммандную строку.
    1. Установка пароля администратора
    выполните команду net user administrator * и введите новый пароль
    2. Настройка сети
    По умолчанию сетевые адаптеры настроены на получение адреса по DHCP, если вас это устраивает, можете переходить сразу к шагу 3.
    Выполните команду netsh interface ipv4 show interface, запомните IDx нужной сетевой карты.
    Выполните команду netsh interface ipv4 set address name=‘2’ source=static address=192.168.0.2 mask=255.255.255.0 gateway=192.168.0.1 где 2 – тот самый IDx.
    Для настройки днс серверов выполните netsh interface ipv4 add dnsserver name=‘2’ address=192.168.0.10
    Вы всегда можете вернуть родные настройки командой netsh interface ipv4 set address name=‘2’ source=dhcp
    3. Имя компьютера и ввод в домен
    В принципе домен не обязательно нужен, но это сильно упрощает жизнь, позже я расскажу почему. Будем считать что домен есть и мы будем пользоваться этим достижением человеческой мысли.
    Смотрим имя компьютера командой hostname
    Меняем имя компьютера командой netdom renamecomputer WIN-KMTUYKKZPJQ /newname:vm1, где WIN-KMTUYKKZPJQ – старое имя вашего компьютера, а vm1 – новое.
    Вводим компьютер в домен командой netdom join vm1 /domain:contoso.com /userd:administrator /password:* и вводим пароль указанной учетной записи.
    Перезагружаемся.
    На этом первичная настройка завершена.

    Управление
    Для управления сервером вам потребуется скачать и установить Remote Server Administration Tools (RSAT) для клиентской операционной системы и установить компонент Диспетчер Hyper-V, или добавить роль Hyper-V и установить компонент Диспетчер Hyper-V на Windows Server 2008 R2.
    Пытаемся подключиться к нашему серверу и видим ошибку, которая говорит нам занести админу пива, чтобы он выдал нужные права. Вспомнив, что мы и есть тот самый админ, не падаем духом и читаем дальше.
    John Howard, который занимает пост Senior Program Manager in the Hyper-V team at Microsoft, написал цикл статей, посвященный раздаче необходимых прав, а в последствии состряпал замечательную утилиту HVRemote, которая произведет хитроумную настройку сервера и клиента, не взрывая мозг админу.
    Ей мы и воспользуемся. Итак, скачиваем, заходим на сервер по \\server\C$, кладем HVremote.wsf в папку Windows (или в любое другое место, но тогда не забываем указывать полный путь до нее). Запускаем на сервере:
    cscript hvremote.wsf /add:domain\account ***, где domain\account – ваше имя пользователя в домене. Скрипт пропишет все необходимые привилегии, в том числе откроет нужные порты на фаерволе.
    Затем, на клиенте cscript hvremote.wsf /mmc:enable, скрипт создаст исключения фаервола.
    Теперь можно запускать Диспетчер Hyper-V и подключаться к нашему серверу, создавать виртуалки и радоваться жизни.

    Заключение
    Расскажу о некоторых моментах, с которыми мне пришлось столкнуться:
    1. Используйте англоязычную версию Hyper-V – на русскоязычной скрипт не будет работать, поскольку названия групп в фаерволе будут отличаться. С клиента интерфейс hyper-v все равно будет русским.
    2. Используйте домен. Если домена нет, нужно будет выполнить следующие шаги:
    • Создать на сервере и на клиенте аккаунт с помощью net user
    • Дать этому пользователю доступ cscript hvremote.wsf /add:accountname ***
    • На клиенте разрешить анонимный доступ к DCOM cscript hvremote.wsf /anondcom:grant, залогиниться под тем же аккаунтом, которому разрешили доступ на сервере, или запустить Диспетчер Hyper-V из под нужного аккаунта, прописать учетные данные для подключения к серверу командой cmdkey /add:servername /user:servername\account /pass, а также создать исключения брандмауэра командой cscript hvremote.wsf /mmc:enable

     

    Технология Hyper-V

     

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

     

    Все началось с покупки Microsoft компании Connectix и выпуска нового на этом рынке продукта - Microsoft Virtual PC. Пикантность ситуации состояла не столько в появлении еще одного конкурента, сколько в том, что Virtual PC предлагался абсолютно бесплатно. И поэтому, несмотря на некоторые его недостатки (например, отсутствие хороших средств и функций управления), новичок был принят весьма неплохо. А главное, производители, чтобы не остаться за бортом, вынуждены были ответить появлением бесплатных, хотя и несколько ограниченных по возможностям версий своих продуктов. В качестве примера приведу VMware Player, который может использовать только готовые образы, но не умеет самостоятельно их создавать. Последняя проблема была решена появлением сервисов вроде EasyVMX, позволяющих ваять нужный образ прямо в онлайне, а некоторые производители ПО стали выкладывать рядом с обычными версиями своих продуктов еще и готовый образ для VMware Player. Как бы то ни было, корпорация Microsoft смогла быстро занять место среди лидеров, выпускающих средства виртуализации.

     

    Технология Hyper-V стала одной из ключевых возможностей Win2k8, хотя первые релизы этой системы включали beta3-версию Hyper-V. Финальный выпуск был обещан через 180 дней после анонса Win2k8, но он появился в начале лета, на два месяца раньше заявленного срока. Сегодня он входит в состав 64-битных версий Win2k8 Standard/Enterprise/Datacenter (Web и Itanium – нет) – и как отдельный продукт под названием Microsoft Hyper-V Server 2008. Последний полностью бесплатен и не требует CAL (Client Access License); лицензия понадобится лишь для гостевых Windows. Технологию Hyper-V можно использовать как в режиме полной установки (с графической оболочкой), так и в Server Core.

     

    Возможности, предоставляемые Hyper-V, в разных версиях Win2k8 несколько отличаются. Так, Hyper-V Server 2008, по сути, является сильно облегченной версией Win2k8 Standard, из которой убрано практически все, что не касается виртуализации. Оставлены только средства управления гипервизором. Предназначен этот вариант для "чистой виртуализации" (других сервисов там попросту нет), но зато требует на порядок меньше ресурсов, чем тот же Server Core. Он поддерживает (как и Standard) до 4 физических процессоров и до 32 Гб ОЗУ. Возможен запуск до 128 VM, недоступен локальный графический интерфейс управления и отсутствует поддержка кластеров, – что не позволяет создавать на нем отказоустойчивые решения и реализовать возможность быстрой миграции.

     

    Еще одним отличием версий стало количество VM, которые можно запускать без дополнительного лицензирования. В лицензию Standard "включена" одна бесплатная VM, в Enterprise – 4; количество VM в Datacenter - не ограничено.

     

    Основной минус новой технологии: довольно высокие требования к процессорам. Как ты, наверное, заметил, поддержка 32-разрядных систем отсутствует (вообще говоря, архитектура платформы x86 никогда не предназначалась для запуска нескольких операционных систем одновременно; кроме того, ей присущи различные ограничения, например, максимальный размер ОЗУ равен 4 Гб). Возможна работа только на 64-разрядных процессорах, поддерживающих технологии Intel VT или AMD-V (прежнее название Pacifica). В BIOS должен быть активизирован механизм защиты исполняемого кода (Intel XD или AMD NX).

     

    Работает гипервизор на Ring-1 – напрямую общается с оборудованием сервера, без вмешательства основной ОС, роль которой в Hyper-V минимальна. Микроядерная архитектура гипервизора (размер – менее 1 Мб) позволяет абстрагироваться от основных функций. На его плечи возложено управление выделением ресурсов (CPU, RAM, I/O). Каждый сервер Hyper-V имеет один родительский (Parent Partition) и несколько дочерних разделов (по количеству гостевых ОС, Child Partition). Родительский раздел – это виртуальное устройство с прямым доступом к аппаратным ресурсам. Гостевые ОС для доступа к устройству используют Parent Partition. Заявленные возможности Hyper-V весьма впечатляют:

     

    * Поддерживаются как однопроцессорные, так и многопроцессорные виртуальные машины с максимальным количеством процессоров 24;

    * Физический сервер может работать в конфигурации до 1 Тб RAM, виртуальные машины поддерживать 128 Гб RAM;

    * Возможность одновременного запуска до 192 виртуальных машин, количество настроенных, но не работающих VM ограничено числом 512;

    * Одновременная работа 32- и 64-битных версий гостевых ОС;

    * Поддержка виртуальных локальных сетей – VLAN до 4096 устройств; отдельная VM может иметь до 12 виртуальных сетевых адаптеров;

    * VM может иметь 4 виртуальных диска, каждый размером до 2040 Гб;

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

     

    Для создания резервной копии может задействоваться и служба Volume Shadow Copy Service (VSS). Поэтому при необходимости можно быстро вернуть виртуальный сервер к предыдущему состоянию. По умолчанию максимальное количество виртуальных процессоров равно 16, а виртуальных машин - 128. Чтобы увеличить их число до указанных 24 и 192, необходимо установить обновление KB956710.

     

    В зависимости от версий родительской и гостевой ОС некоторые из указанных характеристик будут отличаться. Так, версии Win2k8 Standard и Hyper-V Server поддерживают в гостевых системах только до 32 Гб RAM. Гостевая Win2k8 в Standard может иметь 1,2 и 4 CPU, 2k3/Vista – 1 или 2, все остальные - только 1. Очевидно, что потенциал у Hyper-V довольно высокий, по многим характеристикам он уверенно обходит аналогичные программы. Будут ли все они востребованы в ближайшее время, – это другой вопрос.

     

    Количество официально поддерживаемых гостевых ОС постоянно увеличивается. Уточненный список можно просмотреть на странице, посвященной Hyper-V (www.microsoft.com/servers/hyper-v-server). На сегодняшний день это практически все семейство ОС от Microsoft, начиная с версии WinXP Pro SP2. Из "не оконных" систем в список попал только SUSE Linux Enterprise Server 10 SP1 (неудивительно, учитывая соглашение, заключенное между Novell и Microsoft). Но под Hyper-V нормально работают и другие Linux-дистрибутивы – Debian, Ubuntu, Mandriva. Есть информация и об удачных гостевых запусках FreeBSD.

    Установка Hyper-V

     

    Так как в настоящее время технология Hyper-V развивается весьма активно, перед началом установки рекомендую накатить последние системные обновления: среди них наверняка будет что-то новенькое и для Hyper-V. Для этого в режиме полной установки выбери Start –> Control Panel -> Windows Update, щелкни View update history, укажи, а затем установи необходимые обновления. В Server Core просмотр обновлений производится командой "wmic qfe list". Как вариант, их можно просто скачать с сайта Microsoft и установить стандартным образом или воспользоваться "Диспетчером сервера". В частности, следует установить KB956710, KB950050. Некоторые обновления потребуют последующей перезагрузки системы. Но есть еще один нюанс, о котором нужно знать. Во многих руководствах по Hyper-V рекомендуется использовать только английскую версию Win2k8. К счастью для тех, кто не владеет языком Шекспира, Microsoft выпустила обновление KB951636 - набор Hyper-V Language Pack (support.microsoft.com/kb/951636), в котором есть и русский язык. Это обновление содержит два пакета: для x86 и x64 гостевых систем. Но перед его инсталляцией необходимо установить Windows Server 2008 MUI Language Pack, а затем добавить в систему поддержку нужного языка. Последнее нетривиально. Надо извлечь из img-образа каталог своего языка (внутри несколько файлов, основной - Lp.cab), потом в консоли "Regional and Language Options" перейти во вкладку "Keyboards and Languages", где нажать на Install/uninstall languages и указать на извлеченный каталог с языковыми файлами.

     

    Сам процесс добавления новой роли выполняется стандартно в "Диспетчере сервера" (Server Manager) при помощи мастера добавления ролей, вызываемого нажатием ссылки "Добавить роли" (Add Roles). Перейдя на страницу выбора ролей "Select Server Roles", отмечаем флажком Hyper-V и переходим к следующему шагу "Create Virtual Networks". Здесь необходимо отметить один или несколько физических сетевых адаптеров, которые будут использованы при создании виртуальных сетей. Рекомендуют одно сетевое устройство использовать только для удаленного управления компьютером, не задействуя его в виртуальной сети. Далее знакомимся с установками и, если все в порядке, нажимаем кнопку Install. Возможно, будет предложено произвести некоторые действия, например, включить поддержку виртуализации в BIOS для Intel VT (для AMD-V она активирована по умолчанию). По всем вопросам здесь же присутствуют ссылки, по которым можно получить дополнительную информацию. Чуть позже потребуется перезагрузка. После рестарта обязательно зарегистрируйся в системе под той же учетной записью. Еще какое-то время уйдет на автоматическую установку компонентов и конфигурирование при помощи "Resume Configuration Wizard".

     

    Для установки Hyper-V в режиме Server Core необходимо произвести стандартные настройки сервера (смотри статью "Без окон, без дверей" в августовском ][ за 2008 год) и затем ввести команду:

     

    > start /w ocsetup Microsoft-Hyper-V

     

    Кроме самой роли Hyper-V, будет установлен инструмент удаленного управления "Hyper-V Tools". Если управление Hyper-V планируется производить с другого Win2k8, то в "Диспетчере сервера" открываем "Компоненты" (Features) и нажимаем (Add Features). В окне выбора компонентов переходим в "Средства удаленного администрирования сервера –> Средства администрирования ролей", где отмечаем "Средства Hyper-V" (Remote Server Administration Tools -> Remote Administration Tools -> Hyper-V Tools).

    Управление Hyper-V

     

    Для управления настройками Hyper-V в Win2k8 предлагается "Диспетчер Hyper-V" (Hyper-V Manager), установленный нами на предыдущем шаге. Как и все прочие инструменты в этой системе, диспетчер является консолью MMC и позволяет управлять не только локальным, но и несколькими удаленными серверами. Его можно вызвать либо из Server Manager, либо как отдельное приложение из меню Administrative Tools.

     

    Структура окна "Диспетчера Hyper-V" стандартна. Окно разделено на три части. В левой выводится список серверов Hyper-V, к которым подключен диспетчер. При помощи настроек, расположенных справа, производится собственно управление работой выбранного сервера. В окне посередине показываются и редактируются некоторые параметры, а также выбираются VM.

     

    При первом запуске диспетчера необходимо принять условия лицензионного соглашения. Далее подключаемся к удаленному серверу, нажав ссылку "Connect to Server", или выбираем локальную систему. Перед началом дальнейших настроек советую зайти в "Hyper-V Server Settings" и пройтись там по пунктам. Например, по умолчанию виртуальные диски и снапшоты помещаются в один из каталогов на системном диске С. Это не очень практично с точки зрения производительности, безопасности, да и резервного копирования. Лучше использовать отдельный раздел для их хранения. Остальные параметры позволяют настроить реакцию виртуальной системы на комбинацию переключения окон (<Alt+Tab>), комбинацию для выхода из виртуальной машины (<Ctrl+Alt+Стрелка влево>) и прочее.

     

    Если уже есть готовые виртуальные машины (допустим, созданные в Virtual Server), то их можно импортировать в Hyper-V. Для этого достаточно нажать ссылку "Import Virtual Machine", после чего указать на каталог, в котором расположены связанные файлы.

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

    Виртуальные сети и диски

     

    В Hyper-V для связи с VM и VM могут использоваться три типа виртуальных сетей:

     

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

    * Internal (Внутренняя) - предназначена для связи между виртуальными системами, расположенными на одном физическом сервере, включая сеть управления. Отличается от предыдущей тем, что должна привязываться к реальному сетевому устройству;

    * Private (Частная) – используется для связи между виртуальными устройствами на одном физическом сервере и является внутренней, изолированной от остальных виртуальной сетью, в которой не используется виртуальное сетевое устройство.

     

    Чтобы создать новую виртуальную сеть, выбери ссылку "Virtual Network Manager". Откроется окно диспетчера виртуальных сетей, в котором будут показаны все виртуальные сетевые устройства, подключенные к Hyper-V на этапе установки. Для удобства в поле Name можно прописать другое имя сетевого устройства и добавить его описание в поле Notes, чтобы легче ориентироваться среди множества виртуальных девайсов. По умолчанию, все созданные виртуальные сетевые устройства имеют тип External (кстати, для него можно указать альтернативное физическое устройство, с которым он и будет сопоставлен). При необходимости этот тип можно изменить, установив переключатель в поле "Connection Type" в другую позицию. Наконец, в самом низу прописывается VLAN-идентификатор (опционально). Кнопка Remove позволяет удалить выбранный виртуальный адаптер. Чтобы создать новую сеть, щелкаем в панели слева ссылку "New virtual network", указываем тип сети, нажимаем кнопку Add, – после чего редактируем параметры.

     

    Сервер Hyper-V может работать с тремя типами устройств хранения данных:

     

    * Жесткий диск, подключенный непосредственно к серверу;

    * Сеть хранения данных SAN (Storage area network), подключенная при помощи технологий Internet SCSI (iSCSI), Fibre Channel или SAS;

    * Сетевая система хранения данных NAS (Network-attached storage) – один или несколько серверов, используемых для хранения информации и подключенных обычно по сети Ethernet.

     

    Мастер создания виртуальной машины практически не имеет настроек, связанных с виртуальным жестким диском (файл с расширением .vhd). Более гибким вариантом будет предварительное создание виртуальных дисков и подключение их на этапе создания новой VM. Чтобы создать новый виртуальный диск, выбираем "New – Hard Disk" и следуем указаниям мастера создания дисков. Второй шаг "Choose Disk Type" позволяет задать тип диска. По умолчанию предлагается тип "Dynamically expanding", то есть – динамически расширяющийся по мере заполнения виртуальный диск. Этот тип позволяет рационально использовать дисковое пространство, но придется контролировать доступное место на физическом диске. Альтернативой выступает тип "Fixed size" – диск фиксированного размера. При его создании образ сразу заполняет все выделенное место, вне зависимости от потребности. Проблем с нехваткой пространства для таких серверов не будет, а, учитывая, что "диск" занимает последовательно расположенные блоки и не затрачивается время на их перераспределение, – его производительность выше, чем у динамического. Эти два типа встречаются и в других виртуальных машинах. В Hyper-V есть еще один вид диска – "Differencing", назначение которого несколько иное. Такой диск хранит только различия от другого диска. Это позволяет изолировать все изменения на виртуальное устройство. Основной диск может использоваться как некий эталон и должен обязательно быть в режиме "только для чтения".

     

    Кроме того, в Hyper-V есть возможность напрямую использовать физический диск без создания виртуального (только локальный диск или LUN (logical unit number) SAN-среды). В этом случае виртуальная система должна иметь исключительный доступ к такому разделу (установи Offline в Disk Management!), а его размер ограничен возможностями самой системы хранения. Естественно, он не может быть "Dynamically expanded" или "Differencing".

     

    После выбора типа диска переходим к следующему шагу мастера, где можно указать его расположение. Размер виртуального диска указывается на этапе "Configure Disk". Переключив флажок в положение "Copy the contents of the specified physical disk", сможем задать раздел для прямого доступа. Разделы локальной системы будут показаны в списке внизу. В дальнейшем можно изменить некоторые параметры созданных ранее жестких дисков. Для этого в "Диспетчере Hyper-V" следует выбрать "Edit Disk" и указать на нужный образ. На этапе "Choose Action" доступно три пункта, при помощи которых можно уменьшить размер образа, перераспределив свободное пространство, изменить его тип (Dynamic на Fixed) и увеличить размер.

     

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

     

    Итак, пришло время создания новой виртуальной машины. Выбираем "New – Virtual Machine" и следуем указаниям мастера "New Virtual Machine Wizard". Пропустив информацию на первом шаге, мы вводим имя новой VM и, при необходимости, указываем другое место размещения файлов. Задаем в окне "Assign Memory" количество ОЗУ, которое будет доступно VM (не может быть больше, чем размер физической памяти в компьютере). Далее выбираем из раскрывающегося списка сеть, к которой будет подключена VM. Создаем новый виртуальный диск или выбираем из списка имеющийся. И на шаге "Installation Options" указываем источник, с которого будет ставиться ОС. Это может быть физический CD/DVD-привод, ISO-образ, загрузочный флоппик (физический или образ) или сетевая PXE-загрузка. Чтобы создать VM, на последнем шаге нажимаем Finish. Через некоторое время новая VM появится в окне "Диспетчера". Кстати, чтобы отменить работу мастера, на любом этапе нажимай Cancel; кнопка Finish также активна, и, если нажать ее по ошибке, будет создана VM или другое виртуальное устройство с неполными характеристиками. Чтобы запустить VM в работу, выбери ее в окне "Диспетчера" и нажми ссылку Start. Впоследствии можно изменить основные настройки VM, – в том числе, добавить еще устройства, выбрав в контекстном меню ссылку Settings.

    Заключение

     

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

    INFO

    Инструменты управления Hyper-V

     

    Помимо встроенного "Диспетчера Hyper-V" в Win2k8, есть и другие инструменты управления. По адресу support.microsoft.com/kb/952627 доступен аналогичный диспетчер для Vista SP1. Существует и более мощное решение: System Center Virtual Machine Manager (SCVMM) 2008, основное назначение которого – управление массивами виртуальных серверов в большой сети компании или провайдера. При этом он может работать как отдельное приложение, но рекомендуется соединять его с другими решениями System Center. Также SCVMM поддерживает Microsoft Virtual Server и VMware ESX. В этом случае он позволит не только управлять, но и следить за состоянием виртуальных машин (нагрузка, количество доступных ресурсов, системные события). Оценочную 120-дневную версию SCVMM можно скачать по ссылке на странице продукта: www.microsoft.com/systemcenter/virtualmachinemanager.

    Клавиши управления Hyper-V

     

    При работе в виртуальной системе при использовании Hyper-V тебе понадобятся некоторые комбинации клавиш, так как стандартные сочетания Windows (даны в скобках) в полноэкранном режиме работают иначе:

     

    Ctrl + Alt + End (Ctrl + Alt + Del) – показать "Диспетчер задач Windows";

    Alt + Page UP (Alt +Tab) – переключение между программами;

    Alt + Page Down (Alt + Shift + Tab) - переключение между программами в обратном порядке;

    Alt + Insert (Alt + Esc) – свернуть активное окно и открыть следующее;

    Alt + Home (Ctrl + Esc) – открытие меню "Пуск";

    Ctrl + Alt + Pause – переключение из режима окна в полноэкранный и обратно;

    Ctrl + Alt + Left Arrow – освобождение мыши и клавиатуры из окна виртуальной машины.

     

    Некоторые комбинации и реакцию на них родительской и виртуальных систем можно настроить в "Hyper-V Server Settings".

    А так же

     

    Первоначально технология виртуализации Hyper-V называлась Viridian.

     

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

     

    VT (Intel Virtualization Technology) - одна из технологий аппаратной виртуализации ресурсов, разработанная компанией Intel. AMD имеет в своем арсенале похожую технологию AMD-V, в которой реализована (в отличие от Intel VT) виртуализация режима реальной адресации (режим совместимости с 8086).

     

    Официально Hyper-V в качестве гостевых систем поддерживает практически все версии 32х и 64х Windows, начиная с XP Professional SP2 и заканчивая Win2k8 (сюда же входит Windows HPC Server 2008), а также SUSE Linux Enterprise Server 10 SP1. Поддержка вариантов Home не заявлена.

     

    Распределение ролей сервера между виртуальными машинами вместо запуска множества серверных приложений на одной операционной системе способствует повышению уровня безопасности.

     

     

     

    

  • IT-Bonus

    Что такое ITBonus?
    Это клуб экспертов по технологиям Microsoft, цель которого - нести знания в массы технических специалистов.

    Как попасть в ряды экспертов ITBonus?
    Есть несколько способов:
    • Вы участвовали в ITBonus в прошлом году? Тогда вы автоматически участвуете в новой версии ITBonus. Кроме того, у каждого из таких участников есть возможность пригласить в программу еще трех человек, прислав им промо-коды для регистрации. В вашем профиле есть возможность генерации промо-кодов.
    • Вы активно участвуете в жизни ИТ-сообщества и разбираетесь в технологиях Microsoft. Свяжитесь с нами по адресу ruexpert@microsoft.com, расскажите о ваших активностях (статьях, выступлениях, веб-кастах и т.д.) и станьте участником клуба ITBonus.

    Правила программы
    1. Организатор
    1.1. Организатором программы "IT Bonus" является ООО "Майкрософт Рус" - юридическиое лицо, созданное в соответствии с законодательством Российской Федерации, с местом нахождения по адресу: г. Москва, Чапаевский пер., д.14 (далее – "Организатор").

    2. Вид мероприятия
    2.1. Программа "IT Bonus" не является лотереей, в т.ч. стимулирующей лотереей, азартной игрой, основанной на риске либо пари.

    3. Сроки проведения
    3.1. Третья волна программы ITBonus проходит с 4-го сентября 2010 года по 3-е июля 2011 года

    4. Активности
    4.1. В ITBonus можно заводить любые активности из списка указанного на сайте.
    4.2. Активность - объект с уникальным техническим контентом. Уникальным считается контент, отличный от любого другого аналогичного на 25%
    4.3. Для того, чтобы вашу активность одобрили, она должна соответствовать следующим критериям:

    4.3.1. связана с технологиями или продуктами Microsoft.
    4.3.2. бесплатна для участников
    4.3.3. на русском языке
    4.3.4. стала доступна для сообщества не более чем за два месяца до заведения на сайт
    4.3.5. Доступ к содержанию не должен требовать регистрации на ресурсе
    4.3.6. Автор и дата активности должны быть явно указаны

    4.4. За каждую активность вы получаете фиксированное количество баллов. Чем больше у вас баллов, тем выше место в рейтинге
    4.5. Команда ITBonus дважды в неделю проверяет активности и подтверждает или отклоняет их. В случае отклонения активности сообщается причина (например, старая активность, активность не является технологией Microsoft)
    4.6. Последний день месяца - является последним днем заведения активности за этот месяц. Так как все активности рассматриваются в течение трех дней, то результаты месяца публикуются по окончании четвертого рабочего дня следующего месяца

    5. Подарки
    5.1. Ежемесячные подарки: Ежемесячно 10 участников набравших за месяц наибольшее количество баллов получают:

    5.1.1. 1-ое место: Оплата участия, дороги и проживания на конференции Платформа 2011(однократно)/Поездка на MVP Open Days (однократно, только для MVP)/игровой ноутбук/Оплаченное обучение в УЦ SoftLine по любой технологии Microsoft (кроме Dynamics CRM, Axapta, Navision).
    5.1.2. 2-3 места: Оплата участия в конференции Платформа 2011 без дороги и проживания(однократно)/ Оплаченное обучение в УЦ SoftLine по любой технологии Microsoft (кроме Dynamics CRM, Axapta, Navision)/нетбук.
    5.1.3. 4-6 места: Внешний жесткий диск на 500 гигабайт и бокал Microsoft.
    5.1.4. 7-10 места Флешка на 32 гигабайта и бубен.

    5.2. Накопительные подарки – 5 типов подарков, выдающихся по достижению определённого количества миль один раз за волну

    5.2.1. 25 000 – подписка TechNet и футболка,
    5.2.2. 50 000 – GPS-навигатор и бокал,
    5.2.3. 150 000 – смартфон, бубен, и статуэтка «Бронза»
    5.2.4. 250 000 – статуэтка «Серебро» и по выбору: оплата участия в конференции TechEd без дороги и проживания, оплата обучения в УЦ SoftLine по любой технологии Microsoft (кроме Dynamics CRM, Axapta, Navision), ноутбук
    5.2.5. 400 000 – Оплата участия, проезда и проживания на конференции TechEd и статуэтка «Золото»

    5.3. Специальные подарки – большое количество подарков, выдаваемых по мере накопления определённого количества баллов по одному из видов специальных проектов.

    5.4. Отправка подарков

    5.4.1. Отправка подарков осуществляется выделенным сотрудником Microsoft
    5.4.2. Мы не отправляем материальные (вещественные) подарки за территорию России. Если вы проживаете за границей, для получения выигранного подарка, укажите, пожалуйста, любую точку России, удобную для доставки. По результатам выгрузки за каждый месяц будет производиться рассылка на e-mail участников, проживающих за территорией России, с целью уточнить альтернативный вариант доставки выигранного подарка. Тема электронного письма «Уточнить адрес доставки выигранного подарка в проекте ITBonus»
    5.4.3. После объявления победителей с 4-го по 14-ое числа месяца происходит выгрузка и отправка всех подарков. В другие сроки отправка не происходит, за исключением поездок и статуэток:
    5.4.3.1. В случае получения накопительных подарков отправка происходит так же как в пункте 3.4.2.
    5.4.3.2. Поездки оформляются за месяц до начала мероприятия.
    5.4.4. Награды клуба выдаются по итогам волны.

    5.5. Подарок не может быть отправлен в случае, если получение подарка противоречит корпоративной политике работодателя участника, если он работает по найму
    5.6. Подарки не выдаются в денежном эквиваленте, возврату и обмену не подлежат.
    5.7. Участник Клуба, получивший подарок, несет обязанность по выплате налогов и сборов, предусмотренных действующим законодательством РФ, в связи с получением дохода в виде подарков от участия в программе, в порядке, предусмотренном действующим законодательством РФ. При получении подарка, стоимость которого превышает 4000 рублей, участник обязуется предоставить Организатору сведения (включая персональные данные), необходимые для выполенения обязанности Организатора по уведомлению налоговых органов в соответствии с действующим законодательством.

    6. Рейтинг
    6.1. Рейтинг по итогам месяца публикуется на странице «Герои IT».
    6.2. Итоги рейтинга подводятся по итогам каждого месяца.
    6.3. Общее количество баллов обнуляется по окончанию волны. У каждого участника есть общее количество баллов за все время работы ITBonus, за время текущей волны, а также за месяц.

    7. Профиль участника
    7.1. У каждого участника после регистрации появляется страница с его профилем. На этой странице он может отслеживать свой статус, общее количество баллов, выигранные подарки, статус доставки подарков, а также при необходимости изменять информацию о себе.
    7.2. Обязательное условие для доставки подарков – заполнить все поля, отмеченные звёздочкой в личном кабинете и отметить check-box «я хотел бы получать новости корпорации Майкрософт»
    7.3. Во избежание конфликта интересов, а также в связи с ограничениями, установленными антикоррупционной политикой Организатора, к участию в программе не допускаются:

    7.3.1. работники и представители Организатора, аффилированные лица, члены семей таких работников и представителей, а также работники и представители любых других лиц, имеющих непосредственное отношение к организации или проведению настоящей программы, а также членам их семей
    7.3.2. сотрудники местных и федеральных органов власти
    7.3.3. государственные служащие
    7.3.4. члены политических партий или кандидаты в члены политических партий
    7.3.5. сотрудники компаний, доля участия государства в которых составляет не менее 10%, или же государство обладает правом вето/«золотой» акцией
    7.3.6. частные лица, действующие от имени государственного органа
    7.3.7. работники и представители публичных международных организаций (например, ООН).

    7.4. Регистрируясь для участия в IT Bonus, каждый участник тем самым подтверждает, что не относится ни к одной из указанных категорий лиц.

    8. Общие вопросы
    8.1. Из новостной рубрики Вы можете ознакомиться с текущими обновлениями, нововведениями, актуальной информацией по проекту ITBonus.
    8.2. Организатор программы оставляет за собой право в любое время отказать любому Участнику в дальнейшем участии в программе, аннулировать его регистрацию и исключить из рассмотрения результаты данного Участника при подведении итогов по своему усмотрению и без объяснения причин, в случае, если, по мнению Организатора, таковой Участник нарушил требования Правил проведения программы. В случае подобного отказа Организатор в любой форме уведомляет Участника Клуба о своем решении; решение Организатора является окончательным и обсуждению не подлежит.
    8.3. По всем вопросам о программе ITBonus вы можете обращаться на специальный адрес ruexpert@microsoft.com

  • GPG на практике

    Теоретические ведомости про GPG.

    1. Быстрый старт

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

    Обмен ключами

    Зашифрование и расшифрование документов

    Подписи и их проверка

    GnuPG - инструмент для защиты коммуникаций. Эта глава коротко описывает основы работы с GnuPG, включая создание пар ключей, обмен ключами и их проверку, зашифровку и расшифровку документов, заверение документов цифровой подписью. Она не описывает в деталях принципы криптографии с открытым ключом, шифрования и цифровых подписей. Эти вопросы рассматриваются в главе 2. Здесь, также, не рассматриваются тонкости использования GnuPG. Эти вопросы рассматриваются в главах 3 и 4.

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

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

    Для создания первичной пары ключей используется команда --gen-key

    alice% gpg --gen-key

    gpg (GnuPG) 0.9.4; Copyright (C) 1999 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.

     

    Please select what kind of key you want:

    (1) DSA and ElGamal (default)

    (2) DSA (sign only)

    (4) ElGamal (sign and encrypt)

    Your selection?

    GnuPG может создавать несколько разных типов ключей, но первичный ключ должен быть пригоден для создания подписи (signature). Поэтому есть только три варианта. Вариант 1 создает две пары ключей. DSA - первичная, используемая только для подписи. ElGamal - подчиненная, используемая для шифрования. Вариант 2 похож, но создает только пару DSA. Вариант 4[1] создает только пару ElGamal, используемую и для подписи и для шифрования. В любом случае, позже можно создать дополнительные пары ключей для подписи и шифрования. Большинству пользователей подойдет вариант 1.

    Также Вы должны выбрать размер ключа. Размер ключа DSA должен быть между 512 и 1024 бит. Ключ ElGamal может быть любого размера. Обычно, GnuPG требует ключи не короче 768 бит. Таким образом, если Вы выбрали вариант 1 и размер ключа больше 1024 бит, то ключ ElGamal будет иметь указанный размер, а ключ DSA - 1024 бита.

    About to generate a new ELG-E keypair.

    minimum keysize is  768 bits

    default keysize is 1024 bits

    highest suggested keysize is 2048 bits

    What keysize do you want? (1024)

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

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

    Please specify how long the key should be valid.

    0 = key does not expire

    <n>  = key expires in n days

    <n>w = key expires in n weeks

    <n>m = key expires in n months

    <n>y = key expires in n years

    Key is valid for? (0)

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

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

    You need a User-ID to identify your key; the software constructs the user id

    from Real Name, Comment and Email Address in this form:

    "Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>"

     

    Real name:

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

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

    You need a Passphrase to protect your private key.

     

    Enter passphrase:

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

    Создание отзывающего сертификата

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

    alice% gpg --output revoke.asc --gen-revoke mykey

    [...]

    Аргумент mykey - идентификатор Вашей первичной пары ключей или любая часть идентификатора пользователя Вашей пары ключей. Сгенерированный сертификат будет сохранен в файле revoke.asc. Если опция --output опущена, результат помещается в стандартный вывод. Вы можете вывести сертификат на принтер и хранить его где-нибудь в надежном месте (банковский сейф подойдет). Если сертификат попадет в чужие руки и будет опубликован, то открытый ключ утратит свое действие.

    Обмен ключами

    Для общения с кем-либо, вы должны обменяться ключами. Просмотреть список имеющихся открытых ключей, можно используя команду --list-keys.

    alice% gpg --list-keys

    /users/alice/.gnupg/pubring.gpg

    ---------------------------------------

    pub  1024D/BB7576AC 1999-06-04 Alice (Judge) <alice@cyb.org>

    sub  1024g/78E9A8FA 1999-06-04

    Экспорт открытого ключа

    Перед тем как послать открытый ключ кому-либо, Вы должны его экспортировать. Для этого используйте команду --export. Ей требуется, дополнительно, аргумент, идентифицирующий экспортируемый открытый ключ, как и --gen-revoke.

    alice% gpg --output alice.gpg --export alice@cyb.org

    Ключ экспортируется в двоичном формате, что бывает неудобно. GnuPG имеет опцию командной строки --armor, которая указывает на необходимость вывода в формате ASCII. Практически любой вывод GnuPG, т.е. ключи, зашифрованные документы, подписи, может происходить в формате ASCII.[2]

    alice% gpg --armor --export alice@cyb.org

    -----BEGIN PGP PUBLIC KEY BLOCK-----

    Version: GnuPG v0.9.7 (GNU/Linux)

    Comment: For info see http://www.gnupg.org

     

    [...]

    -----END PGP PUBLIC KEY BLOCK-----

    Импорт открытого ключа

    Открытый ключ может быть добавлен к множеству Ваших открытых ключей при помощи команды --import.

    alice% gpg --import blake.gpg

    gpg: key 9E98BC16: public key imported

    gpg: Total number processed: 1

    gpg:               imported: 1

    alice% gpg --list-keys

    /users/alice/.gnupg/pubring.gpg

    ---------------------------------------

    pub  1024D/BB7576AC 1999-06-04 Alice (Judge) <alice@cyb.org>

    sub  1024g/78E9A8FA 1999-06-04

     

    pub  1024D/9E98BC16 1999-06-04 Blake (Executioner) <blake@cyb.org>

    sub  1024g/5C8CBD41 1999-06-04

    Достоверность импортированного ключа должна быть подтверждена. GnuPG использует гибкую и мощную модель проверки подлинности, не требующую, чтобы Вы лично проверяли достоверность каждого импортированного ключа. Тем не менее, достоверность некоторых ключей Вам придется проверить самому. Сначала проверяются отпечатки(fingerprint) ключа, затем он заверяется подписью, для подтверждения того, что ключ достоверен. Отпечатки ключа можно быстро просмотреть командой --fingerprint, но для заверения ключа Вы должны отредактировать его.

    alice% gpg --edit-key blake@cyb.org

     

    pub  1024D/9E98BC16  created: 1999-06-04 expires: never      trust: -/q

    sub  1024g/5C8CBD41  created: 1999-06-04 expires: never

    (1)  Blake (Executioner) <blake@cyb.org>

     

    Command> fpr

    pub  1024D/9E98BC16 1999-06-04 Blake (Executioner) <blake@cyb.org>

    Fingerprint: 268F 448F CCD7 AF34 183E  52D8 9BDE 1A08 9E98 BC16

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

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

    Command> sign

     

    pub  1024D/9E98BC16  created: 1999-06-04 expires: never      trust: -/q

    Fingerprint: 268F 448F CCD7 AF34 183E  52D8 9BDE 1A08 9E98 BC16

     

    Blake (Executioner) <blake@cyb.org>

     

    Are you really sure that you want to sign this key

    with your key: "Alice (Judge) <alice@cyb.org>"

     

    Really sign?

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

    Command> check

    uid  Blake (Executioner) <blake@cyb.org>

    sig!       9E98BC16 1999-06-04   [self-signature]

    sig!       BB7576AC 1999-06-04   Alice (Judge) <alice@cyb.org>

    Зашифрование и расшифрование документов

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

    Если Вы хотите послать сообщение другу, то зашифровываете его при помощи открытого ключа друга, а тот расшифровывает его при помощи своего секретного ключа. Если друг захочет Вам ответить, то он зашифрует ответ при помощи Вашего открытого ключа, а Вы расшифруете его своим секретным.

    Для зашифрования документа используется команда --encrypt. Вы должны иметь открытые ключи предполагаемых получателей. Программа ожидает в качестве параметра имя шифруемого документа или, в случае его отсутствия, шифрует стандартный ввод. Зашифрованный результат помещается в стандартный вывод, если не указана опция --output. Для повышения защиты документ дополнительно сжимается.

    alice% gpg --output doc.gpg --encrypt --recipient blake@cyb.org doc

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

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

    blake% gpg --output doc --decrypt doc.gpg

     

    You need a passphrase to unlock the secret key for

    user: "Blake (Executioner) <blake@cyb.org>"

    1024-bit ELG-E key, ID 5C8CBD41, created 1999-06-04 (main key ID 9E98BC16)

     

    Enter passphrase:

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

    alice% gpg --output doc.gpg --symmetric doc

    Enter passphrase:

    Подписи и их проверка

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

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

    Для подписи документов используется команда --sign. Документ для подписи на входе и подписанный на выходе.

    alice% gpg --output doc.sig --sign doc

     

    You need a passphrase to unlock the private key for

    user: "Alice (Judge) <alice@cyb.org>"

    1024-bit DSA key, ID BB7576AC, created 1999-06-04

     

    Enter passphrase:

    Документ сжимается перед подписью и выводится в двоичном формате.

    Имея подписанный документ, Вы можете либо проверить подпись, либо проверить подпись и восстановить исходный документ. Для проверки подписи используется команда --verify. Для проверки подписи и извлечения документа используется команда --decrypt. Подписанный документ на входе и проверенный и восстановленный на выходе.

    blake% gpg --output doc --decrypt doc.sig

    gpg: Signature made Fri Jun  4 12:02:38 1999 CDT using DSA key ID BB7576AC

    gpg: Good signature from "Alice (Judge) <alice@cyb.org>"

    Прозрачно подписанные(Clearsigned) документы

    Обычно цифровые подписи применяются при подписи сообщений usenet и e-mail. При этом нежелательно сжимать подписываемые документы. Команда --clearsign добавляет к документу цифровую подпись в формате ASCII, но не изменяет сам документ.

    alice% gpg --clearsign doc

     

    You need a passphrase to unlock the secret key for

    user: "Alice (Judge) <alice@cyb.org>"

    1024-bit DSA key, ID BB7576AC, created 1999-06-04

     

    -----BEGIN PGP SIGNED MESSAGE-----

    Hash: SHA1

     

    [...]

    -----BEGIN PGP SIGNATURE-----

    Version: GnuPG v0.9.7 (GNU/Linux)

    Comment: For info see http://www.gnupg.org

     

    iEYEARECAAYFAjdYCQoACgkQJ9S6ULt1dqz6IwCfQ7wP6i/i8HhbcOSKF4ELyQB1

    oCoAoOuqpRqEzr4kOkQqHRLE/b8/Rw2k

    =y6kj

    -----END PGP SIGNATURE-----

    Отделенная подпись

    Применение подписанных документов ограниченно. Получатель должен восстанавливать документ из подписанной версии, и даже в случае прозрачной подписи, подписанный документ должен быть отредактирован для получения оригинала. Поэтому имеется третий метод подписи документов, который создает отделенную подпись (detached signature). Отделенная подпись создается при использовании команды --detach-sign.

    alice% gpg --output doc.sig --detach-sign doc

     

    You need a passphrase to unlock the secret key for

    user: "Alice (Judge) <alice@cyb.org>"

    1024-bit DSA key, ID BB7576AC, created 1999-06-04

     

    Enter passphrase:

    Для проверки подписи необходимы и отделенная подпись, и документ. Для проверки используется команда --verify.

    blake% gpg --verify doc.sig doc

    gpg: Signature made Fri Jun  4 12:38:46 1999 CDT using DSA key ID BB7576AC

    gpg: Good signature from "Alice (Judge) <alice@cyb.org>"

    [1] Вариант 3 генерирует пару ElGamal, которая не пригодна для подписи.
    [2] Многие, часто используемые, опции командной строки могут быть установлены в файле конфигурации.

     

     

    2. Общие понятия

    Симметричные шифры

    Шифры с открытым ключом

    Смешанные шифры

    Цифровые подписи

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

    Эта глава - введение в основные криптографические методы, используемые в GnuPG. Более подробно эти вопросы рассматриваются в других источниках. Хорошая книга, для дальнейшего изучения: Bruce Schneier ``Applied Cryptography''. (Имеется перевод на русский язык)

    Симметричные шифры

    Симметричный шифр это шифр использующий один ключ для зашифрования и расшифрования. Стороны, общающиеся при помощи симметричного шифра, должны договориться о ключе до начала обмена сообщениями. После того как они договорились, отправитель зашифровывает сообщение, используя ключ, отправляет получателю, и получатель расшифровываетет сообщение, используя тот же самый ключ. Например, немецкая Enigma - симметричный шифр, ежедневные ключи распространялись как книги кодов. Каждый день посылающий или принимающий радист должен был найти в своей копии книги кодов ключ на текущий день. Радиограммы в этот день зашифровывались и расшифровывались этим ключом. Современные примеры симметричных шифров: 3DES, Blowfish, IDEA и ГОСТ.

    Хороший шифр заключает всю защиту в ключе, но не в алгоритме. Другими словами, знание используемого алгоритма не должно помочь взломщику. Знание алгоритма понадобится ему, только когда он получит ключ. Шифры, используемые в GnuPG, обладают этим свойством.

    Так как вся защита заключена в ключе, то очень важно, чтобы его было трудно подобрать. Другими словами, множество возможных ключей, т.е. пространство ключей, должно быть достаточно велико. Будучи в Лос Аламосе, Ричард Фейнман прославился умением вскрывать сейфы. Для поддержания мистификации он даже приносил с собой набор инструментов, включая старый стетоскоп. В действительности, он использовал набор уловок для уменьшения числа комбинаций, а затем просто подбирал правильную. Проще говоря, он уменьшал размер пространства ключей.

    Британия использовала машины для подбора ключей, во время Второй Мировой войны. Немецкая Enigma имела очень большое пространство ключей, но Англичане построили специальные вычислительные механизмы, "Bombes", которые перебирали ключи пока на находили нужный. Иногда они находили ключ на текущий день через несколько часов после начала его использования, а иногда не находили совсем. "Bombes" не являлись компьютерами, но были их предшественниками.

    Современные компьютеры могут перебирать ключи с огромной скоростью, поэтому размер ключа так важен в современных криптосистемах. Шифр DES использует ключ длиной 56 бит, т.е. существует 256 возможных ключей. 256 это 72,057,594,037,927,936 ключей. Много, но обычный компьютер может перебрать их за считаные дни, а специализированный за часы. С другой стороны, более поздние алгоритмы - 3DES, Blowfish и IDEA используют ключи длиной 128 бит, что означает 2128 возможных ключей. Это намного больше, и, даже, если все компьютеры на нашей планете объединить, им потребуется времени больше, чем возраст вселенной, для нахождения ключа.

    Шифры с открытым ключом

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

    Шифры с открытым ключом были придуманы, чтобы решить проблему с обменом ключами. Шифр с открытым ключом использует пару ключей для отправки сообщений. Два ключа относятся к лицу принимающему сообщение. Один ключ открытый (public key) и может быть передан любому. Другой ключ секретный (private key) и хранится только у владельца. Отправитель зашифровывает сообщение открытым ключом получателя, и ,будучи зашифровано, сообщение может быть расшифровано только закрытым ключом получателя.

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

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

    Как и в случае симметричных шифров, вся защита хорошего шифра с открытым ключом заключена в ключе. Также, надежность зависит от размера ключа, но нельзя сравнивать длины ключей симметричных шифров и шифров с открытым ключом как меру их относительной надежности. При грубом взломе симметричного шифра с ключом длиной 80 бит, взломщик должен перебрать до 281-1 ключей для нахождения правильного. При взломе шифра с открытым ключом с длиной ключа 512 бит, взломщик должен разложить на множители число закодированное в 512 битах (до 155 десятичных знаков). Действия взломщика сильно различаются в зависимости от шифра. Пока для симметричных шифров достаточна длина ключа 128 бит, для сегодняшних технологий открытых ключей рекомендуется длина 1024 бита.

    Смешанные шифры

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

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

    И PGP и GnuPG используют гибридные шифры. Сеансовый ключ, зашифрованный шифром с открытым ключом, и сообщение, зашифрованное симметричным шифром, автоматически объединяются вместе. Получатель использует свой секретный ключ для расшифровки сеансового ключа и, затем, использует полученный сеансовый ключ для расшифровки сообщения.

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

    Цифровые подписи

    Хеширующая функция это функция "многие-к-одному", отображающая свои аргументы на ограниченное множество значений. Обычно это множество - диапазон натуральных чисел. Простая хеширующая функция - f(x) = 0 для всех целых x. Более интересна функция f(x) = x mod 37, которая отображает x в остаток от деления x на 37.

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

    Некоторые шифры с открытым ключом [1] могут быть использованы для подписи документов. Подписывающий зашифровывает документ своим секретным ключом. Желающий проверить подпись и увидеть документ, просто использует открытый ключ подписавшего для расшифровки документа. Этот алгоритм удовлетворяет двум условиям, налагаемым на хорошую хеширующую функцию, но на практике он слишком медленен.

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

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

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

    [1] Шифр должен обладать тем свойством, что и настоящий открытый ключ, и секретный ключ могут быть использованы алгоритмом шифрования как открытый ключ. RSA - является таким алгоритмом, а ElGamal нет.

     

    3. Управление ключами

    Управление Вашей парой ключей

    Проверка достоверности ключей в Вашей связке

    Распространение ключей

    Подделка ключа - наиболее слабое место в криптографии с открытым ключом. Злоумышленник может изменить пользовательскую связку ключей или подделать открытый ключ пользователя и посылать его другим для загрузки и использования. Например, предположим, что Хлой хочет отслеживать сообщения, которые Элис посылает Блэйку. Она могла бы использовать атаку, называемую человек в середине (man in the middle). Для этого Хлой создает новую пару ключей. Она заменяет копию открытого ключа Блэйка, принадлежащую Элис, новым открытым ключом. Затем она перехватывает сообщения, которые Элис посылает Блэйку. Каждое перехваченное сообщение она расшифровывает, используя новый секретный ключ, зашифровывает настоящим открытым ключом Блэйка и направляет их ему. Все сообщения, направленные Элис Блэйку, теперь могут быть прочитаны Хлой.

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

    Управление Вашей парой ключей

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

    Для просмотра пары ключей используется команда --edit-key. Например,

    chloe% gpg --edit-key chloe@cyb.org
    Secret key is available.
    
    pub  1024D/26B6AAE1  created: 1999-06-15 expires: never      trust: -/u
    sub  2048g/0CF8CB7A  created: 1999-06-15 expires: never    
    sub  1792G/08224617  created: 1999-06-15 expires: 2002-06-14
    sub   960D/B1F423E7  created: 1999-06-15 expires: 2002-06-14
    (1)  Chloe (Jester) <chloe@cyb.org>
    (2)  Chloe (Plebian) <chloe@tel.net>
    Command>

    При отображении открытого ключа выводится информация о том, доступен секретный ключ или нет. Затем выводится информация о каждом компоненте открытого ключа. Первая колонка показывает тип ключа. Символы pub указывают открытую часть главного подписывающего ключа, а символы sub открытую часть подчиненных ключей. Вторая колонка показывает длину ключа в битах, тип и идентификатор. Тип D это ключ DSA, g - ключ ElGamal, пригодный только для шифрования, и G - ключ ElGamal, который может использоваться и для подписи и для шифрования. Дата создания и окончания срока действия показана в колонках три и четыре. Идентификаторы пользователя перечислены после ключей.

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

    Command> toggle
    
    sec  1024D/26B6AAE1  created: 1999-06-15 expires: never    
    sbb  2048g/0CF8CB7A  created: 1999-06-15 expires: never    
    sbb  1792G/08224617  created: 1999-06-15 expires: 2002-06-14
    sbb   960D/B1F423E7  created: 1999-06-15 expires: 2002-06-14
    (1)  Chloe (Jester) <chloe@cyb.org>
    (2)  Chloe (Plebian) <chloe@tel.net>

    Представленная информация подобна выводимой для открытого ключа. Символы sec указывают секретный главный подписывающий ключ, символы sbb указывают секретные подчиненные ключи. Также выводятся идентификаторы пользователя из открытого ключа.

    Целостность ключа.

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

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

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

    chloe% gpg --edit-key chloe
    Secret key is available.
    
    pub  1024D/26B6AAE1  created: 1999-06-15 expires: never      trust: -/u
    sub  2048g/0CF8CB7A  created: 1999-06-15 expires: never    
    sub  1792G/08224617  created: 1999-06-15 expires: 2002-06-14
    sub   960D/B1F423E7  created: 1999-06-15 expires: 2002-06-14
    (1)  Chloe (Jester) <chloe@cyb.org>
    (2)  Chloe (Plebian) <chloe@tel.net>
    
    Command> check
    uid  Chloe (Jester) <chloe@cyb.org>
    sig!       26B6AAE1 1999-06-15   [self-signature]
    uid  Chloe (Plebian) <chloe@tel.net>
    sig!       26B6AAE1 1999-06-15   [self-signature]

    Как и ожидалось, все подписи сделаны главным подписывающим ключом с идентификатором ключа 0x26B6AAE1. Самоподписи на подключах также представлены в открытом ключе, но они не показываются в GnuPG.

    Добавление и удаление компонент ключа

    Как новые подключи, так и идентификаторы пользователя могут быть добавлены к Вашей паре ключей после ее создания. Идентификатор пользователя добавляется командой adduid. Вы будете запрошены относительно Ваших имени, адреса email и комментария, также как при создании пары ключей. Подключ добавляется командой addkey. Процедура аналогична используемой при первичном создании пары ключей. Подключ может быть подписывающим DSA ключом, ElGamal ключом пригодным только для шифрования, или ключом ElGamal пригодным и для подписи и для шифрования. Когда создаются подключ или идентификатор пользователя, они подписываются главным подписывающим ключом, для чего Вы должны ввести ключевую фразу при генерации ключа.

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

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

    Подключи и идентификаторы пользователя могут быть удалены. Для удаления подключа или идентификатора пользователя, Вы должны сначала выбрать его, используя команду key или uid. Это команды переключатели. Например, команда key 2 выберет второй подключ, повторная команда key 2 отменит выбор. Если не заданы дополнительные аргументы, выбор всех подключей или идентификаторов пользователя будет отменен. Если идентификатор пользователя, который надо удалить, выбран, то команда deluid удалит его из ключа. Аналогично, команда delkey удаляет все выбранные подключи из обоих, открытого и секретного, ключей.

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

    Отзыв компонент ключа

    Для отзыва подключа он должен быть выбран. Будучи выбран, он может быть отозван командой revkey. Ключ отзывается добавлением отзывающей самоподписи к ключу. В отличие от опции командной строки --gen-revoke, эффект наступает немедленно.

    Command> revkey
    Do you really want to revoke this key? y
    
    You need a passphrase to unlock the secret key for
    user: "Chloe (Jester) <chloe@cyb.org>"
    1024-bit DSA key, ID B87DBA93, created 1999-06-28
    
    pub  1024D/B87DBA93  created: 1999-06-28 expires: never      trust: -/u
    sub  2048g/B7934539  created: 1999-06-28 expires: never    
    sub  1792G/4E3160AD  created: 1999-06-29 expires: 2000-06-28
    rev! subkey has been revoked: 1999-06-29
    sub   960D/E1F56448  created: 1999-06-29 expires: 2000-06-28
    (1)  Chloe (Jester) <chloe@cyb.org>
    (2)  Chloe (Plebian) <chloe@tel.net>

    Идентификатор пользователя отменяется иначе. Как правило, на идентификатор пользователя ставятся подписи, удостоверяющие личность обладателя ключа. Теоретически, идентификатор вечен, т.к. человек всегда остается собой. На практике, однако, элементы идентификатора пользователя, такие, как адрес email и комментарий могут изменяться, делая идентификатор пользователя недействительным.

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

    Подпись отзывается командой revsig. Т.к. Вы можете иметь любое число подписанных идентификаторов пользователя, программа запросит Вас о каждой подписи.

    Command> revsig
    You have signed these user IDs:
         Chloe (Jester) <chloe@cyb.org>
       signed by B87DBA93 at 1999-06-28
         Chloe (Plebian) <chloe@tel.net>
       signed by B87DBA93 at 1999-06-28
    user ID: "Chloe (Jester) <chloe@cyb.org>"
    signed with your key B87DBA93 at 1999-06-28
    Create a revocation certificate for this signature? (y/N)n
    user ID: "Chloe (Plebian) <chloe@tel.net>"               
    signed with your key B87DBA93 at 1999-06-28
    Create a revocation certificate for this signature? (y/N)y
    You are about to revoke these signatures:                
         Chloe (Plebian) <chloe@tel.net>
       signed by B87DBA93 at 1999-06-28
    Really create the revocation certificates? (y/N)y
    
    You need a passphrase to unlock the secret key for
    user: "Chloe (Jester) <chloe@cyb.org>"
    1024-bit DSA key, ID B87DBA93, created 1999-06-28
    
    pub  1024D/B87DBA93  created: 1999-06-28 expires: never      trust: -/u
    sub  2048g/B7934539  created: 1999-06-28 expires: never    
    sub  1792G/4E3160AD  created: 1999-06-29 expires: 2000-06-28
    rev! subkey has been revoked: 1999-06-29
    sub   960D/E1F56448  created: 1999-06-29 expires: 2000-06-28
    (1)  Chloe (Jester) <chloe@cyb.org>
    (2)  Chloe (Plebian) <chloe@tel.net>

    Отозванный идентификатор пользователя указан отзывающей подписью при перечислении подписей на идентификаторах пользователя.

    Command> check
    uid  Chloe (Jester) <chloe@cyb.org>
    sig!       B87DBA93 1999-06-28   [self-signature]
    uid  Chloe (Plebian) <chloe@tel.net>
    rev!       B87DBA93 1999-06-29   [revocation]
    sig!       B87DBA93 1999-06-28   [self-signature]

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

    Изменение срока действия ключа

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

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

    Проверка достоверности ключей в Вашей связке

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

    GnuPG решает эту проблему при помощи механизма именуемого сеть доверия (web of trust). В модели сети доверия ответственность за проверку открытых ключей возложена на людей, которым Вы доверяете. Например, предположим

    • Элис подписала ключ Блэйка, а
    • Блэйк подписал ключи Хлой и Дхармы.

    Если Элис уверена, что Блэйк проверяет достоверность ключей, которые он подписывает, то Элис может быть уверена, что ключи Хлой и Дхармы достоверны не проверяя их лично. Она просто использует свою достоверную копию открытого ключа Блэйка для проверки его подписи на ключах Хлой и Дхармы. Вообще, предполагая, что Элис совершенно уверена, что все правильно проверяют ключи, перед тем как их подписать, то любой ключ, подписанный достоверным ключом, будет достоверным.

    Доверие владельцу ключа

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

    unknown (неизвестное)

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

    none (нет)

    Известна недобросовестность этого лица при подписи чужих ключей.

    marginal (граничное)

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

    full (полное)

    Владелец очень разборчив в подписи ключей и его подписи на ключе можно верить как своей собственной.

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

    Для присвоения уровня доверия владельцу ключа используется редактор ключей GnuPG. Команда trust. В этом примере Элис редактирует уровень своего доверия Блэйку и затем обновляет базу данных доверия, чтобы пересчитать достоверность ключей основываясь на новом значении доверия Блэйку.

    alice% gpg --edit-key blake
    
    pub  1024D/8B927C8A  created: 1999-07-02 expires: never      trust: q/f
    sub  1024g/C19EA233  created: 1999-07-02 expires: never    
    (1)  Blake (Executioner) <blake@cyb.org>
    
    Command> trust
    pub  1024D/8B927C8A  created: 1999-07-02 expires: never      trust: q/f
    sub  1024g/C19EA233  created: 1999-07-02 expires: never    
    (1)  Blake (Executioner) <blake@cyb.org>
    
    Please decide how far you trust this user to correctly
    verify other users' keys (by looking at passports,
    checking fingerprints from different sources...)?
    
     1 = Don't know
     2 = I do NOT trust
     3 = I trust marginally
     4 = I trust fully
     s = please show me more information
     m = back to the main menu
    
    Your decision? 3
    
    pub  1024D/8B927C8A  created: 1999-07-02 expires: never      trust: m/f
    sub  1024g/C19EA233  created: 1999-07-02 expires: never    
    (1)  Blake (Executioner) <blake@cyb.org>
    
    Command> quit
    [...]

    Доверие владельцу ключа и достоверность ключа выводятся справа от ключа, когда выводится ключ. Доверие владельцу выводится первым, достоверность ключа второй[1]. Четыре уровня доверия/достоверности обозначаются символами: неизвестный (q), нет (n), граничный (m), и полный (f). В этом случае, ключ Блэйка полностью достоверен, т.к. Элис сама подписала его. Изначально установлено неизвестное доверие относительно правильности подписи Блэйком ключей, но Элис решает установить граничный уровень доверия.

    Использование доверия для проверки достоверности ключей

    Сеть доверия позволяет использовать более гибкий алгоритм для проверки достоверности ключа. Если прежде достоверными считались только те ключи, которые Вы подписали лично, то теперь используется следующий алгоритм. Ключ K считается достоверным, если он удовлетворяет следующим двум условиям:

    1.      он подписан достаточным количеством достоверных ключей, т.е.

    o    Вы подписали его лично,

    o    он был подписан ключом владельцу которого Вы полностью доверяете, или

    o    он был подписан тремя ключами с граничным уровнем доверия владельцу; и

    2.      цепочка подписанных ключей начинающаяся с K и заканчивающаяся Вашим ключом не длиннее пяти ключей.

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

    . 3-1 рассмотрим сеть доверия начинающуюся с Элис. Граф иллюстрирует кто подписал чей ключ. Таблица показывает ключи, которые Элис признает достоверными основываясь на доверии другим членам сети. Этот пример предполагает, что для признания другого ключа достоверным требуется два ключа с граничным доверием или один с полным. Максимальная длина цепочки равна трем.

    При вычислении достоверности ключей, в этом примере, ключи Блэйка и Дхармы всегда считаются полностью достоверными, т.к. они подписаны Элис. Достоверность других ключей зависит от доверия. В первом случае, доверие Дхарме полное, что делает ключи Хлой и Фрэнсиса полностью достоверными. Во втором случае, доверие Блэйку и Дхарме граничное. Т.к. два ключа с граничным доверием требуется для подтверждения достоверности ключа, ключ Хлой будет признан полностью достоверным, но достоверность ключа Фрэнсиса будет только частично подтверждена. В случае граничного доверия Хлой и Дхарме, ключ Хлой будет частично достоверен, а ключ Дхармы полностью достоверен. Ключ Фрэнсиса будет частично достоверен, т.к. только полностью достоверный ключ может быть использован для подтверждения достоверности других ключей, а единственный полностью достоверный ключ, которым подписан ключ Фрэнка, это ключ Дхармы. После добавления граничного доверия Блэйку ключ Хлой становится полностью достоверным и может быть использован для полного подтверждения достоверности ключа Фрэнсиса и частичного подтверждения достоверности ключа Елены. Наконец, если доверие Блэйку, Хлой и Елене полное, этого все еще не достаточно для подтверждения достоверности ключа Джефа, т.к. максимальная длина цепочки подтверждения равна трем, но путь от Джефа к Элис равен четырем.

    Модель сети доверия реализует гибкий подход к проблеме безопасного обмена ключами. Она позволяет настраивать GnuPG в соответствии с Вашими потребностями. Вы можете требовать много коротких цепочек от Вашего ключа до ключа K для признания его достоверным. С другой стороны, Вы можете быть удовлетворены одной длинной цепочкой. Требование многочисленных коротких цепочек - сильная гарантия того, что ключ K принадлежит тому, на кого указывает его идентификатор пользователя. Цена за такую надежность, конечно, выше, т.к. Вы лично должны проверить и подписать большее количество ключей, чем в случае когда Вас устраивает небольшое число длинных цепочек.

    3-1. Пример сети доверия

     

    доверие достоверность
    граничное полное граничная полная
      Дхарма   Блэйк, Хлой, Дхарма, Фрэнсис
    Блэйк, Дхарма   Фрэнсис Блэйк, Хлой, Дхарма
    Хлой, Дхарма   Хлой, Фрэнсис Блэйк, Дхарма
    Блэйк, Хлой, Дхарма   Елена Блэйк, Хлой, Дхарма, Фрэнсис
      Блэйк, Хлой, Елена   Блэйк, Хлой, Елена, Фрэнсис

    Распространение ключей

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

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

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

    Использование серверов ключей облегчает этот процесс. Когда Блэйк подписывает ключ Элис он посылает подписанный ключ на сервер ключей. Сервер ключей добавляет подпись Блэйка к своей копии ключа Элис. Те кто интересуется обновлением копии ключей Элис, по своей инициативе связываются с сервером ключей и получают оттуда обновленный ключ Элис. Элис не принимает участия в распространении ключа и может получить подписи на своем ключе просто запросив сервер.

    Один или более ключей могут быть отправлены на сервер ключей командой --send-keys. В качестве аргумента указываются один или более спецификаторов ключей. Сервер ключей, которому будут переданы ключи задается опцией --keyserver. Аналогично, команда --recv-keys используется для получения ключей с сервера, но команде --recv-keys требуется идентификатор ключа. В следующем примере Элис обновляет свой открытый ключ с новыми подписями с сервера ключей certserver.pgp.com и затем посылает свою копию открытого ключа Блэйка на тот же сервер ключей для передачи своей подписи на нем.

    alice% gpg --keyserver certserver.pgp.com --recv-key 0xBB7576AC
    gpg: requesting key BB7576AC from certserver.pgp.com ...
    gpg: key BB7576AC: 1 new signature
    
    gpg: Total number processed: 1
    gpg:         new signatures: 1
    alice% gpg --keyserver certserver.pgp.com --send-key blake@cyb.org
    gpg: success sending to 'certserver.pgp.com' (status=200)

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

    [1] GnuPG перегружает слово ``доверие'' используя его в смысле доверия владельцу и в смысле доверия ключу. Это может вызвать путаницу. Иногда доверие владельцу указывается прямо. В основном, в этом руководстве, термин ``доверие'' используется в смысле доверие владельцу ключа и термин ``достоверность'' для обозначения уверенности в том, что ключ принадлежит человеку указанному идентификатором пользователя.

     

    4. Ежедневное использование GnuPG

    Определение Ваших требований к защите

    Построение Вашей сети доверия

    Законность использования GnuPG

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

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

    Определение Ваших требований к защите

    GnuPG инструмент для защиты Ваших секретов. Ваши секреты защищены если Ваши сообщения не доступны постороннему глазу.

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

    Настройка GnuPG включает решение четырех задач:

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

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

    Выбор размера ключа

    Выбор размера ключа зависит от типа ключа. В OpenPGP, пара открытого/закрытого ключей обычно состоит из нескольких ключей. Как минимум в нее входит главный ключ для подписи, кроме того, обычно она содержит один или несколько дополнительных ключей для шифрования. При использовании при генерации ключа параметров по умолчанию, главный ключ будет DSA ключом, а подключи будут ElGamal ключами.

    DSA допускает ключи длиной до 1024 бит. Это не слишком много, учитывая сегодняшнее развитие технологии, но это то, что описывает стандарт. Без вопросов, Вы должны использовать 1024 бит DSA ключи.

    ElGamal ключи могут быть любого размера. Т.к. GnuPG смешанная система, открытый ключ используется для зашифрования 128-битного сеансового ключа, а закрытый ключ используется для его расшифрования. Размер ключа влияет на скорость зашифрования и расшифрования, т.к. стоимость этих алгоритмов экспоненциальна относительно размера ключа. Большие ключи также требуют больше времени для генерации и больше места для хранения. Наконец, если ключ слишком велик для атаки в лоб, похититель просто прибегнет к другим методам, чтобы получить интересующие его данные. Примерами других методов являются ограбление Вашего дома или офиса, либо нападение лично на Вас. 1024 бит - рекомендуемый размер ключа. Если Вы действительно нуждаетесь в ключе большего размера, то скорее всего уже знаете об этом и должны проконсультироваться с экспертом по защите данных.

    Защита Вашего секретого ключа

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

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

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

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

    Это не означает, что Вы не можете или не должны использовать GnuPG. Это означает только, что Вы считаете свои данные достаточно важными, чтобы шифровать, но не настолько важными, чтобы принимать особые меры предосторожности для усиления первого барьера защиты. Это Ваш выбор.

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

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

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

    Выбор срока действия и использование дополнительных ключей

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

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

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

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

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

    Управление Вашей сетью доверия.

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

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

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

    Наиболее разумно, проявить аккуратность присваивая значения доверия и затем настроить опции, указывающие GnuPG строгость проверки ключей. Например, Вы можете полностью доверять узкому кругу друзей, которые, как Вы знаете, осторожны при подписи ключей, и незначительно доверять всем остальным, чьи ключи имеются в Вашей связке. Тогда, Вы можете установить значения --completes-needed равным 1 и --marginals-needed равным 2. Если Вы более осторожны, то можете выбрать значения 1 и 3 или 2 и 3 соответственно. Если Вы меньше озабочены секретностью и просто заинтересованы в некотором приемлемом подтверждении достоверности, установите значения 1 и 1. В целом, более высокие значения этих параметров означают, что большее число людей должны сговориться против Вас, чтобы получить подтвержденный ключ, не принадлежащий тому, кому Вы думаете.

    Построение Вашей сети доверия

    Одного желающего использовать GnuPG недостаточно. Для того, чтобы сообщаться защищенно с другими, Вы должны иметь сеть доверия. Построение сети доверия похоже на укрощение. Люди, с которыми Вы общаетесь, должны использовать GnuPG[1], и должно иметься достаточное количество подписанных ключей, чтобы ключи могли подтверждаться. Это не столько технические, сколько социальные проблемы. Однако, Вы должны преодолеть эти проблемы, если хотите использовать GnuPG.

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

    В дополнение к этой начальной сети доверия, Вы можете захотеть конфиденциально переписываться с другими людьми, также использующими GnuPG. Реализация этого желания, однако, может оказаться неуклюжей по двум причинам: (1) Вы не всегда знаете, что человек использует или желает использовать GnuPG, и (2) если Вы и знаете, что человек использует его, могут возникнуть сложности с подтверждением ключей. Первая причина является следствием того, что люди не всегда объявляют о том, что используют GnuPG. Возможный вариант решения этой проблемы, подать пример и объявить, что Вы используете GnuPG. Есть как минимум три способа сделать это: Вы можете подписывать свои сообщения, Вы можете положить свой открытый ключ на своей веб-странице, Вы можете указать идентификатор Вашего ключа в подписи почтового сообщения. Если Вы сообщаете о своем ключе, то делаете более уместным для других сообщить об их ключах. Более того, Вашим корреспондентам будет проще начать с Вами переписываться конфиденциально, если Вы проявите инициативу и сделаете ясным использование Вами GnuPG.

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

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

    Законность использования GnuPG

    Законодательный статус криптографических программ различен в разных странах, кроме того, законы, регулирующие использование криптографических средств, быстро меняются. Bert-Japp Koops сделал неплохую страничку Crypto Law Survey, к которой Вы можете обратиться, чтобы узнать законодательный статус криптографических программ в Вашей стране.

    [1] В этом разделе, GnuPG относится к GnuPG реализации OpenPGP также, как к другим реализациям, типа PGP произодимому NAI.

    5. Различные вопросы

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

    Написание пользовательского интерфейса

    Alma Whitten и Doug Tygar провели анализ пользовательского интерфейса PGP 5.0 и пришли к заключению, что начинающие пользователи находят PGP сложным и непонятным. По результатам их тестов, только четверо из двенадцати тестируемых правильно отправили зашифрованные сообщения членам их команды, и трое из двенадцати отправили секрет незашифрованным. При этом половина тестируемых прошли техническую подготовку.

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

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

    • Безопасность, обычно является второстепенной задачей; люди хотят отправлять почту, просматривать и т.д. Не думайте что пользователи станут читать толстые руководства или разбираться в настройках шифрования.
    • Защита сетевого компьютера не сильнее самого слабого из ее компонентов. Пользователи должны быть осведомлены обо всех аспектах своей безопасности, не ограничиваясь частичными сведениями, как это может быть с текстовыми процессорами или электронными таблицами.
    • Всегда используйте одинаковые термины для одинаковых действий. Избегайте употребления синонимов, типа ``encrypt'' и ``encipher''.
    • Для неискушеных пользователей упростите вывод информации. Слишком большое количество информации скрывает ту, которая важна. Начальная конфигурация интерфейса должна обеспечить пользователя правильной моделью отношений между открытым и закрытым ключами и прозрачным пониманием функций получения и распространения ключей.

    Разработка эффективного пользовательского интерфейса для управления ключами еще более сложна. Модель сети доверия OpenPGP, к сожалению, довольно трудна для понимания. Например, спецификация определяет три степени доверия пользователю: нет (none), относительное (marginal), и полное (сomplete). Все грани доверия, испытываемого пользователем, должны уместиться в эти три ячейки. Алгоритм подтверждения ключей также сложен для понимания не специалистов, особенно параметры ``marginals needed'' и ``completes needed''. Так как модель сети доверия четко определена и не может быть изменена, Вам прийдется постараться и разработать интерфейс, который поможет понять ее пользователю. Определенная функция, к примеру, могла бы отображать диаграмму того, как был подтвержден ключ, по запросу пользователя. Основные выводы следующие.

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

    I. Список команд

    Спецификаторы ключей

    Многие команды и опции требуют спецификатор ключа (key specifier). Спецификатор ключа это идентификатор ключа или любая часть идентификатора пользователя ключа. Рассмотрим следующий пример:

    alice% gpg --list-keys chloe
    pub  1024D/B87DBA93 1999-06-28 Chloe (Jester) <chloe@cyb.org>
    uid                            Chloe (Plebian) <chloe@tel.net>
    sub  2048g/B7934539 1999-06-28

    Для этого ключа, 0xB87DBA93, Chloe, Plebian, и oe@tel примеры спецификаторов ключа.

    sign — подписать документ

    detach-sign — создать отделенную подпись

    encrypt — зашифровать документ

    symmetric — зашифровать докумет используя только алгоритм симметричного шифрования

    decrypt — расшифровать документ

    clearsign — создать прозрачную подпись

    verify — проверить подписанный документ

    verify-files — проверить подписанные документы

    gen-key — генерировать новую пару ключей

    gen-revoke — генерировать сертификат отзыва для пары ключей

    send-keys — послать ключи на сервер ключей

    recv-keys — запросить ключ с сервера ключей

    list-keys — вывести информацию о ключах

    list-public-keys — перечислить ключи из открытых связок

    list-secret-keys — перечислить ключи в закрытых связках

    list-sigs — вывести информацию о ключах, включая подписи

    check-sigs — вывести информацию о ключах, включая заверенные подписи

    fingerprint — вывести отпечатки ключей

    list-packets — показать пакеты

    import — импортировать/объединить ключи

    fast-import — импорт/объединение ключей

    export — экспортировать ключи из локальной связки

    export-all — экспортировать все открытые ключи

    export-secret-keys — экспортировать закрытый ключ

    export-secret-subkeys — экспортировать закрытый ключ

    edit-key — выдает меню для работы с ключами

    sign-key — Подписать открытый ключ секретным

    lsign-key — подписать открытый ключ локально

    trusted-key — считать ключ достоверным

    delete-key — удалить открытый ключ

    delete-secret-key — удалить открытый и закрытый ключи

    store — создавать пакеты rfc1991

    export-ownertrust — экспортировать присвоенные значения доверия

    import-ownertrust — импортировать значения доверия

    update-trustdb — обновить базу данных доверия

    print-md — вывести дайджест сообщения

    gen-random — генерировать случайные данные

    gen-prime — ?

    version — вывести информацию о версии

    warranty — вывести информацию о гарантиях

    help — вывести справку об использовании

    sign

    sign -- подписать документ

    sign filename

    Описание

    Эта команда подписывает документ filename. Если параметр filename опущен, то документ для подписи берется из стандартного ввода. Если используется опция output, gpg поместит подписанный документ в указанный файл. Эта команда может совмещаться с encrypt.

    detach-sign

    detach-sign -- создать отделенную подпись

    detach-sign filename

    Описание

    Команда создает файл содержащий подпись. Этот файл может быть использован для проверки того, что исходный файл filename не был изменен. Проверка файла с использованием отделенной подписи выполняется командой verify.

    encrypt

    encrypt -- зашифровать документ

    encrypt filename

    Описание

    Эта команда зашифровывает документ filename для получателей указанных опцией recipient. Если параметр filename опущен, шифруемый документ берется со стандартного ввода. Если опция recipient опущена, gpg запросит получателя. Если используется опция output, gpg поместит зашифрованную информацию в указаный файл. Эта команда может совмещаться с sign.

    symmetric

    symmetric -- зашифровать докумет используя только алгоритм симметричного шифрования

    symmetric filename

    Описание

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

    decrypt

    decrypt -- расшифровать документ

    decrypt filename

    Описание

    Эта команда расшифровывает filename и помещает результат в стандартный вывод. Если параметр filename опущен, то документ для расшифровки берется из стандартного ввода. Используйте опцию output для вывода расшифрованного документа в файл.

    clearsign

    clearsign -- создать прозрачную подпись

    clearsign filename

    Описание

    Эта команда подписывает сообщение. При этом она оставляет сообщение в читаемом виде. Проверка сообщения производится командой verify.

    verify

    verify -- проверить подписанный документ

    verify sigfile 
    signed-files

    Описание

    Предполагает, что sigfile -- подпись и проверяет его без генерации вывода. При отсутствии параметров, считывает пакет подписи из стандартного ввода (это может быть отделенная подпись, если не используется batch режим). Если указан только sigfile, то он может быть либо полной подписью, либо отделенной. В последнем случае подписанный документ ищется в файле без расширения ".sig" или ".asc" (если такого файла не существует, то он считывается со стандартного ввода; используйте "-", чтобы форсировать чтение со стандартого ввода). При задании более одного аргумента, первый должен определять отделенную подпись, а последующие подписанный документ.

    verify-files

    verify-files -- проверить подписанные документы

    verify-files files

    Описание

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

    gen-key

    gen-key -- генерировать новую пару ключей

    gen-key

    Описание

    Команда генерирует пару открытый/закрытый ключ для зашифровки, расшифровки и подписи сообщений. Вы будете запрошены о типе ключа, его размере и сроке действия.

    gen-revoke

    gen-revoke -- генерировать сертификат отзыва для пары ключей

    gen-revoke

    Описание

    Команда генерирует сертификат отзыва для всего ключа. Для отзыва подключа или подписи используйте команду edit-key,

    send-keys

    send-keys -- послать ключи на сервер ключей

    send-keys keys

    Описание

    Команда отправляет открытый ключ на сервер ключей. Параметр keys задает отправляемые ключи. Должна быть определена опция keyserver для указания сервера ключей, на который gpg отправит ключи. Не отправляйте на сервер всю связку ключей --- выберите только новые ключи, и ключи которые Вы изменили. См. также export

    recv-keys

    recv-keys -- запросить ключ с сервера ключей

    recv-keys key-IDs

    Описание

    Команда загружает один или несколько открытых ключей с сервера ключей. Каждый key-ID - идентификатор ключа. Должна быть определена опция keyserver для указания сервера ключей, с которого gpg будет загружать ключи.

    list-keys

    list-keys -- вывести информацию о ключах

    list-keys names

    Описание

    Команда выводит список открытых ключей заданых идентификаторами указанными в командной строке. Если идентификаторы пользователей не заданы, gpg перечислит все открытые ключи.

    list-public-keys

    list-public-keys -- перечислить ключи из открытых связок

    list-public-keys names

    Описание

    Список всех ключей из открытых связок или только ключи заданные параметром names.

    list-secret-keys

    list-secret-keys -- перечислить ключи в закрытых связках

    list-secret-keys names

    Описание

    Список всех ключей из закрытых связок или только ключи заданные параметром names.

    list-sigs

    list-sigs -- вывести информацию о ключах, включая подписи

    list-sigs names

    Описание

    То же, что и list-keys, но дополнительно выводит информацию о подписях на ключах.

    check-sigs

    check-sigs -- вывести информацию о ключах, включая заверенные подписи

    check-sigs names

    Описание

    То же, что и list-sigs, но дополнительно проверяет подписи на ключах.

    fingerprint

    fingerprint -- вывести отпечатки ключей

    fingerprint names

    Описание

    Выводит список ключей и их отпечатки. Дает тот же вывод, что и list-keys, но добавляется строка с указанием отпечатка ключа. Может совмещаться с командами list-sigs или check-sigs. Если команда задана дважды, то выводятся также отпечатки вторичных ключей.

    list-packets

    list-packets -- показать пакеты

    list-packets

    Описание

    Перечислить последовательность пакетов. Применимо, в основном, для отладочных целей.

    import

    import -- импортировать/объединить ключи

    import files

    Описание

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

    fast-import

    fast-import -- импорт/объединение ключей

    fast-import files

    Описание

    То же, что и import, но не перестраивается база данных доверия. Перестроить базу можно позже командой update-trustdb.

    export

    export -- экспортировать ключи из локальной связки

    export names

    Описание

    Команда экспортирует ключи заданные параметром names, либо, если параметр опущен, все ключи из всех связок. Результат по умолчанию направляется на стандартный вывод. Используйте совместно с armor, если хотите отправить ключи по почте. Ключи, в дальнейшем, могут быть импортированы в другую связку командой import.

    export-all

    export-all -- экспортировать все открытые ключи

    export-all names

    Описание

    То же, что и команда export, но позволяет экспортировать ключи не являющиеся OpenPGP-совместимыми.

    export-secret-keys

    export-secret-keys -- экспортировать закрытый ключ

    export-secret-keys names

    Описание

    Подобна команде export, но экспортирует закрытые ключи. Обычно не используется и является рискованой, т.к. закрытый ключ становится незащищенным.

    export-secret-subkeys

    export-secret-subkeys -- экспортировать закрытый ключ

    export-secret-subkeys names

    Описание

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

    edit-key

    edit-key -- выдает меню для работы с ключами

    edit-key key

    Описание

    Команда позволяет осуществлять работу с ключами. Спецификатор ключа key определяет редактируемую пару ключей. Если спецификатор определяет более одной пары ключей, gpg выдаст сообщение об ошибке и завершится.

    Листинг ключа выводимый во время редактирования показывает ключ с его вторичными ключами и всеми идентификаторами пользователя. Выбранные ключи и идентификаторы пользователя помечены звездочкой. Доверие владельцу ключа и его достоверность выводятся с первичным ключом: первое - присвоенное доверие и второе вычисленная достоверность. Значения обозначены символами:

    Символ Значение
    - Не присвоено значение доверия / Достоверность не вычислена.
    e Вычисление достоверности потерпело неудачу.
    q Нет достаточной информации для вычисления.
    n Не доверять ключу.
    m Граничное доверие.
    f Полное доверие.
    u Безусловно достоверен.

    Далее приводится список всех команд редактирования ключа и их описание.

    sign

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

    lsign

    Подобна sign, но подпись помечается как не экспортируемая и никогда не будет использована другими. Используется чтобы сделать ключи достоверными только локально.

    revsig

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

    trust

    Изменить значение доверия владельцу. Немедленно обновляет базу данных доверия и не требует сохранения.

    disable

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

    enable

    Разблокировать ключ который был раннее заблокирован командой disabled.

    adduid

    Добавить новый идентификатор пользователя к ключу.

    deluid

    Удалить идентификатор пользователя из ключа.

    addkey

    Добавить новый подключ к текущему ключу.

    delkey

    Удалить подключ из текущего ключа.

    revkey

    Отозвать подключ из текущего ключа.

    expire

    Изменить срок действия ключа. Если выбран подключ, то будет изменен срок его действия. Если нет выбраных ключей, будет изменен срок действия текущего первичного ключа.

    key n

    Выбрать подключ с индексом n. Используйте 0, чтобы отменить выбор всех.

    uid n

    Выбрать идентификатор пользователя с индексом n. Используйте 0, чтобы отменить выбор всех.

    passwd

    Изменить ключевую фразу секретного ключа.

    toggle

    Переключение между списком открытых и секретных ключей.

    check

    Проверить все выбранные идентификаторы пользователя.

    pref

    Вывести список предпочтений.

    save

    Сохранить изменения и выйти.

    quit

    Выйти без сохранения изменений.

    sign-key

    sign-key -- Подписать открытый ключ секретным

    sign-key name

    Описание

    Аналогична подкоманде sign команды edit-key.

    lsign-key

    lsign-key -- подписать открытый ключ локально

    lsign-key name

    Описание

    Аналогична подкоманде lsign команды edit-key.

    trusted-key

    trusted-key -- считать ключ достоверным

    trusted-key long key ID

    Описание

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

    delete-key

    delete-key -- удалить открытый ключ

    delete-key name

    Описание

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

    delete-secret-key

    delete-secret-key -- удалить открытый и закрытый ключи

    delete-secret-key name

    Описание

    Удалить пару ключей (оба, открытый и закрытый, ключи) заданную параметром name.

    store

    store -- создавать пакеты rfc1991

    help

    Описание

    Создает простой пакет в соответствии с rfc1991.

    export-ownertrust

    export-ownertrust -- экспортировать присвоенные значения доверия

    export-ownertrust

    Описание

    Значения доверия экспортируются в формате ASCII. Применимо для создания резервных копий значений доверия, присвоенных владельцам ключей.

    import-ownertrust

    import-ownertrust -- импортировать значения доверия

    import-ownertrust files

    Описание

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

    update-trustdb

    update-trustdb -- обновить базу данных доверия

    update-trustdb

    Описание

    Перестраивает базу данных доверия.

    print-md

    print-md -- вывести дайджест сообщения

    print-md algo files

    Описание

    Выводит дайджест сообщения используя алгоритм algo для каждого из файлов files. Если файлы не указаны, используется стандартный ввод. Если алгоритм задан как ``*'', то выводится дайджест выдаваемый каждым из доступных алгоритмов.

    gen-random

    gen-random -- генерировать случайные данные

    gen-random 0|1|2 count

    Описание

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

    gen-prime

    gen-prime -- ?

    gen-prime mode bits qbits

    Описание

    Команда генерирует случайное число. Ищите подробности в исходном тексте, если интересуетесь.

    version

    version -- вывести информацию о версии

    version

    Описание

    Печатает информацию о версии и список поддерживаемых алгоритмов.

    warranty

    warranty -- вывести информацию о гарантиях

    warranty

    Описание.

    Выводит информацию о лицензии и гарантиях.

    help

    help -- вывести справку об использовании

    help

    Описание

    Выводит список команд и опций. Список опций может быть не полным.

    II. Список опций

    Установка опций

    Опции могут быть указаны в командной строке или в конфигурационном файле. Обычное расположение конфигурационного файла ~/.gnupg/options. При указании опции в файле опускаются два предшествующих опции знака "минус" и используется просто название опции с последующими аргументами. Строки первый не пробельный символ в которых "#" игнорируются.

    keyserver — указывает сервер ключей

    output — Определяет файл, в который будет помещен результат

    recipient — указывает получателя шифруемого документа

    default-recipient — указывает получателя шифруемого документа по умолчанию

    default-recipient-self — использовать ID пользователя ключа по умолчанию, как получателя зашифрованного документа по умолчанию

    no-default-recipient — игнорировать значения опций default-recipient и default-recipient-self

    encrypt-to — указать дополнительного получателя шифруемого документа

    no-encrypt-to — игнорировать опцию encrypt-to

    armor — ASCII-форматированный вывод

    no-armor — предполагать входящие данные не ASCII форматированными

    no-greeting — подавить вывод лицензионной информации, но не входить в пакетный режим

    no-secmem-warning — подавить предупреждение об использовании незащищенной памяти

    batch — работа в пакетном режиме

    no-batch — отключить пакетный режим

    local-user — специфицирует идентификатор пользователя используемый для подписи

    default-key — задает идентификатор пользователя, как идентификатор по умолчанию для подписей

    completes-needed — задает число полностью доверенных лиц, необходимое для подтверждения достоверности нового ключа

    marginals-needed — задает число относительно надежных лиц, необходимое для подтверждения достоверности нового ключа

    load-extension — указывает расширение для загрузки.

    rfc1991 — быть более совместимым с RFC1991 (PGP 2.x)

    allow-non-selfsigned-uid — позволяет импорт ключей с идентификаторами пользователя не подписанными этим ключом

    cipher-algo — использовать указанный алгоритм для симметричного шифра

    compress-algo — использовать указанный алгоритм сжатия

    z — установить степень сжатия

    verbose — выдавать дополнительную информацию во время работы

    no-verbose — отключает вывод дополнительной информации

    quiet — подавляет вывод информации

    textmode — использовать текстовый режим

    dry-run — ничего не менять

    interactive — запрос перед перезаписью файлов

    yes — отвечать ``yes'' на большинство вопросов

    no — отвечать ``no'' на большинство вопросов

    always-trust — пропустить проверку достоверности ключа

    skip-verify — пропустить проверку подписи

    keyring — добавить связку ключей к списку связок ключей

    secret-keyring — добавить секретную связку

    no-default-keyring — не добавлять связки по умолчанию к списку связок

    homedir — установить домашний каталог

    charset — установить имя родного набора символов.

    no-literal — ?

    set-filesize — ?

    with-fingerprint — модифицирует вывод списка ключей

    with-colons — модифицирует вывод списка ключей

    with-key-data — модифицирует вывод списка ключей

    lock-once — блокировать базу один раз

    lock-multiple — блокировать базы при каждом запросе

    passphrase-fd — считывать ключевую фразу не из стандартного входа

    force-mdc — форсирует использование шифрования с дополнительным кодом манипуляций

    force-v3-sigs — форсирует использование подписей v3 на данных

    openpgp — приводит все опции в соответствие спецификации OpenPGP

    utf8-strings — предполагать аргументы строками UTF8

    no-utf8-strings — не предполагать аргументы строками UTF8

    no-options — не использовать файл конфигурации

    debug — установить флаги отладки

    debug-all — установить все отладочные флаги

    status-fd — выводить сообщения о состоянии в альтернативный поток

    logger-fd — вывод сообщений об ошибках в альтернативный файл

    merge-only — не добавлять новые ключи при импорте

    no-comment — do not write comment packets

    comment — установить строку комментария для использования в текстовых подписях

    default-comment — использовать стандартную строку комментария в текстовых подписях

    no-version — опустить строку версии в текстовых подписях

    emit-version — включать строку версии в текстовые подписи

    notation-data — добавить к подписи примечание

    set-policy-url — set the policy URL for signatures

    set-filename — установить имя файла в зашифрованном или подписанном сообщении

    use-embedded-filename — использовать имя файла содержащееся в сообщении для сохранения его текстовой или проверенной версии

    max-cert-depth — установить максимальную длину сертификационной цепочки

    digest-algo — установить алгоритм дайджеста сообщения

    s2k-cipher-algo — использовать указанный алгоритм для симметричного шифрования секретных ключей

    s2k-digest-algo — установить алгоритм дайджеста сообщения для манипуляций с ключевой фразой защищающей секретный ключ

    s2k-mode — устанавливает метод обработки ключевой фразы

    disable-cipher-algo — предотвратить использование симметричного шифра

    disable-pubkey-algo — предотвратить использование шифра с открытым ключом

    throw-keyid — не помещать идентификаторы ключа в зашифрованные пакеты

    not-dash-escaped — изменяет формат прозрачных подписей

    escape-from-lines — изменяет сообщения начинающиеся с ``From'' при прозрачной подписи

    keyserver

    keyserver -- указывает сервер ключей

    keyserver server-name

    Описание

    Эта опция используется в сочетании либо с recv-keys, либо с send-keys для указания сервера ключей, управляющего набором открытых ключей.

    output

    output -- Определяет файл, в который будет помещен результат

    output file-name

    Описание

    Эта опция перенаправляет вывод команды в файл указанный параметром.

    recipient

    recipient  -- указывает получателя шифруемого документа

    recipient name

    Описание

    Опция используется совместно с командой encrypt. Она должна находиться перед encrypt в командной строке. Параметр name либо имя индивидуума, которому отправляется сообщение, либо его e-mail.

    default-recipient

    default-recipient  -- указывает получателя шифруемого документа по умолчанию

    default-recipient name

    Описание

    ID пользователя name используется в качестве значения recipient по умолчанию, если значение recipient не указано другим образом.

    default-recipient-self

    default-recipient-self -- использовать ID пользователя ключа по умолчанию, как получателя зашифрованного документа по умолчанию

    default-recipient-self

    Описание

    ID пользователя ключа по умолчанию использовать как получателя по умолчанию. gpg не требует ввода получателя если эта опция идентифицирует действительный ключ. Ключ по умолчанию это первый ключ в наборе секретных ключей или ключ указанный опцией default-key.

    no-default-recipient

    no-default-recipient -- игнорировать значения опций default-recipient и default-recipient-self

    no-default-recipient

    Описание

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

    encrypt-to

    encrypt-to -- указать дополнительного получателя шифруемого документа

    encrypt-to name

    Описание

    Эта опция схожа с опцией recipient, но предназначена для использования в конфигурационном файле. Можно ее использовать с одним из своих ID пользователя для реализации опции ``encrypt-to-self''. Ключ, указанный name, используется только тогда, когда заданы другие получатели, пользователем, либо опцией recipient. При этом не проверяется цепочка доверия ключа name, и даже бездействующие ключи могут быть использованы.

    no-encrypt-to

    no-encrypt-to -- игнорировать опцию encrypt-to

    no-encrypt-to

    Описание

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

    armor

    armor -- ASCII-форматированный вывод

    armor

    Описание

    Эта опция преобразует вывод команды в ASCII формат, который может быть без проблем передан по e-mail.

    no-armor

    no-armor -- предполагать входящие данные не ASCII форматированными

    no-armor

    Описание

    Нечего добавить.

    no-greeting

    no-greeting -- подавить вывод лицензионной информации, но не входить в пакетный режим

    no-greeting

    Описание

    Нечего добавить.

    no-secmem-warning

    no-secmem-warning -- подавить предупреждение об использовании незащищенной памяти

    no-secmem-warning

    Описание

    Нечего добавить.

    batch

    batch -- работа в пакетном режиме

    batch

    Описание

    gpg не будет задавать вопросов и не допустит интерактивных команд.

    no-batch

    no-batch -- отключить пакетный режим

    no-batch

    Описание

    Применима если в файле конфигурации установлена опция batch.

    local-user

    local-user -- специфицирует идентификатор пользователя используемый для подписи

    local-user name

    Описание

    Использовать name как идентификатор пользователя при подписи. Может использоваться в файле конфигурации.

    default-key

    default-key -- задает идентификатор пользователя, как идентификатор по умолчанию для подписей

    default-user name

    Описание

    Использовать name в качестве идентификатора пользователя при подписи. Если опция не задана, по умолчанию используется первый идентификатор пользователя, найденный в связке секретных ключей.

    completes-needed

    completes-needed -- задает число полностью доверенных лиц, необходимое для подтверждения достоверности нового ключа

    completes-needed n

    Описание

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

    marginals-needed

    marginals-needed -- задает число относительно надежных лиц, необходимое для подтверждения достоверности нового ключа

    marginals-needed n

    Описание

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

    load-extension

    load-extension -- указывает расширение для загрузки.

    load-extension object-file

    Описание

    Без коментариев.

    rfc1991

    rfc1991 -- быть более совместимым с RFC1991 (PGP 2.x)

    rfc1991

    Описание

    Без коментариев.

    allow-non-selfsigned-uid

    allow-non-selfsigned-uid -- позволяет импорт ключей с идентификаторами пользователя не подписанными этим ключом

    allow-non-selfsigned-uid

    Описание

    Опция позволяет только импорт - подтверждение ключа не пройдет. Эта опция нужна для некоторых немецких ключей сгенерированных pgp 2.6.3in. Вам следует избегать использования этой опции.

    cipher-algo

    cipher-algo -- использовать указанный алгоритм для симметричного шифра

    cipher-algo name

    Описание

    Использовать алгоритм name для симметричного шифра. Запуск gpg с опцией version выдает список поддерживаемых алгоритмов. Если опция не указана, алгоритм шифрования выбирается из свойств ключевой пары по умолчанию. Для симметричного шифра, это Blowfish.

    compress-algo

    compress-algo -- использовать указанный алгоритм сжатия

    compress-algo n

    Описание

    По умолчанию 2, который определен в RFC1950. Вы можете использовать 1 для старой версии zlib, которую использует PGP. Алгоритм по умолчанию может давать лучшие результаты, т.к. размер окна не ограничен 8K. Если опция не указана, используются настройки принятые в OpenPGP, т.е., выбирается предпочтительный алгоритм сжатия.

    z

    z -- установить степень сжатия

    z n

    Описание

    Установка n в 0 отключает сжатие. По умолчанию используется обычный уровень сжатия для zlib (6). В отличие от всех остальных опций, эта может быть использована только в командной строке, и ей предшествует только один знак минус а не два.

    verbose

    verbose -- выдавать дополнительную информацию во время работы

    verbose

    Описание

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

    no-verbose

    no-verbose -- отключает вывод дополнительной информации

    no-verbose

    Описание

    Используется для отключения предыдущей опции verbose.

    quiet

    quiet -- подавляет вывод информации

    quiet

    Описание

    Выводится минимум информации.

    textmode

    textmode -- использовать текстовый режим

    textmode

    Описание

    What good is this option?

    dry-run

    dry-run -- ничего не менять

    dry-run

    Описание

    Эта опция не реализована полностью. Используйте с осторожностью.

    interactive

    interactive -- запрос перед перезаписью файлов

    interactive

    Описание

    Все сказано.

    yes

    yes -- отвечать ``yes'' на большинство вопросов

    yes

    Описание

    Все сказано.

    no

    no -- отвечать ``no'' на большинство вопросов

    no

    Описание

    Нечего добавить.

    always-trust

    always-trust -- пропустить проверку достоверности ключа

    always-trust

    Описание

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

    skip-verify

    skip-verify -- пропустить проверку подписи

    skip-verify

    Описание

    Пропустить проверку подписи. Это ускоряет расшифровку сообщения.

    keyring

    keyring -- добавить связку ключей к списку связок ключей

    keyring file

    Описание

    Добавляет файл file к списку связок ключей используемых во время работы. Если file начинается с тильды и слэша, они заменяются на домашний каталог. Если имя файла не содержит слэша, предполагается, что файл находится в домашнем каталоге. Домашний катаог - ``~/.gnupg'' если не использована опция homedir.

    Имени файла file может предшествовать префикс. Префикс ``gnupg-ring:'' делает указанный файл связкой по умолчанию. Префикс ``gnupg-gdbm:'' делает указанный файл GDBM базой ключей. Может быть полезно использовать эти схемы совместно с опцией no-default-keyring.

    secret-keyring

    secret-keyring -- добавить секретную связку

    secret-keyring file

    Описание

    То же, что и keyring но для секретных связок.

    no-default-keyring

    no-default-keyring -- не добавлять связки по умолчанию к списку связок

    no-default-keyring

    Описание

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

    homedir

    homedir -- установить домашний каталог

    homedir directory

    Описание

    Если опция не указана, по умолчанию используется каталог ``~/.gnupg''. Опция заменяет переменную окружения GNUPGHOME. Нет смысла использовать ее в файле конфигурации.

    charset

    charset -- установить имя родного набора символов.

    charset name

    Описание

    Используется для преобразования некоторых строк в кодировку UTF-8. Допустимые значения name:

    Name Character set
    iso-8859-1 Набор Latin 1 (по умолчанию)
    iso-8859-2 Набор Latin 2
    koi8-r KOI8-R (rfc1489)

    no-literal

    no-literal -- ?

    no-literal

    Описание

    Опция не для нормального использования. См. подробности в исходном коде.

    set-filesize

    set-filesize -- ?

    set-filesize size

    Описание

    Опция не для нормального использования. См. подробности в исходном коде.

    with-fingerprint

    with-fingerprint -- модифицирует вывод списка ключей

    with-fingerprint

    Описание

    Схожа с командой fingerprint но это опция. Используется вместе с командой list-keys.

    with-colons

    with-colons -- модифицирует вывод списка ключей

    with-colons

    Описание

    Ключи выводимые командой list-keys разграничиваются двоеточиями.

    with-key-data

    with-key-data -- модифицирует вывод списка ключей

    with-key-data

    Описание

    Указывает команде list-keys печатать ключи и данные открытых ключей.

    lock-once

    lock-once -- блокировать базу один раз

    lock-once

    Описание

    При использовании опции база данных блокируется при первом запросе и не освобождается до завершения процесса.

    lock-multiple

    lock-multiple -- блокировать базы при каждом запросе

    lock-multiple

    Описание

    При использовании опции база блокируется при каждом запросе и освобождается сразу после его выполнения. Опция может быть использована для перекрытия опции lock-once в файле конфигурации.

    passphrase-fd

    passphrase-fd -- считывать ключевую фразу не из стандартного входа

    passphrase-fd n

    Описание

    Если n равен 0, ключевая фраза будет считана со стандартного ввода. Может использоваться если требуется ввод только одной ключевой фразы. Не используйте эту опцию без необходимости.

    force-mdc

    force-mdc -- форсирует использование шифрования с дополнительным кодом манипуляций

    force-mdc

    Описание

    Эта опция всегда используется с новыми шифрами с размером блока более 64 бит. Опция пока не реализована.

    force-v3-sigs

    force-v3-sigs -- форсирует использование подписей v3 на данных

    force-v3-sigs

    Описание

    OpenPGP устанавливает, что реализация должна генерировать подписи v4, но PGP 5.x признает подписи v4 только на ключах. Эта опция форсирует использование подписей v3 на данных.

    openpgp

    openpgp -- приводит все опции в соответствие спецификации OpenPGP

    openpgp

    Описание

    Опция сбрасывает значения всех предыдущих опций, таких как lock-once, lock-once, cipher-algo, digest-algo, compress-algo, s2k-cipher-algo, s2k-digest-algo, и s2k-mode, к значениям совместимым с OpenPGP.

    utf8-strings

    utf8-strings -- предполагать аргументы строками UTF8

    utf8-strings

    Описание

    Аргументы опций следующих за этой опцией предполагаются строками в формате UTF8.

    no-utf8-strings

    no-utf8-strings -- не предполагать аргументы строками UTF8

    no-utf8-strings

    Описание

    Аргументы опций следующих за этой опцией предполагаются строками в кодировке charset. Это предполагается и по умолчанию в gpg.

    no-options

    no-options -- не использовать файл конфигурации

    no-options

    Описание

    Эта опция обрабатывается до того, как будет открыт файл конфигурации.

    debug

    debug -- установить флаги отладки

    debug flags

    Описание

    Параметр flags получается применением оператора OR к отдельным флагам. Параметр может быть задан в формате C, например, 0x0042. Флаги:

    Флаг Значение
    1 Детали чтения и записи пакета
    2 детали MPI
    4 Детали шифра и простых чисел (может открыть чувствительные данные)
    8 Функции фильтра iobuf
    16 Детали iobuf
    32 Детали выделения памяти
    64 Кэширование
    128 Показать статистику памяти при выходе
    256 Детали проверки доверия

    debug-all

    debug-all -- установить все отладочные флаги

    debug-all

    Описание

    Смотри опцию debug.

    status-fd

    status-fd -- выводить сообщения о состоянии в альтернативный поток

    status-fd n

    Описание

    Опция перенаправляет сообщения о состоянии в поток с дескриптором n. Список сообщений смотри в файле DETAILS из пакета.

    logger-fd

    logger-fd -- вывод сообщений об ошибках в альтернативный файл

    logger-fd n

    Описание

    Опция перенаправляет сообщения об ошибках в файл с дескриптором n вместо стандартного потока ошибок.

    merge-only

    merge-only -- не добавлять новые ключи при импорте

    merge-only

    Описание

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

    no-comment

    no-comment -- do not write comment packets

    no-comment

    Описание

    This option affects only the generation of secret keys Output of option (comment?) packets is disabled since version 0.4.2 of GnuPG.

    comment

    comment -- установить строку комментария для использования в текстовых подписях

    comment string

    Описание

    Все сказано.

    default-comment

    default-comment -- использовать стандартную строку комментария в текстовых подписях

    default-comment

    Описание

    Эта опция перекрывает ранее использованную опцию comment.

    no-version

    no-version -- опустить строку версии в текстовых подписях

    no-version

    Описание

    Все сказано.

    emit-version

    emit-version -- включать строку версии в текстовые подписи

    emit-version

    Описание

    Опция перекрывает ранее использованную опцию no-version.

    notation-data

    notation-data -- добавить к подписи примечание

    notation-data name=value

    Описание

    Опция добавляет к подписи пару name/value. Параметр name должен начинаться с алфавитного символа, последующие символы могут быть также цифрами и знаками подчеркивания. Параметр value может быть любой печатной строкой. Она будет перекодирована в UTF8, поэтому важно, чтобы опция charset устанавливала правильную кодировку. Если параметр name начинается восклицательным знаком, примечание будет помечено как критическое (см. rfc2440:5.2.3.15).

    set-policy-url

    set-policy-url -- set the policy URL for signatures

    set-policy-url string

    Описание

    The parameter string is used as the policy URL for signatures (см. rfc2440:5.2.3.19). If the string is prefixed with an exclamation mark, the policy URL packet will be flagged as critical.

    set-filename

    set-filename -- установить имя файла в зашифрованном или подписанном сообщении

    set-filename string

    Описание

    Параметр string используется как имя файла, сохраняемое в сообщении. Указывает ли это имя файла при расшифровке или проверке сообщения?

    use-embedded-filename

    use-embedded-filename -- использовать имя файла содержащееся в сообщении для сохранения его текстовой или проверенной версии

    use-embedded-filename

    Описание

    Эту опцию следует использовать с осторожностью, т.к. она может перезаписать существующие файлы.

    max-cert-depth

    max-cert-depth -- установить максимальную длину сертификационной цепочки

    max-cert-depth n

    Описание

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

    digest-algo

    digest-algo -- установить алгоритм дайджеста сообщения

    digest-algo name

    Описание

    Параметр name указывает алгоритм дайджеста сообщения, который будет использоваться. Запуск gpg с командой version выводит список поддерживаемых алгоритмов. Заметим, что эта опция может противоречить требованию OpenPGP об использовании 160-битного алгоритма дайджеста для DSA. Для симметричного шифрования по умолчанию используется RIPEMD-160

    s2k-cipher-algo

    s2k-cipher-algo -- использовать указанный алгоритм для симметричного шифрования секретных ключей

    s2k-cipher-algo name

    Описание

    Использовать name как алгоритм симметричного шифрования для защиты секретных ключей. Запуск gpg с командой version выводит список поддерживаемых алгоритмов. По умолчанию Blowfish.

    s2k-digest-algo

    s2k-digest-algo -- установить алгоритм дайджеста сообщения для манипуляций с ключевой фразой защищающей секретный ключ

    s2k-digest-algo name

    Описание

    Параметр name задает алгоритм дайджеста применяемый для манипуляций с ключевой фразой. По умолчанию RIPEMD-160.

    s2k-mode

    s2k-mode -- устанавливает метод обработки ключевой фразы

    s2k-mode n

    Описание

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

    disable-cipher-algo

    disable-cipher-algo -- предотвратить использование симметричного шифра

    disable-cipher-algo name

    Описание

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

    disable-pubkey-algo

    disable-pubkey-algo -- предотвратить использование шифра с открытым ключом

    disable-pubkey-algo name

    Описание

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

    throw-keyid

    throw-keyid -- не помещать идентификаторы ключа в зашифрованные пакеты

    throw-keyid

    Описание

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

    not-dash-escaped

    not-dash-escaped -- изменяет формат прозрачных подписей

    not-dash-escaped

    Описание

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

    escape-from-lines

    escape-from-lines -- изменяет сообщения начинающиеся с ``From'' при прозрачной подписи

    escape-from-lines

    Описание

    Так как некоторые почтовые программы заменяют ``From'' в начале строки на ``<From'', применяется эта опция для указания gpg обрабатывать такие строки отдельно при создании прозрачных подписей. Все другие версии PGP делают это таким же образом. Эта опция не включена по умолчанию, поскольку противоречит rfc2440.

    A. GNU Free Documentation License

    0. PREAMBLE

    1. APPLICABILITY AND DEFINITIONS

    2. VERBATIM COPYING

    3. COPYING IN QUANTITY

    4. MODIFICATIONS

    5. COMBINING DOCUMENTS

    6. COLLECTIONS OF DOCUMENTS

    7. AGGREGATION WITH INDEPENDENT WORKS

    8. TRANSLATION

    9. TERMINATION

    10. FUTURE REVISIONS OF THIS LICENSE

    How to use this License for your documents

    Version 1.1, March 2000

    Copyright (C) 2000 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

    0. PREAMBLE

    The purpose of this License is to make a manual, textbook, or other written document "free" in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others.

    This License is a kind of "copyleft", which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software.

    We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference.

    1. APPLICABILITY AND DEFINITIONS

    This License applies to any manual or other work that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. The "Document", below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as "you".

    A "Modified Version" of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language.

    A "Secondary Section" is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (For example, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them.

    The "Invariant Sections" are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License.

    The "Cover Texts" are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License.

    A "Transparent" copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, whose contents can be viewed and edited directly and straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup has been designed to thwart or discourage subsequent modification by readers is not Transparent. A copy that is not "Transparent" is called "Opaque".

    Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML designed for human modification. Opaque formats include PostScript, PDF, proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML produced by some word processors for output purposes only.

    The "Title Page" means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, "Title Page" means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text.

    2. VERBATIM COPYING

    You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3.

    You may also lend copies, under the same conditions stated above, and you may publicly display copies.

    3. COPYING IN QUANTITY

    If you publish printed copies of the Document numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects.

    If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages.

    If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a publicly-accessible computer-network location containing a complete Transparent copy of the Document, free of added material, which the general network-using public has access to download anonymously at no charge using public-standard network protocols. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public.

    It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document.

    4. MODIFICATIONS

    You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version:

    1. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission.
    2. List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has less than five).
    3. State on the Title page the name of the publisher of the Modified Version, as the publisher.
    4. Preserve all the copyright notices of the Document.
    5. Add an appropriate copyright notice for your modifications adjacent to the other copyright notices.
    6. Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below.
    7. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice.
    8. Include an unaltered copy of this License.
    9. Preserve the section entitled "History", and its title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section entitled "History" in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence.
    10. Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the "History" section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission.
    11. In any section entitled "Acknowledgements" or "Dedications", preserve the section's title, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein.
    12. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles.
    13. Delete any section entitled "Endorsements". Such a section may not be included in the Modified Version.
    14. Do not retitle any existing section as "Endorsements" or to conflict in title with any Invariant Section.

    If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles.

    You may add a section entitled "Endorsements", provided it contains nothing but endorsements of your Modified Version by various parties--for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard.

    You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one.

    The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version.

    5. COMBINING DOCUMENTS

    You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice.

    The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work.

    In the combination, you must combine any sections entitled "History" in the various original documents, forming one section entitled "History"; likewise combine any sections entitled "Acknowledgements", and any sections entitled "Dedications". You must delete all sections entitled "Endorsements."

    6. COLLECTIONS OF DOCUMENTS

    You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects.

    You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document.

    7. AGGREGATION WITH INDEPENDENT WORKS

    A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, does not as a whole count as a Modified Version of the Document, provided no compilation copyright is claimed for the compilation. Such a compilation is called an "aggregate", and this License does not apply to the other self-contained works thus compiled with the Document, on account of their being thus compiled, if they are not themselves derivative works of the Document.

    If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one quarter of the entire aggregate, the Document's Cover Texts may be placed on covers that surround only the Document within the aggregate. Otherwise they must appear on covers around the whole aggregate.

    8. TRANSLATION

    Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License provided that you also include the original English version of this License. In case of a disagreement between the translation and the original English version of this License, the original English version will prevail.

    9. TERMINATION

    You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this License. Any other attempt to copy, modify, sublicense or distribute the Document is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.

    10. FUTURE REVISIONS OF THIS LICENSE

    The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See http://www.gnu.org/copyleft/.

    Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License "or any later version" applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation.

    How to use this License for your documents

    To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page:

    Copyright (c) YEAR YOUR NAME. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. A copy of the license is included in the section entitled "GNU Free Documentation License".

    If you have no Invariant Sections, write "with no Invariant Sections" instead of saying which ones are invariant. If you have no Front-Cover Texts, write "no Front-Cover Texts" instead of "Front-Cover Texts being LIST"; likewise for Back-Cover Texts.

    If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software.

     

     

     

     

     

     

     

     

    Практическая часть

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

    Итак, пропишем gpg --help

    И мы видим список команд:

    Команды:

    -s, --sign [file]             создать подпись к файлу
    --clearsign [file]        создать прозрачную подпись к файлу
    -b, --detach-sign             создать отделенную подпись
    -e, --encrypt                 зашифровать данные
    -c, --symmetric               зашифровать только симметричным шифром
    -d, --decrypt                 расшифровать данные (по умолчанию)
    --verify                  проверить подпись
    --list-keys               вывести список ключей
    --list-sigs               вывести список ключей и подписей
    --check-sigs              вывести и проверить подписи ключей
    --fingerprint             вывести список ключей и их отпечатков
    -K, --list-secret-keys        вывести список секретных ключей
    --gen-key                 создать новую пару ключей
    --delete-keys             удалить ключи из таблицы открытых ключей
    --delete-secret-keys      удалить ключи из таблицы закрытых ключей
    --sign-key                подписать ключ
    --lsign-key               подписать ключ локально
    --edit-key                подписать или редактировать ключ
    --gen-revoke              создать сертификат отзыва
    --export                  экспортировать ключи
    --send-keys               экспортировать ключи на сервер ключей
    --recv-keys               импортировать ключи с сервера ключей
    --search-keys             искать ключи на сервере ключей
    --refresh-keys            обновить все ключи с сервера ключей
    --import                  импортировать/объединить ключи
    --card-status             показать состояние карты
    --card-edit               изменить данные на карте
    --change-pin              сменить PIN карты
    --update-trustdb          обновить таблицу доверий
    --print-md algo [files]   вывести хэши файлов

    Параметры:

    -a, --armor                   вывод в ASCII формате
    -r, --recipient NAME          зашифровать для получателя NAME
    -u, --local-user              использовать данный User ID для подписывания и ра
    сшифрования
    -z N                          установить уровень сжатия N (по умолчанию - 0)
    --textmode                использовать канонический текстовый режим
    -o, --output                  вывод в указанный файл
    -v, --verbose                 подробно
    -n, --dry-run                 не делать никаких изменений
    -i, --interactive             спросить перед перезаписью
    --openpgp                 строго следовать стандарту OpenPGP
    --pgp2                    создает сообщение совместимым с PGP 2.x

    (См. документацию для более полного ознакомления с командами и параметрами)

    Примеры:

    -se -r Bob [файл]          подписать и зашифровать для получателя Bob
    --clearsign [файл]         создать прозрачную подпись
    --detach-sign [файл]       создать отделенную подпись
    --list-keys [имена]        показать ключи
    --fingerprint [имена]      показать отпечатки

    О найденных ошибка сообщайте gnupg-bugs@gnu.org.

     

    итак, начнем…

    1) Установим GNU Privacy Guard.

    2) Создаем пару ключей (секретный и открытый). Для этого в консоли вводят команду 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 (только для подписи)
    Ваш выбор (?-подробнее)? ?
    Выберите алгоритм.

    DSA (aka DSS) - Digital Signature Algorithm может использоваться
    только для подписей.

    Elgamal - алгоритм используемый только для шифрования.

    RSA может использоваться и для подписи, и для шифрования.

    Первый (главный) ключ всегда должен быть подписывающим.
    Ваш выбор (?-подробнее)?
    Пара ключей DSA будет иметь длину 1024 бит.
    ключи ELG-E могут иметь длину от 1024 до 4096 бит.
    Какой размер ключа Вам необходим? (2048)
    Запрашиваемый размер ключа 2048 бит
    Выберите срок действия ключа.
    0 = без ограничения срока действительности
    <n>  = срок действительности n дней
    <n>w = срок действительности n недель
    <n>m = срок действительности n месяцев
    <n>y = срок действительности n лет
    Ключ действителен до? (0)
    Ключ не имеет ограничения срока действительности
    Все верно? (y/N) Y

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

    Ваше настоящее имя: dukeinvisible
    Email-адрес: dukeinvisible@live.ru
    Комментарий: testkey
    Вы выбрали следующий User ID:
    "dukeinvisible (testkey) <dukeinvisible@live.ru>"

    Сменить (N)Имя, (C)Комментарий, (E)email-адрес или (O)Принять/(Q)Выход? O
    Для защиты секретного ключа необходим пароль.

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

    gpg: проверка таблицы доверий
    gpg: 3 ограниченных необходимо, 1 выполненных необходимо, PGP модель доверия
    gpg: глубина: 0  корректных:   1  подписанных:   0  доверия: 0-, 0q, 0n, 0m, 0f,
    1u
    pub   1024D/BB8B51F6 2010-03-15
    Отпечаток ключа = 0498 6E05 1C1F 27FC 7E63  4B6B 4661 CAE1 BB8B 51F6
    uid                  dukeinvisible (testkey) <dukeinvisible@live.ru>
    sub   2048g/13C2CCCE 2010-03-15

    3) Можно и позднее при необходимости просмотреть hash всех известных ключей: c:pgp>gpg --fingerprint

    C:/Users/▐Ёшщ/AppData/Roaming/gnupgpubring.gpg
    -----------------------------------------------
    pub   1024D/BB8B51F6 2010-03-15
    Отпечаток ключа = 0498 6E05 1C1F 27FC 7E63  4B6B 4661 CAE1 BB8B 51F6
    uid                  dukeinvisible (testkey) <dukeinvisible@live.ru>
    sub   2048g/13C2CCCE 2010-03-15

    4) Рассмотрим варианты цифровой подписи в GnuPG.

    Сначала произведем шифрование без ЦП. Используем текстовый файл 11.txt, содержимое которого:

    Появление шифров

    Ряд систем шифрования дошел до нас из глубокой древности. Скорее всего они появились одновременно с письменностью в 4 тысячелетии до нашей эры. Методы секретной переписки были изобретены независимо во многих древних обществах, таких как Египет, Шумер и Китай, но детальное состояние криптологии в них неизвестно. Криптограммы выискиваются даже в древние времена, хотя из-за применяемого в древнем мире идеографического письма в виде стилизованных картинок были примитивны. Шумеры, по-видимому, пользовались тайнописью. Археологами найдены глиняные клинописные таблички, где первая запись замазывалась слоем глины, на котором делалась вторая запись. Происхождение таких странных таблиц могло быть вызвано и тайнописью, и утилизацией. Оттого что число знаков идеографического письма было более тысячи, то запоминание их представляло собой трудную задачу - тут не до шифрования.

     

    Применим команду:

    c:pgp>gpg -s c:g11.txt

    В результате выполнения команды будет создан файл 11.gpg, содержимле которого:

    ЈeTї‹$E^пБЃ


    ѓK^b63Ьy‚€Ѓ‰Ѓ(‚Ў`&№Ѓ‘€j&|к?`Ё‘Бq‡pЉzЮ‰‡‘ФФф»~УХх¦ЄzзfЦ^·эЄgv]4˜йккчг{ЯыЮыјёёwбТ»7>xрннѓЈЗѕЮїюцWЇNЮ?xееЗ‹»Ъ[З^˜6rФЈbфk_R”˜ёЩ]/=•єa‡т&’T4wнLk]PШzЌI¦DчjМЕИFћ+©Z"Ѓ8‰З¤ҐWёaп•"-q7њc:>!KПҐ.цkvњDЉ2!Х†D‡±в¤eG№њ<2У’


    #N-D4л~HҐ3|fЯ#П•±ҐQІJЌЧ№¬pсФЩЗdНjLЙФёЁMMЯПeЙiLґ[1]Љ­%™Е˜Ђ˜JNЖ{e@ hн3kTY&uЌмђ‰<KeЭл!‹y0MУ‘н2kNR


    Ґж!N[Lщ<рcЖD+M}®fR™bґ‚лћ«gи5а&%з


    ‡ІжX6


    »f°µшZЊР­nРKЯamBЇх)o9ѓ$±>3=TЯДR'рM;uЗ9ВРMРв5g9™ТН°вLЃi


    -[” ­тЯыЋ©Ж!вЊ’™9YЧ2¦yЙ№}ЦфT™ЏЖTВјD§(/ЏBjMґЃ.ШmM,.Ој§t7ЁД•>,5o[SШЦ;д} ѕыsпЛWџєьЧеЯ?|нгg>»уЮП'/^7п<Шывщ+Я¬цЯьaя“ЮєсЖэЏћькхЫOя


    Создание файла, содержимое которого не изменяется, а ЦП дописывается в конце в виде дополнительной строки.

    c:pgp>gpg -s --clearsign c:g11.txt

    Создается файл с расширением *.asc. Его содержимое:

    -----BEGIN PGP SIGNED MESSAGE-----

    Hash: SHA1

    Появление шифров

    Ряд систем шифрования дошел до нас из глубокой древности. Скорее всего они появились одновременно с письменностью в 4 тысячелетии до нашей эры. Методы секретной переписки были изобретены независимо во многих древних обществах, таких как Египет, Шумер и Китай, но детальное состояние криптологии в них неизвестно. Криптограммы выискиваются даже в древние времена, хотя из-за применяемого в древнем мире идеографического письма в виде стилизованных картинок были примитивны. Шумеры, по-видимому, пользовались тайнописью. Археологами найдены глиняные клинописные таблички, где первая запись замазывалась слоем глины, на котором делалась вторая запись. Происхождение таких странных таблиц могло быть вызвано и тайнописью, и утилизацией. Оттого что число знаков идеографического письма было более тысячи, то запоминание их представляло собой трудную задачу - тут не до шифрования.

    -----BEGIN PGP SIGNATURE-----

    Version: GnuPG v1.2.2 (MingW32)

    iD8DBQFIRARpbZ1+1rbDdPkRAjiCAJ9vgHTmBCnA++XyEuThte6bdGxl1ACggLbz

    9Bpe5jGCBBZkpKIMKOpBVzQ=

    =shGW

    -----END PGP SIGNATURE-----

    Создадим файл с обычной ЦП, но сжатый относительно исходного txt-файла. Кроме того, применяемое преобразование Radix-64 позволит представить любое содержимое создаваемого файла в виде букв. Такой файл имеет расширение *.asc. Команда

    c:pgp>gpg -sa c:g11.txt

    Содержимое файла:

    -----BEGIN PGP MESSAGE-----

    Version: GnuPG v1.2.2 (MingW32)

    owFlVD2PHEUQPe4woJUmsCySSyiJdHeFMTkJgSHjH1gEJEB2EiQgMjsBITnFARkJ

    KSmWLSwLIQ6DhAh7e6c8ddPTtd09t949zfmG17N7xwmC3enpqY9Xr17VN8Xezu7V

    T+598dePDw9OXvjhyt0PXrp+fXrw2cHNd1787lB769gL01qOg9piVIx+70uKEhM3

    20vjpadS1+zwT95Ekormrp1prUdUBrZeY5Ip0ZNaA3MxspHnSuqFFkggTuIpaenV

    Bm7Ye6VIC9wN55hOz8jSW0Spi/2KHSeRYoRMSLXmI6LnoUPsXzlp2RFFrgMnj8y0

    4MCIUwsRzTqXH1LpDJ/Zd8XIc2WsRGmUrFLjdS7LDVw8dXbCMVmzHFMyNS5qU9PP

    c1lwGtPfbcOBgOIXSeZoTEBMJSfjTr0yIAC09pk1qoMskjqERnYLyIhEnqWyiO51

    ihCDxTyYpunIdhmuNWcpglLzlAenDaZ8HvgxY6Klpj5XM6lMMVoEwXXPjYLVCwf0

    hxoJcJOSc4JjWXGsB5uBXTPYWnwtRuiPAzfope+AsDYhidf6nLecQZJYn5kequ8A

    YqETeIO/ph0DhbrTHGHoJmjxmrOcTel+WHKmwDSClh2VIB/yEN/7jqnGIRviXIyS

    jAIavEHbnYEJvYyVnhAFU1mIK6M+Rpb0X5mCi0vLgAJXtVK7CHmp5FZP6cGF4iND

    p/BGLOOOgTvlsUFT35w0lxfIZlPl9YHtsW3LZisRtlZ+u/EGbdsJlI8bDDt6gIvV

    RuARWjFZtVTZth4IgagwsJ4HLeLDuQHmJ+YNgGH/E6hPBgVuBYESmtZJ5gNJz5nY

    ro1BQdntztt7V3byPj7f01d3H5ude6/tXXv5809f/fruo9vv7b/y1eu7H+3f2vm2

    uPnwzvvP/bUv353d/vDjw+/3f7r16B8=

    =cAvw

    -----END PGP MESSAGE-----

    Создадим отдельный файл с ЦП.

    c:pgp>gpg -b c:g11.txt

    Будет создан файл 11.sig. Его содержимое –отдельная ЦП:

    €?


    HD8mќ~Ц¶Гtщ[1]-  •д<•я~V2–ЩТ«ЌЕ'·ЗсС{ џћ!;ж­сДЧ|/wc+–чяЭ

    5) Можно подсчитать hash передаваемого сообщения

    c:pgp>gpg --print-md sha1 c:g11.txt

    c:g11.txt: 4F7D 16A8 2062 F7F2 4A51 7AD5 F41F 8EA8 3DB4 CB06

    6) Зашифровка файла для пользователя

    c:pgp>gpg -r dukeinvisible -f c:g11.txt

    Расшифровка файла для пользователя и перенаправление в файл:

    c:pgp>gpg -r dukeinvisible -d c:g11.gpg > c:g111.gpg

    В полученном файле будет содержаться открытый текст сообщения

    7) Просмотрим все существующие секретные ключи

    c:pgp>gpg --list-secret-keys

    C:/GnuPGsecring.gpg

    --------------------

    sec 1024D/B6C374F9 2008-06-02 dukeinvisible (imaginary) dukeinvisible@live.ru

    ssb 1024g/4468FD32 2008-06-02

     

    8) Необходимо обменяться открытыми ключами с другими пользователями. Для этого сохраним (экспортируем) открытый ключ в файл .gpg и передадим по сети.

    c:pgp>gpg --export dukeinvisible >C:gKeyN.gpg

    Содержимое файла KeyN.gpg

    ™ў


    HCюф


    У°8~©—Ў(Ч&іЛjКUWМЩЙ.ЩP№Ёџ'3`єsћ<}3щDкЎ07$5 yaы„µ8h Њ


    ·cћi8ИЗ.HлЅ®ѕ±Ѕ7wdЧФ


    ‘ЉяGЮc4>‚ "ё}ЊVџ].iЌ5ьЅ}{џЯ?FбL=aХ!"ЙW˜Сd·ч


    ҐЗE°®C^ц†!TЁБr˜•


    ю8џеXЂ


    I&ІPд‹—˜Ф}Ѓ+ј}(‰г


    “?4ЊгхЩЬ` 0’о9±п:NУOєиў+PБ©И µЬїf яgЁВІвr!hEПЬ¶цЅ*


    RБюcіђ–Пщ¬Q»d‑а2ґЩ€ 9НЌZФіГSВ‹2ёЕ‰`е№:


    њ~›маЧКЯоiTeјK…C


    g(а–;$oЙSЉэжјoв.]ѕ@X8Ч‘b_ёО¬”д 'ЈФ’ҐБIџ#:[1]Гcoя‡"џeг<є]ч«F¦<“вЫ;bwpЛ±ыІa —€&КЛ"Б±}Џ~оJZџ*ЕtJ‚SZ …ґ,Natalka (imaginary) <firefox2006@bigmir.net>€[


    [1] [1]HCюф


    [1]


    [1]



    [1][1]‑[1]Ђ mќ~Ц¶ГtщДd ћ"?*шa—{ѓJяЭ'k_Ѕtl џPТЂидMэИg%f¤еЌ±E#№


    HCюх


    ПЖФбПвRфB4ШГkј!јn}uЙ5„ЏNЁј!™Y~КA–ЉчkHЖа"Бм;ї$На№нDґ~"ЫOЮe›_н.­бґ;я–=6»2(Фэч©а­‡eхжСёl¶QuH+€—ЋOn*aRtіЛ&‑‰6яхoю5Zќaї#



    ю!ЦO8[1]>Т?рзЦыµЙ“#Юоо$smЧ 8!TEC*IЙ¤<*Е†¶WОылhРrIT&Б­!=b+@¤?ЪЩ$р©Ж¶јQэV…§3ТVЛ˜>ICЋ[щiв#7®ді8тJ‹ОS}лmьа'Є0иu’,QеK·Ца€F


    [1] [1]HCюх mќ~Ц¶Гtщ•Р Ј^Вы™Лщч<3±Ё‰{<Ы" ™К3ДхюBТЧ$-·!фвн

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

    c:pgp>gpg --import C:gDoker

    key A9A36E06: public key "Doker(white) <anna051@mail.ru>" imported

    Total number processed: 1

    imported: 1

    Ключ добавлен в общий список открытых ключей

    c:pgp>gpg --list-keys

    C:/GnuPGpubring.gpg

    ----------------

    1024D/B6C374F9 2008-06-02 dukeinvisible(imaginary) dukeinvisible@live.ru

    1024g/1DC1D965 2008-06-02

    1024D/A9A36E06 2008-06-02 Doker(white) <anna051@mail.ru>

    1024g/A76FB94D 2008-06-02

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

    Осуществим подписывание и шифрование для пользователя Anna:

    c:pgp>gpg -se -r Anna c:g11.txt

    Для расшифровки пользователь должен применить команду

    c:pgp>gpg -d c:g11.gpg > c:gfile.txt

     

    …ну вот и все!

     

     

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

Подписаться на новости