■掲示板に戻る■
全部
1-
101-
201-
301-
401-
501-
601-
701-
801-
901-
1001-
最新50
レス数が1000を超えています。残念ながら全部は表示しません。
ssh
24 :
asm
:2000/12/12(火) 19:34
俺も ssh のソースを読んだわけじゃないから偉そうなことは言えないのだが
>>20
に書いてることがおおむね正しいんじゃないか?
俺は ssh のプロトコルを次のように認識している。
1) まず client はあらかじめ何らかの方法で server のRSA(DSA)公開鍵を
手に入れ、それを known_hosts(known_hosts2) に書いておく。
2) sshの接続の始めに server は自分のRSA(DSA)公開鍵を client に通知し、
client はそれを known_hosts(known_hosts2) の内容と比較する。
3) これで、client は server が別のホストのなりすましでないと確認でき、
また client -> server の片方向の暗号化通信路が確立できる。
4) 次に、このあとの通信に使うための共通鍵暗号の鍵を交換する。
ssh1 では client が 256 bit のランダムな数を選び、3)の
片方向暗号化通信路で送る。
ssh2 では Diffie-Hellman アルゴリズムで共通鍵の交換を行う。
# 正確には、ssh1 ではより安全に鍵交換を行うため server は 2)で
# 1時間毎に再生成されるもう一つのRSA公開鍵も client に送っている。
# 区別のため、この鍵をサーバ鍵、1)の鍵をホスト鍵と呼ぶ。
5) これで client <-> server 間の双方向暗号化通信路が確立される。
以降、*Authentication の設定に基づいて client の認証が行われる。
この手順だと PasswordAuthentication でも素の password は
暗号化通信路の中でしかやりとりされないから、かなり安全だと思う。
でも、例え暗号化されていても password は送りたくないってのなら
RSAAuthentication を使えばいいわけで。
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver5.26+ (01/10/21-)