์๋ ํ์ธ์ Mambo ์ ๋๋ค.
์ค๋์ ๋ณด์ ๊ด๋ จ ๊ธฐ์ ์ธ ํ์๊ณก์ ์ํธ ์๊ณ ๋ฆฌ์ฆ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ED25519๋ผ๋ ๊ฒ์ ๋ํด ์์๋ณด๋ ค๊ณ ํฉ๋๋ค.
์๋ง์กด ์น ์๋น์ค์์๋ 2021๋ 8์ 17์ผ๋ถํฐ EC2 ์ธ์คํด์ค ์ ๊ทผ์ ์ํด ED25519 ํ์์ ํค๋ก SSH ์ฐ๊ฒฐ์ ์ํํ ์ ์๋๋ก ์ง์ํ์์ผ๋ฉฐ 2021๋ 9์ 1์ผ์๋ ๊นํ๋ธ์์๋ DSA ํ์์ ํค๋ฅผ ์ ๊ฑฐํ๊ณ ECDSA์ ED25519 ํ์์ ํค๋ฅผ ์ถ๊ฐํ๊ธฐ๋ก ๊ฒฐ์ ํ์์ต๋๋ค.
๊ณตํต์ผ๋ก ์ธ๊ธ๋๊ณ ์๋ ED25519๋ผ๋ ๊ฒ์ ๋ชจ๋ฅด์๋ ๋ถ์ด๋ผ๋ฉด ์ ์ ํจ๊ป ์์๋ณด๋๋ก ํฉ์๋ค.
ED25519 โ
ED25519(Ed25519)๋ ECC(Elliptic Curve Cryptography) ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ์ํํ๋๋ก ๊ตฌํ๋ ์ ์์๋ช ์ ๋๋ค. ํ์๊ณก์ ์ํธ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ ๊ณต๊ฐํค ์ํธํ ๋ฐฉ์์ ๊ธฐ์กด์ RSA์ ๋น๊ตํด์ ๋์ผํ ์์ ์ฑ์ ๊ฐ์ง๋ฉด์๋ ์๋์ ์ผ๋ก ๋ ์ ์ ๊ธธ์ด์ ํค๋ฅผ ๊ฐ์ง๋ค๊ณ ํฉ๋๋ค. ์ปดํจํฐ ์ฐ์ฐ ์๋๊ฐ ๋ฐ์ ํจ์ ๋ฐ๋ผ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ RSA์ ๊ถ์ฅ๋๋ ํค ๊ธธ์ด๊ฐ ๊ธธ์ด์ง์ผ๋ก ์ธํ์ฌ ์ผ๋ฐ ์ปดํจํฐ ๋๋ ๋๋ฐ์ด์ค์์๋ ์ฐ์ฐ ์๋๊ฐ ๋๋ ค์ง๋ ๋จ์ ์ ๊ฐ์ง๊ฒ ๋๊ณ ์๋์ ์ผ๋ก ์์ ํค ๊ธธ์ด๋ฅผ ์ฌ์ฉํ ์ ์์ผ๋ฉด์ ๋์ผํ ์์ ์ฑ์ ๋ณด์ฌ์ฃผ๋ฏ๋ก ๊ถ์ฅ๋๋ ๊ณต๊ฐํค ์ํธํ ๋ฐฉ์์ด๋ผ๊ณ ํ ์ ์์ต๋๋ค.
RSA์ ๋น๊ตํด์ ๋ณด์์ ์ผ๋ก ์ฐ์ํ๋ค๊ณ ๋ณผ ์ ์์ง๋ง ์๋์ ์ผ๋ก ๋น๊ตํ์ฌ ํจ์จ์ ์ด๋ผ๋ ๊ฒ์ ์ดํดํ์ ์ผํฉ๋๋ค.
ํ์ ๊ณก์ โ
ED25519๋ ์ด๋ค ํ์ ๊ณก์ ์ ์ฌ์ฉํ์ฌ ๊ตฌํ๋ ์ ์์๋ช ์ผ์ง ๊ถ๊ธํด์ง๋๋ค. ๋ค์์ ์ํธํ์ ์ ํฉํ๋ค๊ณ ํ๋จ๋์ด ํ์ค์ผ๋ก ์ ์๋ ํ์ ๊ณก์ ๋ค์ ๋๋ค.
- secp256k1
- secp256r1
- prime256v1
- Curve25519
๋ฏธ๊ตญ ๊ตญ๋ฆฝํ์ค์ฐ๊ตฌ์(NIST) ๋๋ ํ์ค ์ํธํ ๊ทธ๋ฃน(SECG)์์๋ ํจ์จ์ ์ธ ํ์ ๊ณก์ ๋ค์ ์ด๋ฆ์ ๋ถ์ฌํ์ต๋๋ค. ์๋ฅผ ๋ค์ด, ECC NIST P-256์ SECG์์ ์ ์ํ secp256r1๊ณผ prime256v1๋ฅผ ์ง์นญํ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค.
ํ์ค์ผ๋ก ์ ์๋ ๋ค์ํ ํ์ ๊ณก์ ๋ค์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋ค์์ ๋ ๋ฌธ์๋ฅผ ํตํด ํ์ธํ ์ ์์ต๋๋ค.
์ ๋ก์๋ ์ดํดํ๊ธฐ ํ๋ ๋ถ๋ถ์ด๋ผ๊ณ ์๊ฐํ์ฌ ์ค๋ช ์ ์๋ตํ๋ฉฐ ๊ฐ๋จํ๊ฒ ๋งํด์ ์ฌ๋ฌ๊ฐ์ง ํ์ ๊ณก์ ํํ๋ฅผ ๋๋ฉ์ธ ํ๋ผ๋ฏธํฐ๋ก ์ ์ํ์ฌ ์ด๋ฆ์ ๋ถ์ฌํ ๊ฒ ์ ๋๋ค. NIST P-256์ NIST์์ ์ ์ํ ์์ ๊ธฐ๋ฐ์ ํ์ ๊ณก์ ๋ฐฉ์ ์์ ๋งํ๋ฉฐ secp256k1๋ SECG์์ ์ ์ํ Koblitz curve ๊ธฐ๋ฐ์ ํ์ ๊ณก์ ๋ฐฉ์ ์์ ๋งํฉ๋๋ค.
๋นํธ์ฝ์ธ๊ณผ ์ด๋๋ฆฌ์์์๋ secp256k1 ๋ผ๋ ํ์๊ณก์ ์ ์ฌ์ฉํ๋ค๊ณ ...
ํค ๊ตํ๊ณผ ์ ์ ์๋ช โ
ํ์ ๊ณก์ ์ ์ฌ์ฉํ์ฌ ๋ํผ-ํฌ๋จผ ํค ๊ตํ์ ๊ตฌํํ ์๊ณ ๋ฆฌ์ฆ์ ECDH๋ผ๊ณ ํ๋ฉฐ ํ์ ๊ณก์ ์ํธ๋ฅผ ์ฌ์ฉํด์ ์ ์์๋ช ์๊ณ ๋ฆฌ์ฆ(DSA)๋ฅผ ๊ตฌํํ ๊ฒ์ ECDSA๋ผ๊ณ ํฉ๋๋ค. ECDSA๋ ์ง๋ SSL ์ธ์ฆ์ ๊ธ์์ TLS ํธ๋์์ดํฌ ๊ณผ์ ์์ ECDHE_ECDSA์ ๊ฐ์ ํ์ ๊ณก์ ์ํธ ๋ฐฉ์์ ์ฌ์ฉํ๋ ๊ฒ์ ํตํด ์ด๋ฏธ ํ์ธํ ๊ฐ๋ ์ธ๋ฐ ๊ธฐ์ตํ์๋ ๋ถ์ด ๊ณ์ค์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
ํ์ ๊ณก์ ๊ธฐ๋ฐ์ ์ ์ ์๋ช ์๊ณ ๋ฆฌ์ฆ์๋ EdDSA๋ ์์ผ๋ฉฐ Twisted Edwards curve์ Schnorr ์๋ช ๋ฐฉ์์ ์ฌ์ฉํ๋๋ก ๊ตฌํ๋ DSA ์ ๋๋ค.
X25519 ๊ทธ๋ฆฌ๊ณ Ed25519 โ
์์ ์ธ๊ธ๋ ํ์ ๊ณก์ ์ค Curve25519๋ ํค ๊ตํ ์๊ณ ๋ฆฌ์ฆ์ธ ๋ํผ-ํฌ๋จผ๊ณผ ๊ฐ์ด ์ฌ์ฉํ๋๋ก ๊ณ ์๋ ํ์ ๊ณก์ ์ ๋๋ค. Curve25519๋ฅผ ๊ธฐ๋ฐ์ผ๋กํ์ฌ ECDH๋ก ํค ๊ตํ์ ์ํํ๋ ๊ฒ์ X25519๋ผ๊ณ ํ๊ฒ ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ Curve25519๊ณผ ํจ๊ป SHA-512์ ๊ฐ์ ํด์ ํจ์๋ฅผ ์ฌ์ฉํ๋ ๊ตฌํ๋ EdDSA๋ฅผ Ed25519๋ผ๋ ์ด๋ฆ์ผ๋ก ๋ถ๋ฅด๊ฒ ๋ฉ๋๋ค.
- ECDSA : ํ์ ๊ณก์ ๊ธฐ๋ฐ์ ์ ์ ์๋ช ์๊ณ ๋ฆฌ์ฆ
- X25519 : Curve25519๋ฅผ ์ฌ์ฉํ๋ ํ์ ๊ณก์ ํค ๊ตํ ์๊ณ ๋ฆฌ์ฆ
- Ed25519 : Curve25519๋ฅผ ์ฌ์ฉํ๋ ํ์ ๊ณก์ ์ ์ ์๋ช ์๊ณ ๋ฆฌ์ฆ
ED25519 ํค ํ์ด โ
์ง๊ธ๋ถํฐ๋ ED25519 ํ์์ ํค ํ์ด๋ฅผ ๋ง๋ค๊ณ EC2 ์ธ์คํด์ค์ ์ ๊ทผํด๋ณด๋ ๊ฒ์ ๋ฐ๋ผํด๋ณด๊ฒ ์ต๋๋ค.
ํค ํ์ด ์์ฑํ๊ธฐ โ
๋จผ์ , ED25519 ํ์์ ํค ํ์ด๋ OpenSSH๋ฅผ ํตํด ๋ง๋ค ์๋ ์๊ณ ์๋ง์กด ์น ์๋น์ค๋ฅผ ํตํด ED25519 ํ์์ ํค ํ์ด๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
2021๋ 8์ 17์ผ ๋ถํฐ๋ ์ฝ์์ ํตํด ED25119 ํค ํ์ด๋ฅผ ์ฌ์ฉํ์ฌ EC2 ์ธ์คํด์ค ์ฐ๊ฒฐ์ด ๊ฐ๋ฅํ๋ค๊ณ ํ๋๋ฐ ์ฐ์ธก ์ ์ฝ์ฌํญ์๋ ์์ง ์ ๋ฐ์ดํธ๋์ง ์์ ๋ฏ ํฉ๋๋ค.
์๋์ ๊ฐ์ด AWS CLI์ create-key-pair ๋ช ๋ น์ด๋ฅผ ํตํด์๋ ED25519 ํค ํ์ด๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
aws ec2 create-key-pair --key-name mambo --key-type ed25519 --query "KeyMaterial" --output text > aws-mambo.pem
aws ec2 describe-key-pairs
{
"KeyPairs": [
{
"KeyPairId": "###",
"KeyFingerprint": "###",
"KeyName": "mambo",
"KeyType": "ed25519",
"Tags": []
}
]
}
์๋ง์กด ์น ์๋น์ค์ ํค ํ์ด๊ฐ ์์ฑ๋์์ผ๋ฉด VPC์ EC2 ์ธ์คํด์ค๋ฅผ ์์ํ ๋ SSH ์ ์ ์ ์ฌ์ฉ๋ ED25519 ํค ํ์ด๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
EC2 ์ธ์คํด์ค๊ฐ ์คํ๋์์ผ๋ฉด ์๋ง์กด ์น ์๋น์ค ์ฝ์์ EC2 ์ธ์คํด์ค ์ฐ๊ฒฐ ๊ธฐ๋ฅ์ ํตํด ์ธ์คํด์ค์ ์ ์ํด๋ณด๊ฒ ์ต๋๋ค.
ED25519 ํค ํ์ด๋ฅผ ์ฌ์ฉํด์ EC2 ์ธ์คํด์ค ์ฐ๊ฒฐ์ ์ฑ๊ณตํ์์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ๋ง์ด์ฃ , ์๋ง์กด ์น ์๋น์ค์์ ์์ฑ๋ ED25519 ํค ํ์ด๋ฅผ ์๋์ฐ 10์์ ์ง์ํ๋ SSH ํด๋ผ์ด์ธํธ์์ ์ฌ์ฉํด๋ณด๋ฉด ์๋ชป๋ ํ์์ด๋ผ๊ณ ๋ก๊ทธ๊ฐ ์ถ๋ ฅ๋๊ณ EC2 ์ธ์คํด์ค์ ์ฐ๊ฒฐํ ์ ์์์ ํ์ธํ์ต๋๋ค.
ssh -i "aws-mambo.pem" ec2-user@ec2-3-36-96-111.ap-northeast-2.compute.amazonaws.com
The authenticity of host 'ec2-3-36-96-111.ap-northeast-2.compute.amazonaws.com (3.36.96.111)' can't be established.
ECDSA key fingerprint is SHA256:gvSJ/qfnIlB8bkTE78QY65HO4px3YpoYvsyAv90LsTE.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'ec2-3-36-96-111.ap-northeast-2.compute.amazonaws.com,3.36.96.111' (ECDSA) to the list of known hosts.
Load key "aws-mambo.pem": invalid format
ec2-user@ec2-3-36-96-111.ap-northeast-2.compute.amazonaws.com: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
์๋ง์กด ์น ์๋น์ค๊ฐ ๋ง๋ค์ด์ฃผ๋ ED25519 ํ์์ ํค ํ์ด๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ์ง์ ์๋์ฐ 10์์ ssh-keygen์ ํตํด ED25519 ํ์์ ํค ํ์ด๋ฅผ ์์ฑํ๊ณ ์๋ง์กด ์น ์๋น์ค์ ํผ๋ธ๋ฆญ ํค๋ฅผ ์ถ๊ฐํ๋ฉด ์ ์์ ์ผ๋ก EC2 ์ธ์คํด์ค ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.
ssh-keygen -t ed25519 -m PEM -f ./mambo.pem
์ด์ฒ๋ผ ์๋ง์กด ์น ์๋น์ค์์ ๋ง๋ค์ด์ฃผ๋ ED25519 ํ์์ ํค ํ์ด๋ ์๋์ฐ์์ ์ฌ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ ์ฃผ์ํด์ผํ ๊ฒ ๊ฐ์ต๋๋ค.
ํ์๊ณก์ ์ํธ์ ๋ํด์ ๋ ์์ธํ ์๊ณ ์ถ๋ค๋ฉด ๋ค์์ ๊ธ๋ค์ ์ฐธ๊ณ ํด๋ณด์๊ธฐ๋ฅผ ์ถ์ฒ๋๋ฆฝ๋๋ค.
๊ฐ์ฌํฉ๋๋ค.