рдХреНрд▓рд╛рдЙрдб рдЯреЛрдХрди PKCS#11 тАУ рдорд┐рдердХ рдХреА рд╡рд╛рд╕реНрддрд╡?

PKCS#11 (Cryptoki) рд╣реЗ RSA рдкреНрд░рдпреЛрдЧрд╢рд╛рд│рд╛рдВрдиреА рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рдЯреЛрдХрдиреНрд╕, рд╕реНрдорд╛рд░реНрдЯ рдХрд╛рд░реНрдбреНрд╕ рдЖрдгрд┐ рдЗрддрд░ рддрддреНрд╕рдо рдЙрдкрдХрд░рдгрд╛рдВрд╕рд╣ рдЗрдВрдЯрд░рдСрдкрд░реЗрдЯрд┐рдВрдЧ рдкреНрд░реЛрдЧреНрд░рд╛рдореНрд╕рд╕рд╛рдареА рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реЗрд▓реЗ рдПрдХ рдорд╛рдирдХ рдЖрд╣реЗ рдЬреЗ рд▓рд╛рдпрдмреНрд░рд░реАрджреНрд╡рд╛рд░реЗ рдЕрдВрдорд▓рд╛рдд рдЖрдгрд▓реЗрд▓реНрдпрд╛ рдпреБрдирд┐рдлрд╛рдЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдЗрдВрдЯрд░рдлреЗрд╕рдЪрд╛ рд╡рд╛рдкрд░ рдХрд░рддреЗ.

рд░рд╢рд┐рдпрди рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлреАрд╕рд╛рдареА PKCS#11 рдорд╛рдирдХ рддрд╛рдВрддреНрд░рд┐рдХ рдорд╛рдирдХреАрдХрд░рдг рд╕рдорд┐рддреА "рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рдорд╛рд╣рд┐рддреА рд╕рдВрд░рдХреНрд╖рдг" рджреНрд╡рд╛рд░реЗ рд╕рдорд░реНрдерд┐рдд рдЖрд╣реЗ (TK 26).

рдЬрд░ рдЖрдкрдг рд░рд╢рд┐рдпрди рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлреАрд▓рд╛ рд╕рдорд░реНрдерди рджреЗрдгрд╛рд░реНтАНрдпрд╛ рдЯреЛрдХрдиреНрд╕рдмрджреНрджрд▓ рдмреЛрд▓рд▓реЛ рддрд░ рдЖрдкрдг рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рдЯреЛрдХрди, рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░-рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░ рдЯреЛрдХрди рдЖрдгрд┐ рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░ рдЯреЛрдХрдирдмрджреНрджрд▓ рдмреЛрд▓реВ рд╢рдХрддреЛ.

рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рдЯреЛрдХрдиреНрд╕ PKCS#11 рдорд╛рдирдХрд╛рдВрдиреБрд╕рд╛рд░ рдкреНрд░рдорд╛рдгрдкрддреНрд░реЗ рдЖрдгрд┐ рдХреА рдЬреЛрдбреНрдпрд╛рдВрдЪреЗ рд╕рдВрдЪрдпрди (рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЖрдгрд┐ рдЦрд╛рдЬрдЧреА рдХреА) рдЖрдгрд┐ рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рдСрдкрд░реЗрд╢рдиреНрд╕рдЪреЗ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рджреЛрдиреНрд╣реА рдкреНрд░рджрд╛рди рдХрд░рддрд╛рдд. рдпреЗрдереЗ рдХрдордХреБрд╡рдд рджреБрд╡рд╛ рдореНрд╣рдгрдЬреЗ рдЦрд╛рдЬрдЧреА рдХреАрдЪреЗ рд╕рдВрдЪрдпрди. рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреА рд╣рд░рд╡рд▓реНрдпрд╛рд╕, рддреБрдореНрд╣реА рддреА рдиреЗрд╣рдореА рдЦрд╛рдЬрдЧреА рдХреА рд╡рд╛рдкрд░реВрди рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░реВ рд╢рдХрддрд╛ рдХрд┐рдВрд╡рд╛ рдкреНрд░рдорд╛рдгрдкрддреНрд░рд╛рд╡рд░реВрди рдШреЗрдК рд╢рдХрддрд╛. рдЦрд╛рдЬрдЧреА рдХреАрдЪреЗ рдиреБрдХрд╕рд╛рди/рдирд╛рд╢ рдХреЗрд▓реНрдпрд╛рдиреЗ рдЧрдВрднреАрд░ рдкрд░рд┐рдгрд╛рдо рд╣реЛрддрд╛рдд, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рддреБрдореНрд╣реА рддреБрдордЪреНрдпрд╛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреАрд╕рд╣ рдХреВрдЯрдмрджреНрдз рдХреЗрд▓реЗрд▓реНрдпрд╛ рдлрд╛рдЗрд▓реНрд╕ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд░реВ рд╢рдХрдгрд╛рд░ рдирд╛рд╣реА рдЖрдгрд┐ рддреБрдореНрд╣реА рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рд╕реНрд╡рд╛рдХреНрд╖рд░реА (ES) рд▓рд╛рд╡реВ рд╢рдХрдгрд╛рд░ рдирд╛рд╣реА. рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рд╕реНрд╡рд╛рдХреНрд╖рд░реА рд╡реНрдпреБрддреНрдкрдиреНрди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдореНрд╣рд╛рд▓рд╛ рдПрдХ рдирд╡реАрди рдХреА рдЬреЛрдбреА рд╡реНрдпреБрддреНрдкрдиреНрди рдХрд░рд╛рд╡реА рд▓рд╛рдЧреЗрд▓ рдЖрдгрд┐, рдХрд╛рд╣реА рдкреИрд╢рд╛рдВрд╕рд╛рдареА, рдкреНрд░рдорд╛рдгрди рдкреНрд░рд╛рдзрд┐рдХрд░рдгрд╛рдВрдкреИрдХреА рдПрдХрд╛рдХрдбреВрди рдирд╡реАрди рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдорд┐рд│рд╡рд╛рд╡реЗ рд▓рд╛рдЧреЗрд▓.

рд╡рд░ рдЖрдореНрд╣реА рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░, рдлрд░реНрдорд╡реЗрдЕрд░ рдЖрдгрд┐ рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░ рдЯреЛрдХрдиреНрд╕рдЪрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХреЗрд▓рд╛ рдЖрд╣реЗ. рдкрд░рдВрддреБ рдЖрдкрдг рджреБрд╕рд░реНтАНрдпрд╛ рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рдЯреЛрдХрдирдЪрд╛ рд╡рд┐рдЪрд╛рд░ рдХрд░реВ рд╢рдХрддреЛ - рдХреНрд▓рд╛рдЙрдб.

рдЖрдЬ рддреБрдореНрд╣реА рдХреЛрдгрд╛рд▓рд╛рд╣реА рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рдХрд░рдгрд╛рд░ рдирд╛рд╣реА рдХреНрд▓рд╛рдЙрдб рдлреНрд▓реЕрд╢ рдбреНрд░рд╛рдЗрд╡реНрд╣. рд╕рд░реНрд╡ рдлрд╛рдпрджреЗ рдЖрдгрд┐ рддреЛрдЯреЗ рдХреНрд▓рд╛рдЙрдб рдлреНрд▓реЕрд╢ рдбреНрд░рд╛рдЗрд╡реНрд╣ рдЬрд╡рд│рдЬрд╡рд│ рдХреНрд▓рд╛рдЙрдб рдЯреЛрдХрди рд╕рд╛рд░рдЦреЗрдЪ рдЕрд╕рддрд╛рдд.

рдпреЗрдереЗ рдореБрдЦреНрдп рдЧреЛрд╖реНрдЯ рдХреНрд▓рд╛рдЙрдб рдЯреЛрдХрдирдордзреНрдпреЗ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдбреЗрдЯрд╛рдЪреА рд╕реБрд░рдХреНрд╖рд╛ рдЖрд╣реЗ, рдкреНрд░рд╛рдореБрдЦреНрдпрд╛рдиреЗ рдЦрд╛рдЬрдЧреА рдХреА. рдХреНрд▓рд╛рдЙрдб рдЯреЛрдХрди рд╣реЗ рдкреНрд░рджрд╛рди рдХрд░реВ рд╢рдХрддреЗ? рдЖрдореНрд╣реА рдореНрд╣рдгрддреЛ - рд╣реЛрдп!

рдордЧ рдХреНрд▓рд╛рдЙрдб рдЯреЛрдХрди рдХрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ? рдЯреЛрдХрди рдХреНрд▓рд╛рдЙрдбрдордзреНрдпреЗ рдХреНрд▓рд╛рдпрдВрдЯрдЪреА рдиреЛрдВрджрдгреА рдХрд░рдгреЗ рд╣реА рдкрд╣рд┐рд▓реА рдкрд╛рдпрд░реА рдЖрд╣реЗ. рд╣реЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдПрдХ рдЙрдкрдпреБрдХреНрддрддрд╛ рдкреНрд░рджрд╛рди рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдЬреА рддреБрдореНрд╣рд╛рд▓рд╛ рдХреНрд▓рд╛рдЙрдбрдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рдгреНрдпрд╛рд╕ рдЖрдгрд┐ рддреНрдпрд╛рдордзреНрдпреЗ рддреБрдордЪреЗ рд▓реЙрдЧрд┐рди/рдЯреЛрдкрдгрдирд╛рд╡ рдиреЛрдВрджрдгреА рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ:
рдХреНрд▓рд╛рдЙрдб рдЯреЛрдХрди PKCS#11 тАУ рдорд┐рдердХ рдХреА рд╡рд╛рд╕реНрддрд╡?

рдХреНрд▓рд╛рдЙрдбрдордзреНрдпреЗ рдиреЛрдВрджрдгреА рдХреЗрд▓реНрдпрд╛рдирдВрддрд░, рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдиреЗ рддреНрдпрд╛рдЪреЗ рдЯреЛрдХрди рд╕реБрд░реВ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рдореНрд╣рдгрдЬреЗ рдЯреЛрдХрди рд▓реЗрдмрд▓ рд╕реЗрдЯ рдХрд░рдгреЗ рдЖрдгрд┐ рд╕рд░реНрд╡рд╛рдд рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ рдореНрд╣рдгрдЬреЗ, SO-PIN рдЖрдгрд┐ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ PIN рдХреЛрдб рд╕реЗрдЯ рдХрд░рдгреЗ. рд╣реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдлрдХреНрдд рд╕реБрд░рдХреНрд╖рд┐рдд/рдПрдирдХреНрд░рд┐рдкреНрдЯреЗрдб рдЪреЕрдиреЗрд▓рд╡рд░рдЪ рдХреЗрд▓реЗ рдЬрд╛рд╡реЗрдд. рдЯреЛрдХрди рд╕реБрд░реВ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА pk11conf рдпреБрдЯрд┐рд▓рд┐рдЯреА рд╡рд╛рдкрд░рд▓реА рдЬрд╛рддреЗ. рдЪреЕрдиреЗрд▓ рдПрдирдХреНрд░рд┐рдкреНрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдПрдирдХреНрд░рд┐рдкреНрд╢рди рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдЖрд╣реЗ рдореЕрдЧреНрдорд╛-CTR (GOST R 34.13-2015).

рдХреНрд▓рд╛рдпрдВрдЯ рдЖрдгрд┐ рд╕рд░реНрд╡реНрд╣рд░рдордзреАрд▓ рдЯреНрд░реЕрдлрд┐рдХ рдХреЛрдгрддреНрдпрд╛ рдЖрдзрд╛рд░рд╛рд╡рд░ рд╕рдВрд░рдХреНрд╖рд┐рдд/рдПрдирдХреНрд░рд┐рдкреНрдЯ рдХреЗрд▓реЗ рдЬрд╛рддреАрд▓ рдпрд╛рдЪреНрдпрд╛ рдЖрдзрд╛рд░реЗ рдорд╛рдиреНрдп рдХреА рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рд╢рд┐рдлрд╛рд░рд╕ рдХреЗрд▓реЗрд▓рд╛ TK 26 рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдЖрд╣реЗ. SESPAKE - рдкрд╛рд╕рд╡рд░реНрдб рдкреНрд░рдорд╛рдгреАрдХрд░рдгрд╛рд╕рд╣ рд╕рд╛рдорд╛рдпрд┐рдХ рдХреА рдЬрдирд░реЗрд╢рди рдкреНрд░реЛрдЯреЛрдХреЙрд▓.

рд╕рдВрдХреЗрддрд╢рдмреНрдж рдореНрд╣рдгреВрди рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдЖрд╣реЗ рдЬреНрдпрд╛рдЪреНрдпрд╛ рдЖрдзрд╛рд░рд╛рд╡рд░ рд╕рд╛рдорд╛рдпрд┐рдХ рдХреА рддрдпрд╛рд░ рдХреЗрд▓реА рдЬрд╛рдИрд▓ рд╡рди-рдЯрд╛рдЗрдо рдкрд╛рд╕рд╡рд░реНрдб рдпрдВрддреНрд░рдгрд╛. рдЖрдореНрд╣реА рд░рд╢рд┐рдпрди рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлреАрдмрджреНрджрд▓ рдмреЛрд▓рдд рдЕрд╕рд▓реНрдпрд╛рдиреЗ, рдпрдВрддреНрд░рдгрд╛ рд╡рд╛рдкрд░реВрди рд╡рди-рдЯрд╛рдЗрдо рдкрд╛рд╕рд╡рд░реНрдб рддрдпрд╛рд░ рдХрд░рдгреЗ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рдЖрд╣реЗ. CKM_GOSTR3411_12_256_HMAC, CKM_GOSTR3411_12_512_HMAC рдХрд┐рдВрд╡рд╛ CKM_GOSTR3411_HMAC.

рдпрд╛ рдпрдВрддреНрд░рдгреЗрдЪрд╛ рд╡рд╛рдкрд░ рд╣реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЛ рдХреА рдХреНрд▓рд╛рдЙрдбрдордзреАрд▓ рд╡реИрдпрдХреНрддрд┐рдХ рдЯреЛрдХрди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рдордзреНрдпреЗ SO рдЖрдгрд┐ USER PIN рдХреЛрдбрджреНрд╡рд╛рд░реЗ рдкреНрд░рд╡реЗрд╢ рдХреЗрд╡рд│ рдпреБрдЯрд┐рд▓рд┐рдЯреА рд╡рд╛рдкрд░реВрди рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рд╕рд╛рдареА рдЙрдкрд▓рдмреНрдз рдЖрд╣реЗ. pk11conf.

рдПрд╡рдвреЗрдЪ, рдпрд╛ рдкрд╛рдпрд▒реНрдпрд╛ рдкреВрд░реНрдг рдХреЗрд▓реНрдпрд╛рдирдВрддрд░, рдХреНрд▓рд╛рдЙрдб рдЯреЛрдХрди рд╡рд╛рдкрд░рд╛рд╕рд╛рдареА рддрдпрд╛рд░ рдЖрд╣реЗ. рдХреНрд▓рд╛рдЙрдб рдЯреЛрдХрди рдНрдХреНрд╕реЗрд╕ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдореНрд╣рд╛рд▓рд╛ рддреБрдордЪреНрдпрд╛ PC рд╡рд░ LS11CLOUD рд▓рд╛рдпрдмреНрд░рд░реА рдЗрдиреНрд╕реНрдЯреЙрд▓ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. Android рдЖрдгрд┐ iOS рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╡рд░реАрд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдВрдордзреНрдпреЗ рдХреНрд▓рд╛рдЙрдб рдЯреЛрдХрди рд╡рд╛рдкрд░рддрд╛рдирд╛, рдПрдХ рд╕рдВрдмрдВрдзрд┐рдд SDK рдкреНрд░рджрд╛рди рдХреЗрд▓рд╛ рдЬрд╛рддреЛ. рд╣реА рд▓рд╛рдпрдмреНрд░рд░реА рдЖрд╣реЗ рдЬреА рд░реЗрдбрдлреЙрдХреНрд╕ рдмреНрд░рд╛рдЙрдЭрд░рдордзреНрдпреЗ рдХреНрд▓рд╛рдЙрдб рдЯреЛрдХрди рдХрдиреЗрдХреНрдЯ рдХрд░рддрд╛рдирд╛ рдХрд┐рдВрд╡рд╛ pkcs11.txt рдлрд╛рдИрд▓рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рддрд╛рдирд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реА рдЬрд╛рдИрд▓. LS11CLOUD рд▓рд╛рдпрдмреНрд░рд░реА PKCS#11 C_Initialize рдлрдВрдХреНрд╢рдирд▓рд╛ рдХреЙрд▓ рдХрд░рддрд╛рдирд╛ рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ SESPAKE рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рд╕реБрд░рдХреНрд╖рд┐рдд рдЪреЕрдиреЗрд▓рджреНрд╡рд╛рд░реЗ рдХреНрд▓рд╛рдЙрдбрдордзреАрд▓ рдЯреЛрдХрдирд╢реА рджреЗрдЦреАрд▓ рд╕рдВрд╡рд╛рдж рд╕рд╛рдзрддреЗ!

рдХреНрд▓рд╛рдЙрдб рдЯреЛрдХрди PKCS#11 тАУ рдорд┐рдердХ рдХреА рд╡рд╛рд╕реНрддрд╡?

рдПрд╡рдвреЗрдЪ, рдЖрддрд╛ рддреБрдореНрд╣реА рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдСрд░реНрдбрд░ рдХрд░реВ рд╢рдХрддрд╛, рддреЗ рддреБрдордЪреНрдпрд╛ рдХреНрд▓рд╛рдЙрдб рдЯреЛрдХрдирдордзреНрдпреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реВ рд╢рдХрддрд╛ рдЖрдгрд┐ рд╕рд░рдХрд╛рд░реА рд╕реЗрд╡рд╛рдВрдЪреНрдпрд╛ рд╡реЗрдмрд╕рд╛рдЗрдЯрд╡рд░ рдЬрд╛рдК рд╢рдХрддрд╛.

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛