์ด ๋ชจ๋ ์์ํ๋ ๋ฐฉ๋ฒ
์๊ฐ ๊ฒฉ๋ฆฌ ๊ธฐ๊ฐ์ด ์์๋๋ ์ด๊ธฐ์ ์ ๋ ์ฐํธ์ผ๋ก ํธ์ง๋ฅผ ๋ฐ์์ต๋๋ค.

์ฒซ ๋ฐ์์ ์์ฐ์ค๋ฌ์ ์ต๋๋ค. ํ ํฐ์ ๋ฐ์ผ๋ฌ ๊ฐ๊ฑฐ๋, ์๋๋ฉด ์ง์ ๊ฐ์ ธ์์ผ ํ๋ค๋ ๊ฑฐ์์ฃ . ์์์ผ ์ดํ๋ก ์ฐ๋ฆฌ ๋ชจ๋ ์ง์ ๊ฐํ ์์๊ณ , ์ด๋ ์ ํ๋ ์์๊ณ , ์ด๋ป๊ฒ ๋ ์ง๋ ์๋ฌด๋ ๋ชฐ๋์ต๋๋ค. ๊ทธ๋์ ๋ต์ ์์ฃผ ์์ฐ์ค๋ฌ์ ์ต๋๋ค.

์์๋ค์ํผ 4์ 1์ผ ์์์ผ์ ์๊ฒฉํ ์๊ฐ๊ฒฉ๋ฆฌ ๊ธฐ๊ฐ์ด ์์๋ ๋ ์ด์์ต๋๋ค. ์ ํฌ๋ ๋ชจ๋ ์ฌํ๊ทผ๋ฌด๋ก ์ ํํ๊ณ , VPN์ด ํ์ํ์ต๋๋ค. ์ ํฌ VPN์ ๋ค์๊ณผ ๊ฐ์ ๊ธฐ์ ๋ก ๊ตฌ์ถ๋์์ต๋๋ค. OpenVPNํ์ง๋ง ๋ฌ์์ ์ํธํ๋ฅผ ์ง์ํ๊ณ PKCS#11 ํ ํฐ ๋ฐ PKCS#12 ์ปจํ
์ด๋์ ์ฐ๋ํ ์ ์๋๋ก ์์ ๋์์ต๋๋ค. ๋น์ฐํ ์ฐ๋ฆฌ ์์ ๋ VPN์ ํตํด ์์
ํ ์ค๋น๊ฐ ์์ ํ ๋์ด ์์ง ์์์ต๋๋ค. ๋ง์ ์ฌ์ฉ์๊ฐ ์ธ์ฆ์๊ฐ ์์๊ณ , ์ผ๋ถ๋ ๋ง๋ฃ๋ ์ธ์ฆ์๋ฅผ ๊ฐ์ง๊ณ ์์์ต๋๋ค.
๊ทธ ๊ณผ์ ์ ์ด๋ป๊ฒ ์งํ๋์๋์?
๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ์ ์ ํธ๋ฆฌํฐ๊ฐ ๊ตฌ์ถ์ ๋์ฐ์ต๋๋ค. ๋ฐ ์์ฉ ํ๋ก๊ทธ๋จ (์ธ์ฆ๊ธฐ๊ด).
cryptoarmpkcs ์ ํธ๋ฆฌํฐ๋ฅผ ์ฌ์ฉํ๋ฉด ์๊ฐ ๊ฒฉ๋ฆฌ ์ค์ด๊ณ ํ ์ปดํจํฐ์ ํ ํฐ์ด ์๋ ์ง์์ด ์ธ์ฆ์ ์์ฒญ์ ์์ฑํ ์ ์์ต๋๋ค.

์ง์๋ค์ด ์ ์ฅ๋ ์์ฒญ์ ์ด๋ฉ์ผ๋ก ๋ณด๋ด์คฌ์ต๋๋ค. ๋๊ตฐ๊ฐ๋ ์ด๋ ๊ฒ ๋ฌผ์์ง๋ ๋ชจ๋ฆ
๋๋ค. "๊ฐ์ธ ์ ๋ณด๋ ์ด๋ป๊ฒ ๋๋์?"๋ผ๊ณ ์. ์์ธํ ๋ณด๋ฉด ์์ฒญ์๋ ์๋ฌด๊ฒ๋ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์์ฒญ ์์ฒด๋ ์๋ช
์ผ๋ก ๋ณดํธ๋ฉ๋๋ค.
์ธ์ฆ์ ์์ฒญ์ ์์ ์ CAFL63 CA ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ๊ฐ์ ธ์ต๋๋ค.

์์ฒญ์ ๊ฑฐ๋ถ๋๊ฑฐ๋ ์น์ธ๋์ด์ผ ํฉ๋๋ค. ์์ฒญ์ ๊ฒํ ํ๋ ค๋ฉด ํด๋น ์์ฒญ์ ์ ํํ๊ณ ๋ง์ฐ์ค ์ค๋ฅธ์ชฝ ๋ฒํผ์ ํด๋ฆญํ ํ ๋๋กญ๋ค์ด ๋ฉ๋ด์์ "๊ฒฐ์ ํ๊ธฐ"๋ฅผ ์ ํํ์ธ์.

์์ฌ๊ฒฐ์ ์ ์ฐจ ์์ฒด๋ ์ ๋์ ์ผ๋ก ํฌ๋ช
ํฉ๋๋ค.

์ธ์ฆ์๋ ๋น์ทํ ๋ฐฉ์์ผ๋ก ๋ฐ๊ธ๋๋ฉฐ ๋ฉ๋ด ํญ๋ชฉ์ ์ด๋ฆ๋ง "์ธ์ฆ์ ๋ฐ๊ธ"์
๋๋ค.

๋ฐ๊ธ๋ ์ธ์ฆ์๋ฅผ ๋ณด๋ ค๋ฉด ์ํฉ์ ๋ง๋ ๋ฉ๋ด๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ํด๋น ์ค์ ๋ ๋ฒ ํด๋ฆญํ๋ฉด ๋ฉ๋๋ค.

์ด์ openssl(OpenSSL ํ
์คํธ ํญ)๊ณผ ๋ด์ฅ CAFL63 ์ ํ๋ฆฌ์ผ์ด์
๋ทฐ์ด(์ธ์ฆ์ ํ
์คํธ ํญ)๋ฅผ ํตํด ๋ด์ฉ์ ๋ณผ ์ ์์ต๋๋ค. ํ์์ ๊ฒฝ์ฐ, ์ปจํ
์คํธ ๋ฉ๋ด๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์ฆ์๋ฅผ ํ
์คํธ ํ์์ผ๋ก ๋จผ์ ํด๋ฆฝ๋ณด๋์ ๋ณต์ฌํ ๋ค์ ํ์ผ๋ก ๋ณต์ฌํ ์ ์์ต๋๋ค.
์ฌ๊ธฐ์ CAFL63์์ ์ฒซ ๋ฒ์งธ ๋ฒ์ ๊ณผ ๋น๊ตํ์ฌ ์ด๋ค ์ ์ด ๋ณ๊ฒฝ๋์๋์ง ํ์ธํด์ผ ํฉ๋๋ค. ์ธ์ฆ์ ๋ณด๊ธฐ์ ๊ด๋ จํ์ฌ์๋ ์ด๋ฏธ ์ธ๊ธํ์ต๋๋ค. ๋ํ ๊ฐ์ฒด ๊ทธ๋ฃน(์ธ์ฆ์, ์์ฒญ, CRL)์ ์ ํํ์ฌ ํ์ด์ง ๋ชจ๋("์ ํ ํญ๋ชฉ ๋ณด๊ธฐ..." ๋ฒํผ)๋ก ๋ณผ ์ ์๊ฒ ๋์์ต๋๋ค.
์๋ง๋ ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ์ด ํ๋ก์ ํธ๊ฐ ๋ฌด๋ฃ๋ก ์ด์ฉ ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ ๋๋ค. ๋ฆฌ๋ ์ค์ฉ ๋ฐฐํฌํ ์ธ์๋ ๋ค๋ฅธ ์ด์์ฒด์ ์ฉ ๋ฐฐํฌํ๋ค์ด ์ค๋น๋๊ณ ์์ต๋๋ค. Windows ๋ฐ OS X์ฉ ๋ฐฐํฌํ Android ์กฐ๊ธ ํ์ ๊ฒ์๋ ์์ ์ ๋๋ค.
์ด์ ๋ฒ์ ์ CAFL63 ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๋น๊ตํ์ ๋, ์ธํฐํ์ด์ค ์์ฒด๋ง ๋ณ๊ฒฝ๋ ๊ฒ์ด ์๋๋ผ ์์ ์ธ๊ธํ๋ฏ์ด ์๋ก์ด ๊ธฐ๋ฅ๋ ์ถ๊ฐ๋์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ ํ๋ฆฌ์ผ์ด์ ์ค๋ช ํ์ด์ง๊ฐ ์๋กญ๊ฒ ๋์์ธ๋์๊ณ , ๋ค์ด๋ก๋ ๋ฐฐํฌํ์ผ๋ก ๋ฐ๋ก ์ฐ๊ฒฐ๋๋ ๋งํฌ๊ฐ ์ถ๊ฐ๋์์ต๋๋ค.

๋ง์ ์ฌ๋๋ค์ด GOST openssl์ ์ด๋์ ๊ตฌํ ์ ์๋์ง ๋ฌผ์๊ณ ์ง๊ธ๋ ๋ฌป๊ณ ์์ต๋๋ค. ์ ํต์ ์ผ๋ก ์ ๋ , ์น์ ํ๊ฒ ์ ๊ณตํด์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค . ์ด openssl์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. .
ํ์ง๋ง ์ด์ ๋ฐฐํฌํ์๋ ๋ฌ์์ ์ํธํ๋ฅผ ์ ์ฉํ openssl ํ
์คํธ ๋ฒ์ ์ด ํฌํจ๋์์ต๋๋ค.
๋ฐ๋ผ์ CA๋ฅผ ๊ตฌ์ฑํ ๋ Linux์ ๊ฒฝ์ฐ /tmp/lirssl_static์ ์ง์ ํ๊ฑฐ๋ openssl์ ๊ฒฝ์ฐ $::env(TEMP)/lirssl_static.exe๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค. Windows:

์ด ๊ฒฝ์ฐ ๋น lirssl.cnf ํ์ผ์ ๋ง๋ค๊ณ LIRSSL_CONF ํ๊ฒฝ ๋ณ์์ ์ด ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ์ง์ ํด์ผ ํฉ๋๋ค.

์ธ์ฆ์ ์ค์ ์ "ํ์ฅ" ํญ์ "๊ธฐ๊ด ์ ๋ณด ์ก์ธ์ค" ํ๋๊ฐ ์ถ๊ฐ๋์ด ๋ฃจํธ CA ์ธ์ฆ์์ OCSP ์๋ฒ์ ๋ํ ์ก์ธ์ค ํฌ์ธํธ๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค.

CA๊ฐ ์ ์ฒญ์๊ฐ ์์ฑํ ์์ฒญ(PKCS#10)์ ์๋ฝํ์ง ์๊ฑฐ๋, ๋ ์ฌํ ๊ฒฝ์ฐ์๋ CSP๋ฅผ ํตํด ํต์ ์ฌ์๊ฒ ํค ์์ ์์ฑํ์ฌ ์์ฒญ ์์ฑ์ ๊ฐ์ํ๋ค๋ ์ด์ผ๊ธฐ๊ฐ ์์ฃผ ๋ค๋ฆฝ๋๋ค. ๋ํ PKCS#2.0 ์ธํฐํ์ด์ค๋ฅผ ํตํด ์ถ์ถ ๋ถ๊ฐ๋ฅํ ํค(๋์ผํ RuToken EDS-11 ๊ธฐ๋ฐ)๋ฅผ ๊ฐ์ง ํ ํฐ์ ๋ํ ์์ฒญ ์์ฑ๋ ๊ฑฐ๋ถํฉ๋๋ค. ๋ฐ๋ผ์ PKCS#63 ํ ํฐ์ ์ํธํ ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํ ์์ฒญ ์์ฑ ๊ธฐ๋ฅ์ CAFL11 ์ ํ๋ฆฌ์ผ์ด์
๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ํ ํฐ ๋ฉ์ปค๋์ฆ์ ์ฐ๊ฒฐํ๊ธฐ ์ํด ๋ค์ ํจํค์ง๊ฐ ์ฌ์ฉ๋์์ต๋๋ค. CA์ ๋ํ ์์ฒญ์ ์์ฑํ ๋("์ธ์ฆ์ ์์ฒญ" ํ์ด์ง, "์์ฒญ/CSR ์์ฑ" ๊ธฐ๋ฅ), ์ด์ ํค ์ ์์ฑ ๋ฐฉ์(OpenSSL ์ฌ์ฉ ๋๋ ํ ํฐ ์ฌ์ฉ)๊ณผ ์์ฒญ ์๋ช
๋ฐฉ์์ ์ ํํ ์ ์์ต๋๋ค.

ํ ํฐ์ ์ฌ์ฉํ๋ ๋ฐ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ธ์ฆ์ ์ค์ ์ ์ง์ ๋์ด ์์ต๋๋ค.

ํ์ง๋ง ์ ํฌ๋ ์ง์๋ค์๊ฒ ์๊ฐ ๊ฒฉ๋ฆฌ ๋ชจ๋๋ก ๊ธฐ์
VPN ๋คํธ์ํฌ์์ ์์
ํ๊ธฐ ์ํ ์ธ์ฆ์๋ฅผ ์ ๊ณตํ๋ ์ฃผ์ ์์
์์ ๋ฒ์ด๋ฌ์ต๋๋ค. ์ผ๋ถ ์ง์๋ค์ด ํ ํฐ์ ๊ฐ์ง๊ณ ์์ง ์์ ๊ฒ์ผ๋ก ํ์ธ๋์์ต๋๋ค. ์ด๋ค์๊ฒ ๋ณดํธ๋ PKCS#12 ์ปจํ
์ด๋๋ฅผ ์ ๊ณตํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ๋คํํ CAFL63 ์ ํ๋ฆฌ์ผ์ด์
์์ ์ด๋ฅผ ์ง์ํฉ๋๋ค. ๋จผ์ ์ด๋ฌํ ์ง์๋ค์๊ฒ ์ํธํ ์ ๋ณด ๋ณดํธ ๋๊ตฌ์ธ "OpenSSL" ์ ํ์ ๋ช
์ํ๋ PKCS#10 ์์ฒญ์ ์์ฑํ ํ, ์ธ์ฆ์๋ฅผ ๋ฐ๊ธํ์ฌ PKCS#12๋ก ํจํค์งํฉ๋๋ค. ์ด๋ฅผ ์ํด "์ธ์ฆ์" ํ์ด์ง์์ ํ์ํ ์ธ์ฆ์๋ฅผ ์ ํํ๊ณ ๋ง์ฐ์ค ์ค๋ฅธ์ชฝ ๋ฒํผ์ ํด๋ฆญํ ํ "PKCS#12๋ก ๋ด๋ณด๋ด๊ธฐ"๋ฅผ ์ ํํฉ๋๋ค.

์ปจํ
์ด๋์ ๋ชจ๋ ๊ฒ์ด ์ ๋๋ก ๋์ด ์๋์ง ํ์ธํ๊ธฐ ์ํด cryptoarmpkcs ์ ํธ๋ฆฌํฐ๋ฅผ ์ฌ์ฉํฉ๋๋ค.

์ด์ ๋ฐ๊ธ๋ ์ธ์ฆ์๋ฅผ ์ง์๋ค์๊ฒ ๋ณด๋ผ ์ ์์ต๋๋ค. ์ธ์ฆ์๊ฐ ํฌํจ๋ ํ์ผ(ํ ํฐ ์์ ์, ์์ฒญ์ ๋ณด๋ธ ์ฌ๋)์ด๋ PKCS#12 ์ปจํ
์ด๋๋ง ์ ์ก๋๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค. ๋ ๋ฒ์งธ ๊ฒฝ์ฐ์๋ ๊ฐ ์ง์์๊ฒ ์ ํ๋ก ์ปจํ
์ด๋ ๋น๋ฐ๋ฒํธ๋ฅผ ์๋ ค์ค๋๋ค. ์ด๋ฌํ ์ง์๋ค์ VPN ๊ตฌ์ฑ ํ์ผ์ ์์ ํ๊ณ ์ปจํ
์ด๋ ๊ฒฝ๋ก๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์ง์ ํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
ํ ํฐ ์์ ์๋ ํ ํฐ ์ธ์ฆ์๋ฅผ ๊ฐ์ ธ์์ผ ํ์ต๋๋ค. ์ด๋ฅผ ์ํด ๋์ผํ cryptoarmpkcs ์ ํธ๋ฆฌํฐ๋ฅผ ์ฌ์ฉํ์ต๋๋ค.

์ด์ VPN ๊ตฌ์ฑ์ ์ต์ํ์ผ๋ก ํธ์งํ๋ฉด(ํ ํฐ์ ์ธ์ฆ์ ๋ผ๋ฒจ์ด ๋ณ๊ฒฝ๋์์ ์ ์์) ํ์ฌ์ฉ VPN ๋คํธ์ํฌ๊ฐ ์๋ํฉ๋๋ค.
ํดํผ ์๋ฉ
๊ทธ๋ฌ๋ค ๋ฌธ๋ ๊นจ๋ฌ์์ต๋๋ค. ์ ์ฌ๋๋ค์ด ์ ๊ฒ ํ ํฐ์ ๊ฐ์ ธ์์ผ ํ ๊น์, ์๋๋ฉด ์ ๊ฐ ์ง์ ์ ๋ น์ ๋ณด๋ด์ผ ํ ๊น์? ๊ทธ๋์ ๋ค์๊ณผ ๊ฐ์ ๋ด์ฉ์ ํธ์ง๋ฅผ ๋ณด๋์ต๋๋ค.

๋ต๋ณ์ ๋ค์ ๋ ๋์์ต๋๋ค.

์ง๊ธ ๋ฐ๋ก cryptoarmpkcs ์ ํธ๋ฆฌํฐ์ ๋ํ ๋งํฌ๋ฅผ ๋ณด๋ด๋๋ฆฝ๋๋ค.

์ธ์ฆ์ ์์ฒญ์ ์์ฑํ๊ธฐ ์ ์ ํ ํฐ์ ์ ๋ฆฌํ๋ ๊ฒ์ด ์ข์ต๋๋ค.

๊ทธ๋ฐ ๋ค์ PKCS#10 ์ธ์ฆ์์ ๋ํ ์์ฒญ์ด ์ด๋ฉ์ผ๋ก ์ ์ก๋์๊ณ , ๋ค์ ์ฃผ์๋ก ์ธ์ฆ์๋ฅผ ๋ฐ๊ธํ์ต๋๋ค.

๊ทธ๋ฆฌ๊ณ ๊ธฐ๋ถ ์ข์ ์๊ฐ์ด ์์ต๋๋ค.

๊ทธ๋ฆฌ๊ณ ์ด๋ฐ ํธ์ง๋ ์์์ต๋๋ค.

๊ทธ๋ฆฌ๊ณ ๊ทธ ํ์ ์ด ๊ธฐ์ฌ๊ฐ ํ์ํ์ต๋๋ค.
CAFL63 ํ๋ซํผ์ฉ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ Linux ๊ทธ๋ฆฌ๊ณ MS Windows ์ฐพ์ ์์๋ค
์ฌ๊ธฐ์
cryptoarmpkcs ์ ํธ๋ฆฌํฐ์ ๋ฐฐํฌํ(ํ๋ซํผ ํฌํจ) Android, ์ด๋ค
์ฌ๊ธฐ์
์ถ์ฒ : habr.com
