Karanasan sa paggamit ng teknolohiya ng Rutoken para sa pagpaparehistro at pagpapahintulot sa mga user sa system (bahagi 3)

Magandang araw!

Sa nakaraang bahagi Matagumpay kaming nakagawa ng sarili naming certification center. Paano ito magiging kapaki-pakinabang para sa ating mga layunin?

Gamit ang isang lokal na awtoridad sa certification, maaari kaming mag-isyu ng mga certificate at mag-verify din ng mga lagda sa mga certificate na ito.

Kapag nag-isyu ng certificate sa isang user, gumagamit ang awtoridad ng certification ng espesyal na kahilingan sa certificate na Pkcs#10, na mayroong '.csr' na format ng file. Naglalaman ang kahilingang ito ng naka-encode na pagkakasunud-sunod na alam ng awtoridad sa sertipikasyon kung paano i-parse nang tama. Ang kahilingan ay naglalaman ng parehong pampublikong key at data ng user para sa paggawa ng isang certificate (isang nag-uugnay na array na may data tungkol sa user).

Titingnan natin kung paano makatanggap ng isang kahilingan para sa isang sertipiko sa susunod na artikulo, at sa artikulong ito nais kong ibigay ang mga pangunahing utos ng awtoridad ng sertipikasyon na makakatulong sa amin na makumpleto ang aming gawain sa backend na bahagi.

Kaya kailangan muna nating lumikha ng isang sertipiko. Upang gawin ito ginagamit namin ang utos:

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

ca ay ang openSSL na utos na nauugnay sa awtoridad sa sertipikasyon,
-batch - kinakansela ang mga kahilingan sa pagkumpirma kapag bumubuo ng isang sertipiko.
user.csr β€” humiling na gumawa ng certificate (file sa .csr na format).
user.crt - sertipiko (resulta ng utos).

Upang gumana ang utos na ito, ang awtoridad sa sertipikasyon ay dapat na i-configure nang eksakto tulad ng inilarawan sa naunang bahagi ng artikulo. Kung hindi, kakailanganin mong tukuyin ang lokasyon ng root certificate ng awtoridad sa sertipikasyon.

Utos sa pag-verify ng sertipiko:

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

Ang cms ay isang openSSL command na ginagamit para sa pag-sign, pag-verify, pag-encrypt ng data at iba pang mga cryptographic na operasyon gamit ang openSSL.

-verify - sa kasong ito, bini-verify namin ang certificate.

authenticate.cms - isang file na naglalaman ng data na nilagdaan ng certificate na ibinigay ng nakaraang command.

-inform PEM - Ginagamit ang format ng PEM.

-CAfile /Users/……/demoCA/ca.crt - landas patungo sa root certificate. (kung wala ito ang utos ay hindi gumana para sa akin, kahit na ang mga landas sa ca.crt ay nakasulat sa openssl.cfg file)

-out data.file β€” Ipinapadala ko ang na-decrypt na data sa file data.file.

Ang algorithm para sa paggamit ng awtoridad sa sertipikasyon sa gilid ng backend ay ang mga sumusunod:

  • Pagpaparehistro ng user:
    1. Nakatanggap kami ng kahilingang gumawa ng certificate at i-save ito sa user.csr file.
    2. Ise-save namin ang unang command ng artikulong ito sa isang file na may extension na .bat o .cmd. Pinapatakbo namin ang file na ito mula sa code, na dati nang nai-save ang kahilingang gumawa ng certificate sa user.csr file. Nakatanggap kami ng file na may certificate ng user.crt.
    3. Binabasa namin ang user.crt file at ipinadala ito sa kliyente.

  • Pahintulot ng user:
    1. Nakatanggap kami ng nilagdaang data mula sa kliyente at i-save ito sa authenticate.cms file.
    2. I-save ang pangalawang command ng artikulong ito sa isang file na may extension na .bat o .cmd. Pinapatakbo namin ang file na ito mula sa code, na dati nang na-save ang nilagdaang data mula sa server sa authenticate.cms. Nakatanggap kami ng file na may naka-decrypt na data data.file.
    3. Binabasa namin ang data.file at sinusuri ang data na ito para sa bisa. Inilarawan kung ano ang eksaktong susuriin sa unang artikulo. Kung wasto ang data, ituturing na matagumpay ang awtorisasyon ng user.

Upang ipatupad ang mga algorithm na ito, maaari mong gamitin ang anumang programming language na ginagamit upang isulat ang backend.

Sa susunod na artikulo titingnan natin kung paano gumana sa Retoken plugin.

Salamat sa iyo!

Pinagmulan: www.habr.com

Magdagdag ng komento