์ด ๋ชจ๋ ์์ํ๋ ๋ฐฉ๋ฒ
์๊ฐ ๊ฒฉ๋ฆฌ ๊ธฐ๊ฐ์ด ์์๋ ๋ฌด๋ ต, ๋๋ ์ฐํธ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ ํธ์ง๋ฅผ ๋ฐ์์ต๋๋ค.
์ฒซ ๋ฒ์งธ ๋ฐ์์ ์์ฐ์ค๋ฌ์ ์ต๋๋ค. ํ ํฐ์ ์ฌ๋ฌ ๊ฐ๊ฑฐ๋ ํ ํฐ์ ๊ฐ์ ธ์์ผ ํ๋๋ฐ ์์์ผ๋ถํฐ ์ฐ๋ฆฌ๋ ๋ชจ๋ ์ง์ ์์ ์์ด์ ์ด๋ ์ ํ์ด ์๋๋ฐ ๋๋์ฒด ์ ์ฌ๋์ ๋๊ตฌ์
๋๊น? ๊ทธ๋ฌ๋ฏ๋ก ๋๋ต์ ๋งค์ฐ ์์ฐ์ค๋ฌ์ ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ชจ๋๊ฐ ์๊ณ ์๋ฏ์ด 1์ 11์ผ ์์์ผ๋ถํฐ ์๋นํ ์๊ฒฉํ ์๊ฐ ๊ฒฉ๋ฆฌ ๊ธฐ๊ฐ์ด ์์๋์์ต๋๋ค. ์ฐ๋ฆฌ ๋ชจ๋๋ ์๊ฒฉ ๊ทผ๋ฌด๋ก ์ ํํ๊ณ VPN๋ ํ์ํ์ต๋๋ค. ๋น์ฌ์ VPN์ OpenVPN์ ๊ธฐ๋ฐ์ผ๋ก ํ์ง๋ง ๋ฌ์์์ด ์ํธํ์ PKCS#12 ํ ํฐ ๋ฐ PKCS#XNUMX ์ปจํ
์ด๋ ์์
๊ธฐ๋ฅ์ ์ง์ํ๋๋ก ์์ ๋์์ต๋๋ค. ๋น์ฐํ ์ฐ๋ฆฌ ์์ ๋ VPN์ ํตํด ์์
ํ ์ค๋น๊ฐ ๋์ง ์์ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค. ๋ง์ ์ฌ๋๋ค์ด ์ธ์ฆ์๊ฐ ์์๊ณ ์ผ๋ถ๋ ๋ง๋ฃ๋์์ต๋๋ค.
๊ณผ์ ์ ์ด๋ป๊ฒ ์งํ๋๋์?
๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ด ์ ํธ๋ฆฌํฐ๊ฐ ๊ตฌ์ถ๋๋ ๊ณณ์
๋๋ค.
cryptoarmpkcs ์ ํธ๋ฆฌํฐ๋ฅผ ์ฌ์ฉํ๋ฉด ์๊ฐ ๊ฒฉ๋ฆฌ ์ค์ด๊ณ ์ง ์ปดํจํฐ์ ํ ํฐ์ด ์๋ ์ง์์ด ์ธ์ฆ์ ์์ฒญ์ ์์ฑํ ์ ์์ต๋๋ค.
์ง์๋ค์ด ์ด๋ฉ์ผ์ ํตํด ์ ์ฅ๋ ์์ฒญ์ ๋์๊ฒ ๋ณด๋์ต๋๋ค. ๋๊ตฐ๊ฐ๊ฐ ๋ค์๊ณผ ๊ฐ์ด ์ง๋ฌธํ ์ ์์ต๋๋ค. - ๊ฐ์ธ ๋ฐ์ดํฐ๋ ์ด๋ป์ต๋๊น? ์์ธํ ์ดํด๋ณด๋ฉด ์์ฒญ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์์ฒญ ์์ฒด๋ ์๋ช
์ผ๋ก ๋ณดํธ๋ฉ๋๋ค.
์ธ์ฆ์ ์์ฒญ์ด ์์ ๋๋ฉด CAFL63 CA ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ๊ฐ์ ธ์ต๋๋ค.
๊ทธ ํ์๋ ์์ฒญ์ ๊ฑฐ๋ถํ๊ฑฐ๋ ์น์ธํด์ผ ํฉ๋๋ค. ์์ฒญ์ ๊ณ ๋ คํ๋ ค๋ฉด ํด๋น ์์ฒญ์ ์ ํํ๊ณ ๋ง์ฐ์ค ์ค๋ฅธ์ชฝ ๋ฒํผ์ ํด๋ฆญํ ํ ๋๋กญ๋ค์ด ๋ฉ๋ด์์ "๊ฒฐ์ ํ๊ธฐ"๋ฅผ ์ ํํด์ผ ํฉ๋๋ค.
์์ฌ๊ฒฐ์ ์ ์ฐจ ์์ฒด๋ ์์ ํ ํฌ๋ช
ํฉ๋๋ค.
์ธ์ฆ์๋ ๋์ผํ ๋ฐฉ์์ผ๋ก ๋ฐ๊ธ๋๋ฉฐ ๋ฉ๋ด ํญ๋ชฉ๋ง "์ธ์ฆ์ ๋ฐ๊ธ"์ด๋ผ๊ณ ํฉ๋๋ค.
๋ฐ๊ธ๋ ์ธ์ฆ์๋ฅผ ๋ณด๋ ค๋ฉด ์ํฉ์ ๋ง๋ ๋ฉ๋ด๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ํด๋น ์ค์ ๋ ๋ฒ ํด๋ฆญํ๋ฉด ๋ฉ๋๋ค.
์ด์ openssl(OpenSSL ํ
์คํธ ํญ)๊ณผ CAFL63 ์ ํ๋ฆฌ์ผ์ด์
์ ๋ด์ฅ ๋ทฐ์ด(์ธ์ฆ์ ํ
์คํธ ํญ)๋ฅผ ํตํด ์ฝํ
์ธ ๋ฅผ ๋ณผ ์ ์์ต๋๋ค. ํ์์ ๊ฒฝ์ฐ ์ํฉ์ ๋ง๋ ๋ฉ๋ด๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์ฆ์๋ฅผ ํ
์คํธ ํ์์ผ๋ก ๋จผ์ ํด๋ฆฝ๋ณด๋์ ๋ณต์ฌํ ๋ค์ ํ์ผ์ ๋ณต์ฌํ ์ ์์ต๋๋ค.
์ฌ๊ธฐ์์ ์ฒซ ๋ฒ์งธ ๋ฒ์ ๊ณผ ๋น๊ตํ์ฌ CAFL63์์ ๋ณ๊ฒฝ๋ ์ฌํญ์ด ๋ฌด์์ธ์ง ์ฃผ๋ชฉํด์ผ ํฉ๋๊น? ์ธ์ฆ์ ๋ณด๊ธฐ์ ๊ดํด์๋ ์ด๋ฏธ ์ธ๊ธํ์ต๋๋ค. ๋ํ ๊ฐ์ฒด ๊ทธ๋ฃน(์ธ์ฆ์, ์์ฒญ, CRL)์ ์ ํํ๊ณ ํ์ด์ง ๋ชจ๋("์ ํํ ํญ๋ชฉ ๋ณด๊ธฐ..." ๋ฒํผ)์์ ๋ณผ ์ ์๊ฒ ๋์์ต๋๋ค.
์๋ง๋ ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ํ๋ก์ ํธ๊ฐ ๋ฌด๋ฃ๋ก ์ ๊ณต๋๋ค๋ ๊ฒ์
๋๋ค.
CAFL63 ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด์ ๋ฒ์ ๊ณผ ๋น๊ตํ๋ฉด ์ธํฐํ์ด์ค ์์ฒด๊ฐ ๋ณ๊ฒฝ๋์์ ๋ฟ๋ง ์๋๋ผ ์ด๋ฏธ ์ธ๊ธํ ๊ฒ์ฒ๋ผ ์๋ก์ด ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ ํ๋ฆฌ์ผ์ด์ ์ค๋ช ์ด ์๋ ํ์ด์ง๊ฐ ๋ค์ ๋์์ธ๋์์ผ๋ฉฐ ๋ฐฐํฌํ ๋ค์ด๋ก๋์ ๋ํ ์ง์ ๋งํฌ๊ฐ ์ถ๊ฐ๋์์ต๋๋ค.
๋ง์ ์ฌ๋๋ค์ด GOST openssl์ ์ด๋์ ๊ตฌํ ์ ์๋์ง ๋ฌป๊ณ ์์ผ๋ฉฐ ์ฌ์ ํ ๋ฌป๊ณ ์์ต๋๋ค. ์ ํต์ ์ผ๋ก ๋๋ ์ค๋ค.
๊ทธ๋ฌ๋ ์ด์ ๋ฐฐํฌ ํคํธ์๋ ๋ฌ์์์ด ์ํธํ๋ฅผ ์ฌ์ฉํ๋ openssl์ ํ
์คํธ ๋ฒ์ ์ด ํฌํจ๋์ด ์์ต๋๋ค.
๋ฐ๋ผ์ CA๋ฅผ ์ค์ ํ ๋ Linux์ ๊ฒฝ์ฐ /tmp/lirssl_static ๋๋ Windows์ ๊ฒฝ์ฐ $::env(TEMP)/lirssl_static.exe๋ฅผ ์ฌ์ฉ๋๋ openssl๋ก ์ง์ ํ ์ ์์ต๋๋ค.
์ด ๊ฒฝ์ฐ ๋น lirssl.cnf ํ์ผ์ ๋ง๋ค๊ณ ํ๊ฒฝ ๋ณ์ LIRSSL_CONF์ ์ด ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ์ง์ ํด์ผ ํฉ๋๋ค.
์ธ์ฆ์ ์ค์ ์ "ํ์ฅ" ํญ์๋ CA ๋ฃจํธ ์ธ์ฆ์ ๋ฐ OCSP ์๋ฒ์ ๋ํ ์ก์ธ์ค ์ง์ ์ ์ค์ ํ ์ ์๋ "๊ธฐ๊ด ์ ๋ณด ์ก์ธ์ค" ํ๋๊ฐ ์ถ๊ฐ๋์์ต๋๋ค.
CA๊ฐ ์ ์ฒญ์๋ก๋ถํฐ ์์ฑ๋ ์์ฒญ(PKCS#10)์ ์๋ฝํ์ง ์๊ฑฐ๋ ๋ ๋์ ๊ฒฝ์ฐ ์ผ๋ถ CSP๋ฅผ ํตํด ์ด๋ํต์ ์ฌ์์ ํค ์์ ์์ฑํ์ฌ ์์ฒญ์ ๊ฐ์ ๋ก ํ์ฑํ๋ค๋ ์ด์ผ๊ธฐ๋ฅผ ์์ฃผ ๋ฃ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ PKCS#2.0 ์ธํฐํ์ด์ค๋ฅผ ํตํด ๊ฒ์ํ ์ ์๋ ํค(๋์ผํ RuToken EDS-11)๊ฐ ์๋ ํ ํฐ์ ๋ํ ์์ฒญ ์์ฑ์ ๊ฑฐ๋ถํฉ๋๋ค. ๋ฐ๋ผ์ PKCS#63 ํ ํฐ์ ์ํธํ ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํ์ฌ CAFL11 ์ ํ๋ฆฌ์ผ์ด์
์ ๊ธฐ๋ฅ์ ์์ฒญ ์์ฑ์ ์ถ๊ฐํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ํ ํฐ ๋ฉ์ปค๋์ฆ์ ํ์ฑํํ๊ธฐ ์ํด ํจํค์ง๊ฐ ์ฌ์ฉ๋์์ต๋๋ค.
ํ ํฐ ์์
์ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ธ์ฆ์ ์ค์ ์ ์ง์ ๋ฉ๋๋ค.
๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๋ ํ์ฌ VPN ๋คํธ์ํฌ์์ ์์ฒด ๊ฒฉ๋ฆฌ ๋ชจ๋๋ก ์์
ํ ์ ์๋๋ก ์ง์์๊ฒ ์ธ์ฆ์๋ฅผ ์ ๊ณตํ๋ ์ฃผ์ ์์
์์ ๋ฒ์ด๋ฌ์ต๋๋ค. ์ผ๋ถ ์ง์์๊ฒ๋ ํ ํฐ์ด ์๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค. CAFL12 ์ ํ๋ฆฌ์ผ์ด์
์ด ์ด๋ฅผ ํ์ฉํ๋ฏ๋ก PKCS#63 ๋ณดํธ ์ปจํ
์ด๋๋ฅผ ์ ๊ณตํ๊ธฐ๋ก ๊ฒฐ์ ๋์์ต๋๋ค. ๋จผ์ ๊ทธ๋ฌํ ์ง์์ ๋ํด CIPF ์ ํ "OpenSSL"์ ๋ํ๋ด๋ PKCS#10 ์์ฒญ์ ํ ๋ค์ ์ธ์ฆ์๋ฅผ ๋ฐ๊ธํ๊ณ ์ด๋ฅผ PKCS12์ ํจํค์งํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ ค๋ฉด "์ธ์ฆ์" ํ์ด์ง์์ ์ํ๋ ์ธ์ฆ์๋ฅผ ์ ํํ๊ณ ๋ง์ฐ์ค ์ค๋ฅธ์ชฝ ๋ฒํผ์ ํด๋ฆญํ ํ "PKCS#12๋ก ๋ด๋ณด๋ด๊ธฐ"๋ฅผ ์ ํํฉ๋๋ค.
์ปจํ
์ด๋์ ๋ชจ๋ ๊ฒ์ด ์ ๋๋ก ๋์ด ์๋์ง ํ์ธํ๊ธฐ ์ํด cryptoarmpkcs ์ ํธ๋ฆฌํฐ๋ฅผ ์ฌ์ฉํด ๋ณด๊ฒ ์ต๋๋ค.
์ด์ ๋ฐ๊ธ๋ ์ธ์ฆ์๋ฅผ ์ง์์๊ฒ ๋ณด๋ผ ์ ์์ต๋๋ค. ์ด๋ค ์ฌ๋๋ค์ ๋จ์ํ ์ธ์ฆ์(์์ฒญ์ ๋ณด๋ธ ํ ํฐ ์์ ์) ๋๋ PKCS#12 ์ปจํ
์ด๋์ ํจ๊ป ํ์ผ์ ์ ์ก๋ฐ์ต๋๋ค. ๋ ๋ฒ์งธ ๊ฒฝ์ฐ์๋ ๊ฐ ์ง์์๊ฒ ์ ํ๋ก ์ปจํ
์ด๋ ๋น๋ฐ๋ฒํธ๋ฅผ ์๋ ค์ค๋๋ค. ์ด๋ฌํ ์ง์์ ์ปจํ
์ด๋ ๊ฒฝ๋ก๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์ง์ ํ์ฌ VPN ๊ตฌ์ฑ ํ์ผ์ ์์ ํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
ํ ํฐ ์์ ์์ ๊ฒฝ์ฐ ํ ํฐ์ ๋ํ ์ธ์ฆ์๋ ๊ฐ์ ธ์์ผ ํ์ต๋๋ค. ์ด๋ฅผ ์ํด ๋์ผํ cryptoarmpkcs ์ ํธ๋ฆฌํฐ๋ฅผ ์ฌ์ฉํ์ต๋๋ค.
์ด์ VPN ๊ตฌ์ฑ์ด ์ต์ํ์ผ๋ก ๋ณ๊ฒฝ๋์์ผ๋ฉฐ(ํ ํฐ์ ์ธ์ฆ์ ๋ ์ด๋ธ์ด ๋ณ๊ฒฝ๋์์ ์ ์์) ๊ทธ๊ฒ ์ ๋ถ์
๋๋ค. ํ์ฌ VPN ๋คํธ์ํฌ๊ฐ ์ ๋๋ก ์๋ํ๊ณ ์์ต๋๋ค.
ํดํผ ์๋ฉ
๊ทธ๋ฌ๋ค๊ฐ ์ฌ๋๋ค์ด ์ ๋์๊ฒ ํ ํฐ์ ๊ฐ์ ธ์ค๋์ง, ์๋๋ฉด ๋ด๊ฐ ๊ทธ๋ค์ ์ํด ๋ฉ์ ์ ๋ฅผ ๋ณด๋ด์ผ ํ๋์ง์ ๋ํ ์๊ฐ์ด ๋ ์ฌ๋์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ค์๊ณผ ๊ฐ์ ๋ด์ฉ์ ํธ์ง๋ฅผ ๋ณด๋ ๋๋ค.
๋ต๋ณ์ ๋ค์๋ ์ต๋๋ค.
์ฆ์ cryptoarmpkcs ์ ํธ๋ฆฌํฐ์ ๋ํ ๋งํฌ๋ฅผ ๋ณด๋
๋๋ค.
์ธ์ฆ์ ์์ฒญ์ ์์ฑํ๊ธฐ ์ ์ ํ ํฐ์ ์ง์ฐ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๊ทธ๋ฐ ๋ค์ PKCS#10 ํ์์ ์ธ์ฆ์ ์์ฒญ์ด ์ด๋ฉ์ผ๋ก ์ ์ก๋์์ผ๋ฉฐ ์ธ์ฆ์๋ฅผ ๋ฐ๊ธํ์ฌ ๋ค์ ์ฃผ์๋ก ๋ณด๋์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ฆ๊ฑฐ์ด ์๊ฐ์ด ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด๋ฐ ํธ์ง๋ ์์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๊ทธ ์ดํ์ ์ด๋ฐ ๊ธ์ด ํ์ํ์ต๋๋ค.
Linux ๋ฐ MS Windows ํ๋ซํผ์ฉ CAFL63 ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌํ์ ์ฐพ์ ์ ์์ต๋๋ค.
์ฌ๊ธฐ์
Android ํ๋ซํผ์ ํฌํจํ cryptoarmpkcs ์ ํธ๋ฆฌํฐ ๋ฐฐํฌํ์ ๋ค์ ์์น์ ์์ต๋๋ค.
์ฌ๊ธฐ์
์ถ์ฒ : habr.com