SoftHSM์ PKCS#11 ๊ธฐ๋ฅ์ ์ํํธ์จ์ด๋ก ๊ตฌํํ ์คํ์์ค ํ๋ก๊ทธ๋จ์ด๋ค.
์ผ๋ฐ์ ์ผ๋ก๋ HSM์ ํ๋์จ์ด ์ฅ์น ์ด๊ตฌ ์ด๊ฒ์ ์ฌ์ฉํ๊ธฐ ์ํด PKCS#11 API๋ฅผ ์ ๊ณตํ๋ค.
๊ทธ๋์ ํด๋น ํ๋์จ์ด ์ฅ์น๊ฐ ํ์ํ๋ค.
ํ์ง๋ง SoftHSM์ ๋ณ๋์ ํ๋์จ์ด ์์ด ์ํํธ์จ์ด๋ง์ผ๋ก ๊ตฌํ๋์ด์ ์ฝ๊ฒ PKCS#11 ์ ์ฌ์ฉ ํ ์ ์๋ค.
๋ฌผ๋ก ๋ณ๋์ ํ๋์จ์ด๋ก ์ ๊ณตํ์ง ์์ผ๋ฏ๋ก ์์ ์ฑ์ ๋ํด์๋ ์ฝํ์ง๋ง ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ์์๋ ์์ฃผ ์ ์ฉํ๋ค.
https://www.opendnssec.org/softhsm/ ์ฌ๊ธฐ์ ๊ด๋ จ ์ํํธ์จ์ด์ ๋ํ ์ ๋ณด๋ฅผ ์ป์ ์ ์๋ค.
๊ทธ๋ผ ์๋์ฐ ํ๊ฒฝ์์ ์ค์น ๋ฐฉ๋ฒ์ ๋ํด์ ์์๋ณด์
์๋์ฐ ์ค์น ํ์ผ ์์น
https://sourceforge.net/projects/softhsm4windows/
๋จผ์ ์ค์น ํ์ผ์ ๊ฐ์ง๊ณ ์ค์น ํด ์ฃผ์ด์ผ ํ๋ค.
SoftHSM ํ๊ฒฝ ์ค์
๋จผ์ SoftHSM ์ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ์ค์ ํ์ผ ๊ฒฝ๋ก๋ฅผ ๊ทธ๋ฆผ ์ฒ๋ผ ํ๊ฒฝ๋ณ์๋ก ์ก์์ฃผ์ด์ผ ํ๋ค.
์ฐธ๊ณ ๋ก ์ค์น ๊ฒฝ๋ก softhsm2.conf ํ์ผ์ ๋ค์ ์ฒ๋ผ ๊ธฐ๋ก ๋๋ค.
์ฌ๊ธฐ์๋ D:\SoftHSM2 ๊ฒฝ๋ก์ ์ค์น ํ์๋ค.
# SoftHSM v2 configuration file
directories.tokendir = D:\SoftHSM2\var\softhsm2\tokens\
objectstore.backend = file
log.level = INFO
slots.removable = false
- direcories.tokendir : ๊ด๋ จ ๋ฐ์ดํ๊ฐ ์ ์ฅ ๋๋ ์์น
์ฒ์ ์ค์น ํ๋ฉด tokendir ํด๋์ ๋ฐ์ดํ๊ฐ ์๋ค.
๋ง์ฝ ๋ค์ ์ค์น ํ๊ฑฐ๋ ํ ๋ ์ด ํด๋๋ฅผ ๋ฐฑ์ ํด์ ๋ค์ ๋ณต์ฌํด์ฃผ๋ฉด ๊ธฐ์กด ๋ฐ์ดํ๋ฅผ ์ฌ์ฉ ๊ฐ๋ฅ ํ๋ค.
SoftHSM ์ฒ์ ์ํ ํ์ธ
softhsm2-util.exe --show-slots
Available slots:
Slot 0
Slot info:
Description: SoftHSM slot ID 0x0
Manufacturer ID: SoftHSM project
Hardware version: 2.5
Firmware version: 2.5
Token present: yes
Token info:
Manufacturer ID: SoftHSM project
Model: SoftHSM v2
Hardware version: 2.5
Firmware version: 2.5
Serial number:
Initialized: no
User PIN init.: no
Label:
์ด๋ ๊ฒ ์ด๊ธฐํ๊ฐ ์๋ ์ํ๋ก ๋์จ๋ค.
SoftHSM ์ด๊ธฐํ
softhsm2-util.exe --init-token --slot 0 --label "jykim74 token"
๋ช ๋ น์ด๋ก ์ด๊ธฐํ ํ๋ฉด
=== SO PIN (4-255 characters) ===
Please enter SO PIN: ****
Please reenter SO PIN: ****
=== User PIN (4-255 characters) ===
Please enter user PIN: ****
Please reenter user PIN: ****
The token has been initialized and is reassigned to slot 1804819021
SO๋ User ์ PIN ์ค์ ์ ํด์ฃผ์ด์ผ ํ๋ค. ( ์ด PIN ๋ฒํธ๋ ๋ก๊ทธ์ธ์ ์ฌ์ฉ ๋๋ ๊ธฐ์ต ํด ๋์ด์ผ ํ๋ค )
์ฐธ๊ณ ๋ก SO ๋ User PIN ์ค์ ๋ฑ ๊ด๋ฆฌ์ ๊ณ์ ์ผ๋ก ๋ณด๋ฉด ๋๊ณ User๋ ์ผ๋ฐ HSM์ ์ฌ์ฉํ๋ ์ฌ์ฉ์ ์ด๋ค.
์ด๋ ๊ฒ ์ด๊ธฐํ๋ฅผ ํ๊ณ ์ํ ํ์ธ์ ํด๋ณด์
softhsm2-util.exe --show-slots
Available slots:
Slot 1804819021
Slot info:
Description: SoftHSM slot ID 0x6b935a4d
Manufacturer ID: SoftHSM project
Hardware version: 2.5
Firmware version: 2.5
Token present: yes
Token info:
Manufacturer ID: SoftHSM project
Model: SoftHSM v2
Hardware version: 2.5
Firmware version: 2.5
Serial number: b70e9af7eb935a4d
Initialized: yes
User PIN init.: yes
Label: jykim74 token
Slot 1
Slot info:
Description: SoftHSM slot ID 0x1
Manufacturer ID: SoftHSM project
Hardware version: 2.5
Firmware version: 2.5
Token present: yes
Token info:
Manufacturer ID: SoftHSM project
Model: SoftHSM v2
Hardware version: 2.5
Firmware version: 2.5
Serial number:
Initialized: no
User PIN init.: no
Label:
์ด๋ ๊ฒ Slot 0 ๋ฒ์ ์ด๊ธฐํ ๋ฐ PIN ์ค์ ์ด ๋๊ฑธ๋ฃจ ๋์จ๋ค.
ํ์ฌ SoftHSM2 ๊ฒฝ์ฐ slot์ ์ด๊ธฐํ ํ๊ณ ๋๋ฉด ์ถ๊ฐ๋ก ํ ์ ์๋๋ก ์๋์ผ๋ก slot ์ด ์๋ก ์ถ๊ฐ ๋๋ค.(์ด๊ฑด SoftHSM2 ์ ํน์ฑ์ด๋ค)
slot 1๋ฒ๋ ์ด๊ธฐํ๋ฅผ ํ๋ ค๋ฉด --slot 0 ์ --slot 1 ๋ก ๋ฐ๊พธ์ด์ ์ค์ ํ๋ฉด slot 1 ๋ ์ฌ์ฉ ํ ์ ์๋ค.
slot ์ ๊ฒฝ์ฐ ๋
๋ฆฝ๋ ์์ญ์ผ๋ก ๋ถ๋ฆฌ ๋์ด ์๋ ๋
ผ๋ฆฌ์ ๊ฐ๋
์ผ๋ก ๋ณด๋ฉด ๋๋ค.
Linux ํ๊ฒฝ ์ค์
ํ๊ฒฝ ๋ณ์๋ก
export SOFTHSM2_CONF="$HOME/SoftHSM2/softhsm2.conf"
์ค์ ํ๊ณ softhsm2.conf ๋ฅผ ์๋ ์ฒ๋ผ ์ก์๋ค.
# SoftHSM v2 configuration file
directories.tokendir = /home/jykim/SoftHSM2/tokens
objectstore.backend = file
log.level = INFO
slots.removable = false
์ด๋ /home/jykim/SoftHSM2/tokens ํด๋๋ฅผ ์์ฑ ํด ๋์์ผ ํ๋ค.
SoftHSM ์ฌ์ฉ
์ด๋ ๊ฒ ์ด๊ธฐํ๋ฅผ ํ๊ณ ๋๋ฉด ๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํธ์ถํด์ PKCS#11 API์ ์ ์ ๋ ํจ์๋ฅผ ์ด์ฉํด์ ์ฌ์ฉํ๋ฉด ๋๋ค.
์ค์น ํด๋์ lib ์ ๋ณด๋ฉด 32 ๋นํธ์ 64 ๋นํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋ค.
- softhsm2.dll : 32bit crytoki library
- softhsm2-x64.dll : 64bit cryptoki library
์คํ ํ๊ฒฝ์ ๋ง๊ฒ softhsm2 dll ์ ๋์ ํธ์ถ ํด์ ์ฌ์ฉ ํ๋ฉด ๋๋ค.
CryptokiMan ์ ์ด์ฉํด PKCS#11 API๋ฅผ ์ด์ฉํ ๋ชจ์ต์ด๋ค.
์ด ํ๋ฉด์์๋ softhsm2-x64.dll ์ ๋ก๋ ํ์ฌ์ C_Initialize ํ์ C_GetTokenInfo ํจ์๋ฅผ ํธ์ถํ์ฌ ๋ณด์ฌ์ฃผ๋ ํ๋ฉด์ด๋ค.
์ฌ์ค SoftHSM ์์๋ ์ด๊ธฐํ ๊ธฐ๋ฅ์ softhsm2-util ๋ช
๋ น์ด๋ฅผ ์ ๊ณตํ์ง๋ง
PKCS#11 API๋ฅผ ์ด์ฉํด์ ์ด๊ธฐํ๋ ๊ฐ๋ฅํ๋ค.
๋ค์์ CryptokiMan ์ ์ฌ์ฉ ํด PKCS#11 API๋ฅผ ํตํด์ ์ด๊ธฐํ ํ๋ ๋ฒ์ ๋ณ๋๋ก ๋ค๋ฃจ์ด ๋ณด๊ฒ ๋ค.
'PKI > HSM' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[PKCS#11] CK_SESSION_INFO ๊ตฌ์กฐ์ฒด ์ค๋ช (1) | 2024.01.04 |
---|---|
PKCS#11 ์๋ช ์์ C_SignUpdate C_SignFinal ์ฌ์ฉ ๋ชปํ๋ ๋ฉ์ปค๋์ฆ (0) | 2023.11.07 |
PKCS#11 ํจ์ ๋ฐ ์ฌ์ฉ (0) | 2023.04.20 |
PKCS#11 ๊ฐ์ฒด ๋ฐ ๊ตฌ์กฐ (0) | 2023.04.20 |
PKCS#11 ์ด๋ (0) | 2023.04.20 |