Skip to content

์•ˆ๋…•ํ•˜์„ธ์š” 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 ํ‚ค ํŽ˜์–ด๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ps
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 ํ˜•์‹์˜ ํ‚ค ํŽ˜์–ด๋Š” ์œˆ๋„์šฐ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ฃผ์˜ํ•ด์•ผํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํƒ€์›๊ณก์„  ์•”ํ˜ธ์— ๋Œ€ํ•ด์„œ ๋” ์ž์„ธํžˆ ์•Œ๊ณ  ์‹ถ๋‹ค๋ฉด ๋‹ค์Œ์˜ ๊ธ€๋“ค์„ ์ฐธ๊ณ ํ•ด๋ณด์‹œ๊ธฐ๋ฅผ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ  โ€‹

Released under the MIT License.