āĻ¸āĻšāĻ āĻĒāĻžāĻ¸āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻ¨āĻŋāĻ°āĻžāĻĒāĻĻ āĻ¨āĻ¯āĻŧ, āĻāĻŦāĻ āĻāĻāĻŋāĻ˛ āĻĒāĻžāĻ¸āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻž āĻ
āĻ¸āĻŽā§āĻāĻŦāĨ¤ āĻāĻ āĻāĻžāĻ°āĻŖā§āĻ āĻ¤āĻžāĻ°āĻž āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ āĻā§āĻŦā§āĻ°ā§āĻĄā§āĻ° āĻ¨ā§āĻā§ āĻŦāĻž āĻŽāĻ¨āĻŋāĻāĻ°ā§ āĻāĻāĻāĻŋ āĻ¸ā§āĻāĻŋāĻāĻŋ āĻ¨ā§āĻā§ āĻļā§āĻˇ āĻšāĻ¯āĻŧāĨ¤ āĻĒāĻžāĻ¸āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄāĻā§āĻ˛āĻŋ āĻ¯āĻžāĻ¤ā§ "āĻā§āĻ˛ā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻž" āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻŽāĻ¨ā§ āĻĨāĻžāĻā§ āĻāĻŦāĻ āĻ¸ā§āĻ°āĻā§āĻˇāĻžāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¯ā§āĻā§āĻ¯āĻ¤āĻž āĻ¨āĻˇā§āĻ āĻ¨āĻž āĻšāĻ¯āĻŧ āĻ¤āĻž āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻ°āĻ¯āĻŧā§āĻā§ āĻā§-āĻĢā§āĻ¯āĻžāĻā§āĻāĻ° āĻ
āĻĨā§āĻ¨āĻāĻŋāĻā§āĻļāĻ¨ (2FA)ā§ˇ
āĻāĻāĻāĻŋ āĻĄāĻŋāĻāĻžāĻāĻ¸ā§āĻ° āĻŽāĻžāĻ˛āĻŋāĻāĻžāĻ¨āĻž āĻāĻŦāĻ āĻāĻāĻŋāĻ° āĻĒāĻŋāĻ¨ āĻāĻžāĻ¨āĻžāĻ° āĻ¸āĻāĻŽāĻŋāĻļā§āĻ°āĻŖā§āĻ° āĻāĻžāĻ°āĻŖā§, āĻĒāĻŋāĻ¨ āĻ¨āĻŋāĻā§āĻ āĻ¸āĻšāĻ āĻāĻŦāĻ āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻž āĻ¸āĻšāĻ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻĒāĻŋāĻ¨ā§āĻ° āĻĻā§āĻ°ā§āĻā§āĻ¯ āĻŦāĻž āĻāĻ˛ā§āĻŽā§āĻ˛ā§āĻ¤āĻžāĻ° āĻ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻā§āĻ˛āĻŋ āĻļāĻžāĻ°ā§āĻ°āĻŋāĻ āĻĻāĻāĻ˛ā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧāĻ¤āĻž āĻāĻŦāĻ āĻĒāĻŋāĻ¨ āĻŦā§āĻ°ā§āĻ āĻĢā§āĻ°ā§āĻ¸ā§āĻ° āĻāĻĒāĻ° āĻŦāĻŋāĻ§āĻŋāĻ¨āĻŋāĻˇā§āĻ§ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ āĻĢāĻ¸ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻāĻĒāĻ°āĻ¨ā§āĻ¤ā§, āĻāĻāĻŋ āĻ¸āĻ°āĻāĻžāĻ°ā§ āĻ¸āĻāĻ¸ā§āĻĨāĻžāĻā§āĻ˛āĻŋāĻ¤ā§ āĻāĻā§ āĻ¯ā§ āĻ¤āĻžāĻ°āĻž āĻ¸āĻŦāĻāĻŋāĻā§ GOST āĻ āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¯āĻŧāĨ¤ āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸ā§ āĻ˛āĻ āĻāĻ¨ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ 2FA āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻž āĻšāĻŦā§āĨ¤ āĻāĻŽāĻŋ āĻĻā§āĻ° āĻĨā§āĻā§ āĻļā§āĻ°ā§ āĻāĻ°āĻŦāĨ¤
PAM āĻŽāĻĄāĻŋāĻāĻ˛
āĻĒā§āĻ˛āĻžāĻā§āĻŦāĻ˛ āĻ
āĻĨā§āĻ¨ā§āĻāĻŋāĻā§āĻļāĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛ (PAM) āĻšāĻ˛ āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ API āĻ¸āĻš āĻŽāĻĄāĻŋāĻāĻ˛ āĻāĻŦāĻ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻā§āĻ˛āĻŋāĻ¤ā§ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨āĨ¤
PAM āĻāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻāĻŽāĻ¨ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻāĻāĻŋāĻ˛āĻŋāĻāĻŋ āĻāĻŦāĻ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻā§āĻ˛āĻŋ āĻ¸ā§āĻā§āĻ˛āĻŋāĻā§ āĻ¤ā§āĻ˛ā§ āĻ¨ā§āĻ¯āĻŧ āĻāĻŦāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ā§ˇ
āĻ
āĻ¨ā§āĻļā§āĻ˛āĻ¨ā§, āĻāĻāĻŋ āĻāĻāĻ°āĻāĻŽ āĻāĻŋāĻā§ āĻāĻžāĻ āĻāĻ°ā§: āĻ˛āĻāĻāĻ¨ āĻāĻŽāĻžāĻ¨ā§āĻĄ PAM āĻāĻ˛ āĻāĻ°ā§, āĻ¯āĻž āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĢāĻžāĻāĻ˛ā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻŽāĻĄāĻŋāĻāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§ āĻāĻŦāĻ āĻĢāĻ˛āĻžāĻĢāĻ˛āĻāĻŋ āĻ˛āĻāĻāĻ¨ āĻāĻŽāĻžāĻ¨ā§āĻĄā§ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻ¯āĻŧāĨ¤
librtpam
āĻ ā§āĻ¯āĻžāĻā§āĻāĻŋāĻ āĻā§āĻŽā§āĻĒāĻžāĻ¨āĻŋāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¤ā§āĻ°āĻŋ āĻŽāĻĄāĻŋāĻāĻ˛āĻāĻŋ āĻāĻžāĻ°ā§āĻšāĻ¸ā§āĻĨā§āĻ¯ āĻā§āĻ°āĻŋāĻĒā§āĻā§āĻā§āĻ°āĻžāĻĢāĻŋāĻ° āĻ¸āĻ°ā§āĻŦāĻļā§āĻˇ āĻŽāĻžāĻ¨ āĻ āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻ ā§āĻ¯āĻžāĻ¸āĻŋāĻŽā§āĻā§āĻ°āĻŋāĻ āĻā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻāĻžāĻ°ā§āĻĄ āĻŦāĻž USB āĻā§āĻā§āĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻĻā§āĻŦāĻŋ-āĻĢā§āĻ¯āĻžāĻā§āĻāĻ° āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖ āĻ¯ā§āĻ āĻāĻ°ā§āĨ¤
āĻāĻ¸ā§āĻ¨ āĻāĻ° āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨ā§āĻ° āĻ¨ā§āĻ¤āĻŋāĻāĻŋ āĻĻā§āĻāĻŋ:
- āĻā§āĻā§āĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻļāĻāĻ¸āĻžāĻĒāĻ¤ā§āĻ° āĻāĻŦāĻ āĻāĻ° āĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻāĻ¤ āĻā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°ā§;
- āĻ¸āĻžāĻ°ā§āĻāĻŋāĻĢāĻŋāĻā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻšā§āĻŽ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻŦāĻŋāĻļā§āĻŦāĻ¸ā§āĻ¤ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻā§:
- āĻ°ā§āĻā§āĻā§āĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻāĻ¤ āĻļāĻāĻ¸āĻžāĻĒāĻ¤ā§āĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻāĻ°ā§āĨ¤
- āĻā§āĻā§āĻ¨ āĻĒāĻŋāĻ¨ āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻāĻ°āĻž āĻšāĻ¯āĻŧ.
- āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻĄā§āĻāĻž āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻ°ā§āĻā§āĻā§āĻ¨ āĻāĻŋāĻĒā§ āĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻāĻ¤ āĻā§āĻ¤ā§ āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤
- āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§āĻĒ āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ°āĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻļāĻāĻ¸āĻžāĻĒāĻ¤ā§āĻ° āĻĨā§āĻā§ āĻ¸āĻ°ā§āĻŦāĻāĻ¨ā§āĻ¨ āĻā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¯āĻžāĻāĻžāĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
- āĻŽāĻĄāĻŋāĻāĻ˛āĻāĻŋ āĻāĻ˛āĻŋāĻ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§ āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ° āĻ¯āĻžāĻāĻžāĻāĻāĻ°āĻŖā§āĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§āĨ¤
āĻāĻĒāĻ¨āĻŋ GOST R 34.10-2012 āĻā§ (āĻĻā§āĻ°ā§āĻā§āĻ¯ 256 āĻŦāĻž 512 āĻŦāĻŋāĻ) āĻŦāĻž āĻĒā§āĻ°āĻžāĻ¨ā§ GOST R 34.10-2001 āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤
āĻāĻĒāĻ¨āĻžāĻā§ āĻā§āĻā§āĻ˛āĻŋāĻ° āĻ¸ā§āĻ°āĻā§āĻˇāĻž āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻŋāĻ¨ā§āĻ¤āĻž āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¨āĻž - āĻāĻā§āĻ˛āĻŋ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻ°ā§āĻā§āĻā§āĻ¨ā§ āĻ¤ā§āĻ°āĻŋ āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻā§āĻ°āĻŋāĻĒā§āĻā§āĻā§āĻ°āĻžāĻĢāĻŋāĻ āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ˛āĻžāĻĒā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻāĻŋāĻ° āĻ¸ā§āĻŽā§āĻ¤āĻŋ āĻāĻāĻ¨āĻ āĻā§āĻĄāĻŧā§ āĻ¯āĻžāĻ¯āĻŧ āĻ¨āĻžāĨ¤
āĻ°ā§āĻā§āĻā§āĻ¨ āĻāĻĄāĻŋāĻāĻ¸ 2.0 āĻāĻ¨āĻĄāĻŋāĻāĻŋ 4 āĻ
āĻ¨ā§āĻ¸āĻžāĻ°ā§ FSB āĻāĻŦāĻ FSTEC āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻ¯āĻŧāĻŋāĻ¤, āĻ¤āĻžāĻ āĻāĻāĻŋ āĻā§āĻĒāĻ¨ā§āĻ¯āĻŧ āĻ¤āĻĨā§āĻ¯ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°ā§ āĻāĻŽāĻ¨ āĻ¤āĻĨā§āĻ¯ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻŋāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°
āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻ¯ā§āĻā§āĻ¨ā§ āĻāĻ§ā§āĻ¨āĻŋāĻ āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸ āĻāĻ°āĻŦā§, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ āĻāĻŽāĻ°āĻž xUbuntu 18.10 āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦāĨ¤
1) āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°ā§āĻ¨
sudo apt-get install libccid pcscd opensc
āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻ¨āĻ¸ā§āĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻĄā§āĻ¸ā§āĻāĻāĻĒ āĻ˛āĻ āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨ āĻ¤āĻŦā§ āĻĒā§āĻ¯āĻžāĻā§āĻāĻāĻŋ āĻ
āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤āĻāĻžāĻŦā§ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°ā§āĻ¨ libpam-pkcs11
.
2) GOST āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¸āĻš āĻāĻāĻāĻŋ PAM āĻŽāĻĄāĻŋāĻāĻ˛ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨
āĻĨā§āĻā§ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻ˛ā§āĻĄ āĻšāĻā§āĻā§
PAM āĻĢā§āĻ˛ā§āĻĄāĻžāĻ°ā§āĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ librtpam.so.1.0.0 āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻĢā§āĻ˛ā§āĻĄāĻžāĻ°ā§ āĻ
āĻ¨ā§āĻ˛āĻŋāĻĒāĻŋ āĻāĻ°ā§āĻ¨
/usr/lib/
āĻŦāĻž /usr/lib/x86_64-linux-gnu/
āĻŦāĻž /usr/lib64
3) librtpkcs11ecp.so āĻĻāĻŋāĻ¯āĻŧā§ āĻĒā§āĻ¯āĻžāĻā§āĻāĻāĻŋ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°ā§āĻ¨
āĻ˛āĻŋāĻā§āĻ āĻĨā§āĻā§ DEB āĻŦāĻž RPM āĻĒā§āĻ¯āĻžāĻā§āĻ āĻĄāĻžāĻāĻ¨āĻ˛ā§āĻĄ āĻāĻŦāĻ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°ā§āĻ¨:
4) āĻā§āĻ āĻāĻ°ā§āĻ¨ āĻ¯ā§ āĻ°ā§āĻā§āĻā§āĻ¨ āĻāĻĄāĻŋāĻāĻ¸ 2.0 āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻāĻžāĻ āĻāĻ°ā§
āĻāĻžāĻ°ā§āĻŽāĻŋāĻ¨āĻžāĻ˛ā§ āĻāĻŽāĻ°āĻž āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻ āĻāĻ°āĻŋ
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -T
āĻ˛āĻžāĻāĻ¨ āĻĻā§āĻāĻ˛ā§ Rutoken ECP <no label>
- āĻ¤āĻžāĻ° āĻŽāĻžāĻ¨ā§ āĻ¸āĻŦ āĻ āĻŋāĻ āĻāĻā§āĨ¤
5) āĻ¸āĻžāĻ°ā§āĻāĻŋāĻĢāĻŋāĻā§āĻ āĻĒāĻĄāĻŧā§āĻ¨
āĻĄāĻŋāĻāĻžāĻāĻ¸āĻāĻŋāĻ¤ā§ āĻāĻāĻāĻŋ āĻļāĻāĻ¸āĻžāĻĒāĻ¤ā§āĻ° āĻāĻā§ āĻāĻŋāĻ¨āĻž āĻ¤āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻž āĻšāĻā§āĻā§
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -O
āĻ¯āĻĻāĻŋ āĻ˛āĻžāĻāĻ¨ā§āĻ° āĻĒāĻ°ā§:
Using slot 0 with a present token (0x0)
- āĻ¤āĻĨā§āĻ¯ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻā§ āĻāĻŦāĻ āĻļāĻāĻ¸āĻžāĻĒāĻ¤ā§āĻ° āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§, āĻāĻĒāĻ¨āĻžāĻā§ āĻļāĻāĻ¸āĻžāĻĒāĻ¤ā§āĻ°āĻāĻŋ āĻĒāĻĄāĻŧāĻ¤ā§ āĻšāĻŦā§ āĻāĻŦāĻ āĻĄāĻŋāĻ¸ā§āĻā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻāĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻāĻŽāĻžāĻ¨ā§āĻĄāĻāĻŋ āĻāĻžāĻ˛āĻžāĻ¨, āĻ¯ā§āĻāĻžāĻ¨ā§ {id} āĻāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻ¸āĻžāĻ°ā§āĻāĻŋāĻĢāĻŋāĻā§āĻ āĻāĻāĻĄāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¯āĻž āĻāĻĒāĻ¨āĻŋ āĻĒā§āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§ āĻāĻŽāĻžāĻ¨ā§āĻĄā§āĻ° āĻāĻāĻāĻĒā§āĻā§ āĻĻā§āĻā§āĻāĻŋāĻ˛ā§āĻ¨:
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -r -y cert --id {id} --output-file cert.crt
āĻ¯āĻĻāĻŋ cert.crt āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ§āĻžāĻĒ 6 āĻ āĻ¯āĻžāĻ¨)āĨ¤ - āĻ¸ā§āĻāĻžāĻ¨ā§ āĻāĻŋāĻā§āĻ āĻ¨ā§āĻ, āĻ¤āĻžāĻšāĻ˛ā§ āĻĄāĻŋāĻāĻžāĻāĻ¸āĻāĻŋ āĻāĻžāĻ˛āĻŋāĨ¤ āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻļāĻžāĻ¸āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻāĻžāĻ¯ā§āĻ āĻāĻ°ā§āĻ¨ āĻŦāĻž āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻ§āĻžāĻĒ āĻ āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°ā§ āĻā§ āĻāĻŦāĻ āĻļāĻāĻ¸āĻžāĻĒāĻ¤ā§āĻ° āĻ¨āĻŋāĻā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨āĨ¤
5.1) āĻāĻāĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻļāĻāĻ¸āĻžāĻĒāĻ¤ā§āĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨
āĻŽāĻ¨ā§āĻ¯ā§āĻ! āĻā§ āĻāĻŦāĻ āĻļāĻāĻ¸āĻžāĻĒāĻ¤ā§āĻ° āĻ¤ā§āĻ°āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻ°ā§āĻŖāĻŋāĻ¤ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻā§āĻ˛āĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¯ā§āĻā§āĻ¤ āĻāĻŦāĻ āĻ¯ā§āĻĻā§āĻ§ āĻŽā§āĻĄā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ā§ āĻ¨āĻ¯āĻŧāĨ¤ āĻāĻāĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻˇā§āĻ āĻžāĻ¨ā§āĻ° āĻŦāĻŋāĻļā§āĻŦāĻ¸ā§āĻ¤ āĻ¸āĻžāĻ°ā§āĻāĻŋāĻĢāĻŋāĻā§āĻļāĻ¨ āĻāĻ°ā§āĻ¤ā§āĻĒāĻā§āĻˇ āĻŦāĻž āĻāĻāĻāĻŋ āĻ¸ā§āĻŦā§āĻā§āĻ¤ āĻļāĻāĻ¸āĻžāĻĒāĻ¤ā§āĻ° āĻāĻ°ā§āĻ¤ā§āĻĒāĻā§āĻˇ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻžāĻ°āĻŋ āĻāĻ°āĻž āĻā§ āĻāĻŦāĻ āĻļāĻāĻ¸āĻžāĻĒāĻ¤ā§āĻ°āĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ā§ˇ
PAM āĻŽāĻĄāĻŋāĻāĻ˛āĻāĻŋ āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻāĻŽā§āĻĒāĻŋāĻāĻāĻžāĻ°āĻā§āĻ˛āĻŋāĻā§ āĻ¸ā§āĻ°āĻā§āĻˇāĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻā§āĻ āĻĒā§āĻ°āĻ¤āĻŋāĻˇā§āĻ āĻžāĻ¨ā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻ¯ā§āĻšā§āĻ¤ā§ āĻ āĻ˛ā§āĻĒāĻ¸āĻāĻā§āĻ¯āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻāĻā§, āĻ¤āĻžāĻ āĻĒā§āĻ°āĻļāĻžāĻ¸āĻ āĻ¸āĻžāĻ°ā§āĻāĻŋāĻĢāĻŋāĻā§āĻ āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻšāĻžāĻ° āĻāĻŦāĻ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻŋ āĻ ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻ āĻŦā§āĻ˛āĻ āĻāĻ°āĻžāĻ° āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ āĻ¸āĻžāĻ°ā§āĻāĻŋāĻĢāĻŋāĻā§āĻā§āĻ° āĻŦā§āĻ§āĻ¤āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧāĻāĻžāĻ˛ āĻĒāĻ°ā§āĻ¯āĻŦā§āĻā§āĻˇāĻŖ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ PAM āĻŽāĻĄāĻŋāĻāĻ˛ āĻāĻāĻ¨āĻ āĻāĻžāĻ¨ā§ āĻ¨āĻž āĻāĻŋāĻāĻžāĻŦā§ CRL āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¸āĻžāĻ°ā§āĻāĻŋāĻĢāĻŋāĻā§āĻ āĻ¯āĻžāĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻŦāĻŋāĻļā§āĻŦāĻžāĻ¸ā§āĻ° āĻā§āĻāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧāĨ¤
āĻ¸āĻšāĻ āĻāĻĒāĻžāĻ¯āĻŧ (āĻŦā§āĻ°āĻžāĻāĻāĻžāĻ°ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§)
āĻāĻāĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻļāĻāĻ¸āĻžāĻĒāĻ¤ā§āĻ° āĻĒā§āĻ¤ā§, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨
āĻā§āĻā§āĻ° āĻĒāĻĨ (āĻāĻ¨āĻ¸ā§āĻ˛ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻŦāĻ āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻāĻŽā§āĻĒāĻžāĻāĻ˛āĻžāĻ°ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§)
OpenSC āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§āĻ¨
$ opensc-tool --version
āĻāĻžāĻ°ā§āĻ¸āĻ¨āĻāĻŋ 0.20 āĻāĻ° āĻāĻŽ āĻšāĻ˛ā§ āĻāĻĒāĻĄā§āĻ āĻŦāĻž āĻŦāĻŋāĻ˛ā§āĻĄ āĻāĻ°ā§āĻ¨
āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻā§ āĻā§āĻĄāĻŧāĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨:
--key-type: GOSTR3410-2012-512:Đ (ĐĐĐĄĐĸ-2012 512 йиŅ c ĐŋĐ°ŅĐ°ĐŧŅĐĩŅĐžĐŧ Đ), GOSTR3410-2012-256:A (ĐĐĐĄĐĸ-2012 256 йиŅ Ņ ĐŋĐ°ŅĐ°ĐŧŅĐĩŅĐžĐŧ A)
--id:
ASCII āĻā§āĻŦāĻŋāĻ˛ āĻĨā§āĻā§ āĻĻā§āĻ-āĻ¸āĻāĻā§āĻ¯āĻžāĻ° āĻšā§āĻā§āĻ¸ āĻ
āĻā§āĻˇāĻ° āĻ¸āĻāĻā§āĻ¯āĻž āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ
āĻŦāĻā§āĻā§āĻ āĻāĻāĻĄā§āĻ¨ā§āĻāĻŋāĻĢāĻžāĻ¯āĻŧāĻžāĻ° (CKA_ID)āĨ¤ āĻŽā§āĻĻā§āĻ°āĻŖāĻ¯ā§āĻā§āĻ¯ āĻ
āĻā§āĻˇāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° ASCII āĻā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨, āĻāĻžāĻ°āĻŖ... id āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ OpenSSL āĻ āĻĒāĻžāĻ¸ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, ASCII āĻā§āĻĄ "3132" āĻ¸ā§āĻā§āĻ°āĻŋāĻ "12" āĻāĻ° āĻ¸āĻžāĻĨā§ āĻŽāĻŋāĻ˛ā§ āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻĒāĻ¨āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
$ ./pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --keypairgen --key-type GOSTR3410-2012-512:A -l --id 3132
āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻļāĻāĻ¸āĻžāĻĒāĻ¤ā§āĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦāĨ¤ āĻĻā§āĻāĻŋ āĻāĻĒāĻžāĻ¯āĻŧ āĻ¨ā§āĻā§ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻž āĻšāĻŦā§: āĻĒā§āĻ°āĻĨāĻŽāĻāĻŋ āĻāĻāĻāĻŋ CA āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ (āĻāĻŽāĻ°āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž CA āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦ), āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧāĻāĻŋ āĻ¸ā§āĻŦ-āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ°āĻŋāĻ¤ā§ˇ āĻāĻāĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻĒāĻ¨āĻžāĻā§ āĻĒā§āĻ°āĻĨāĻŽā§ āĻāĻĒā§āĻ¨āĻāĻ¸āĻāĻ¸āĻāĻ˛ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ 1.1 āĻŦāĻž āĻ¤āĻžāĻ° āĻĒāĻ°ā§ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻŦāĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻŦāĻŋāĻļā§āĻˇ rtengine āĻŽāĻĄāĻŋāĻāĻ˛ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ°ā§āĻā§āĻā§āĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻ¤ā§āĨ¤
āĻ¯ā§āĻŽāĻ¨: '-āĻāĻ° āĻāĻ¨ā§āĻ¯-id 3132
' OpenSSL āĻ āĻāĻĒāĻ¨āĻžāĻā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ "pkcs11:id=12
"āĨ¤
āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž CA āĻāĻ° āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, āĻ¯āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ
āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻ°āĻ¯āĻŧā§āĻā§, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ,
āĻāĻ°ā§āĻāĻāĻŋ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻšāĻ˛ āĻ
āĻ˛āĻ¸āĻ¤āĻž āĻā§āĻĄāĻŧā§ āĻĻā§āĻāĻ¯āĻŧāĻž āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ¸ā§āĻŦ-āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ°āĻŋāĻ¤ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž
$ openssl req -utf8 -new -keyform engine -key "pkcs11:id=12" -engine rtengine -out req.csr
āĻĄāĻŋāĻāĻžāĻāĻ¸ā§ āĻ¸āĻžāĻ°ā§āĻāĻŋāĻĢāĻŋāĻā§āĻ āĻāĻĒāĻ˛ā§āĻĄ āĻāĻ°āĻž āĻšāĻā§āĻā§
$ openssl req -utf8 -x509 -keyform engine -key "pkcs11:id=12" -engine rtengine -out cert.cer
6) āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻ¸āĻžāĻ°ā§āĻāĻŋāĻĢāĻŋāĻā§āĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻ¨ āĻāĻ°ā§āĻ¨
āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°ā§āĻ¨ āĻ¯ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻļāĻāĻ¸āĻžāĻĒāĻ¤ā§āĻ° āĻāĻāĻāĻŋ base64 āĻĢāĻžāĻāĻ˛ā§āĻ° āĻŽāĻ¤ āĻĻā§āĻāĻžāĻā§āĻā§:
āĻ¯āĻĻāĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻļāĻāĻ¸āĻžāĻĒāĻ¤ā§āĻ° āĻāĻ āĻŽāĻ¤ āĻĻā§āĻāĻžāĻ¯āĻŧ:
āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻĒāĻ¨āĻžāĻā§ āĻļāĻāĻ¸āĻžāĻĒāĻ¤ā§āĻ°āĻāĻŋāĻā§ DER āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ āĻĨā§āĻā§ PEM āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ā§ āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ (base64)
$ openssl x509 -in cert.crt -out cert.pem -inform DER -outform PEM
āĻāĻŽāĻ°āĻž āĻāĻŦāĻžāĻ° āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻŋ āĻ¯ā§ āĻāĻāĻ¨ āĻ¸āĻŦāĻāĻŋāĻā§ āĻ āĻŋāĻ āĻāĻā§āĨ¤
āĻŦāĻŋāĻļā§āĻŦāĻ¸ā§āĻ¤ āĻ¸āĻžāĻ°ā§āĻāĻŋāĻĢāĻŋāĻā§āĻā§āĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ¯āĻŧ āĻ¸āĻžāĻ°ā§āĻāĻŋāĻĢāĻŋāĻā§āĻ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨
$ mkdir ~/.eid
$ chmod 0755 ~/.eid
$ cat cert.pem >> ~/.eid/authorized_certificates
$ chmod 0644 ~/.eid/authorized_certificates
āĻļā§āĻˇ āĻ˛āĻžāĻāĻ¨āĻāĻŋ āĻŦāĻŋāĻļā§āĻŦāĻ¸ā§āĻ¤ āĻ¸āĻžāĻ°ā§āĻāĻŋāĻĢāĻŋāĻā§āĻā§āĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻā§ āĻ
āĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻĻā§āĻ°ā§āĻāĻāĻ¨āĻžāĻā§āĻ°āĻŽā§ āĻŦāĻž āĻāĻā§āĻāĻžāĻā§āĻ¤āĻāĻžāĻŦā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž āĻĨā§āĻā§ āĻ°āĻā§āĻˇāĻž āĻāĻ°ā§āĨ¤ āĻāĻāĻŋ āĻāĻžāĻāĻā§ āĻāĻāĻžāĻ¨ā§ āĻ¤āĻžāĻĻā§āĻ° āĻļāĻāĻ¸āĻžāĻĒāĻ¤ā§āĻ° āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻāĻŦāĻ āĻāĻĒāĻ¨āĻžāĻ° āĻĒāĻā§āĻˇā§ āĻ˛āĻ āĻāĻ¨ āĻāĻ°āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ āĻšāĻ¤ā§ āĻŦāĻžāĻ§āĻž āĻĻā§āĻ¯āĻŧā§ˇ
7) āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖ āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°ā§āĻ¨
āĻāĻŽāĻžāĻĻā§āĻ° PAM āĻŽāĻĄāĻŋāĻāĻ˛ āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°āĻž āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ°ā§āĻĒā§ āĻāĻĻāĻ°ā§āĻļ āĻāĻŦāĻ āĻ
āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻŽāĻĄāĻŋāĻāĻ˛ āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°āĻžāĻ° āĻŽāĻ¤ā§ āĻ āĻŋāĻ āĻāĻāĻāĻāĻžāĻŦā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻĢāĻžāĻāĻ˛ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ /usr/share/pam-configs/rutoken-gost-pam
āĻŽāĻĄāĻŋāĻāĻ˛ā§āĻ° āĻĒā§āĻ°ā§ āĻ¨āĻžāĻŽ āĻ§āĻžāĻ°āĻŖ āĻāĻ°ā§, āĻāĻāĻŋ āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻŋāĻ¨āĻž, āĻŽāĻĄāĻŋāĻāĻ˛ā§āĻ° āĻ
āĻā§āĻ°āĻžāĻ§āĻŋāĻāĻžāĻ° āĻāĻŦāĻ āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋāĨ¤
āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖā§āĻ° āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋāĻā§āĻ˛āĻŋāĻ¤ā§ āĻ
āĻĒāĻžāĻ°ā§āĻļāĻ¨ā§āĻ° āĻ¸āĻžāĻĢāĻ˛ā§āĻ¯ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧāĻ¤āĻž āĻ°āĻ¯āĻŧā§āĻā§:
- āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ: āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻŽāĻĄāĻŋāĻāĻ˛ āĻ āĻŦāĻļā§āĻ¯āĻ āĻāĻāĻāĻŋ āĻāĻ¤āĻŋāĻŦāĻžāĻāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻŦā§āĨ¤ āĻ¯āĻĻāĻŋ āĻāĻāĻāĻŋ āĻŽāĻĄāĻŋāĻāĻ˛ āĻāĻ˛ā§āĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ā§ āĻāĻāĻāĻŋ āĻ¨ā§āĻ¤āĻŋāĻŦāĻžāĻāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĨāĻžāĻā§, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖ āĻ¤ā§āĻ°ā§āĻāĻŋāĻ° āĻāĻžāĻ°āĻŖ āĻšāĻŦā§ā§ˇ āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻŦāĻžāĻĻ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻŦā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ āĻŦāĻļāĻŋāĻˇā§āĻ āĻŽāĻĄāĻŋāĻāĻ˛ āĻāĻ˛ āĻāĻ°āĻž āĻšāĻŦā§.
- āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ: āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻ āĻ¨ā§āĻ°ā§āĻĒ, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§ āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖ āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻŽāĻĄāĻŋāĻāĻ˛ āĻāĻĒā§āĻā§āĻˇāĻž āĻāĻ°ā§āĨ¤
- āĻ¯āĻĨā§āĻˇā§āĻ: āĻ¯āĻĻāĻŋ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻŽāĻĄāĻŋāĻāĻ˛ā§āĻ° āĻāĻā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻŦāĻž āĻĒāĻ°ā§āĻ¯āĻžāĻĒā§āĻ¤ āĻŽāĻĄāĻŋāĻāĻ˛āĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋāĻ āĻ¨ā§āĻ¤āĻŋāĻŦāĻžāĻāĻ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ¨āĻž āĻĻā§āĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻŽāĻĄāĻŋāĻāĻ˛āĻāĻŋ āĻāĻāĻāĻŋ āĻāĻ¤āĻŋāĻŦāĻžāĻāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻŦā§āĨ¤ āĻ āĻŦāĻļāĻŋāĻˇā§āĻ āĻŽāĻĄāĻŋāĻāĻ˛ āĻāĻĒā§āĻā§āĻˇāĻž āĻāĻ°āĻž āĻšāĻŦā§.
- āĻāĻā§āĻāĻŋāĻ: āĻ¯āĻĻāĻŋ āĻ¸ā§āĻā§āĻ¯āĻžāĻā§āĻ° āĻāĻĒāĻ° āĻā§āĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻŽāĻĄāĻŋāĻāĻ˛ āĻ¨āĻž āĻĨāĻžāĻā§ āĻāĻŦāĻ āĻĒāĻ°ā§āĻ¯āĻžāĻĒā§āĻ¤ āĻŽāĻĄāĻŋāĻāĻ˛āĻā§āĻ˛āĻŋāĻ° āĻā§āĻ¨āĻāĻŋāĻ āĻāĻ¤āĻŋāĻŦāĻžāĻāĻ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ¨āĻž āĻĻā§āĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻ āĻ¨ā§āĻ¤āĻ¤ āĻāĻāĻāĻŋ āĻāĻā§āĻāĻŋāĻ āĻŽāĻĄāĻŋāĻāĻ˛ āĻ āĻŦāĻļā§āĻ¯āĻ āĻāĻāĻāĻŋ āĻāĻ¤āĻŋāĻŦāĻžāĻāĻ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻŦā§āĨ¤
āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻĢāĻžāĻāĻ˛ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ /usr/share/pam-configs/rutoken-gost-pam
:
Name: Rutoken PAM GOST
Default: yes
Priority: 800
Auth-Type: Primary
Auth: sufficient /usr/lib/librtpam.so.1.0.0 /usr/lib/librtpkcs11ecp.so
āĻĢāĻžāĻāĻ˛ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°ā§āĻ¨, āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻžāĻ˛āĻžāĻ¨
$ sudo pam-auth-update
āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻāĻāĻ¨ā§āĻĄā§āĻ¤ā§, āĻāĻāĻŋāĻ° āĻĒāĻžāĻļā§ āĻāĻāĻāĻŋ āĻ¤āĻžāĻ°āĻāĻžāĻāĻŋāĻšā§āĻ¨ āĻ°āĻžāĻā§āĻ¨ āĻ°ā§āĻā§āĻā§āĻ¨ PAM GOST āĻāĻŦāĻ āĻ§āĻžāĻā§āĻāĻž OK
8) āĻ¸ā§āĻāĻŋāĻāĻ¸ āĻā§āĻ āĻāĻ°ā§āĻ¨
āĻ¸āĻŦāĻāĻŋāĻā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻ¤āĻž āĻŦā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻ āĻ¸āĻŽāĻ¯āĻŧā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻ˛āĻ āĻāĻ¨ āĻāĻ°āĻžāĻ° āĻā§āĻˇāĻŽāĻ¤āĻž āĻšāĻžāĻ°āĻžāĻŦā§āĻ¨ āĻ¨āĻž, āĻāĻŽāĻžāĻ¨ā§āĻĄāĻāĻŋ āĻĒā§āĻ°āĻŦā§āĻļ āĻāĻ°āĻžāĻ¨
$ sudo login
āĻāĻĒāĻ¨āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻ¨āĻžāĻŽ āĻ˛āĻŋāĻā§āĻ¨. āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻāĻāĻāĻŋ āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻĒāĻŋāĻ¨ āĻā§āĻĄ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ˛ā§ āĻ¸āĻŦāĻāĻŋāĻā§ āĻ¸āĻ āĻŋāĻāĻāĻžāĻŦā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
9) āĻā§āĻā§āĻ¨ āĻŦā§āĻ° āĻāĻ°āĻž āĻšāĻ˛ā§ āĻŦā§āĻ˛āĻ āĻāĻ°āĻž āĻāĻŽā§āĻĒāĻŋāĻāĻāĻžāĻ° āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°ā§āĻ¨
āĻĒā§āĻ¯āĻžāĻā§āĻ āĻ
āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ libpam-pkcs11
āĻāĻāĻāĻŋāĻ˛āĻŋāĻāĻŋ āĻ
āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ pkcs11_eventmgr,
āĻ¯āĻž āĻāĻĒāĻ¨āĻžāĻā§ PKCS#11 āĻāĻā§āĻ¨ā§āĻ āĻāĻāĻ˛ā§ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧāĨ¤
āĻ¸ā§āĻāĻŋāĻāĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ pkcs11_eventmgr
āĻāĻāĻāĻŋ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĢāĻžāĻāĻ˛ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°ā§: /etc/pam_pkcs11/pkcs11_eventmgr.conf
āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸ āĻĄāĻŋāĻ¸ā§āĻā§āĻ°āĻŋāĻŦāĻŋāĻāĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯, āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻāĻžāĻ°ā§āĻĄ āĻŦāĻž āĻā§āĻā§āĻ¨ āĻ¸āĻ°āĻžāĻ¨ā§ āĻšāĻ˛ā§ āĻ¯ā§ āĻāĻŽāĻžāĻ¨ā§āĻĄā§āĻ° āĻāĻžāĻ°āĻŖā§ āĻ
ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻ āĻ˛āĻ āĻšāĻ¯āĻŧā§ āĻ¯āĻžāĻ¯āĻŧ āĻ¤āĻž āĻāĻŋāĻ¨ā§āĻ¨ āĻšāĻŦā§āĨ¤ āĻ¸ā§āĻŽāĻŋ. event card_remove
.
āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĢāĻžāĻāĻ˛ āĻ¨ā§āĻā§ āĻĻā§āĻāĻžāĻ¨ā§ āĻšāĻ¯āĻŧā§āĻā§:
pkcs11_eventmgr
{
# ĐĐ°ĐŋŅŅĐē в ĐąŅĐēĐŗŅĐ°ŅĐŊĐ´Đĩ
daemon = true;
# ĐĐ°ŅŅŅОКĐēĐ° ŅООйŅĐĩĐŊиК ĐžŅĐģĐ°Đ´Đēи
debug = false;
# ĐŅĐĩĐŧŅ ĐžĐŋŅĐžŅĐ° в ŅĐĩĐēŅĐŊĐ´Đ°Ņ
polling_time = 1;
# ĐŖŅŅĐ°ĐŊОвĐēĐ° ŅĐ°ĐšĐŧ-Đ°ŅŅĐ° ĐŊĐ° ŅĐ´Đ°ĐģĐĩĐŊиĐĩ ĐēĐ°ŅŅŅ
# ĐĐž-ŅĐŧĐžĐģŅĐ°ĐŊиŅ 0
expire_time = 0;
# ĐŅйОŅ pkcs11 йийĐģиОŅĐĩĐēи Đ´ĐģŅ ŅайОŅŅ Ņ Đ ŅŅĐžĐēĐĩĐŊ
pkcs11_module = usr/lib/librtpkcs11ecp.so;
# ĐĐĩĐšŅŅвиŅ Ņ ĐēĐ°ŅŅОК
# ĐĐ°ŅŅĐ° вŅŅавĐģĐĩĐŊĐ°:
event card_insert {
# ĐŅŅавĐģŅĐĩĐŧ СĐŊĐ°ŅĐĩĐŊиŅ ĐŋĐž ŅĐŧĐžĐģŅĐ°ĐŊиŅ (ĐŊиŅĐĩĐŗĐž ĐŊĐĩ ĐŋŅОиŅŅ
ОдиŅ)
on_error = ignore ;
action = "/bin/false";
}
# ĐĐ°ŅŅĐ° иСвĐģĐĩŅĐĩĐŊĐ°
event card_remove {
on_error = ignore;
# ĐŅСŅваĐĩĐŧ ŅŅĐŊĐēŅиŅ ĐąĐģĐžĐēиŅОвĐēи ŅĐēŅĐ°ĐŊĐ°
# ĐĐģŅ GNOME
action = "dbus-send --type=method_call --dest=org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock";
# ĐĐģŅ XFCE
# action = "xflock4";
# ĐĐģŅ Astra Linux (FLY)
# action = "fly-wmfunc FLYWM_LOCK";
}
# ĐĐ°ŅŅĐ° Đ´ĐžĐģĐŗĐžĐĩ вŅĐĩĐŧŅ иСвĐģĐĩŅĐĩĐŊĐ°
event expire_time {
# ĐŅŅавĐģŅĐĩĐŧ СĐŊĐ°ŅĐĩĐŊиŅ ĐŋĐž ŅĐŧĐžĐģŅĐ°ĐŊиŅ (ĐŊиŅĐĩĐŗĐž ĐŊĐĩ ĐŋŅОиŅŅ
ОдиŅ)
on_error = ignore;
action = "/bin/false";
}
}
āĻāĻ° āĻĒāĻ°ā§ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋ āĻ¯ā§āĻā§āĻ¤ āĻāĻ°ā§āĻ¨ pkcs11_eventmgr
āĻļā§āĻ°ā§ āĻāĻ°āĻ¤ā§ āĻāĻāĻŋ āĻāĻ°āĻ¤ā§, .bash_profile āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž āĻāĻ°ā§āĻ¨:
$ nano /home/<иĐŧŅ_ĐŋĐžĐģŅСОваŅĐĩĐģŅ>/.bash_profile
āĻĢāĻžāĻāĻ˛ā§āĻ° āĻļā§āĻˇā§ pkcs11_eventmgr āĻ˛āĻžāĻāĻ¨ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻ°āĻŋāĻŦā§āĻ āĻāĻ°ā§āĻ¨āĨ¤
āĻ āĻĒāĻžāĻ°ā§āĻāĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻ°ā§āĻŖāĻŋāĻ¤ āĻ§āĻžāĻĒāĻā§āĻ˛āĻŋ āĻāĻžāĻ°ā§āĻšāĻ¸ā§āĻĨā§āĻ¯ āĻ¸āĻš āĻ¯ā§āĻā§āĻ¨ā§ āĻāĻ§ā§āĻ¨āĻŋāĻ āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸ āĻŦāĻŋāĻ¤āĻ°āĻŖā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻžāĻŦāĻ˛ā§ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻāĻĒāĻ¸āĻāĻšāĻžāĻ°
āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸ āĻĒāĻŋāĻ¸āĻŋāĻā§āĻ˛āĻŋ āĻ°āĻžāĻļāĻŋāĻ¯āĻŧāĻžāĻ¨ āĻ¸āĻ°āĻāĻžāĻ°ā§ āĻ¸āĻāĻ¸ā§āĻĨāĻžāĻā§āĻ˛āĻŋāĻ¤ā§ āĻā§āĻ°āĻŽāĻļ āĻāĻ¨āĻĒā§āĻ°āĻŋāĻ¯āĻŧ āĻšāĻ¯āĻŧā§ āĻāĻ āĻā§ āĻāĻŦāĻ āĻāĻ āĻāĻāĻ¸ā§ āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¯ā§āĻā§āĻ¯ āĻĻā§āĻŦāĻŋ-āĻĢā§āĻ¯āĻžāĻā§āĻāĻ° āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖ āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°āĻž āĻ¸āĻŦāĻ¸āĻŽāĻ¯āĻŧ āĻ¸āĻšāĻ āĻ¨āĻ¯āĻŧāĨ¤ āĻāĻŽāĻ°āĻž āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻŋāĻāĻžāĻāĻŋāĻ° āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ā§ "āĻĒāĻžāĻ¸āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž" āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻāĻŦāĻ āĻāĻāĻŋāĻ¤ā§ āĻ
āĻ¨ā§āĻ āĻ¸āĻŽāĻ¯āĻŧ āĻŦā§āĻ¯āĻ¯āĻŧ āĻ¨āĻž āĻāĻ°ā§ āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¯ā§āĻā§āĻ¯āĻāĻžāĻŦā§ āĻāĻĒāĻ¨āĻžāĻ° āĻĒāĻŋāĻ¸āĻŋāĻ¤ā§ āĻ
ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻ°āĻā§āĻˇāĻž āĻāĻ°āĻ¤ā§ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ¤āĻž āĻāĻ°āĻ¤ā§ āĻĒā§āĻ°ā§ āĻā§āĻļāĻŋ āĻšāĻŦāĨ¤
āĻāĻ¤ā§āĻ¸: www.habr.com