PKCS#11 ์์ HMAC์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๊ธฐ ์ํด์ Sign/Verify ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ค.
๋จ์ง Sign/Verify ์์ ์ฌ์ฉํ๋ ํค๋ฅผ ๋์นญํค๋ฅผ ๊ฐ์ง๋ฉด ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋์นญํค์ ์์ฑ์ GENERIC ์ ํน์ฑ์ ๊ฐ์ ธ์ผ ํ๋ค.
HMAC ์ฌ์ฉ ํค์ ํน์ฑ
CKA_SIGN CKA_VERIFY ์์ฑ์ด ์์ด์ผ ํ๋ค.
HMAC ์ ์์ฑ ์ CKA_SIGN ์์ฑ์ด ํ์ํ๊ณ HMAC ๊ฒ์ฆ์๋ CKA_VERIFY ์์ฑ์ ๊ฐ์ ธ์ผ ํ๋ค.
๊ทธ๋ฆฌ๊ณ ํค ๊ธธ์ด๋ ์์ฑํ๋ Hash ๊ฒฐ๊ณผ ๊ธธ์ด๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ์์ผ ํจ
HMAC ํค ๋ง๋ค๊ธฐ
๋จผ์ HMAC์ ์คํ ํ๊ธฐ ์ํด์ HMAC ํค๋ฅผ ๋ง๋ค์ด ๋ณด์
CryptokiMan -> Objects -> GenerateKey ๋ฉ๋ด๋ฅผ ์ ํํ์
๊ทธ๋ผ ์๋ ๊ทธ๋ฆผ์ฒ๋ผ Mechanism ์ CKM_GENERIC_SECRET_KEY_GEN ์ผ๋ก ์ ํ ํ๋ค.
๊ทธ๋ฆฌ๊ณ Key size ๋ฅผ 32 ๋ฐ์ดํธ๋ก ํ์๋ค.
์ฐธ๊ณ ๋ก Key size ๋ ์์ฑํ ํด์ฌ ํฌ๊ธฐ ๋ณด๋ค๋ ๊ฐ๊ฑฐ๋ ํฌ๊ฒ ๋ง๋ ๋ค.
์ฌ๊ธฐ์๋ SHA_1 ์ ์ด์ฉํ HMAC์ด๋ผ SHA_1์ 20๋ฐ์ดํธ ์ด๋ฏ๋ก ์ด๋ณด๋ค ํฐ 32 ๋ฐ์ดํธ๋ฅผ ํด ์ฃผ์๋ค.
๊ทธ๋ฆฌ๊ณ Secret Key ํญ์ ์ ํ ํ์ฌ
Sign ๊ณผ Verify ๋ฅผ true ๋ก ์ก์์ฃผ์
PKCS#11 ์์ HMAC์ ๋์นญํค๋ฅผ ์ฌ์ฉํ๋ ์๋ช
๊ณผ ๊ฒ์ฆ์ผ๋ก ์ฌ์ฉ๋๋ค.
๊ทธ๋์ HMAC ๊ฐ์ ์์ฑ ๋ฐ ๊ฒ์ฆ์ ์ํ ํค์ ๋ํ ํ๋๊ทธ ์ค์ ์ด๋ค.
HMAC ๊ฐ ์์ฑ ํ๊ธฐ
์ด์ HMAC ๊ฐ์ ๋ง๋ค์ด ๋ณด์
HMAC์ ๋ง๋ค๊ธฐ ์ํด์๋ CryptokiMan -> Cryptogram -> Sign ์ ์คํํ์ ๊ทธ๋ผ ์๋ ๊ทธ๋ฆผ ์ฒ๋ผ ์๋ช
์ฐฝ์ด ๋ฌ๋ค.
KeyType : SECRET ๋ก ์ค์
Mechanism : CKM_SHA_1_HMAC
๊ทธ๋ฆฌ๊ณ Label ์์๋ ์ฌ์ฉํ ํค ์ ํ ํ๋ค. ์ฌ๊ธฐ์๋ ์์์ ๋ง๋ HMAC_TEST๋ฅผ ์ฌ์ฉ ํ๋ค.
๊ทธ๋ฆฌ๊ณ ์
๋ ฅ ๊ฐ์ "Hello" ๋ฅผ ์
๋ ฅ ํ์๋ค.
์ฌ๊ธฐ์ HMAC ์ ๋ง๋ค๊ธฐ ์ํด์๋
Init->Sign ์ ํด๋ ๋๊ณ Init -> Update -> Final ์ ์ฌ์ฉํด๋ ๋๋ค.
๋์ ์ฐจ์ด๋ ์
๋ ฅ ๊ฐ์ Sign์์ ๋ฃ๊ตฌ ๊ฒฐ๊ณผ๋ฅผ ์ป๋๋ ์๋ Update์์ ๋ฃ๊ตฌ Final ์์ ๋ฃ๊ตฌ ๊ฒฐ๊ณผ๋ฅผ ์ป๋๋ ์ฐจ์ด์ด๋ค.
๊ทธ๋ผ ๊ฒฐ๊ณผ๊ฐ์ธ 0AC2666A79CA6D8B511E07B0C384FB407A69E3B7 ์ MAC ๊ฐ์ผ๋ก ์ป์ ์ ์๋ค.
HMAC ๊ฐ ๊ฒ์ฆ ํ๊ธฐ
์ด์ HMAC ๊ฐ์ ๊ฒ์ฆ ํด ๋ณด์
HMAC์ ๋ง๋ค๊ธฐ ์ํด์๋ CryptokiMan -> Cryptogram -> Verify ์ ์คํํ์ ๊ทธ๋ผ ์๋ ๊ทธ๋ฆผ ์ฒ๋ผ ๊ฒ์ฆ์ฐฝ์ด ๋ฌ๋ค.
KeyType : SECRET ๋ก ์ค์
Mechanism : CKM_SHA_1_HMAC
Label ์์๋ ์ฌ์ฉํ ํค ์ ํ ํ๋ค. ์๋ช
์์ ์ฌ์ฉํ HMAC_TEST๋ฅผ ์ ํํ๋ค.
์
๋ ฅ ๊ฐ์ ์์ฑ์ ์ฌ์ฉํ "Hello" ๋ฅผ ์
๋ ฅ ํ์๋ค.
๊ทธ๋๊ณ ์์ฑํ Signature ๊ฐ์ธ 0AC2666A79CA6D8B511E07B0C384FB407A69E3B7 ์ ์
๋ ฅํ๋ค.
์ฌ๊ธฐ์ HMAC ์ ๊ฒ์ฆ ํ๊ธฐ ์ํด์๋
Init->Verify ์ ํด๋ ๋๊ณ Init -> Update -> Final ์ ์ฌ์ฉํด๋ ๋๋ค.
๋์ ์ฐจ์ด๋ ์
๋ ฅ ๊ฐ์ Verify์์ ๋ฃ๊ตฌ ๊ฒ์ฆ ๊ฒฐ๊ณผ๋ฅผ ์ป๋๋ ์๋
Update์์ ๋ฃ๊ตฌ Final ์์ ๋ฃ๊ตฌ ๊ฒ์ฆ ๊ฒฐ๊ณผ๋ฅผ ์ป๋๋ ์ฐจ์ด์ด๋ค.
๊ทธ๋ผ ๊ฒ์ฆ ๊ฒฐ๊ณผ๋ฅผ Alert ์ฐฝ์ผ๋ก ํ์ธ ํ ์ ์๋ค.
'Manual > CryptokiMan' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[CryptokiMan] DH (Diffie Hellman) ๋ก ํค ์์ฑ ํ๊ธฐ (1) | 2023.10.24 |
---|---|
[CryptokiMan] WrapKey UnwrapKey ์ฌ์ฉ ํ๊ธฐ (0) | 2023.06.27 |
[CryptokiMan] Digest ๊ฐ ์์ฑ ํ๊ธฐ (0) | 2023.06.21 |
[CryptokiMan] Random ๊ธฐ๋ฅ ์ฌ์ฉ๋ฒ (0) | 2023.06.20 |
[CryptokiMan] SoftHSM ๋ชจ๋ ์ด๊ธฐํ ํ๊ธฐ (0) | 2023.05.16 |