PKCS#11 (Cryptoki) Π΅ ΡΡΠ°Π½Π΄Π°ΡΡ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½ ΠΎΡ RSA Laboratories Π·Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ Ρ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΡΠΊΠΈ ΡΠΎΠΊΠ΅Π½ΠΈ, ΡΠΌΠ°ΡΡ ΠΊΠ°ΡΡΠΈ ΠΈ Π΄ΡΡΠ³ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠΈ ΡΠ½ΠΈΡΠΈΡΠΈΡΠ°Π½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ° ΡΡΠ΅Π· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ.
Π‘ΡΠ°Π½Π΄Π°ΡΡΡΡ PKCS#11 Π·Π° ΡΡΡΠΊΠ° ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡ ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΎΡ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΊΠΎΠΌΠΈΡΠ΅Ρ ΠΏΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·Π°ΡΠΈΡ "ΠΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΡΠΊΠ° Π·Π°ΡΠΈΡΠ° Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡΡΠ°" (
ΠΠΊΠΎ Π³ΠΎΠ²ΠΎΡΠΈΠΌ Π·Π° ΡΠΎΠΊΠ΅Π½ΠΈ Ρ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΡΡΠΊΠ° ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡ, ΡΠΎΠ³Π°Π²Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π³ΠΎΠ²ΠΎΡΠΈΠΌ Π·Π° ΡΠΎΡΡΡΠ΅ΡΠ½ΠΈ ΡΠΎΠΊΠ΅Π½ΠΈ, ΡΠΎΡΡΡΠ΅ΡΠ½ΠΈ ΠΈ Ρ
Π°ΡΠ΄ΡΠ΅ΡΠ½ΠΈ ΡΠΎΠΊΠ΅Π½ΠΈ ΠΈ Ρ
Π°ΡΠ΄ΡΠ΅ΡΠ½ΠΈ ΡΠΎΠΊΠ΅Π½ΠΈ.
ΠΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΡΠΊΠΈΡΠ΅ ΡΠΎΠΊΠ΅Π½ΠΈ ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Ρ ΠΊΠ°ΠΊΡΠΎ ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈ ΠΈ Π΄Π²ΠΎΠΉΠΊΠΈ ΠΊΠ»ΡΡΠΎΠ²Π΅ (ΠΏΡΠ±Π»ΠΈΡΠ½ΠΈ ΠΈ ΡΠ°ΡΡΠ½ΠΈ ΠΊΠ»ΡΡΠΎΠ²Π΅), ΡΠ°ΠΊΠ° ΠΈ ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΡΠΊΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π² ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ° PKCS#11. Π‘Π»Π°Π±ΠΎΡΠΎ Π·Π²Π΅Π½ΠΎ ΡΡΠΊ Π΅ ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ°ΡΡΠ½ΠΈΡ ΠΊΠ»ΡΡ. ΠΠΊΠΎ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΈΡΡ ΠΊΠ»ΡΡ Π±ΡΠ΄Π΅ ΠΈΠ·Π³ΡΠ±Π΅Π½, ΡΠΎΠΉ Π²ΠΈΠ½Π°Π³ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²Π΅Π½ Ρ ΡΠ°ΡΡΠ½ΠΈΡ ΠΊΠ»ΡΡ ΠΈΠ»ΠΈ Π²Π·Π΅Ρ ΠΎΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°. ΠΠ°Π³ΡΠ±Π°ΡΠ°/ΡΠ½ΠΈΡΠΎΠΆΠ°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ°ΡΡΠ΅Π½ ΠΊΠ»ΡΡ ΠΈΠΌΠ° ΡΡΠΆΠ½ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΈΡΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π½ΡΠΌΠ° Π΄Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π΄Π΅ΡΠΈΡΡΠΈΡΠ°ΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½ΠΈ Ρ Π²Π°ΡΠΈΡ ΠΏΡΠ±Π»ΠΈΡΠ΅Π½ ΠΊΠ»ΡΡ, Π½ΡΠΌΠ° Π΄Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΠΎΡΡΠ°Π²ΠΈΡΠ΅ Π΅Π»Π΅ΠΊΡΡΠΎΠ½Π΅Π½ ΠΏΠΎΠ΄ΠΏΠΈΡ (ES). ΠΠ° Π΄Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°ΡΠ΅ ES, ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°ΡΠ΅ Π½ΠΎΠ²Π° Π΄Π²ΠΎΠΉΠΊΠ° ΠΊΠ»ΡΡΠΎΠ²Π΅ ΠΈ Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π½ΠΎΠ² ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Π² Π΅Π΄ΠΈΠ½ ΠΎΡ ΡΠ΅Π½ΡΡΠΎΠ²Π΅ΡΠ΅ Π·Π° ΡΠ΅ΡΡΠΈΡΠΈΡΠΈΡΠ°Π½Π΅ ΡΡΠ΅ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΡΡΠΌΠ° ΠΏΠ°ΡΠΈ.
ΠΠΎ-Π³ΠΎΡΠ΅ ΡΠΏΠΎΠΌΠ΅Π½Π°Ρ ΠΌΠ΅ ΡΠΎΡΡΡΠ΅ΡΠ½ΠΈ, ΡΠΎΡΡΡΠ΅ΡΠ½ΠΎ-Ρ Π°ΡΠ΄ΡΠ΅ΡΠ½ΠΈ ΠΈ Ρ Π°ΡΠ΄ΡΠ΅ΡΠ½ΠΈ ΡΠΎΠΊΠ΅Π½ΠΈ. ΠΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΠΎΠΌΠΈΡΠ»ΠΈΡΠ΅ Π·Π° Π΄ΡΡΠ³ ΡΠΈΠΏ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΡΠΊΠΈ ΡΠΎΠΊΠ΅Π½ - ΠΎΠ±Π»Π°ΡΠ΅Π½.
ΠΠ½Π΅Ρ Π½ΡΠΌΠ° Π΄Π° ΠΈΠ·Π½Π΅Π½Π°Π΄Π°ΡΠ΅ Π½ΠΈΠΊΠΎΠ³ΠΎ
ΠΡΠ½ΠΎΠ²Π½ΠΎΡΠΎ Π½Π΅ΡΠΎ ΡΡΠΊ Π΅ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ° Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅, ΡΡΡ ΡΠ°Π½ΡΠ²Π°Π½ΠΈ Π² ΠΎΠ±Π»Π°ΡΠ½ΠΈΡ ΡΠΎΠΊΠ΅Π½, ΠΏΡΠ΅Π΄ΠΈΠΌΠ½ΠΎ ΡΠ°ΡΡΠ½ΠΈΡΠ΅ ΠΊΠ»ΡΡΠΎΠ²Π΅. ΠΠΎΠΆΠ΅ Π»ΠΈ ΡΠΎΠ·ΠΈ ΠΎΠ±Π»Π°ΡΠ΅Π½ ΡΠΎΠΊΠ΅Π½ Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈ? ΠΠΈΠ΅ ΠΊΠ°Π·Π²Π°ΠΌΠ΅ ΠΠ!
Π ΡΠ°ΠΊΠ°, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ ΠΎΠ±Π»Π°ΡΠ½ΠΈΡΡ ΡΠΎΠΊΠ΅Π½? ΠΡΡΠ²Π°ΡΠ° ΡΡΡΠΏΠΊΠ° Π΅ Π΄Π° ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°ΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π² ΡΠΎΠΊΠ΅Π½ ΠΎΠ±Π»Π°ΠΊΠ°. ΠΠ° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠΎΠ²Π°, ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ ΠΎΡΠΈΠ³ΡΡΠ΅Π½Π° ΠΏΠΎΠΌΠΎΡΠ½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°, ΠΊΠΎΡΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΎΠ±Π»Π°ΠΊΠ° ΠΈ Π΄Π° ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°ΡΠ΅ Π²Π°ΡΠ΅ΡΠΎ Π²Ρ
ΠΎΠ΄ / ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌ Π² Π½Π΅Π³ΠΎ:
Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ° Π² ΠΎΠ±Π»Π°ΠΊΠ°, ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΡ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ° ΡΠ²ΠΎΡ ΡΠΎΠΊΠ΅Π½, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄Π° Π·Π°Π΄Π°Π΄Π΅ Π΅ΡΠΈΠΊΠ΅ΡΠ° Π½Π° ΡΠΎΠΊΠ΅Π½Π° ΠΈ, Π½Π°ΠΉ-Π²Π°ΠΆΠ½ΠΎΡΠΎ, Π΄Π° Π·Π°Π΄Π°Π΄Π΅ SO-PIN ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈΡ ΠΠΠ ΠΊΠΎΠ΄. Π’Π΅Π·ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π°Ρ ΡΠ°ΠΌΠΎ ΠΏΡΠ΅Π· Π·Π°ΡΠΈΡΠ΅Π½/ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½ ΠΊΠ°Π½Π°Π». ΠΠΎΠΌΠΎΡΠ½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° pk11conf ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΎΠΊΠ΅Π½Π°. ΠΠ° ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠ°Π½Π°Π»Π° ΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π°Π»Π³ΠΎΡΠΈΡΡΠΌ Π·Π° ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ ΠΠ°Π³ΠΌΠ°-CTR (ΠΠΠ‘Π’ Π 34.13-2015).
ΠΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠ³Π»Π°ΡΡΠ²Π°Π½ ΠΊΠ»ΡΡ, Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΠΊΠΎΠΉΡΠΎ ΡΡΠ°ΡΠΈΠΊΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈ ΡΡΡΠ²ΡΡΠ° ΡΠ΅ Π±ΡΠ΄Π΅ Π·Π°ΡΠΈΡΠ΅Π½ / ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½, ΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΡΡ, ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ°Π½ ΠΎΡ TC 26
ΠΠ°ΡΠΎ ΠΏΠ°ΡΠΎΠ»Π°, Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΠΊΠΎΡΡΠΎ ΡΠ΅ ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ° ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½ΠΈΡΡ ΠΊΠ»ΡΡ, ΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°
ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΎΠ·ΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ Π³Π°ΡΠ°Π½ΡΠΈΡΠ°, ΡΠ΅ Π΄ΠΎΡΡΡΠΏΡΡ Π΄ΠΎ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»Π½ΠΈ ΡΠΎΠΊΠ΅Π½ ΠΎΠ±Π΅ΠΊΡΠΈ Π² ΠΎΠ±Π»Π°ΠΊΠ° ΡΡΠ΅Π· SO ΠΈ USER PIN Π΅ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΡΠ°ΠΌΠΎ Π·Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ, ΠΊΠΎΠΉΡΠΎ Π³ΠΈ Π΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π» Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΏΠΎΠΌΠΎΡΠ½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° pk11conf.
ΠΡΠΈΡΠΊΠΎ, ΡΠ»Π΅Π΄ ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅ ΡΠ΅Π·ΠΈ ΡΡΡΠΏΠΊΠΈ, ΠΎΠ±Π»Π°ΡΠ½ΠΈΡΡ ΡΠΎΠΊΠ΅Π½ Π΅ Π³ΠΎΡΠΎΠ² Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅. ΠΠ° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΎΠ±Π»Π°ΡΠ½ΠΈΡ ΡΠΎΠΊΠ΅Π½ Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° LS11CLOUD Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΡΠ°. ΠΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΎΠ±Π»Π°ΡΠ΅Π½ ΡΠΎΠΊΠ΅Π½ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ Android ΠΈ iOS ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡΡ SDK. ΠΠΌΠ΅Π½Π½ΠΎ ΡΠ°Π·ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΠΎΡΠΎΡΠ΅Π½Π° ΠΏΡΠΈ ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Π½Π° ΠΎΠ±Π»Π°ΡΠ½ΠΈΡ ΡΠΎΠΊΠ΅Π½ Π² Π±ΡΠ°ΡΠ·ΡΡΠ° Redfox ΠΈΠ»ΠΈ Π·Π°ΠΏΠΈΡΠ°Π½Π° Π²ΡΠ² ΡΠ°ΠΉΠ»Π° pkcs11.txt Π·Π°. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° LS11CLOUD ΡΡΡΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²Π° Ρ ΡΠΎΠΊΠ΅Π½Π° Π² ΠΎΠ±Π»Π°ΠΊΠ° ΡΡΠ΅Π· Π·Π°ΡΠΈΡΠ΅Π½ ΠΊΠ°Π½Π°Π», Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° SESPAKE, ΡΡΠ·Π΄Π°Π΄Π΅Π½ ΡΡΠ΅Π· ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° PKCS#11 C_Initialize!
Π’ΠΎΠ²Π° Π΅ Π²ΡΠΈΡΠΊΠΎ, ΡΠ΅Π³Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΠΎΡΡΡΠ°ΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ, Π΄Π° Π³ΠΎ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ Π²ΡΠ² Π²Π°ΡΠΈΡ ΠΎΠ±Π»Π°ΡΠ΅Π½ ΡΠΎΠΊΠ΅Π½ ΠΈ Π΄Π° ΠΎΡΠΈΠ΄Π΅ΡΠ΅ Π½Π° > ΡΠ΅Π±ΡΠ°ΠΉΡΠ° Π·Π° Π΄ΡΡΠΆΠ°Π²Π½ΠΈ ΡΡΠ»ΡΠ³ΠΈ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com