[์ด ๊ธฐ๋ฅ์ ๋ผ์ด์ ์ค ๋ฒ์ ๊ธฐ๋ฅ์
๋๋ค]
๋ผ์ด์ ์ค๊ฐ ํ์ํ ๋ถ์ [ํ๋ก๊ทธ๋จ ํค ๋ฐ๊ธ] ํ์ด์ง์์ 30์ผ ๋ผ์ด์ ์ค ๋ฐ๊ธ ๊ฐ๋ฅํฉ๋๋ค
PKCS#11 ๊ธฐ๋ฅ์์ ECDH ์๊ณ ๋ฆฌ์ฆ์ ์ด์ฉํ ๋์นญํค ์์ฑ์ ํ ์ ์๋ค.
PKCS#11 ์์ ๋์นญํค๋ฅผ ์์ฑ ํ๋ ค๋ฉด ECDSA ์ฉ ํค ์์ด ์์ด์ผ ํ๊ณ ์ด ํค ์์ ์ด์ฉํ์ฌ C_DeriveKey ๊ธฐ๋ฅ์ ์ด์ฉํ์ฌ
ECDH ๋ฉ์ปค๋์ฆ์ ์คํ ํ๋ฉด ๋๋ค.
์ด ๋ ์์ฑํ ๋์นญํค๋ ๊ฒฐ๊ณผ ๊ฐ์ผ๋ก ๋์ค๋ ๊ฒ์ด ์๋๋ผ
HSM ์ฅ์น๋ด์ ์์ฑ ๋ฐ ๋๊ณ ๊ฒฐ๊ณผ๋ก ์์ฑ๋ ํค์ ํธ๋ค์ ์ป์ ์ ์๋ค.
๊ทธ๋ผ ECDH ์์ฑ์ ์ํด์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฒดํฌ ์ฌํญ์ด๋ค.
- ECDSA ํค๋ฅผ ๋จผ์ ์์ฑ ํ๋๋ฐ ์ด ํค ์ ์์ฑ์์ CKA_DERIVE ๋ฅผ TRUE ๋ก ์ค์ ํด ์ฃผ์ด์ผ ํ๋ค.
์ฌ๊ธฐ์ ECDSA ํค๋ฅผ ์์ฑ ์ ํ๋ผ๋ฏธํฐ๋ฅผ ์ง์ ํด ์ฃผ์ด์ผ ํ๋๋ฐ ์ฌ๊ธฐ์๋ prime256v1 ํ๋ผ ๋ฏธํฐ๋ฅผ ์ฌ์ฉํ์. - ECDH ๊ฐ์ ๊ตฌํ๊ธฐ ์ํด์๋ C_DeriveKey ํจ์๋ฅผ ์ด์ฉํ๋๋ฐ ์ค์ ํค๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด
C_Initialize -> C_OpenSession -> C_Login ๊น์ง ๋จผ์ ์ด๋ฃจ์ด ์ ธ์ผ ํ๋ค.
์ฆ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํธ์ถ๊ณผ ๋ก๊ทธ์ธ ๊น์ง์ ๊ณผ์ ์ ์ฌ๊ธฐ ๋ฌธ์์์๋ ์๋ต ํ์์ง๋ง ์ด ๊ณผ์ ์ ํ์ ์ด๋ค.
์ด ๋ฌธ์ ์์ฑ์ ์ํ์ฌ ์ฌ์ฉํ PKCS#11 ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ SoftHSM2 ๋ฅผ ์ฌ์ฉํ์๋ค.
ECDSA ํค ์ ์์ฑ
CryptokiMan์์ Objects -> Generate KeyPair ๋ฅผ ์คํ ํ์
๊ทธ๋ผ ์๋ ๊ทธ๋ฆผ ์ฒ๋ผ General ์ ๋ณด ์ฐฝ์ด ๋์จ๋ค.
- Mechanism ์ CKM_ECDSA_KEY_PAIR_GEN ์ ์ ํ
- NamedCurve ๋ prime256v1 ํ๋ผ๋ฏธํฐ๋ฅผ ์ ํ
๊ทธ๋ฆฌ๊ณ Private Key ํญ์ ์ ํ ํ์
- ๋ผ๋ฒจ๋ช ์ ๊ธฐ์ต ํ๊ธฐ ์ฝ๊ฒ ์ ์ด ์ฃผ๋ฉด ๋๋ค.
- Derive ์์ฑ์ ํ์๋ก TRUE ๋ฅผ ์ ํ ํด์ฃผ์ด์ผ ํ๋ค.
๊ทธ๋ฆฌ๊ณ OK ๋ฅผ ๋๋ฅด๋ฉด ECDSA ํค ์์ด ์์ฑ ๋๋ค. ์์ฑ๋ ํค๋ Objects ์์ Private Key ๋ฉ๋ด๋ก ํ์ธ ๊ฐ๋ฅ ํ๋ค.
์ด ๋ ์
๋ ฅํ ๋ผ๋ฒจ๋ช
์ ํ์ธ ํ๋ฉด ๋๋ค.
์ฐธ๊ณ ๋ก ๊ณต๊ฐํค ์ ๋ณด๋ ๊ธฐ๋ก์ด ๋๋๋ฐ ์ค์ ์ฌ์ฉ์ ๊ฐ์ธํค ์ด์ด์ ํน๋ณํ ์ค๋ช ์ ํ์ง ์์๋ค.
ECDSA ๊ณต์ ํค๋ฅผ ์์ฑ ํด๋ณด์
๊ณต์ ํค๋ฅผ ์์ฑ ํ๊ธฐ ์ํด์๋ Tools -> Derive Key ๋ฅผ ์ ํ ํ์
ECDH ํค๋ฅผ ์์ฑ ํ๊ธฐ ์ํด์๋ HSM ๋ด์ ์์ฑํ ๊ฐ์ธํค์ ์๋๋ฐฉ์ ECDSA ๊ณต๊ฐํค ๊ฐ์ ๊ฐ์ง๊ณ ์์ฑ ํ๋ฏ๋ก ์๋๋ฐฉ ๊ณต๊ฐํค๋ ์๋ ์์ ๊ฐ์ ์ฌ์ฉํ์๋ค.
# ECDSA ์๋๋ฐฉ ๊ณต๊ฐํค ์์
04CABF3F1100F2D2B2E7D7DC21DB96B3C8833AFD91AAA78A3C30F3E6EEC1963272B38C5933F65D927B2FCA0D8A226D4BEA8AA1F609312546D766CC6B3D9334F73C
์ฐธ๊ณ ๋ก ECDSA ๊ณต๊ฐํค์ ์ฒซ ๋ฐ์ดํธ๋ 04 ๋ก ๊ณ ์ ๊ฐ์ ์ฌ์ฉํ์ฌ์ผ ํ๋ค.
์ด ๊ฐ์ ํน๋ณํ ๊ณต๊ฐํค ๊ฐ์ด ์์ถ ๋์ง ์์์์ ์๋ ค์ฃผ๋ ๊ฐ์ด๋ค.
๊ทธ๋ผ ์๋ ๊ทธ๋ฆผ ์ฒ๋ผ General ํญ์ ์ค์ ํ์
- ๊ธฐ์กด์ ์์ฑํ ECDSA ์ฉ ๋ผ๋ฒจ์ ์ ํ ํ๋ค.
- CKM_ECDH1_DERIVE ๋ฅผ ์ ํํ๋ค. ์ด๊ฒ์ด ECDH ์๊ณ ๋ฆฌ์ฆ ์ฌ์ฉ์ ์๋ ค ์ฃผ๋ ๊ฒ์ด๋ค.
- ๊ธฐ๋ณธ ๋ฐฉ์์ธ CKD_NULL ๋ฐฉ์์ ์ ํ ํ๋ค.
- Public Data ์ ์๋๋ฐฉ ECDSA ๊ณต๊ฐํค ๊ฐ์ ๋ฃ์ด ์ค๋ค.
์ฐธ๊ณ ๋ก EC_KDF_T ์์ CKD_SHA1_KDF ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด ์ด๋์๋ Shared Data ๋ฅผ ์ฌ์ฉํ๋ค.
์ด๊ฒ์ ์์ชฝ์ ๊ณต์ ๋ ๋ฐ์ดํ์ ํด์ฌ๊ฐ์ ๋ด๋ถ์ ์ผ๋ก ์ฌ์ฉํ๋ ๋ฐฉ์์ด๋ค.
์ฌ๊ธฐ์๋ ๊ธฐ๋ณธ ๋ฐฉ์์ธ CKD_NULL ์ ์ฌ์ฉํ์๋ค.
๊ทธ๋ฆฌ๊ณ Key ํญ์ ์ค์ ํ์.
์ฌ๊ธฐ์ Key ํญ์ ์ถ์ถ๋ ํค์ ์์ฑ์ ์ค์ ํ๋ ๊ฒ์ด๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ๋ํดํธ ๊ฐ์์ ์์ฑ ํค ๊ธธ์ด๋ ๋ผ๋ฒจ๋ช
์ ์ง์ ํด ์ฃผ์๋ค.
๊ทธ๋ฆฌ๊ณ OK ๋ฅผ ๋๋ฅด๋ฉด ํค ์์ฑ์ด ๋๋ค.
์์ฑ ๋ ํค๋ฅผ ํ์ธ ํ๊ธฐ ์ํด์๋ Secret Key ๋ฉ๋ด์์ ์์ฑ์ ์ฌ์ฉํ ๋ผ๋ฒจ๋ช
์ ํ์ธ ํ๋ฉด ๋๋ค.
๋ง๋ฌด๋ฆฌ
PKCS#11 API ๋ฅผ ์ด์ฉํ์ฌ ECDH ํค ์ ๋ฐ ๋์นญํค ์ถ์ถ์ ํด๋ณด์๋ค.
ECDH ์๊ณ ๋ฆฌ์ฆ์ ๋์นญํค๋ฅผ ์ถ์ถ ํ๊ธฐ ์ํด์ ์ฌ์ฉ ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ECDH ๋ ํค ๊ฐ์ ์ถ์ถ ํ๊ฒ ๋์ง๋ง PKCS#11์์๋ ํค๊ฐ ์์ฑ์ด ๋๊ณ ๊ทธ์ ๋ํ ํธ๋ค์ ์ป๋๊ฒ์ด๋ค.
์ฆ ํค๋ ์ฅ์น์ ์ ์ฅ์ด ๋์ด์ ์ค์ ํค ๊ฐ์ ์ ์๋ ์๊ณ ๊ทธ์ ๋ํ ํธ๋ค์ ์ด์ฉํ์ฌ ์ฌ์ฉ ํ ์ ์๋ ๊ฒ์ด๋ค.
'Manual > CryptokiMan' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[CryptokiMan] YubiHSM2 ์ฅ์น ํ ์คํธ ( Windows ํ๊ฒฝ ) (0) | 2023.11.22 |
---|---|
[CryptokiMan] HSM ์ฅ์น ์ง์ ๋ฉํฌ๋์ฆ ํ์ธ ํ๊ธฐ (0) | 2023.10.24 |
[CryptokiMan] DH (Diffie Hellman) ๋ก ํค ์์ฑ ํ๊ธฐ (1) | 2023.10.24 |
[CryptokiMan] WrapKey UnwrapKey ์ฌ์ฉ ํ๊ธฐ (0) | 2023.06.27 |
[CryptokMan] HMAC ๊ฐ ๊ตฌํ๊ธฐ (0) | 2023.06.23 |