こんにちは、ニキです。
この記事では以下のような疑問を解消します。
- キーペアを作成するにはどうすればいい?
- キーペアのタイプはRSAとED25519のどちらを選べばいい?
- そもそもED25519って何?
- プライベートキーのファイル形式はどう選べばいい?
結論を先に言うと、キーペアのタイプにはED25519、プライベートキーのファイル形式は接続元のOSごとに決めればいいです。その理由と設定する方法を解説していきます。
AWS EC2 のキーペアを作成
EC2サービスコンソール画面へ移動します。 キーペアを作成 を選択して作成を開始します。
最終的には以下のようにキーペアを設定し、キーペアを作成 を選択します。
名前
キーペアの区別が付くように命名します。インスタンスやLinuxユーザーのような単位での作成が一般的です。実際には、セキュリティと管理コストとのバランスで判断します。
キーペアのタイプ
公開鍵認証に用いるデジタル署名アルゴリズムを選択します。
EC2ではデジタル署名アルゴリズムとして、RSAとEdDSA(ED25519)を使用できます。
ED25519はEdDSAベースのデジタル署名アルゴリズムで、2021年8月からED25519を選択可能になりました。
今回は、ED25519を選択します。 簡単に言うと、ED25519の方がセキュリティ強固でパフォーマンスが高いためです。
同じセキュリティレベルを求めるときにRSAの方がキーサイズ(bit)が大きくなります。 EC2のキーペア機能を使って作成するときのキーサイズは、RSAが2048bit(112bitのセキュリティレベル)、ED25519が256bit(128bitのセキュリティレベル)です。
プライベートキーファイル形式
OpenSSHかPuTTYのどちらを使用するかによって、.pemか.ppkかを選択します。 こだわりがなければ、接続元がMacやLinuxなら.pem、Windowsなら.ppkが妥当です。
完了確認
以下のように完了画面が表示されます。
AWS EC2 のキーペアのキーサイズを確認
キーペアの機能で作成したキーサイズの大きさを確認してみます。
まずRSAのキーサイズから確認します。
openssl rsa -text -in /path/to/RSA.pem
Private-Key: (2048 bit, 2 primes)
RSAの2048bitはセキュリティレベル112bit相当です。
続いて、ED25519のキーサイズを確認します。実はED25519はサイズが決まっているので確認する必要はないですが、念の為に見ておきます。
ssh-keygen -l -f /path/to/ED25519.pem
256 SHA256:***************** no comment (ED25519)
ED25519の256bitはセキュリティレベル128bit相当です。
AWSのコンソールで作成する場合、ED25519の方がセキュリティ強固でサイズが小さいことがわかります。
Ed25519の理解を深める
Ed25519はPKCにおいて、SHA-512(SHA-2)とCurve25519を使ったEdDSA署名アルゴリズムです。
SHA-512とは
ハッシュアルゴリズムです。 Secure Hash Algorithm 2 のこと。
Curve25519とは
128bitのセキュリティレベル(256bitのキーサイズ)を提供しているECC(PKCの一種)です。
公開鍵暗号との関係性
前提として、公開鍵暗号が示す先には2種類あります。
- PKC: Public Key Cryptography
- PKE: Public Key Encryption
PKCはデジタル署名と鍵共有、PKE(暗号化)を包含します。
まとめると以下のような感じです。
PKC: RSA, ECC デジタル署名: RSA, EdDSA(ED25519)
参考
まとめ
この記事では以下のような疑問を解消できるように執筆しました。
- キーペアを作成するにはどうすればいい?
- キーペアのタイプはRSAとED25519のどちらを選べばいい?
- そもそもED25519って何?
- プライベートキーのファイル形式はどう選べばいい?