next up previous
: 2.3 通信確立手順 : 2. SSHの仕組 : 2.1 利用する鍵

2.2 認証

SSHでは通信開始時に,通信相手が正当な実体(人,プログラム,計算機)である のかどうか,という認証を行ないます.人あるいは計算機が正しく認証されたな らば,暗号化した通信を開始します.SSHでは,次の3つの実体が正しいものであ るかどうかを認証します.

SSHでは,図6に示したRSA公開鍵暗号方式を用いた認証方式を 使います.この認証では,RSA公開鍵暗号方式の暗号化関数と復号化関数が同一 関数であるという対称性を利用しています.この関数を23#23,公開鍵を14#14,秘 密鍵を15#15とすると,平文4#4を公開鍵14#14で暗号化してできる暗号文7#7は, 24#24になります.暗号文7#7の復号化は,同じ23#23関数と公開鍵に対応 する秘密鍵15#15とを用いて25#25で元の平文4#4を得ます.逆に秘密鍵15#15で 暗号化した平文は,対応する公開鍵で復号化できます.この性質を利用すると, 文字列を送り合うことにより正しい相手であるかどうかを認証する事が可能です.

図 6: RSA公開鍵暗号方式を用いた認証

6で示した認証方式を利用して,SSHでは以下に示す認証方 式を提供しています.

  1. RSA認証

    最初にサーバとクライアントホスト鍵を用いて図6の 方式で,計算機の認証を行ないます(ホストRSA認証).次に,利用者の鍵 を利用して利用者のRSA認証を行ないます.実際には図 7に示すような手順で認証作業が行なわれます.

  2. ホストRSA認証付き rhosts 認証

    最初にサーバクライアント間でホストRSA認証を行ないます.その後, rshと同様に,サーバ側(ログイン先)の 27#27/.rhosts 27#27/.shosts /etc/hosts.equiv /etc/shosts.equivの いずれかにクライアント(ログイン元)の計算機名が記述されており,か つサーバ側の /etc/ssh_known_host 27#27/.ssh/known_hostsのいずれかにクライアント側のホスト鍵が記 述されていれば,正当な利用者であると認証し,ログインが許可されま す.

  3. パスワード認証

    パスワード認証は(a)RSA認証を利用しておらず,(b)ホストRSA認証付き rhosts認証の条件を満していない場合におこなわれます.最初にサーバ クライアント間でホストRSA認証を行ないます.ここで通信路の暗号化が 始まります.次に,telnetと同様にクライアント側の利用者はユーザ名 とパスワードを入力します.サーバはユーザ名とパスワードの対を用い て認証を行ないます.通信は暗号化されますので,telnetのように平文 でユーザ名やパスワードが通信路を流れることはありません.

  4. rhosts認証

    rhosts認証は既存のrshやrloginのようにサーバ側の 27#27/.rhostsファイルなどに記載されている計算機からのアクセスは 無条件に許可する方式です.普通にSSHをインストールした場合,rhosts 認証による接続はできないようになっています.センターの計算機でも rhosts認証は許可していません.



平成12年1月7日