OpenSSL ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํด ECDH ๊ณต์ ํค๋ฅผ ๋ง๋ค์ด ๋ณด์
ECDH ๊ฐ์ ์์ฑ ํ๊ธฐ ์ํด์๋ ๋ ์์ ECDSA ์ฉ ํค ์์ด ํ์ํ๋ค.
ํค ์์ ์ด๋ฆ์ alice ์ bob ์ด๋ผ๋ ์ด๋ฆ ์ผ๋ก ๋ง๋ค์ด ๋ณด์
๊ทธ๋ผ ECDH ๊ณต์ ํค๋ฅผ ๋ง๋ ๋๊ฒ์ alice ์ ๊ฐ์ธํค์ Bob์ ๊ณต์ ํค๋ฅผ ์ด์ฉํด์ ๋ง๋ค๊ณ
๋ bob์ ๊ฐ์ธํค์ alice ์ ๊ณต์ ํค๋ฅผ ๊ฐ์ง๊ณ ๋ง๋ค๊ฒ ๋๋๋ฐ
์ด๋ ์๋ก ๋ง๋ ๊ณต์ ํค ๊ฐ์ด ๊ฐ์ ๊ฐ์ด ๋์ค๊ฒ ๋๋ ๊ฒ์ด๋ค.
Alice ECDSA ์ฉ ํค ์ ๋ง๋ค๊ธฐ
// ECDSA ์ฉ alice์ ๊ฐ์ธํค ๋ง๋ค๊ธฐ
openssl genpkey -out alice.pem -algorithm EC -pkeyopt ec_paramgen_curve:P-256 -pkeyopt ec_param_enc:named_curve
// alice ์ ๊ฐ์ธํค์์ ๊ณต๊ฐํค ๊ตฌํ๊ธฐ
openssl pkey -pubout -in alice.pem -out alice.pub
- algorithm : EC ์๊ณ ๋ฆฌ์ฆ ์ฌ์ฉ
- ec_paramgen_curve : EC ์ปค๋ธ ์๊ณ ๋ฆฌ์ฆ P-256 ์ฌ์ฉ
- ec_param_enc : ํ๋ผ๋ฏธํฐ์ ๋ค์๋ ๋ฐฉ์์ ์ธ์ฝ๋ฉ
์ด๋ ๊ฒ ํ๋ฉด alice.pem ๊ฐ์ธํค ํ์ผ๊ณผ alice.pub ์ ๊ณต๊ฐํค๊ฐ PEM ํ์์ผ๋ก ๋ง๋ค์ด ์ง๋ค.
Bob ECDSA ์ฉ ํค ์ ๋ง๋ค๊ธฐ
// ECDSA ์ฉ bob์ ๊ฐ์ธํค ๋ง๋ค๊ธฐ
openssl genpkey -out bob.pem -algorithm EC -pkeyopt ec_paramgen_curve:P-256 -pkeyopt ec_param_enc:named_curve
// bob ์ ๊ฐ์ธํค์์ ๊ณต๊ฐํค ๊ตฌํ๊ธฐ
openssl pkey -pubout -in bob.pem -out bob.pub
Alice ์ ๋์ผํ๊ฒ bop.pem ๊ฐ์ธํค ํ์ผ๊ณผ bob.pub ๊ณต๊ฐํค๊ฐ PEM ํ์์ผ๋ก ๋ง๋ค์ด ์ง๋ค.
Alice ๊ณต์ ํค ๊ณ์ฐํ๊ธฐ
openssl pkeyutl -derive -out alicebob.key -inkey alice.pem -peerkey bob.pub
alice ๋ bob์ ๊ณต๊ฐํค์ alice ๊ฐ์ธํค๋ฅผ ์ด์ฉํ์ฌ
alicebob.key ํ์ผ์ด ๋ฐ์ด๋๋ฆฌ๋ก ๊ณต์ ํค ๊ฐ์ด ์์ฑ ๋๋ค.
Bob ๊ณต์ ํค ๊ณ์ฐํ๊ธฐ
openssl pkeyutl -derive -out bobalice.key -inkey bob.pem -peerkey alice.pub
bob ์ alice ์ ๊ณต๊ฐํค์ bob ๊ฐ์ธํค๋ฅผ ์ด์ฉํ์ฌ
bobalice.key ํ์ผ์ ๋ฐ์ด๋๋ฆฌ ๊ณต์ ํค ๊ฐ์ด ์์ฑ ๋๋ค.
๊ณต์ ํค ๋น๊ต
cmp alicebob.key bobalice.key
๋ ํ์ผ์ ๋น๊ต์ ๋์ผํ ๋ด์ฉ์ ๋ฐ์ด๋๋ฆฌ ์ด๋ฏ๋ก ์๋ฌด ํ์๊ฐ ์๋ค.
๋ง์ฝ ๋ค๋ฅธ ์ ์ด ์๋ค๋ฉด ๋ค๋ฅธ ๋ถ๋ถ์ ๋ํ ๋ด์ฉ์ ํ์ ํ๊ฒ ๋๋ค.
๋ง๋ฌด๋ฆฌ
ECDH ์๊ณ ๋ฆฌ์ฆ์ ECDSA์ฉ ํค ์์ ์ด์ฉํ์ฌ ๊ณต์ ํค๋ฅผ ๊ตฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
๋ณดํต์ ์ด๋ ๊ฒ ECDH ๊ณต์ ๊ฐ์ ๊ตฌํด์ KDF ๋ฅผ ์ด์ฉํด ์๋ก์ ๋น๋ฐํค๋ฅผ ๋ง๋ค์ด ์ฌ์ฉ๋๋ค.
'Manual > OpenSSL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[OpenSSL] DSA ํค ์ ๋ง๋ค๊ธฐ (0) | 2023.07.04 |
---|---|
[OpenSSL] EdDSA ์๊ณ ๋ฆฌ์ฆ Ed25519 Ed448 ํค ์์ฑ (0) | 2023.06.14 |
[OpenSSL] ca ๋ช ๋ น์ด (0) | 2023.05.24 |
[OpenSSL] crl ๋ช ๋ น์ด (0) | 2023.05.21 |
[OpenSSL] x509 ๋ช ๋ น์ด (0) | 2023.05.20 |