PKI ์์คํ
์์ ๊ฐ์ฅ ์ค์ํ๊ฒ ๊ด๋ฆฌ ๋์ด์ผ ํ๋๊ฒ์ด ๊ฐ์ธํค์ด๋ค.
๊ทธ๋์ ๊ฐ์ธํค๋ ์ํธํ๋ฅผ ํด์ ๋ณด๊ดํ๋๊ฒ์ด ์ผ๋ฐ์ ์ด๋ค.
๋ฌผ๋ก ์ข๋ ์์ ํ๊ฒ ๋ณด๊ดํ๊ธฐ ์ํด HSM ์ฅ์น๋ฅผ ์ด์ฉํ๋ ๋ฐฉ๋ฒ๋ ์๋ค.
๊ทธ๋ฌ๋ฉด ์ด ๊ฐ์ธํค๋ฅผ ์ํธํ์ ์ฌ์ฉ๋๋ ๋๊ฐ์ง ๊ธฐ์ ํ์ค์ด ์๋ค.
๊ทธ ๋๊ฐ์ง ๊ธฐ์ ํ์ค์ด PKIX ์์ PKCS#8 ๊ณผ PKCS#12 ๋๊ฐ์ง ๊ธฐ์ ์ด ์๋ค.
๊ทธ๋ผ PKCS#8 ๊ณผ PKCS#12 ์ ๋ํด์ ์์ ๋ณด์
PKCS#8
PKCS#8 ์ ๊ฐ์ธํค ๋ง์ ์ํธํ ํ๊ธฐ ์ํด ์ฌ์ฉ ๋๋ ํ์ค ๊ธฐ์ ์ด๋ค [ RFC5208 ]
๊ฐ์ธํค ์ํธ๋ฅผ ์ํด์ PrivateKeyInfo ์ EncryptedPrivateKeyInfo ๋๊ฐ์ง ASN.1 ํ์์ด ์ฌ์ฉ๋๋ค.
๋จผ์ ๊ฐ์ธํค๋ฅผ ์ํธํ ํ๊ธฐ ์ ์ PrivateKeyInfo ํ์์ผ๋ก ๊ฐ์ธํค ๊ฐ์ ๋ง๋ค๊ณ ์ด ๊ฐ์ PKCS#5 ์ ์ํธํ ๋ฐฉ์์ ์ฌ์ฉํ์ฌ
์ํธํ ํํ ์ ์ฅํ๋๊ฒ์ด EncryptedPrivateKeyInfo ํ์์ผ๋ก ์ ์ฅ์ ํ๋ ๊ฒ์ด๋ค.
์ฆ EncryptedPrivateKeyInfo ์์ EncryptedData ๊ฐ์ผ๋ก ์ฌ์ฉ๋๋๊ฒ์ด PrivateKeyInfo ์ ๊ฐ์ ์ํธํ ํ์ฌ ๋ง๋ค์ด์ง๋ ๊ฐ์ด๋ค.
์ผ๋ฐ์ ์ผ๋ก ์ ์ฅํ์ฌ ์ฌ์ฉํ๋ ๊ฐ์ธํค ์ํธํ๋ EncryptedPrivateKeyInfo ํ์์ ์ฌ์ฉํ๋ค.
Private-Key Information Syntax
PrivateKeyInfo ::= SEQUENCE {
version Version,
privateKeyAlgorithm PrivateKeyAlgorithmIdentifier,
privateKey PrivateKey,
attributes [0] IMPLICIT Attributes OPTIONAL }
Version ::= INTEGER
PrivateKeyAlgorithmIdentifier ::= AlgorithmIdentifier
PrivateKey ::= OCTET STRING
Attributes ::= SET OF Attribute
Encrypted Private-Key Information Syntax
EncryptedPrivateKeyInfo ::= SEQUENCE {
encryptionAlgorithm EncryptionAlgorithmIdentifier,
encryptedData EncryptedData }
EncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
EncryptedData ::= OCTET STRING
PEM ์์ Encrypted Private Key ๋ "BEGIN ENCRYPTED PRIVATE KEY" ๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฅ์ด ๋๋ ์ด๋ ๊ฒ ํค๋๊ฐ ์๋ ๊ฐ์ธํค๋ PKCS#8 ์ ์ํธํ๋ ํค๋ก ๋ณด๋ฉด ๋๋ค.
์๋ ๊ทธ๋ฆผ์์ ๋ณด๋ฉด OctetString ์์ญ์ ๊ฐ์ด PrivateKeyInfo ์ ์ํธํ๋ ๋ฐ์ดํ ๊ฐ์ด๋ค.
๊ทธ๋ผ PKCS#8 ํ์์ RSA ํ์ผ์ OpenSSL ๋ช ๋ น์ด๋ก ๋ง๋ค๊ธฐ ์ํด์๋ ์๋ ๊ธ์ ์ฐธ์กฐ ํ์
[OpenSSL] RSA ๊ฐ์ธํค (PrivateKey) ์์ฑ ๋ช ๋ น์ด
PKCS#12
PKCS#12๋ ์ฌ์ค ๊ฐ์ธํค ๋ง์ ์ํ๊ฒ์ด ์๋๋ฆฌ ๋ณดํต ์ธ์ฆ์์ ์ธ์ฆ์ ๊ฒฝ๋ก๊ฒ์ฆ์ ํ์ํ ์ฒด์ธ ๊น์ง ๋ชจ๋ ์ ์ฅ์ ์ํ ๊ธฐ์ ํ์ค์ด๋ค[RFC7292].
์ฆ CA, Root ์ธ์ฆ์๋ฑ ์ ๋ขฐ ์ฒด์ธ์ ๋ง๋ค๊ธฐ ์ํ ๋ชจ๋ ์์๋ฅผ ํ๋์ ํ์ผ๋ก ์ ์ฅํ๊ธฐ ์ํ ํ์์ธ ๊ฒ์ด๋ค.
PKCS#12 ๋ Personal Information Exchange Syntax ๋ก์ ํ์ฅ์๋ฅผ PFX ๋๋ p12 ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค.
์ฆ PFX ๋ Personal Information Exchange ์ ์ฝ์์ด๋ค.
์ผ๋ฐ์ ์ผ๋ก๋ ๋ง์ด ์ฌ์ฉํ๋๊ฒ์ ๊ฐ์ธํค์ ๊ฐ์ธํค์ ๋ง๋ ์ธ์ฆ์๋ฅผ ๊ฐ์ด ํ๋์ ํ์ผ๋ก ์ ์ฅํ๊ธฐ ์ํด ์ฌ์ฉํ๋ค.
PFX PDU Syntax
PFX ::= SEQUENCE {
version INTEGER {v3(3)}(v3,...),
authSafe ContentInfo,
macData MacData OPTIONAL
}
MacData ::= SEQUENCE {
mac DigestInfo,
macSalt OCTET STRING,
iterations INTEGER DEFAULT 1
-- Note: The default is for historical reasons and its
-- use is deprecated.
}
AuthenticatedSafe ::= SEQUENCE OF ContentInfo
-- Data if unencrypted
-- EncryptedData if password-encrypted
-- EnvelopedData if public key-encrypted
์๋ ๊ทธ๋ฆผ์ ๋ณด๋ฉด Content-specific[0] ์์ญ์ ๊ฐ์ธํค์ ์ธ์ฆ์ ์ ๋ณด๋ค์ด ์ ์ฅ์ด ๋๋ค.
๊ทธ๋ผ PKCS#12 ํ์์ ํ์ผ์ OpenSSL ๋ช ๋ น์ด๋ก ๋ง๋ค๊ธฐ ์ํด์๋ ์๋ ๊ธ์ ์ฐธ์กฐ ํ์
[OpenSSL] PKCS#12 (PFX) ํ์ผ ๋ง๋ค๊ธฐ ๋ช ๋ น์ด
๋ง๋ฌด๋ฆฌ
๋ณดํต ๊ฐ์ธํค๋ฅผ ์์ ํ๊ฒ ์ ์ฅํ๊ณ ์ฌ์ฉํ ๋๋ PKCS#8 ์ ์ํธํ ๋ฐฉ์์ ์ฌ์ฉํ์ฌ ์ ์ฅ์ ํ๊ณ
๊ฐ์ธํค์ ์ธ์ฆ์๋ฅผ ๊ฐ์ด ์ ๋ฌ ํ๊ฑฐ๋ ๊ฐ์ ธ์ฌ๋ ์ฌ์ฉํ๋ ๊ธฐ์ ์ด PKCS#12 ์ด๋ค. ์ฆ PFX ํ์ผ์ ์ฌ์ฉํ๋ฉด ๋๋ค.
'PKI > Geneal Infomation' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
KMIP ํ๋กํ ์ฝ์ ๊ดํ์ฌ (0) | 2024.04.04 |
---|---|
SSL ์ธ์ฆ์ ๋ฐ ์ฝ๋ ์๋ช ์ธ์ฆ์ ์ฉ๋ ํ์ธ ๋ฐฉ๋ฒ (1) | 2024.01.30 |
๊ฐ์ธํค, ๊ณต๊ฐํค ๊ทธ๋ฆฌ๊ณ ์ธ์ฆ์ (0) | 2024.01.24 |
OpenSSL vs MbedTLS ๋น๊ต (4) | 2023.05.11 |
์ ์์๋ช ๊ณผ ์ธ์ฆ์ ์ด์ผ๊ธฐ (0) | 2023.05.03 |