第12回 SSHについて (その1)
公開鍵暗号化方式
こんにちは、はたぴょんです。
関東地方は例年より暑い夏となりました。みなさん夏バテなどしていませんか?私はどっぷり夏バテ中です…。食欲がなくてろくなものを食べていないと、体力が落ちてますます悪化するんですよね。いけません。
さて、今回でLinux初級講座も最後です。今回はSSHの仕組みに関する話で、少し難しいかも知れませんが、教養の1つと思って読み進めてもらうと良いかも知れません。
SSHを利用することで、サーバにリモートログインし操作が可能であることと、そのときの通信内容は暗号化され、安全に通信が可能であることは、Linux入門講座第5回でご紹介しました。
これ以外にSSHの特徴として、プレーンテキストによるパスワード認証ではない特殊な認証で、より安全にユーザー認証ができるしくみがあります。
この認証の仕組みは「公開鍵暗号方式」と呼ばれます。
公開鍵暗号化方式には、暗号化に使うための鍵を2つ用意します。1つは公開鍵と呼ばれ、暗号化専用の鍵です。もう1つは秘密鍵と呼ばれ、暗号化された内容を復元するための鍵です。
このうち、復元用の秘密鍵は絶対に漏洩しないようにします。公開鍵は暗号化用の鍵ですが、この鍵では暗号化した内容を元に戻せないしくみになっています。つまり、秘密鍵を持っていない限り暗号化された内容が読めないしくみになっています。
公開鍵暗号化方式では、サーバに接続するクライアントは、自身の公開鍵をサーバに送り、サーバからもサーバの公開鍵をもらいます。
互いの公開鍵を使ってデータを暗号化し、やり取りをするので、そのデータを復元できるのはお互いだけという事になります。万が一公開鍵が第三者の手に渡っても、その鍵ではデータを復元できないのです。
SSHプロトコルの種類
一言でSSHと言っても実はプロトコルが2種類あり、「SSH1(プロトコル1)」と「SSH2(プロトコル2)」に分かれています。
SSH1とSSH2の違いの1つに、認証に使う公開鍵暗号化方式の違いがあります。
SSH1はRSA公開鍵暗号方式を使って認証します。SSH2はDSA公開鍵暗号方式を使います。RSAは特許の問題から使用が制限されており、特許問題を回避するためにDSAを採用したSSH2が登場したという背景があります。
しかし、RSAの特許は2000年9月で失効し、それ以降はRSAを自由に採用できるようになりました。また、暗号化の手法としてはDSAよりRSAの方が安全性が高いとも言われておりSSH2でもRSAを利用して認証できるようになりました。
SSH1とSSH2で同じRSA公開鍵暗号化方式を利用する場合でも、SSH2の方がより安全です。SSHによる通信は常にデータ改ざんがないかチェックが行われます。このチェック方式もSSH2の方がより強固なしくみが採用されてるからです。