Теоретическое руководство




Для работ, связанных с центром сертификации X.509, используется следующая команда:

$ openssl ca <параметры>

В качестве параметров используются следующие ключи (дефисы перед ключами обязательны):

• - config <имя_файла> — указывает на файл с настройками центра сертификации (описание файла дано ниже; также на этот файл указывает содержимое переменной окружения OPENSSL_CONF);

• - name <имя_секции> — указывает на секцию файла настроек, которую нужно использовать, иначе используется секция [ ca ] или секция, указанная в параметре default_ca в секции [ ca ];

• - in <имя_файла> — указывает на входной файл, содержащий запрос на подпись;

• - ss_cert <имя_файла> — указывает на входной файл, содержащий самоподписанный сертификат, требующий подписи центра сертификации;

• - out <имя_файла> — указывает выходной файл, в котором будет храниться сертификат;

• - outdir <имя_каталога> — указывает выходной каталог, в котором сертификат будет размещѐн под именем <серийный_номер>.pem;

• - cert <имя_файла> — указывает на сертификат центра сертификации;

• - keyfile <имя_файла> — указывает на зарытый ключ центра сертификации;

• - key <пароль> — парольная фраза, которой защищѐн ключ;

• - selfsign — указывает на то, что сертификат должен быть подписан тем же ключом, что и запрос на сертификацию

• - passin <источник_пароля> — указывает на источник парольной фразы (более безопасный метод, чем параметр -key);

• - verbose — повышенный уровень детализации выполняемых операций;

• - notext — не выводить сертификат в текстовой форме в выходной файл;

• - startdate — установить дату начала действия сертификата (в формате ГГММДДЧЧММСС);

• - enddate — установить дату окончания действия сертификата (в формате ГГММДДЧЧММСС);

• -days <значение> — срок действия сертификата в днях;

• -md <хэш_функция> — используемая для создания подписи хэш-функция;

• -gencrl — генерация CRL на основе информации в индексном файле;

• -crldays <количество> — число дней до выхода следующей версии CRL;

• -crlhours <количество> — число часов до выхода следующей версии CRL;

• -revoke <имя_файла> — отозвать сертификат, хранящийся в указанном файле.

Для валидации сертификатов X.509 используется следующая команда:

$ openssl verify <параметры>

В качестве параметров используются следующие ключи (дефисы перед ключами обязательны):

- CApath <имя_каталога> — каталог с доверенными сертификатами (сертификаты должны иметь имена вида <hash>.0 или иметь символичесткие ссылки такого вида, где <hash> - хэшированное имя субъекта сертификации);

• - CAfile <имя_файла> — файл с доверенными сертификатами (может содержать несколько сертификатов);

• - untrusted <имя_файла> — файл с недоверенными сертификатами (может содержать несколько сертификатов);

• - verbose — повысить уровень подробности вывода диагностических сообщений;

• - crl_check — выполнить проверку конечного сертификата по CRL (ссылка на CRL берется из сертификата или передается с помощью ключа -CRLfile);

• - crl_check_all — выполнить проверку всей цепочки сертификатов по CRL (ссылка на CRL берется из сертификата или передается с помощью ключа -CRLfile);

• <имя_файла> — сертификат или сертификаты, которые надо валидировать (должны указываться последними).

Примеры:

• Проверить сертификат на подлинность:

$ openssl verify -CAfile cacert.pem cert.pem

• Проверить сертификат на подлинность и через список отзыва:

$ openssl verify -CAfile cacert.pem -CRLfile crl.pem cert.pem

 

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

Для реализации электронной цифровой подписи используется утилита Open SSl.

1. Формирование самоподписного сертификата

Openssl> req -new -x509 -days 365 -nodes -out cert.pem -keyout cert.key

Здесь:

- cert.pem — сертификат, содержащий открытый ключ и информацию о том, кому выдан;

- cert.key — закрытый ключ, предназначенный для создания подписей или расшифровки.

 

 

2. Далее необходимо ответить на вопросы:

 

 

3. Проверим наличие в папке lab созданного сертификата cert.pem, и закрытого ключа cert.key

 

4. Выполним проверку сертификата:

openssl > verify c:\lab\cert.pem

 

5. Для вывода подробной информации о сертификате поступим так

openssl >x509 -in c:\lab\cert.pem -noout –text

 

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

6. Генерация сертификата:

Openssl> req -new -x509 -days 10 -nodes -out c:\lab\cert.pem -keyout c:\lab\cert.key

 

 

7. Создание электронной подписи файла. Сначала создаем секретный ключ

Openssl> dgst -sha1 -sign c:\lab\cert.key -out c:\lab\sign.cr c:\lab\dok.txt

 

Здесь:

- sign cert.key - указываем закрытый ключ,

- filename - подписываемый файл,

- out sign.cr - указываем файл, в который сохранится подпись,

- sha1 - метод хэширования содержимого файла.

Подписать можно лишь очень ограниченный объём информации, поэтому, как правило хэш-сумму файла. То есть сначала создаётся SHA1-хэш файла.

 

 

В результате создаётся файл подписи длинной sign.cr 120 байт.

 

 

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

Openssl> x509 -pubkey -noout -in c:\lab\cert.pem > c:\lab\pubkey.pem

 

 

При использовании вместо публичного ключа сертификата мы получим сообщение unable to load key file, так что преобразование - операция обязательная.

9. Затем, с помощью этого ключа, произведём проверку подписи:

Openssl> rsautl -verify -certin -inkey cert.pem -out filename.hash -in sign.cr

 

 

 

Если подпись верна, то получим:

Verified O

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-04-03 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: