セキュリティも学びながらAWS EC2 のキーペアを作成する | アントレプログラマー

セキュリティも学びながらAWS EC2 のキーペアを作成する

AWS

こんにちは、ニキです。

この記事では以下のような疑問を解消します。

  • キーペアを作成するにはどうすればいい?
  • キーペアのタイプはRSAとED25519のどちらを選べばいい?
  • そもそもED25519って何?
  • プライベートキーのファイル形式はどう選べばいい?

結論を先に言うと、キーペアのタイプにはED25519、プライベートキーのファイル形式は接続元のOSごとに決めればいいです。その理由と設定する方法を解説していきます。

Takaharu Niki

・Webエンジニア5年目。
・バックエンドを中心に、フロントエンドやDevOps業務も経験。
・現在は、自社サービス企業のテックリードとして従事。

Takaharu Nikiをフォローする

AWS EC2 のキーペアを作成

EC2サービスコンソール画面へ移動します。 キーペアを作成 を選択して作成を開始します。

最終的には以下のようにキーペアを設定し、キーペアを作成 を選択します。

名前

キーペアの区別が付くように命名します。インスタンスやLinuxユーザーのような単位での作成が一般的です。実際には、セキュリティと管理コストとのバランスで判断します。

キーペアのタイプ

公開鍵認証に用いるデジタル署名アルゴリズムを選択します。

EC2ではデジタル署名アルゴリズムとして、RSAとEdDSA(ED25519)を使用できます。

ED25519はEdDSAベースのデジタル署名アルゴリズムで、2021年8月からED25519を選択可能になりました。

今回は、ED25519を選択します。 簡単に言うと、ED25519の方がセキュリティ強固でパフォーマンスが高いためです。

同じセキュリティレベルを求めるときにRSAの方がキーサイズ(bit)が大きくなります。 EC2のキーペア機能を使って作成するときのキーサイズは、RSAが2048bit(112bitのセキュリティレベル)、ED25519が256bit(128bitのセキュリティレベル)です。

Security level - Wikipedia

プライベートキーファイル形式

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)

参考

Public-key cryptography - Wikipedia
Digital signature - Wikipedia

まとめ

この記事では以下のような疑問を解消できるように執筆しました。

  • キーペアを作成するにはどうすればいい?
  • キーペアのタイプはRSAとED25519のどちらを選べばいい?
  • そもそもED25519って何?
  • プライベートキーのファイル形式はどう選べばいい?

効率的に学習するならプログラミングスクールの検討もありです。

Takaharu Niki

・Webエンジニア5年目。
・バックエンドを中心に、フロントエンドやDevOps業務も経験。
・現在は、自社サービス企業のテックリードとして従事。

Takaharu Nikiをフォローする
AWS
Takaharu Nikiをフォローする
アントレプログラマー
タイトルとURLをコピーしました