Android рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╡рд░ PKCS#11 рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рдЯреЛрдХрди рдпрдВрддреНрд░рдгрд╛ рд╡рд╛рдкрд░рдгреЗ

Android рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╡рд░ PKCS#11 рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рдЯреЛрдХрди рдпрдВрддреНрд░рдгрд╛ рд╡рд╛рдкрд░рдгреЗ рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рд╡реЗрд│ рдЖрд▓реА рдЖрд╣реЗ PKCS#1 рдпрдВрддреНрд░рдгрд╛1 рдЖрдгрд┐ Android рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╡рд░. рдХрд╛рд╣реАрдЬрдг рдореНрд╣рдгреВ рд╢рдХрддрд╛рдд рдХреА Android рд╕рд╛рдареА рдХреЛрдгрддреЗрд╣реА рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░ рдЯреЛрдХрди рдирд╛рд╣реАрдд. рдкрд░рдВрддреБ, рдЬрд░ рдЕрд╕реЗ рдЕрд╕реЗрд▓ рддрд░ рд╣реА рдХреЗрд╡рд│ рддрд╛рддреНрдкреБрд░рддреА рдШрдЯрдирд╛ рдЖрд╣реЗ. рдкрдг рдЖрдЬ рддреБрдореНрд╣реА рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рдЯреЛрдХрди рдЯрд╛рдХреВ рд╢рдХрддрд╛ рдХрд┐рдВрд╡рд╛ рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛ рдореЗрдШ рдЯреЛрдХрди. рдЙрдкрдпреБрдХреНрддрддрд╛ рдкрд╛рд╕реВрди cryptoarmpkcs-A Tcl/Tk рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖реЗрдд рдПрдВрдбреНрд░реЙрдЗрд╢ рд╡рд╛рдкрд░реВрди Android рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╕рд╛рдареА рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ, рдирдВрддрд░ рдкреЕрдХреЗрдЬ рдЯреЛрдХрди рдХрдиреЗрдХреНрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ TclPKCS11 рдЖрд╡реГрддреНрддреА 1.0.1.

рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рдкреЕрдХреЗрдЬрд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╛рд╣реА. рднрд╛рд╖реЗрдд рд▓рд┐рд╣рд┐рд▓реЗрд▓реЗ рдкреЕрдХреЗрдЬ рд▓рд╛рдпрдмреНрд░рд░реА рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдкреНрд░рдХрд▓реНрдкрд╛рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреЛрдбрдгреЗ рдПрд╡рдвреЗрдЪ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рд╕реА, Android рдЖрдгрд┐ рд╕реНрд╡рддрдГ рд▓рд╛рдпрдмреНрд░рд░реА рд╡рд┐рддрд░рдгрд╛рд╕рд╛рдареА. рддреНрдпрд╛рдЪ рдкреНрд░рдХрд▓реНрдкрд╛рдд рд╡рд┐рд╡рд┐рдз рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╕рд╛рдареА рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ ls11sw2016 рдЖрдгрд┐ рдХреНрд▓рд╛рдЙрдб ls11Cloud рдЯреЛрдХрдирдЪреА рд▓рд╛рдпрдмреНрд░рд░реА рдЬреЛрдбрдгреНрдпрд╛рдЪрд╛ рдирд┐рд░реНрдгрдп рдШреЗрдгреНрдпрд╛рдд рдЖрд▓рд╛.

рдмрд╛рдХреА рд╕рд░реНрд╡ рдХрд╛рд╣реА рд╕реЛрдкреЗ рдЖрд╣реЗ. рдЖрдореНрд╣реА рджреБрд╕рд▒реНрдпрд╛ рд╡рд┐рдВрдбреЛрдордзреНрдпреЗ рдХрд╛рд░реНрдпрд░рдд рдЯреЛрдХрди рдирд┐рд╡рдбрдгреНрдпрд╛рд╕рд╛рдареА рдмрдЯрдгреЗ рдЬреЛрдбрддреЛ рдЖрдгрд┐ рдорд┐рд│рд╡рд╛:

  • рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рдЯреЛрдХрди ls11sw2016;
  • рдХреНрд▓рд╛рдЙрдб рдЯреЛрдХрди ls11Cloud;
  • рджреБрд╕рд░реЗ PKCS11#11 рдЯреЛрдХрди.

Android рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╡рд░ PKCS#11 рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рдЯреЛрдХрди рдпрдВрддреНрд░рдгрд╛ рд╡рд╛рдкрд░рдгреЗ

рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░, рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рдЯреЛрдХрди рдХрдиреЗрдХреНрдЯ рдХреЗрд▓реЗрд▓реЗ рдЕрд╕рддреЗ. рдЬрд░ рддреЗ рдкреВрд░реНрд╡реА рддрдпрд╛рд░ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдирд╕реЗрд▓, рддрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рддреЗ рд╕реБрд░реВ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕реВрдЪрд┐рдд рдХреЗрд▓реЗ рдЬрд╛рдИрд▓. рдЪрд▓рд╛ рддреЗ рдЖрдард╡реВрдпрд╛ рдЯреЛрдХрди рдЗрдирд┐рд╢рд┐рдПрд▓рд╛рдпрдЭреЗрд╢рди рдЯреЕрдЧ рдирд┐рдпреБрдХреНрдд рдХрд░рдгреЗ рдЖрдгрд┐ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдкрд┐рди рдХреЛрдб рд╕реЗрдЯ рдХрд░рдгреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ:

Android рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╡рд░ PKCS#11 рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рдЯреЛрдХрди рдпрдВрддреНрд░рдгрд╛ рд╡рд╛рдкрд░рдгреЗ

рд▓рдХреНрд╖рд╛рдд рдШреНрдпрд╛ рдХреА рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рдЯреЛрдХрди PKCS#11 v.2.40 рдЖрдгрд┐ TK-26 рдЪреНрдпрд╛ рд╢рд┐рдлрд╛рд░рд╢реАрдВрдиреБрд╕рд╛рд░ рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ. рд╕рдорд░реНрдерд┐рдд рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рдпрдВрддреНрд░рдгреЗрд╕рд╣ рдЯреЛрдХрдирдмрджреНрджрд▓ рд╕рдВрдкреВрд░реНрдг рдорд╛рд╣рд┐рддреА рдорд┐рд│рд╡рд┐рдгреНрдпрд╛рд╕рд╛рдареА, рдореБрдЦреНрдп рдореЗрдиреВрдордзреАрд▓ "рдЯреЛрдХрди рдЖрдгрд┐ рддреНрдпрд╛рдЪреНрдпрд╛ рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлреАрдмрджреНрджрд▓" рдмрдЯрдгрд╛рд╡рд░ рдХреНрд▓рд┐рдХ рдХрд░рд╛ ("рдХрд╛рд░реНрдпрд╛рддреНрдордХ"). рдЖрдЬ, рд░рд╢рд┐рдпрди рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлреАрд▓рд╛ рд╕рдорд░реНрдерди рджреЗрдгрд╛рд░реЗ рдПрдХрд╣реА рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░ рдЯреЛрдХрди рд╣реА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдирд╛рд╣реА:

Android рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╡рд░ PKCS#11 рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рдЯреЛрдХрди рдпрдВрддреНрд░рдгрд╛ рд╡рд╛рдкрд░рдгреЗ

рдкреНрд░рд╢реНрди рдЙрджреНрднрд╡рддреЛ: - рдЯреЛрдХрдирд╡рд░ рд╡реИрдпрдХреНрддрд┐рдХ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рд╛рд╡реЗ. рджреЛрди рдкрд░реНрдпрд╛рдп рдЖрд╣реЗрдд. PKCS#12 рдХрдВрдЯреЗрдирд░ ("PKCS12/PFX рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рд╛" рдмрдЯрдг) рджреНрд╡рд╛рд░реЗ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╕реНрд╡рддрдГ рдЖрдгрд┐ рддреНрдпрд╛рдЪреА рдореБрдЦреНрдп рдЬреЛрдбреА рдЖрдпрд╛рдд рдХрд░рдгреЗ рд╣рд╛ рдкрд╣рд┐рд▓рд╛ рдкрд░реНрдпрд╛рдп рдЖрд╣реЗ:

Android рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╡рд░ PKCS#11 рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рдЯреЛрдХрди рдпрдВрддреНрд░рдгрд╛ рд╡рд╛рдкрд░рдгреЗ

рджреБрд╕рд▒реНрдпрд╛ рдкрд░реНрдпрд╛рдпрд╛рдордзреНрдпреЗ рдкреНрд░рдорд╛рдгрдкрддреНрд░рд╛рд╕рд╛рдареА рд╡рд┐рдирдВрддреА (PKCS#10) рддрдпрд╛рд░ рдХрд░рдгреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ. рд╣рд╛ рдкрд░реНрдпрд╛рдп (рдХрд╛рд░реНрдп "рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╡рд┐рдирдВрддреА") рдереЗрдЯ рдЯреЛрдХрдирд╡рд░ рдХреА рдЬреЛрдбреА рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдкреНрд░рджрд╛рди рдХрд░рддреЗ:

Android рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╡рд░ PKCS#11 рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рдЯреЛрдХрди рдпрдВрддреНрд░рдгрд╛ рд╡рд╛рдкрд░рдгреЗ

рдЖрддрд╛ рдЖрдкрдг рдлреНрд▓реЕрд╢ рдбреНрд░рд╛рдЗрд╡реНрд╣рд╡рд░ рд╡рд┐рдирдВрддреА рдЬрддрди рдХрд░реВ рд╢рдХрддрд╛ рдЖрдгрд┐ рд╡рд░ рдЬрд╛рдК рд╢рдХрддрд╛ рдкреНрд░рдорд╛рдгрди рдХреЗрдВрджреНрд░ рдкреНрд░рдорд╛рдгрдкрддреНрд░рд╛рд╕рд╛рдареА. рддреБрдореНрд╣реА рдкреНрд░рдорд╛рдгрдкрддреНрд░рд╛рдЪрд╛ рд╡рд╛рдкрд░ рдЪрд╛рдЪрдгреАрдЪреНрдпрд╛ рдЙрджреНрджреЗрд╢рд╛рдиреЗ рдХрд┐рдВрд╡рд╛ рдЕрдВрддрд░реНрдЧрддрд░рд┐рддреНрдпрд╛ рдХрд░рдд рдЕрд╕рд▓реНрдпрд╛рд╕, рддреБрдореНрд╣реА рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЬрд╛рд░реА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдпреБрдЯрд┐рд▓рд┐рдЯреА рджреЗрдЦреАрд▓ рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛ CAFL63. рдкрд░рд┐рдгрд╛рдореА рдкреНрд░рдорд╛рдгрдкрддреНрд░ "рд╡рд┐рдирдВрддреА/рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдкрд╣рд╛" рдЯреЕрдмрдордзреАрд▓ рдЯреЛрдХрдирд╡рд░ рдЖрдпрд╛рдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ:

Android рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╡рд░ PKCS#11 рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рдЯреЛрдХрди рдпрдВрддреНрд░рдгрд╛ рд╡рд╛рдкрд░рдгреЗ

рддреБрдореНрд╣реА рдЖрддрд╛ рдЯреЕрдм рд╡рд╛рдкрд░реВрди рдЯреЛрдХрдирд╡рд░ рд╕рд╛рдард╡рд▓реЗрд▓реНрдпрд╛ рдкреНрд░рдорд╛рдгрдкрддреНрд░рд╛рдВрд╕рд╣ рдХрд╛рдЧрджрдкрддреНрд░рд╛рдВрд╡рд░ рд╕реНрд╡рд╛рдХреНрд╖рд░реА рдХрд░реВ рд╢рдХрддрд╛ "рджрд╕реНрддрдРрд╡рдЬрд╛рд╡рд░ рд╕реНрд╡рд╛рдХреНрд╖рд░реА рдХрд░рд╛".

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

Android рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╕рд╛рдареА cryptoarmpkcs-A рдпреБрдЯрд┐рд▓рд┐рдЯреАрдЪреА рдЕрджреНрдпрдпрд╛рд╡рдд рдЖрд╡реГрддреНрддреА рдпреЗрдереЗ рдбрд╛рдЙрдирд▓реЛрдб рдХреЗрд▓реА рдЬрд╛рдК рд╢рдХрддреЗ:

PS рд▓реЙрдЧ рдЬрддрди рдХрд░рдд рдЖрд╣реЗ

рдкреЕрдХреЗрдЬ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдкрд╛рд╕реВрди рд╣рд╛рдбреЗ рдЙрдкрдпреБрдХреНрддрддрд╛ рд╡рд╛рдкрд░рд╛ AndroWish SDK. рдкреЕрдХреЗрдЬ рдпрд╢рд╕реНрд╡реАрд░реАрддреНрдпрд╛ рддрдпрд╛рд░ рдЭрд╛рд▓реНрдпрд╛рд╡рд░, тАЬрдЗрдВрд╕реНрдЯреЙрд▓ рдЖрдгрд┐ рд░рдитАЭ рдмрдЯрдг рджрд┐рд╕рддреЗ рдЖрдгрд┐ рдХреНрд▓рд┐рдХ рдХреЗрд▓реНрдпрд╛рд╡рд░, adb рд▓реЙрдЧрдХреЕрдЯ (Android рдбреАрдмрдЧ рдмреНрд░рд┐рдЬ рд▓реЙрдЧрд░) рдЪреЗ рдЖрдЙрдЯрдкреБрдЯ рджрд░реНрд╢рд╡рд┐рдгрд╛рд░реА рд▓реЙрдЧ рд╡рд┐рдВрдбреЛ рдЙрдШрдбрддреЗ. рдпрд╛ рд╕реНрдХреНрд░реАрдирдЪреА рдирдХрд╛рд░рд╛рддреНрдордХ рдмрд╛рдЬреВ рдЕрд╢реА рдЖрд╣реЗ рдХреА рддреНрд░реБрдЯреА рд╕рдВрджреЗрд╢ рд╢реЛрдзрдгреЗ рдХрдареАрдг рдЖрд╣реЗ, рд╡рд┐рд╢реЗрд╖рдд: "V" (рд╡реНрд╣рд░реНрдмреЛрдЬ) рдзреНрд╡рдЬ рд╕рдХреНрд╖рдо рдХрд░реВрди. рдореНрд╣рдгреВрди, "рд╕реЗрд╡реНрд╣" рдмрдЯрдг рдЬреЛрдбрд▓реЗ рдЧреЗрд▓реЗ, рдЬреЗ /tmp/logBone.txt рдлрд╛рдЗрд▓рдордзреАрд▓ рд▓реЙрдЧ рд╕реЗрд╡реНрд╣ рдХрд░рддреЗ (рдЖрдореНрд╣реА рд▓рд┐рдирдХреНрд╕рдмрджреНрджрд▓ рдмреЛрд▓рдд рдЖрд╣реЛрдд):

Android рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╡рд░ PKCS#11 рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рдЯреЛрдХрди рдпрдВрддреНрд░рдгрд╛ рд╡рд╛рдкрд░рдгреЗ

рдпрд╛ рдмрдЯрдгрд╛рдЪреНрдпрд╛ рдЖрдЧрдордирд╛рдиреЗ, рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдбреАрдмрдЧ рдХрд░рдгреНрдпрд╛рдЪреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рд╕реБрд▓рдн рдЭрд╛рд▓реА рдЖрд╣реЗ.

рдмрдЯрдг рдЬреЛрдбрдгреНрдпрд╛рд╕рд╛рдареА, рдУрд│ 2591 рдирдВрддрд░ рд╣рд╛рдбрд╛рдВрдЪреНрдпрд╛ рдлрд╛рдИрд▓рдордзреНрдпреЗ рдлрдХреНрдд рдЦрд╛рд▓реАрд▓ рдХреЛрдб рдЬреЛрдбрд╛:

	    ttk::button $l.frame.clear -text "Clear" -width 6 
		-command [list adb_logcat_clear $l.text]
#╨Ф╨╛╨▒╨░╨▓╨╗╨╡╨╜╨╜╤Л╨╣ ╨║╨╛╨┤
	    ttk::button $l.frame.save -text "Save" -width 6 
		-command [list adb_logcat_save $l.text]

	    ttk::button $l.frame.run -text "Run" -width 6 
		-command [list adb_logcat_run $l]

adb_logcat_save save рдХрдорд╛рдВрдб рдЕрд╕реЗ рджрд┐рд╕рддреЗ:

proc adb_logcat_save {text} {
    set tt [$text get 1.0 end]
    set file "/tmp/logBone.txt"
    file delete -force $file
  #╨б╨╛╨▒╤Б╤В╨▓╨╡╨╜╨╜╨╛ ╨╖╨░╨┐╨╕╤Б╤М ╨▓ ╤Д╨░╨╣╨╗
    set fd [open $file w]
    chan configure $fd -translation binary
    puts -nonewline $fd $tt
    close $fd
}

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

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