ここではSSHやSSLなどで使われる公開鍵認証方式について紹介します。
🤔 共通鍵認証方式と公開鍵認証方式について
公開鍵認証方式とそれ以前に作られた共通鍵認証方式について紹介します。
共通鍵認証方式
- 共通鍵認証方式はいわゆるパスワード認証、暗号化と復号化で同じ鍵(パスワード)を使う
- 共通鍵をどうやって相手に送付するかの問題がある(同じ送付方法では意味がないため)
公開鍵認証方式
- 復号化のための秘密鍵を手元に保持しておく
- 暗号化のための公開鍵は外部に配布する
- 暗号化は誰でもできるが、復号化は秘密鍵の保持者にだけしかできない
🐡 SSHでの公開鍵認証方式について
SSHとは暗号や認証を使って安全にサーバと通信するためのプロトコルです。このSSHについて説明します。
SSHの認証方式
SSHではデファクトスタンダードで公開鍵認証方式を使います。サーバ側に公開鍵を設置し、クライアント側に秘密鍵を置きます。クライアントの秘密鍵で通信するデータを暗号化して、公開鍵を使ってデータを復号化します。
OpenSSHの主要コマンド
OpenSSHはSSHプロトコルを利用するためのソフトウェアで、世界中で最もよく疲れているSSH実装です。
コマンド | 説明 |
---|---|
ssh |
SSHでサーバに接続してコマンドを実行する |
scp |
SSHを利用して、クライアント、サーバ間でファイルを転送する |
ssh-keygen |
公開鍵認証方式で利用するキーペアを生成する |
余談ですが、ssh
にコマンドを指定しておくと、リモートホストに接続した後に指定のコマンドだけ実行してログアウトしてくれます。
SSHキーの種類
種類 | 説明 |
---|---|
RSA | 鍵の長さが4096bitと長めで、基本的にこちらを選ぶべき |
DSA | SSH2で使えますが、鍵の長さが1024bitと少し短め |
秘密鍵のパスフレーズについて
パスフレーズは秘密鍵を使う際に必要なパスワードで、万一秘密鍵が漏洩した際に勝手に使われるのを防ぐことができます。
🐮 SSL通信におけるサーバ証明について
SSL通信でも公開鍵認証方式が使われています。
SSLの通信の流れ
SSL通信の接続要求から通信までの流れは次のとおりです。
SSLサーバ証明書の役割
SSL接続要求じにサーバからクライアントにSSLサーバ証明書と公開鍵を渡します。クライアントは受け取ったSSLサーバ証明書から、接続相手の情報を確認して通信を行います。