Опитът в прилагането на технологията Рутокен за регистрация и авторизация на потребители в системата (част 3)

Добър ден!

В предишната част Успешно създадохме свой удостоверяващ център. Каква полза може да ни донесе той?

С помощта на локалния удостоверяващ център можем да издадем сертификати, а също така и да извървим проверка на подписите по тези сертификати.

При издаването на сертификат на потребителя, удостоверяващият център използва специална заявка за издаване на сертификат Pkcs#10, която има формат на файл ‘.csr’. Тази заявка съдържа кодирана последователност, която удостоверяващият център знае как да обработи. Заявката съдържа както публичния ключ на потребителя, така и данни за създаване на сертификата (асоциативен масив с данни за потребителя).

Как да получим заявка за издаване на сертификат, ще разгледаме в следващата статия, а в тази искам да представя основните команди на удостоверяващия център, които ще ни помогнат да извършим нашата задача на бекенда.

И така, първо трябва да създадем сертификат. За целта използваме командата:

openssl ca -batch -in user.csr -out user.crt

ca — команда на openSSL, която се отнася до удостоверяващия център,
-batch — отменя исканията за потвърждение при формироването на сертификата.
user.csr — заявка за създаване на сертификат (файл с формат .csr).
user.crt — сертификат (резултат от командата).

За да заработи тази команда, удостоверяващият център трябва да бъде настроен точно така, както е описано в предишната част на статията. В противен случай ще трябва допълнително да посочите местоположението на корения сертификат на удостоверяващия център.

Команда за проверка на сертификата:

openssl cms -verify -in authenticate.cms -inform PEM -CAfile /Users/……/demoCA/ca.crt -out data.file

cms — команда на openSSL, която се използва за подписване, проверка, криптиране на данни и други криптографски операции с openSSL.

-verify — в този случай извършваме проверка на сертификата.

authenticate.cms — файл, съдържащ подписани данни с сертификат, издаден от предната команда.

-inform PEM — използва формат PEM.

-CAfile /Users/……/demoCA/ca.crt — път до коренния сертификат. (без това, командата не сработи, въпреки че пътищата до ca.crt са записани в openssl.cfg)

-out data.file — разшифрованите данни изпращам в файл data.file.

Алгоритъмът на работа на удостоверяващия център на бекенда е следният:

  • Регистрация на потребителя:
    1. Получаваме заявка за създаване на сертификат и я запазваме в файл user.csr.
    2. Запазваме първата команда от тази статия в файл с разширение .bat или .cmd. Стартираме този файл от кода, след предварителното запазване на заявката за създаване на сертификат във файл user.csr. Получаваме файл с сертификат user.crt.
    3. Четем файла user.crt и го изпращаме на клиента.

  • Авторизация на потребителя:
    1. Получаваме подписаните данни от клиента и ги запазваме във файл authenticate.cms.
    2. Запазваме втората команда от тази статия в файл с разширение .bat или .cmd. Стартираме този файл от кода, след предварителното запазване на подписаните данни от сървъра в authenticate.cms. Получаваме файл с разшифровани данни data.file.
    3. Четем data.file и проверяваме тези данни за валидност. Какво точно да проверим е описано в първата статия. Ако данните са валидни, авторизацията на потребителя се счита за успешна.

За реализиране на тези алгоритми може да се използва всеки програмен език, който се използва за написване на бекенда.

В следващата статия ще се запознаем с начина на работа с плъгина Ретокен.

Благодаря за вниманието!

Източник: habr.com

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster