amazon ec2のEC2 Insance Connect 認証でED25519キーが使えるようになったらしい。
EC2 Instance Connect は、Secure Shell (SSH) を使用してインスタンスに接続するシンプルで安全な手段です。認証されたユーザーが接続するたびに生成される 1 回限りの SSH キーを活用する以外に、既存の SSH キーで接続することもできます。EC2 のお客様は、EC2 Instance Connect での認証に、RSA ベースのキーに加えて、SSH 認証によく使われる楕円曲線ベースの公開キーシステムである ED25519 キーペアを使用することができるようになりました。
Amazon EC2 のお客様は EC2 Instance Connect の認証で ED25519 キーが使用可能に
これまでSSH鍵を作るときは脳死でRSA使っていたけど、せっかくなのでED25519で鍵を作ってみることにする。
実際にssh-keygenを使って生成して、RSAで生成された鍵との違いも見てみる。
ED25519とは
ED25519は2006年にDJBによって提案されたアルゴリズムで、その主な特徴は、高速であることと定時間実行(およびサイドチャネル攻撃への耐性)、およびハードコーディングされた曖昧な定数がないことである。つまり強いらしい。
ED25519の鍵を生成する
ssh-keygen でED25519の鍵を生成するのは簡単でオプションに-t ed25519を渡すだけでよい。
すべての Ed25519 鍵は 256 ビットなので、鍵のサイズを設定する必要はないみたい。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
noffuy@DESKTOP:/mnt/c/Users/noffuy/test/sshed25519$ ssh-keygen -t ed25519 Generating public/private ed25519 key pair. Enter file in which to save the key (/home/noffuy/.ssh/id_ed25519): /mnt/c/Users/noffuy/test/sshed25519/id_ed25519 Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /mnt/c/Users/noffuy/test/sshed25519/id_ed25519. Your public key has been saved in /mnt/c/Users/noffuy/test/sshed25519/id_ed25519.pub. The key fingerprint is: SHA256:llfkzLe6yarPaURtxE4kvuOtL8fdBBo5uq3j6Z5HSjo noffuy@DESKTOP The key's randomart image is: +--[ED25519 256]--+ | .oo | | . *+ | | .==.. | | ..oB... | | S.+o +.. | | . o+oo. .| | +.*o. o | | E.**=o. .| | .O&O= | +----[SHA256]-----+ |
簡単だね。
RSAの鍵を生成する
次にこれまで作ってきたRSAの鍵を生成してみる。普段-b は 4096にしてる。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
noffuy@DESKTOP:/mnt/c/Users/noffuy/test/sshed25519$ ssh-keygen -b 4096 Generating public/private rsa key pair. Enter file in which to save the key (/home/noffuy/.ssh/id_rsa): /mnt/c/Users/noffuy/test/sshed25519/id_rsa Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /mnt/c/Users/noffuy/test/sshed25519/id_rsa. Your public key has been saved in /mnt/c/Users/noffuy/test/sshed25519/id_rsa.pub. The key fingerprint is: SHA256:fcZ390y4xFzYOrTsmylrZX1jgLQQGY62XL3yYzwFe1M noffuy@DESKTOP The key's randomart image is: +---[RSA 4096]----+ | o+ | | oo.. o | | o oooo oEo| | o o. ++*.= | | oS..o++%.+| | +oo++O=| | * o+ =| | . = + | | ..o+ | +----[SHA256]-----+ |
これも特段問題はない。
ED25519の鍵長が短い!
生成した公開鍵の鍵をみるとびっくり。公開鍵の大きさが全然違う。
まずRSAの公開鍵はこんな感じ。
1 2 |
noffuy@DESKTOP:/mnt/c/Users/noffuy/test/sshed25519$ cat id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC2TWecotlEFpaQSImO/kN8/kkBQ78uDQWUMmHDiniGjWfWhcA2IhbsF+r1LpJ/yF+rWfJ0q7L7t8uCadESvM21jhGr4pQmPMUlgYbYyNZc05DqIWHArBpxeZsOBL7a2C2K/e+RQwLZ7Q4lBQCGjmrgh/ZPDSmuDL6IxfcQvI5s0x+Zky6s9stcXaHl+1gi794vzQCLJ41s7z0pDRetgW5+/dG0DrkArh+bZctuZ5fBbjOtiq8iN4WI7WXowE5nRdU9DP/RVO6HqrThqx+Vezab6DmeWCqNA1J0UkX5iphEcxit8aM8by+g2WyIDXae5Wv/ikCw5eU36T37pMYGPJCIdoINH05esB4KdeEXHtiipdXpXYaakt8QkKVo8EuQV1hXljCHnCzlmvEwYzWnmgb9Yl6Ft8pZgLt+22LPMJhK4ekx0aPz7086LPe9xD5SEBAB6teLxagWPyzPVbk0RSJpLlBwij03ZLyVEDIOtk+Y9uVrquAsCSYB2sWLcPZ+rlmSVrPSj2T+olltKrNV8Bp9ZWnBKrbzt8rdxFzmpyw4jZJRXNfe455bmo7hTaESasZmtapvV69K/Zpa43CCYd0+FfRn+tzXY3sPte1M/usBj9V3ttDi6DW0l2G3l+BRcOwRwlBobhKnJNyphFHmzMbC1vPWispJIx/n4Yq5y1ZD1w== noffuy@DESKTOP |
一方でED25519はこれだけ。
1 2 |
noffuy@DESKTOP:/mnt/c/Users/noffuy/test/sshed25519$ cat id_ed25519.pub ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICfTe+EOoGl816EE2CO15Fo9uiuLscgsu/CUErcRAGE3 noffuy@DESKTOP |
すご。。鍵は長いほどよいという思想に侵されているのでこれで強いの?って思ってしまう。
秘密鍵も長さが全然違う
RSAの秘密鍵はこんな感じ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
noffuy@DESKTOP:/mnt/c/Users/noffuy/test/sshed25519$ cat id_rsa -----BEGIN RSA PRIVATE KEY----- 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 -----END RSA PRIVATE KEY----- |
まあ、秘密鍵だし。こんなもんだよねと。
でもED25519の秘密鍵はすごい。
1 2 3 4 5 6 7 8 |
noffuy@DESKTOP:/mnt/c/Users/noffuy/test/sshed25519$ cat id_ed25519 -----BEGIN OPENSSH PRIVATE KEY----- b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW QyNTUxOQAAACAn03vhDqBpfNehBNgjteRaPbori7HILLvwlBK3EQBhNwAAAJhQ8nB6UPJw egAAAAtzc2gtZWQyNTUxOQAAACAn03vhDqBpfNehBNgjteRaPbori7HILLvwlBK3EQBhNw AAAECa7cPRVYQfhpqRaxyTyHpLfYpNWTR0VoylqKiFsKk2ySfTe+EOoGl816EE2CO15Fo9 uiuLscgsu/CUErcRAGE3AAAAE3F6Y0BERVNLVE9QLTVBVE5PRk4BAg== -----END OPENSSH PRIVATE KEY----- |
嘘だといってくれ。。短いだろ。
鍵は長いほど強い気がしちゃってたので
調べるとRSA-4096を使わないように勧めているみたい。
今後は、ED25519鍵使っていこっと。
参照
EC2 Instance Connect は、Secure Shell (SSH) を使用してインスタンスに接続するシンプルで安全な手段です。認証されたユーザーが接続するたびに生成される 1 回限りの SSH キーを活用する以外に、既存の SSH キーで接続することもできます。EC2 のお客様は、EC2 Instance Connect での認証に、RSA ベースのキーに加えて、SSH 認証によく使われる楕円曲線ベースの公開キーシステムである ED25519 キーペアを使用することができるようになりました。
https://aws.amazon.com/jp/about-aws/whats-new/2022/01/ed25519-keys-authentication-ec2-instance-connect/
このアルゴリズムは2006年にDJBによって提案された[Curve25519]。その主な特徴は、高速であることと定時間実行(およびサイドチャネル攻撃への耐性)、およびハードコーディングされた曖昧な定数がないこと。
https://git.libssh.org/projects/libssh.git/tree/doc/curve25519-sha256@libssh.org.txt
しかし、より長い鍵を使うことには限界があることに注意してください[2][3]。GnuPG の FAQ にはこうあります。「RSA-2048 が提供する以上のセキュリティが必要な場合は、RSA を使い続けるのではなく、楕円曲線暗号に切り替えるほうが良いでしょう」[4]。
https://wiki.archlinux.jp/index.php/SSH_鍵#Ed25519
11.5 なぜ人々はRSA-4096を使わないように勧めるのですか?
ほとんどの場合、4096ビットのRSAを使う人は、RSA-4096が実際よりずっと強いと信じているからです。米国国立標準技術研究所(NIST)によると、RSA-2048はおよそ112ビット、RSA-3072はおよそ128ビットのセキュリティが得られるとされています。RSA-4096の安全性については、正式な勧告はありませんが、一般的には140ビット程度になると考えられています。これはRSA-2048と比較して28ビットの改善であり、言及する価値のないほどわずかな改善です。
RSA-2048が提供する以上のセキュリティが必要な場合、RSAを使い続けるのではなく、楕円曲線暗号に切り替えるのが得策でしょう。
https://www.gnupg.org/faq/gnupg-faq.html#please_use_ecc
ほとんどの場合、4096ビットのRSAを使う人は、RSA-4096が実際よりずっと強いと信じているからです
いててててて...
じゃあね〜〜〜。