TeraTermでの「公開鍵」、「秘密鍵」の作り方を以下に記載します
ターミナル通信をセキュアにするために実装しますが
使用頻度高いのでしっかりマスターしときましょう
暗号化方式について
暗号化の方式として代表的なものは以下の2つになります
■共通鍵暗号方式(共通鍵)
PKI(Public-Key Infrastructure)と呼ばれています
暗号化と復号化に同じ鍵を使う暗号化方式です
①送信者Aさんは共通鍵でデータを暗号化します
②あらかじめ送信者Bに①で使った共通鍵を渡しておきます
③暗号化されたデータを受信者Bが受け取ります
④受信者Bは受け取ったデータを同じ共通鍵で復号化します。
「鍵」情報は、送信側と受信側のみ共有されますが、万が一この鍵が外部に漏れてしまうと簡単に中身を見られてしまいます
また、メリットとしては暗号化・復号化が速いという点です
■公開鍵暗号方式(公開鍵)
PSK(Pre-Shared Key)と呼ばれています
公開鍵は共通鍵とは違い、暗号化と復号化で違う鍵を使います
①受信者Bは自分だけが持っている秘密鍵を使って公開鍵を作成します
②受信者Bはその公開鍵を送信者Aに共有します
③送信者Aは公開鍵でデータを暗号化します
④暗号化されたデータを受信者Bが受け取ります
⑤受信者Bは受け取ったデータを秘密鍵で復号化します
秘密鍵単位で公開鍵を作り、公開鍵を持っている人のみが暗号を解くことができるのでセキュリティは共通鍵より確保できます
デメリットは暗号化・複合化が公開鍵に比べると格段に遅いこととなります。
両者の違いを簡単に言うと、秘密鍵で公開鍵をつくるかどうかになります
公開鍵暗号化方式の実装
今回は公開鍵暗号化方式をTeraTermに取り入れてみます
1.TeraTermを起動する
2.”TeraTerm:新しい接続”ウインドウを「×」か「キャンセル」で閉じる
3.メニューバーの「設定」から「SSH鍵生成」を選択する
4.鍵の種類:RSA ビット数:2048(デフォルト)で「生成」をクリックする
5.「鍵を生成しました」のメッセージが表示され、鍵が作成される
6.鍵(秘密鍵)のパスフレーズ部分にパスワードを入力する。※ノンパスワードも可能
7.鍵を保存する
①公開鍵を保存する (id_rsa.pub)
②秘密鍵を保存する (id_rsa)
公開鍵、秘密鍵ともにサーバ側やクライアント側(TeraTermなど)で作成するのは可能ですが
秘密鍵は絶対に見られてはいけないので、クライアント側で作る方が流れとしては自然です
サーバ側で作成した場合: クライアント側に秘密鍵を送付する必要がある
クライアント側で作成した場合: サーバ側に公開鍵を送付する必要がある
クライアント側で作れば、メールや持ち出しなどで秘密鍵を外に出さないで済みます
※もちろん通信の方向があるので、この例はすべてじゃありません
これはクライアント→サーバへの通信の場合です