เช•เซเชฒเชพเช‰เชก เชŸเซ‹เช•เชจ PKCS#11 - เชฆเช‚เชคเช•เชฅเชพ เช•เซ‡ เชตเชพเชธเซเชคเชตเชฟเช•เชคเชพ?

PKCS#11 (เช•เซเชฐเชฟเชชเซเชŸเซ‹เช•เซ€) เช RSA เชฒเซ‡เชฌเซ‹เชฐเซ‡เชŸเชฐเซ€เช เชฆเซเชตเชพเชฐเชพ เช•เซเชฐเชฟเชชเซเชŸเซ‹เช—เซเชฐเชพเชซเชฟเช• เชŸเซ‹เช•เชจเซเชธ, เชธเซเชฎเชพเชฐเซเชŸ เช•เชพเชฐเซเชกเซเชธ เช…เชจเซ‡ เช…เชจเซเชฏ เชธเชฎเชพเชจ เช‰เชชเช•เชฐเชฃเซ‹ เชธเชพเชฅเซ‡เชจเชพ เช•เชพเชฐเซเชฏเช•เซเชฐเชฎเซ‹เชจเซ€ เช•เซเชฐเชฟเชฏเชพเชชเซเชฐเชคเชฟเช•เซเชฐเชฟเชฏเชพ เชฎเชพเชŸเซ‡ เชเช• เชเช•เซ€เช•เซƒเชค เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— เชˆเชจเซเชŸเชฐเชซเซ‡เชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชตเชฟเช•เชธเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡เชฒ เชเช• เชฎเชพเชจเช• เช›เซ‡ เชœเซ‡ เชฒเชพเชˆเชฌเซเชฐเซ‡เชฐเซ€เช“ เชฆเซเชตเชพเชฐเชพ เชฒเชพเช—เซ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.

เชฐเชถเชฟเชฏเชจ เช•เซเชฐเชฟเชชเซเชŸเซ‹เช—เซเชฐเชพเชซเซ€ เชฎเชพเชŸเซ‡ PKCS#11 เชธเซเชŸเชพเชจเซเชกเชฐเซเชก "เช•เซเชฐเชฟเชชเซเชŸเซ‹เช—เซเชฐเชพเชซเชฟเช• เช‡เชจเซเชซเซ‹เชฐเซเชฎเซ‡เชถเชจ เชชเซเชฐเซ‹เชŸเซ‡เช•เซเชถเชจ" (เชŸเซ€เชธเซ€ 26).

เชœเซ‹ เช†เชชเชฃเซ‡ เชฐเชถเชฟเชฏเชจ เช•เซเชฐเชฟเชชเซเชŸเซ‹เช—เซเชฐเชพเชซเซ€เชจเชพ เชธเชฎเชฐเซเชฅเชจ เชธเชพเชฅเซ‡ เชŸเซ‹เช•เชจเซเชธ เชตเชฟเชถเซ‡ เชตเชพเชค เช•เชฐเซ€เช, เชคเซ‹ เช†เชชเชฃเซ‡ เชธเซ‹เชซเซเชŸเชตเซ‡เชฐ เชŸเซ‹เช•เชจเซเชธ, เชธเซ‹เชซเซเชŸเชตเซ‡เชฐ เช…เชจเซ‡ เชนเชพเชฐเซเชกเชตเซ‡เชฐ เชŸเซ‹เช•เชจเซเชธ เช…เชจเซ‡ เชนเชพเชฐเซเชกเชตเซ‡เชฐ เชŸเซ‹เช•เชจเซเชธ เชตเชฟเชถเซ‡ เชตเชพเชค เช•เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช.

เช•เซเชฐเชฟเชชเซเชŸเซ‹เช—เซเชฐเชพเชซเชฟเช• เชŸเซ‹เช•เชจเซเชธ PKCS#11 เชธเซเชŸเชพเชจเซเชกเชฐเซเชก เช…เชจเซเชธเชพเชฐ เชชเซเชฐเชฎเชพเชฃเชชเชคเซเชฐเซ‹ เช…เชจเซ‡ เช•เซ€ เชœเซ‹เชกเซ€ (เชœเชพเชนเซ‡เชฐ เช…เชจเซ‡ เช–เชพเชจเช—เซ€ เช•เซ€)เชจเซ‹ เชธเช‚เช—เซเชฐเชน เช…เชจเซ‡ เช•เซเชฐเชฟเชชเซเชŸเซ‹เช—เซเชฐเชพเชซเชฟเช• เช•เชพเชฎเช—เซ€เชฐเซ€เชจเซเช‚ เชชเซเชฐเชฆเชฐเซเชถเชจ เชฌเช‚เชจเซ‡ เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ‡ เช›เซ‡. เช…เชนเซ€เช‚เชจเซ€ เชจเชฌเชณเซ€ เช•เชกเซ€ เช–เชพเชจเช—เซ€ เช•เซ€เชจเซ‹ เชธเช‚เช—เซเชฐเชน เช›เซ‡. เชœเซ‹ เชธเชพเชฐเซเชตเชœเชจเชฟเช• เช•เซ€ เช–เซ‹เชตเชพเชˆ เชœเชพเชฏ, เชคเซ‹ เชคเซ‡ เชนเช‚เชฎเซ‡เชถเชพ เช–เชพเชจเช—เซ€ เช•เซ€เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชชเซเชจเชƒเชธเซเชฅเชพเชชเชฟเชค เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡ เช…เชฅเชตเชพ เชชเซเชฐเชฎเชพเชฃเชชเชคเซเชฐเชฎเชพเช‚เชฅเซ€ เชฒเชˆ เชถเช•เชพเชฏ เช›เซ‡. เช–เชพเชจเช—เซ€ เช•เซ€เชจเชพ เชจเซเช•เชถเชพเชจ/เชตเชฟเชจเชพเชถเชจเชพ เชฆเซเชƒเช–เชฆ เชชเชฐเชฟเชฃเชพเชฎเซ‹ เช›เซ‡, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชคเชฎเซ‡ เชคเชฎเชพเชฐเซ€ เชธเชพเชฐเซเชตเชœเชจเชฟเช• เช•เซ€ เชตเชกเซ‡ เชเชจเซเช•เซเชฐเชฟเชชเซเชŸเซ‡เชก เชซเชพเช‡เชฒเซ‹เชจเซ‡ เชกเชฟเช•เซเชฐเชฟเชชเซเชŸ เช•เชฐเซ€ เชถเช•เชถเซ‹ เชจเชนเซ€เช‚, เชคเชฎเซ‡ เช‡เชฒเซ‡เช•เซเชŸเซเชฐเซ‹เชจเชฟเช• เชนเชธเซเชคเชพเช•เซเชทเชฐ (ES) เชฎเซ‚เช•เซ€ เชถเช•เชถเซ‹ เชจเชนเซ€เช‚. ES เชœเชจเชฐเซ‡เชŸ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชคเชฎเชพเชฐเซ‡ เชเช• เชจเชตเซ€ เช•เซ€ เชœเซ‹เชกเซ€ เชœเชจเชฐเซ‡เชŸ เช•เชฐเชตเซ€ เชชเชกเชถเซ‡ เช…เชจเซ‡ เชšเซ‹เช•เซเช•เชธ เชฐเช•เชฎ เชฎเชพเชŸเซ‡ เชชเซเชฐเชฎเชพเชฃเชชเชคเซเชฐ เช•เซ‡เชจเซเชฆเซเชฐเซ‹เชฎเชพเช‚เชฅเซ€ เชเช• เชชเชฐ เชจเชตเซเช‚ เชชเซเชฐเชฎเชพเชฃเชชเชคเซเชฐ เชฎเซ‡เชณเชตเชตเซเช‚ เชชเชกเชถเซ‡.

เช‰เชชเชฐ เช…เชฎเซ‡ เชธเซ‹เชซเซเชŸเชตเซ‡เชฐ, เชธเซ‹เชซเซเชŸเชตเซ‡เชฐ-เชนเชพเชฐเซเชกเชตเซ‡เชฐ เช…เชจเซ‡ เชนเชพเชฐเซเชกเชตเซ‡เชฐ เชŸเซ‹เช•เชจเซเชธเชจเซ‹ เช‰เชฒเซเชฒเซ‡เช– เช•เชฐเซเชฏเซ‹ เช›เซ‡. เชชเชฐเช‚เชคเซ เชคเชฎเซ‡ เช…เชจเซเชฏ เชชเซเชฐเช•เชพเชฐเชจเชพ เช•เซเชฐเชฟเชชเซเชŸเซ‹เช—เซเชฐเชพเชซเชฟเช• เชŸเซ‹เช•เชจเชจเซ‡ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฒเชˆ เชถเช•เซ‹ เช›เซ‹ - เชเช• เช•เซเชฒเชพเช‰เชก.

เช†เชœเซ‡ เชคเชฎเซ‡ เช•เซ‹เชˆเชจเซ‡ เชšเซ‹เช‚เช•เชพเชตเชถเซ‹ เชจเชนเซ€เช‚ เช•เซเชฒเชพเช‰เชก เชซเซเชฒเซ‡เชถ เชกเซเชฐเชพเช‡เชต... เชฌเชงเชพ เชซเชพเชฏเชฆเชพเช“ เช…เชจเซ‡ เช—เซ‡เชฐเชซเชพเชฏเชฆเชพเช“ เช•เซเชฒเชพเช‰เชก เชซเซเชฒเซ‡เชถ เชกเซเชฐเชพเช‡เชตเซเชธ เช•เซเชฒเชพเช‰เชก เชŸเซ‹เช•เชจเชฎเชพเช‚ เชฒเช—เชญเช— เชเช•เชฅเซ€ เชเช• เชธเชนเชœ เช›เซ‡.

เช…เชนเซ€เช‚ เชฎเซเช–เซเชฏ เชตเชธเซเชคเซ เช•เซเชฒเชพเช‰เชก เชŸเซ‹เช•เชจเชฎเชพเช‚ เชธเช‚เช—เซเชฐเชนเชฟเชค เชกเซ‡เชŸเชพเชจเซ€ เชธเซเชฐเช•เซเชทเชพ เช›เซ‡, เชฎเซเช–เซเชฏเชคเซเชตเซ‡ เช–เชพเชจเช—เซ€ เช•เซ€. เชถเซเช‚ เช† เช•เซเชฒเชพเช‰เชก เชŸเซ‹เช•เชจ เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡? เช…เชฎเซ‡ เชนเชพ เช•เชนเซ€เช เช›เซ€เช!

เช…เชจเซ‡ เชคเซ‡เชฅเซ€ เช•เซเชฒเชพเช‰เชก เชŸเซ‹เช•เชจ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡? เชชเซเชฐเชฅเชฎ เชชเช—เชฒเซเช‚ เชŸเซ‹เช•เชจ เช•เซเชฒเชพเช‰เชกเชฎเชพเช‚ เช•เซเชฒเชพเชฏเชจเซเชŸเชจเซ€ เชจเซ‹เช‚เชงเชฃเซ€ เช•เชฐเชตเชพเชจเซเช‚ เช›เซ‡. เช† เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชเช• เช‰เชชเชฏเซ‹เช—เชฟเชคเชพ เชชเซเชฐเชฆเชพเชจ เช•เชฐเชตเซ€ เชœเซ‹เชˆเช เชœเซ‡ เชคเชฎเชจเซ‡ เช•เซเชฒเชพเช‰เชกเชจเซ‡ เชเช•เซเชธเซ‡เชธ เช•เชฐเชตเชพเชจเซ€ เช…เชจเซ‡ เชคเซ‡เชฎเชพเช‚ เชคเชฎเชพเชฐเซเช‚ เชฒเซ‰เช—เชฟเชจ / เช‰เชชเชจเชพเชฎ เชฐเชœเซ€เชธเซเชŸเชฐ เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡:
เช•เซเชฒเชพเช‰เชก เชŸเซ‹เช•เชจ PKCS#11 - เชฆเช‚เชคเช•เชฅเชพ เช•เซ‡ เชตเชพเชธเซเชคเชตเชฟเช•เชคเชพ?

เช•เซเชฒเชพเช‰เชกเชฎเชพเช‚ เชจเซ‹เช‚เชงเชฃเซ€ เช•เชฐเซเชฏเชพ เชชเช›เซ€, เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช เชคเซ‡เชจเซเช‚ เชŸเซ‹เช•เชจ เชถเชฐเซ‚ เช•เชฐเชตเซเช‚ เช†เชตเชถเซเชฏเช• เช›เซ‡, เชเชŸเชฒเซ‡ เช•เซ‡, เชŸเซ‹เช•เชจ เชฒเซ‡เชฌเชฒ เชธเซ‡เชŸ เช•เชฐเชตเซเช‚ เช…เชจเซ‡, เชธเซŒเชฅเซ€ เช…เช—เชคเซเชฏเชจเซเช‚, SO-PIN เช…เชจเซ‡ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ PIN เช•เซ‹เชก เชธเซ‡เชŸ เช•เชฐเชตเชพ. เช† เช•เชพเชฎเช—เซ€เชฐเซ€ เชฎเชพเชคเซเชฐ เชธเซเชฐเช•เซเชทเชฟเชค/เชเชจเซเช•เซเชฐเชฟเชชเซเชŸเซ‡เชก เชšเซ‡เชจเชฒ เชชเชฐ เชœ เชฅเชตเซ€ เชœเซ‹เชˆเช. pk11conf เช‰เชชเชฏเซ‹เช—เชฟเชคเชพเชจเซ‹ เช‰เชชเชฏเซ‹เช— เชŸเซ‹เช•เชจ เชถเชฐเซ‚ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชฅเชพเชฏ เช›เซ‡. เชšเซ‡เชจเชฒเชจเซ‡ เชเชจเซเช•เซเชฐเชฟเชชเซเชŸ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชเชจเซเช•เซเชฐเชฟเชชเซเชถเชจ เช…เชฒเซเช—เซ‹เชฐเชฟเชงเชฎเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซ€ เชฆเชฐเช–เชพเชธเซเชค เช›เซ‡ เชฎเซ‡เช—เซเชฎเชพ-CTR (GOST R 34.13-2015).

เชธเช‚เชฎเชค เช•เซ€ เชตเชฟเช•เชธเชพเชตเชตเชพ เชฎเชพเชŸเซ‡, เชœเซ‡เชจเชพ เช†เชงเชพเชฐเซ‡ เช•เซเชฒเชพเชฏเช‚เชŸ เช…เชจเซ‡ เชธเชฐเซเชตเชฐ เชตเชšเซเชšเซ‡เชจเชพ เชŸเซเชฐเชพเชซเชฟเช•เชจเซ‡ เชธเซเชฐเช•เซเชทเชฟเชค/เชเชจเช•เซเชฐเชฟเชชเซเชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡, เชคเซ‡ TC 26 เชฆเซเชตเชพเชฐเชพ เชญเชฒเชพเชฎเชฃ เช•เชฐเชพเชฏเซ‡เชฒ เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซ€ เชฆเชฐเช–เชพเชธเซเชค เช›เซ‡. เชธเซ‡เชธเซเชชเซ‡เช• - เชชเชพเชธเชตเชฐเซเชก-เช†เชงเชพเชฐเชฟเชค เชชเซเชฐเซ€-เชถเซ‡เชฐเซเชก เช•เซ€ เชœเชจเชฐเซ‡เชถเชจ เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒ.

เชชเชพเชธเชตเชฐเซเชก เชคเชฐเซ€เช•เซ‡, เชœเซ‡เชจเชพ เช†เชงเชพเชฐเซ‡ เชถเซ‡เชฐ เช•เชฐเซ‡เชฒเซ€ เช•เซ€ เชœเชจเชฐเซ‡เชŸ เชฅเชถเซ‡, เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซ€ เชฆเชฐเช–เชพเชธเซเชค เช›เซ‡ เชตเชจ-เชŸเชพเช‡เชฎ เชชเชพเชธเชตเชฐเซเชก เชฎเชฟเช•เซ‡เชจเชฟเชเชฎ. เช…เชฎเซ‡ เชฐเชถเชฟเชฏเชจ เช•เซเชฐเชฟเชชเซเชŸเซ‹เช—เซเชฐเชพเชซเซ€ เชตเชฟเชถเซ‡ เชตเชพเชค เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เชนเซ‹เชตเชพเชฅเซ€, เชฎเชฟเช•เซ‡เชจเชฟเชเชฎเซเชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชตเชจ-เชŸเชพเช‡เชฎ เชชเชพเชธเชตเชฐเซเชกเซเชธ เชœเชจเชฐเซ‡เชŸ เช•เชฐเชตเชพ เชคเซ‡ เชธเซเชตเชพเชญเชพเชตเชฟเช• เช›เซ‡. CKM_GOSTR3411_12_256_HMAC, CKM_GOSTR3411_12_512_HMAC เช…เชฅเชตเชพ CKM_GOSTR3411_HMAC.

เช† เชฎเชฟเช•เซ‡เชจเชฟเชเชฎเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช เชธเซเชจเชฟเชถเซเชšเชฟเชค เช•เชฐเซ‡ เช›เซ‡ เช•เซ‡ SO เช…เชจเซ‡ USER PIN เชฆเซเชตเชพเชฐเชพ เช•เซเชฒเชพเช‰เชกเชฎเชพเช‚ เชตเซเชฏเช•เซเชคเชฟเช—เชค เชŸเซ‹เช•เชจ เช‘เชฌเซเชœเซ‡เช•เซเชŸเซเชธเชจเซ€ เชเช•เซเชธเซ‡เชธ เชซเช•เซเชค เชคเซ‡ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชฎเชพเชŸเซ‡ เชœ เช‰เชชเชฒเชฌเซเชง เช›เซ‡ เชœเซ‡เชฃเซ‡ เช‰เชชเชฏเซ‹เช—เชฟเชคเชพเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชคเซ‡เชจเซ‡ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซเชฏเซเช‚ เช›เซ‡. pk11conf.

เชฌเชงเซเช‚, เช† เชชเช—เชฒเชพเช‚เช“ เชชเซ‚เชฐเซเชฃ เช•เชฐเซเชฏเชพ เชชเช›เซ€, เช•เซเชฒเชพเช‰เชก เชŸเซ‹เช•เชจ เช‰เชชเชฏเซ‹เช— เชฎเชพเชŸเซ‡ เชคเซˆเชฏเชพเชฐ เช›เซ‡. เช•เซเชฒเชพเช‰เชก เชŸเซ‹เช•เชจเชจเซ‡ เชเช•เซเชธเซ‡เชธ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชชเซ€เชธเซ€ เชชเชฐ LS11CLOUD เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชคเซ‡ เชชเซ‚เชฐเชคเซเช‚ เช›เซ‡. Android เช…เชจเซ‡ iOS เชชเซเชฒเซ‡เชŸเชซเซ‹เชฐเซเชฎเซเชธ เชชเชฐ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเซเชธเชฎเชพเช‚ เช•เซเชฒเชพเช‰เชก เชŸเซ‹เช•เชจเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชคเซ€ เชตเช–เชคเซ‡, เช…เชจเซเชฐเซ‚เชช SDK เชชเซเชฐเชฆเชพเชจ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชคเซ‡ เช† เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€ เช›เซ‡ เชœเซ‡ เชฐเซ‡เชกเชซเซ‹เช•เซเชธ เชฌเซเชฐเชพเช‰เชเชฐเชฎเชพเช‚ เช•เซเชฒเชพเช‰เชก เชŸเซ‹เช•เชจเชจเซ‡ เช•เชจเซ‡เช•เซเชŸ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เช…เชฅเชตเชพ pkcs11.txt เชซเชพเช‡เชฒเชฎเชพเช‚ เชฒเช–เชคเซ€ เชตเช–เชคเซ‡ เชธเซ‚เชšเชตเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡. LS11CLOUD เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€ PKCS#11 C_Initialize เชจเซ‡ เช•เซ‰เชฒ เช•เชฐเซ€เชจเซ‡ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡เชฒ SESPAKE เชชเชฐ เช†เชงเชพเชฐเชฟเชค เชธเซเชฐเช•เซเชทเชฟเชค เชšเซ‡เชจเชฒ เชฆเซเชตเชพเชฐเชพ เช•เซเชฒเชพเช‰เชกเชฎเชพเช‚ เชŸเซ‹เช•เชจ เชธเชพเชฅเซ‡ เชชเชฃ เช•เซเชฐเชฟเชฏเชพเชชเซเชฐเชคเชฟเช•เซเชฐเชฟเชฏเชพ เช•เชฐเซ‡ เช›เซ‡!

เช•เซเชฒเชพเช‰เชก เชŸเซ‹เช•เชจ PKCS#11 - เชฆเช‚เชคเช•เชฅเชพ เช•เซ‡ เชตเชพเชธเซเชคเชตเชฟเช•เชคเชพ?

เชฌเชธ, เชนเชตเซ‡ เชคเชฎเซ‡ เชชเซเชฐเชฎเชพเชฃเชชเชคเซเชฐ เช“เชฐเซเชกเชฐ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹, เชคเซ‡เชจเซ‡ เชคเชฎเชพเชฐเชพ เช•เซเชฒเชพเช‰เชก เชŸเซ‹เช•เชจเชฎเชพเช‚ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เช…เชจเซ‡ > เชธเชฐเช•เชพเชฐเซ€ เชธเซ‡เชตเชพเช“เชจเซ€ เชตเซ‡เชฌเชธเชพเช‡เชŸ เชชเชฐ เชœเชˆ เชถเช•เซ‹ เช›เซ‹.

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹