๋จ์ํ ๋น๋ฐ๋ฒํธ๋ ์์ ํ์ง ์์ผ๋ฉฐ, ๋ณต์กํ ๋น๋ฐ๋ฒํธ๋ ๊ธฐ์ตํ๊ธฐ ์ด๋ ต์ต๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ํค๋ณด๋๋ ๋ชจ๋ํฐ ์๋์ ์คํฐ์ปค ๋ฉ๋ชจ๋ฅผ ๋ถ์ด๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. "์์ด๋ฒ๋ฆฌ๋" ์ฌ์ฉ์์ ๋ง์์ ๋น๋ฐ๋ฒํธ๊ฐ ๋จ์ ์๊ณ ๋ณดํธ ์ ๋ขฐ์ฑ์ด ์์ค๋์ง ์๋๋ก ํ๊ธฐ ์ํด 2๋จ๊ณ ์ธ์ฆ(XNUMXFA)์ด ์์ต๋๋ค.
์ฅ์น๋ฅผ ์์ ํ๊ณ PIN์ ์๊ณ ์์ผ๋ฉด PIN ์์ฒด๊ฐ ๋ ๊ฐ๋จํ๊ณ ๊ธฐ์ตํ๊ธฐ ์ฌ์ธ ์ ์์ต๋๋ค. PIN ๊ธธ์ด ๋๋ ๋ฌด์์์ฑ์ ๋จ์ ์ ๋ฌผ๋ฆฌ์ ์์ ์๊ตฌ ์ฌํญ ๋ฐ PIN ๋ฌด์ฐจ๋ณ ๋์ ์ ๋ํ ์ ํ์ผ๋ก ์์๋ฉ๋๋ค.
๋ํ ์ ๋ถ ๊ธฐ๊ด์์๋ ๋ชจ๋ ๊ฒ์ด GOST์ ๋ฐ๋ผ ์๋ํ๊ธฐ๋ฅผ ์ํฉ๋๋ค. Linux์ ๋ก๊ทธ์ธํ๊ธฐ ์ํ 2FA ์ต์ ์ ๋ํด ์ค๋ช ํฉ๋๋ค. ๋ฉ๋ฆฌ์๋ถํฐ ์์ํ๊ฒ ์ต๋๋ค.
PAM ๋ชจ๋
PAM(ํ๋ฌ๊ทธํ ์ธ์ฆ ๋ชจ๋)์ ํ์ค API์ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ค์ํ ์ธ์ฆ ๋ฉ์ปค๋์ฆ ๊ตฌํ์ ๊ฐ์ถ ๋ชจ๋์
๋๋ค.
PAM๊ณผ ํจ๊ป ์๋ํ ์ ์๋ ๋ชจ๋ ์ ํธ๋ฆฌํฐ์ ์ ํ๋ฆฌ์ผ์ด์
์ ์ด๋ฅผ ์ ํํ์ฌ ์ฌ์ฉ์ ์ธ์ฆ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ค์ ๋ก๋ ๋ค์๊ณผ ๊ฐ์ด ์๋ํฉ๋๋ค. ๋ก๊ทธ์ธ ๋ช
๋ น์ ๊ตฌ์ฑ ํ์ผ์ ์ง์ ๋ ๋ชจ๋์ ์ฌ์ฉํ์ฌ ํ์ํ ๋ชจ๋ ๊ฒ์ฌ๋ฅผ ์ํํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ๋ค์ ๋ก๊ทธ์ธ ๋ช
๋ น์ผ๋ก ๋ฐํํ๋ PAM์ ํธ์ถํฉ๋๋ค.
librtpam
Aktiv์ฌ๊ฐ ๊ฐ๋ฐํ ๋ชจ๋์๋ ๊ตญ๋ด ์ํธํ์ ์ต์ ํ์ค์ ๋ฐ๋ผ ๋น๋์นญ ํค๋ฅผ ์ฌ์ฉํ๋ ์ค๋งํธ ์นด๋๋ USB ํ ํฐ์ ์ฌ์ฉํ๋ ์ฌ์ฉ์์ ๋ํ XNUMX๋จ๊ณ ์ธ์ฆ์ด ์ถ๊ฐ๋ฉ๋๋ค.
์๋ ์๋ฆฌ๋ฅผ ์ดํด ๋ณด๊ฒ ์ต๋๋ค.
- ํ ํฐ์ ์ฌ์ฉ์์ ์ธ์ฆ์์ ๊ฐ์ธ ํค๋ฅผ ์ ์ฅํฉ๋๋ค.
- ์ธ์ฆ์๋ ์ฌ์ฉ์์ ํ ๋๋ ํฐ๋ฆฌ์ ์ ๋ขฐํ ์ ์๋ ๊ฒ์ผ๋ก ์ ์ฅ๋ฉ๋๋ค.
์ธ์ฆ ํ๋ก์ธ์ค๋ ๋ค์๊ณผ ๊ฐ์ด ์งํ๋ฉ๋๋ค.
- Rutoken์ ์ฌ์ฉ์์ ๊ฐ์ธ ์ธ์ฆ์๋ฅผ ๊ฒ์ํฉ๋๋ค.
- ํ ํฐ PIN์ด ์์ฒญ๋ฉ๋๋ค.
- ๋ฌด์์ ๋ฐ์ดํฐ๋ Rutoken ์นฉ์ ๊ฐ์ธ ํค์ ์ง์ ์๋ช ๋ฉ๋๋ค.
- ๊ฒฐ๊ณผ ์๋ช ์ ์ฌ์ฉ์ ์ธ์ฆ์์ ๊ณต๊ฐ ํค๋ฅผ ์ฌ์ฉํ์ฌ ํ์ธ๋ฉ๋๋ค.
- ๋ชจ๋์ ์๋ช ํ์ธ ๊ฒฐ๊ณผ๋ฅผ ํธ์ถ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐํํฉ๋๋ค.
GOST R 34.10-2012 ํค(๊ธธ์ด 256 ๋๋ 512๋นํธ) ๋๋ ์ค๋๋ GOST R 34.10-2001์ ์ฌ์ฉํ์ฌ ์ธ์ฆํ ์ ์์ต๋๋ค.
ํค ๋ณด์์ ๋ํด ๊ฑฑ์ ํ ํ์๊ฐ ์์ต๋๋ค. ํค๋ Rutoken์์ ์ง์ ์์ฑ๋๋ฉฐ ์ํธํ ์์ ์ค์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ ๋์ง ์์ต๋๋ค.
Rutoken EDS 2.0์ NDV 4์ ๋ฐ๋ผ FSB ๋ฐ FSTEC์ ์ธ์ฆ์ ๋ฐ์์ผ๋ฏ๋ก ๊ธฐ๋ฐ ์ ๋ณด๋ฅผ ์ฒ๋ฆฌํ๋ ์ ๋ณด ์์คํ
์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ค์ฉ
๊ฑฐ์ ๋ชจ๋ ์ต์ Linux๊ฐ ๊ฐ๋ฅํฉ๋๋ค. ์๋ฅผ ๋ค์ด 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) Rutoken EDS 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} ๋์ ์ด์ ๋ช
๋ น์ ์ถ๋ ฅ์์ โโ๋ณธ ์ธ์ฆ์ 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 ํ
์ด๋ธ์ ๋ ์๋ฆฌ 3132์ง์ ๋ฌธ์ ์ซ์๋ก ๋ ๊ฐ์ฒด ์๋ณ์(CKA_ID)์
๋๋ค. ์ธ์ ๊ฐ๋ฅํ ๋ฌธ์์๋ ASCII ์ฝ๋๋ง ์ฌ์ฉํ์ญ์์ค. ์๋ํ๋ฉด... id๋ OpenSSL์ ๋ฌธ์์ด๋ก ์ ๋ฌ๋์ด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ASCII ์ฝ๋ "12"๋ ๋ฌธ์์ด "XNUMX"์ ํด๋นํฉ๋๋ค. ํธ์๋ฅผ ์ํด ๋ค์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
$ ./pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --keypairgen --key-type GOSTR3410-2012-512:A -l --id 3132
๋ค์์ผ๋ก ์ธ์ฆ์๋ฅผ ์์ฑํ๊ฒ ์ต๋๋ค. ์๋์์๋ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ ์ค๋ช
ํฉ๋๋ค. ์ฒซ ๋ฒ์งธ๋ CA๋ฅผ ํตํ๋ ๊ฒ์ด๊ณ (ํ
์คํธ CA๋ฅผ ์ฌ์ฉํจ) ๋ ๋ฒ์งธ๋ ์์ฒด ์๋ช
ํ๋ ๊ฒ์
๋๋ค. ์ด๋ ๊ฒ ํ๋ ค๋ฉด ๋จผ์ ์ค๋ช
์๋ฅผ ์ฌ์ฉํ์ฌ ํน์ rtengine ๋ชจ๋์ ํตํด Rutoken๊ณผ ์๋ํ๋๋ก OpenSSL ๋ฒ์ 1.1 ์ด์์ ์ค์นํ๊ณ ๊ตฌ์ฑํด์ผ ํฉ๋๋ค.
์: '--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
๋ชจ๋์ ์ ์ฒด ์ด๋ฆ, ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํ๋์ด ์๋์ง ์ฌ๋ถ, ๋ชจ๋์ ์ฐ์ ์์ ๋ฐ ์ธ์ฆ ๋งค๊ฐ ๋ณ์๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
์ธ์ฆ ๋งค๊ฐ๋ณ์์๋ ์์
์ฑ๊ณต์ ์ํ ์๊ตฌ ์ฌํญ์ด ํฌํจ๋์ด ์์ต๋๋ค.
- ํ์: ์ด๋ฌํ ๋ชจ๋์ ๊ธ์ ์ ์ธ ์๋ต์ ๋ฐํํด์ผ ํฉ๋๋ค. ๋ชจ๋ ํธ์ถ ๊ฒฐ๊ณผ์ ๋ถ์ ์ ์ธ ์๋ต์ด ํฌํจ๋์ด ์์ผ๋ฉด ์ธ์ฆ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ์์ฒญ์ ์ญ์ ๋์ง๋ง ๋๋จธ์ง ๋ชจ๋์ ํธ์ถ๋ฉ๋๋ค.
- requisite: ํ์์ ์ ์ฌํ์ง๋ง ์ฆ์ ์ธ์ฆ์ ์คํจํ๊ณ ๋ค๋ฅธ ๋ชจ๋์ ๋ฌด์ํฉ๋๋ค.
- ์ถฉ๋ถํจ: ํด๋น ๋ชจ๋์ด ๋ถ์ ์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๊ธฐ ์ ์ ํ์ ๋๋ ์ถฉ๋ถํ ๋ชจ๋์ด ์์ผ๋ฉด ๋ชจ๋์ ๊ธ์ ์ ์ธ ์๋ต์ ๋ฐํํฉ๋๋ค. ๋๋จธ์ง ๋ชจ๋์ ๋ฌด์๋ฉ๋๋ค.
- ์ ํ ์ฌํญ: ์คํ์ ํ์ ๋ชจ๋์ด ์๊ณ ์ถฉ๋ถํ ๋ชจ๋ ์ค ์ด๋ ๊ฒ๋ ๊ธ์ ์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ์ง ์๋ ๊ฒฝ์ฐ, ์ ํ์ ๋ชจ๋ ์ค ํ๋ ์ด์์ด ๊ธ์ ์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํด์ผ ํฉ๋๋ค.
์ ์ฒด ํ์ผ ๋ด์ฉ /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
์ฌ์ฉ์ ์ด๋ฆ์ ์
๋ ฅํ์ธ์. ์์คํ
์ ์ฅ์น PIN ์ฝ๋๊ฐ ํ์ํ ๊ฒฝ์ฐ ๋ชจ๋ ๊ฒ์ด ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌ์ฑ๋ ๊ฒ์
๋๋ค.
9) ํ ํฐ ์ถ์ถ ์ ์ฐจ๋จ๋๋๋ก ์ปดํจํฐ ๊ตฌ์ฑ
ํจํค์ง์ ํฌํจ๋จ libpam-pkcs11
์ ํธ๋ฆฌํฐ ํฌํจ pkcs11_eventmgr,
์ด๋ฅผ ํตํด PKCS#11 ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ๋ ๋ค์ํ ์์
์ ์ํํ ์ ์์ต๋๋ค.
์ค์ ์ฉ pkcs11_eventmgr
๊ตฌ์ฑ ํ์ผ ์ญํ ์ ํฉ๋๋ค. /etc/pam_pkcs11/pkcs11_eventmgr.conf
Linux ๋ฐฐํฌํ์ ๋ฐ๋ผ ์ค๋งํธ ์นด๋๋ ํ ํฐ์ด ์ ๊ฑฐ๋ ๋ ๊ณ์ ์ ์ ๊ทธ๋ ๋ช
๋ น์ด ๋ค๋ฆ
๋๋ค. ์ผํฐ๋ฏธํฐ. 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 ์ค์ ์ถ๊ฐํ๊ณ ์ฌ๋ถํ
ํฉ๋๋ค.
์ด์ ์ฒด์ ์ค์ ์ ์ํด ์ค๋ช ๋ ๋จ๊ณ๋ ๊ตญ๋ด ๋ฐฐํฌํ์ ํฌํจํ ๋ชจ๋ ์ต์ Linux ๋ฐฐํฌํ์ ์ง์นจ์ผ๋ก ์ฌ์ฉ๋ ์ ์์ต๋๋ค.
๊ฒฐ๋ก
Linux PC๋ ๋ฌ์์ ์ ๋ถ ๊ธฐ๊ด์์ ์ ์ ์ธ๊ธฐ๋ฅผ ์ป๊ณ ์์ผ๋ฉฐ ์ด OS์์ ์์ ์ ์ธ XNUMX๋จ๊ณ ์ธ์ฆ์ ์ค์ ํ๋ ๊ฒ์ด ํญ์ ์ฌ์ด ๊ฒ์ ์๋๋๋ค. ์ด ๊ฐ์ด๋๋ฅผ ํตํด "๋น๋ฐ๋ฒํธ ๋ฌธ์ "๋ฅผ ํด๊ฒฐํ๊ณ PC์ ๋ง์ ์๊ฐ์ ๋ค์ด์ง ์๊ณ ๋ PC์ ๋ํ ์ก์ธ์ค๋ฅผ ์์ ์ ์ผ๋ก ๋ณดํธํ ์ ์๋๋ก ๊ธฐ๊บผ์ด ๋์๋๋ฆฌ๊ฒ ์ต๋๋ค.
์ถ์ฒ : habr.com