ื“ืขืจืคืึทืจื•ื ื’ ืื™ืŸ ื ื™ืฆืŸ Rutoken ื˜ืขื›ื ืึธืœืึธื’ื™ืข ืคึฟืึทืจ ืจืขื“ื–ืฉื™ืกื˜ืขืจื™ื ื’ ืื•ืŸ ืึธื˜ืขืจื™ื™ื–ื™ื ื’ ื ื™ืฆืขืจืก ืื™ืŸ ื“ื™ ืกื™ืกื˜ืขื (ื˜ื™ื™ืœ 3)

ื’ื•ื˜ ื˜ืึธื’!

ืื™ืŸ ื“ื™ ืคืจื™ืขืจื“ื™ืงืข ื˜ื™ื™ืœ ืžื™ืจ ื”ืึธื‘ืŸ ื”ืฆืœื—ื” ื‘ืืฉืืคืŸ ืื•ื ื“ื–ืขืจ ืื™ื™ื’ืขื ืข ืกืขืจื˜ืึทืคืึทืงื™ื™ืฉืึทืŸ ืฆืขื ื˜ืขืจ. ื•ื•ื™ ืงืขืŸ ืขืก ื–ื™ื™ืŸ ื ื•ืฆื™ืง ืคึฟืึทืจ ืื•ื ื“ื–ืขืจ ืฆื•ื•ืขืงืŸ?

ืžื™ื˜ ืึท ื”ื™ื’ืข ืกืขืจื˜ืึทืคืึทืงื™ื™ืฉืึทืŸ ืื•ื™ื˜ืึธืจื™ื˜ืขื˜, ืžื™ืจ ืงืขื ืขืŸ ืึทืจื•ื™ืกื’ืขื‘ืŸ ืกืขืจื˜ื™ืคื™ืงืึทืฅ ืื•ืŸ ืื•ื™ืš ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ืกื™ื’ื ืึทื˜ืฉืขืจื– ืื•ื™ืฃ ื“ื™ ืกืขืจื˜ื™ืคื™ืงืึทืฅ.

ื•ื•ืขืŸ ืื™ืจ ืึทืจื•ื™ืกื’ืขื‘ืŸ ืึท ื‘ืึทื•ื•ื™ื™ึทื–ืŸ ืฆื• ืึท ื‘ืึทื ื™ืฆืขืจ, ื“ื™ ืกืขืจื˜ืึทืคืึทืงื™ื™ืฉืึทืŸ ืื•ื™ื˜ืึธืจื™ื˜ืขื˜ ื ื™ืฆื˜ ืึท ืกืคึผืขืฆื™ืขืœ ื‘ืึทื•ื•ื™ื™ึทื–ืŸ ื‘ืขื˜ืŸ Pkcs #10, ื•ื•ืึธืก ื”ืื˜ ื“ื™ '.csr' ื˜ืขืงืข ืคึฟืึธืจืžืึทื˜. ื“ื™ ื‘ืขื˜ืŸ ื›ึผื•ืœืœ ืึท ืงืึธื“ืขื“ ืกื™ืงื•ื•ืึทื ืก ืึทื– ื“ื™ ืกืขืจื˜ืึทืคืึทืงื™ื™ืฉืึทืŸ ืื•ื™ื˜ืึธืจื™ื˜ืขื˜ ื•ื•ื™ื™ืกื˜ ื•ื•ื™ ืฆื• ืคึผืึทืจืก ืจื™ื›ื˜ื™ืง. ื“ื™ ื‘ืงืฉื” ื›ึผื•ืœืœ ื‘ื™ื™ื“ืข ื“ื™ ื‘ืึทื ื™ืฆืขืจ 'ืก ืฆื™ื‘ื•ืจ ืฉืœื™ืกืœ ืื•ืŸ ื“ืึทื˜ืŸ ืคึฟืึทืจ ืงืจื™ื™ื™ื˜ื™ื ื’ ืึท ื‘ืึทื•ื•ื™ื™ึทื–ืŸ (ืึท ืึทืกืกืึธืกื™ืึทื˜ื™ื•ื•ืข ืžืขื ื’ืข ืžื™ื˜ ื“ืึทื˜ืŸ ื•ื•ืขื’ืŸ ื“ืขื ื‘ืึทื ื™ืฆืขืจ).

ืžื™ืจ ื•ื•ืขืœืŸ ืงื•ืงืŸ ื•ื•ื™ ืฆื• ื‘ืึทืงื•ืžืขืŸ ืึท ื‘ืงืฉื” ืคึฟืึทืจ ืึท ื‘ืึทื•ื•ื™ื™ึทื–ืŸ ืื™ืŸ ื“ืขืจ ื•ื•ื™ื™ึทื˜ืขืจ ืึทืจื˜ื™ืงืœ, ืื•ืŸ ืื™ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ ืื™ืš ื•ื•ื™ืœืŸ ืฆื• ื’ืขื‘ืŸ ื“ื™ ื”ื•ื™ืคึผื˜ ืงืึทืžืึทื ื“ื– ืคื•ืŸ ื“ื™ ืกืขืจื˜ืึทืคืึทืงื™ื™ืฉืึทืŸ ืื•ื™ื˜ืึธืจื™ื˜ืขื˜ ื•ื•ืึธืก ื•ื•ืขื˜ ื”ืขืœืคึฟืŸ ืื•ื ื“ื– ืฆื• ืคืึทืจืขื ื“ื™ืงืŸ ืื•ื ื“ื–ืขืจ ืึทืจื‘ืขื˜ ืื•ื™ืฃ ื“ื™ ื‘ืึทืงืขื ื“ ื–ื™ื™ึทื˜.

ืึทื–ื•ื™ ืขืจืฉื˜ืขืจ ืžื™ืจ ื”ืึธื‘ืŸ ืฆื• ืฉืึทืคึฟืŸ ืึท ื‘ืึทื•ื•ื™ื™ึทื–ืŸ. ืฆื• ื˜ืึธืŸ ื“ืึธืก, ืžื™ืจ ื ื•ืฆืŸ ื“ืขื ื‘ืึทืคึฟืขืœ:

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

ca ืื™ื– ื“ื™ openSSL ื‘ืึทืคึฟืขืœ ื•ื•ืึธืก ืฉื™ื™ืš ืฆื• ื“ื™ ืกืขืจื˜ืึทืคืึทืงื™ื™ืฉืึทืŸ ืื•ื™ื˜ืึธืจื™ื˜ืขื˜,
- ืคึผืขืงืœ - ืงืึทื ืกืึทืœื– ื‘ืึทืฉื˜ืขื˜ื™ืงื•ื ื’ ืจื™ืงื•ื•ืขืก ื•ื•ืขืŸ ื“ื–ืฉืขื ืขืจื™ื™ื˜ื™ื ื’ ืึท ื‘ืึทื•ื•ื™ื™ึทื–ืŸ.
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 ื˜ืขืงืข)

-ืื•ื™ืก ื“ืึทื˜ืึท.ืคื™ืœืข - ืื™ืš ืฉื™ืงืŸ ื“ื™ ื“ืขืงืจื™ืคึผื˜ื™ื“ ื“ืึทื˜ืŸ ืฆื• ื“ืขืจ ื˜ืขืงืข ื“ืึทื˜ืึท.ืคื™ืœืข.

ื“ืขืจ ืึทืœื’ืขืจื™ื“ืึทื ืคึฟืึทืจ ื ื™ืฆืŸ ืึท ืกืขืจื˜ืึทืคืึทืงื™ื™ืฉืึทืŸ ืื•ื™ื˜ืึธืจื™ื˜ืขื˜ ืื•ื™ืฃ ื“ื™ ื‘ืึทืงืขื ื“ ื–ื™ื™ึทื˜ ืื™ื– ื•ื•ื™ ื’ื™ื™ื˜:

  • ื‘ืึทื ื™ืฆืขืจ ืจืขื’ื™ืกื˜ืจืึทืฆื™ืข:
    1. ืžื™ืจ ื‘ืึทืงื•ืžืขืŸ ืึท ื‘ืงืฉื” ืฆื• ืฉืึทืคึฟืŸ ืึท ื‘ืึทื•ื•ื™ื™ึทื–ืŸ ืื•ืŸ ืจืึทื˜ืขื•ื•ืขืŸ ืขืก ืื™ืŸ ื“ื™ user.csr ื˜ืขืงืข.
    2. ืžื™ืจ ืจืึทื˜ืขื•ื•ืขืŸ ื“ื™ ืขืจืฉื˜ืขืจ ื‘ืึทืคึฟืขืœ ืคื•ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ ืฆื• ืึท ื˜ืขืงืข ืžื™ื˜ ื“ื™ ืคืึทืจืœืขื ื’ืขืจื•ื ื’ .ื‘ืึทื˜ ืึธื“ืขืจ .ืงืžื“. ืžื™ืจ ืœื•ื™ืคืŸ ื“ืขื ื˜ืขืงืข ืคึฟื•ืŸ ืงืึธื“, ื•ื•ื™ื™ืœ ืคืจื™ืขืจ ื’ืขืจืื˜ืขื•ื•ืขื˜ ื“ื™ ื‘ืขื˜ืŸ ืฆื• ืฉืึทืคึฟืŸ ืึท ื‘ืึทื•ื•ื™ื™ึทื–ืŸ ืฆื• ื“ื™ user.csr ื˜ืขืงืข. ืžื™ืจ ื‘ืึทืงื•ืžืขืŸ ืึท ื˜ืขืงืข ืžื™ื˜ ื“ื™ user.crt ื‘ืึทื•ื•ื™ื™ึทื–ืŸ.
    3. ืžื™ืจ ืœื™ื™ืขื ืขืŸ ื“ื™ user.crt ื˜ืขืงืข ืื•ืŸ ืฉื™ืงืŸ ืขืก ืฆื• ื“ืขื ืงืœื™ืขื ื˜.

  • ื‘ืึทื ื™ืฆืขืจ ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ:
    1. ืžื™ืจ ื‘ืึทืงื•ืžืขืŸ ื’ืขื—ืชืžืขื˜ ื“ืึทื˜ืŸ ืคื•ืŸ ื“ืขื ืงืœื™ืขื ื˜ ืื•ืŸ ืจืึทื˜ืขื•ื•ืขืŸ ืขืก ืฆื• ื“ื™ authenticate.cms ื˜ืขืงืข.
    2. ื”ื™ื˜ ื“ื™ ืฆื•ื•ื™ื™ื˜ืข ื‘ืึทืคึฟืขืœ ืคื•ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ ืฆื• ืึท ื˜ืขืงืข ืžื™ื˜ ื“ื™ ืคืึทืจืœืขื ื’ืขืจื•ื ื’ .ื‘ืึทื˜ ืึธื“ืขืจ .ืงืžื“. ืžื™ืจ ืœื•ื™ืคืŸ ื“ืขื ื˜ืขืงืข ืคึฟื•ืŸ ื“ื™ ืงืึธื“, ื•ื•ื™ื™ืœ ืคืจื™ืขืจ ื’ืขืจืื˜ืขื•ื•ืขื˜ ื“ื™ ื’ืขื—ืชืžืขื˜ ื“ืึทื˜ืŸ ืคื•ืŸ ื“ื™ ืกืขืจื•ื•ืขืจ ืื™ืŸ authenticate.cms. ืžื™ืจ ื‘ืึทืงื•ืžืขืŸ ืึท ื˜ืขืงืข ืžื™ื˜ ื“ืขืงืจื™ืคึผื˜ืขื“ ื“ืึทื˜ืŸ data.file.
    3. ืžื™ืจ ืœื™ื™ืขื ืขืŸ data.file ืื•ืŸ ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื“ื™ ื“ืึทื˜ืŸ ืคึฟืึทืจ ื’ื™ืœื˜ื™ืงื™ื™ึทื˜. ื•ื•ืึธืก ืคึผื•ื ืงื˜ ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ ืื™ื– ื“ื™ืกืงืจื™ื™ื‘ื“ ืื™ืŸ ื“ืขืจ ืขืจืฉื˜ืขืจ ืึทืจื˜ื™ืงืœ. ืื•ื™ื‘ ื“ื™ ื“ืึทื˜ืŸ ื–ืขื ืขืŸ ื’ื™ืœื˜ื™ืง, ื“ืขืจ ื‘ืึทื ื™ืฆืขืจ ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ ืื™ื– ื’ืขืจืขื›ื ื˜ ื•ื•ื™ ื’ืขืจืึธื˜ืŸ.

ืฆื• ื™ื ืกื˜ืจื•ืžืขื ื˜ ื“ื™ ืึทืœื’ืขืจื™ื“ืึทืžื–, ืื™ืจ ืงืขื ืขืŸ ื ื•ืฆืŸ ืงื™ื™ืŸ ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืฉืคึผืจืึทืš ื•ื•ืึธืก ืื™ื– ื’ืขื ื™ืฆื˜ ืฆื• ืฉืจื™ื™ึทื‘ืŸ ื“ื™ ื‘ืึทืงืขื ื“.

ืื™ืŸ ื“ืขืจ ื•ื•ื™ื™ึทื˜ืขืจ ืึทืจื˜ื™ืงืœ ืžื™ืจ ื•ื•ืขืœืŸ ืงื•ืงืŸ ืื™ืŸ ื•ื•ื™ ืฆื• ืึทืจื‘ืขื˜ืŸ ืžื™ื˜ ื“ื™ ืจืขื˜ืึธืงืขืŸ ืคึผืœื•ื’ื™ืŸ.

ื’ื•ื˜ ื’ืœื™ืง!

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’