Re: 問題ID: 9910 SSHで公開鍵認証について
arashi1977
居住地: 広島
投稿数: 1715
調べずに書いてるところがあるので、参考レベルにしてください。
引用:そうです。まずは接続先のホストが自分の知ってる相手か、そして以前つないだ相手と同じかを確認します。
一例で言えば、大学の共用マシンにつなぎに行くつもりで
ってやったとして、自分のPCの/etc/hostsが書き換えられてserver.example.ac.jpの接続先IPが不正な接続先になってたとしても、つないだ時点で「接続相手から送られてきた指紋が正しいものか」「known_hostsに記録されている内容と合っているか」を確認することで接続先が正しいかどうかを判断できます。
その上で、接続相手にログインする「自分」を認証してもらうわけですね。
引用:一般的には、秘密鍵は「自分の手元」においておくものです。誰か(他人)の「秘密鍵」を持っている時点で、公開鍵暗号方式の運用方法を間違っていると思ってもらっていいと思います。
引用:ながいですが…
・ホスト認証:各ホストが自分で生成。つなぎに来た相手に自分の公開鍵を渡し、相手側で接続先の正当性判断に利用してもらう。(例えば公開鍵の指紋を事前に印刷して郵送しておき、実際の接続時に表示された内容と一致することを確認してもらう)
・ユーザー認証:各ユーザーが自分で作成する。他人には「公開鍵」を渡し、自分宛ての暗号化処理時には当該公開鍵を使用して暗号化してもらい、自分は「秘密鍵」で復号化する。(公開鍵ー秘密鍵のペアで暗号化、復号化が可能となる)
ということです。
4にも関連しますが、公開鍵暗号方式の基本は「自分宛ての暗号化処理には、私が作った鍵(公開用)を使ってください。この鍵が正当であることを私(と他の信頼できる誰か)が保証します」です。その相手に送る場合にしか使えない鍵なので、その公開鍵の正当性さえ確認できれば、安心して送信データの暗号化に使用できます。
また、ご質問の通り相手の秘密鍵で暗号化したものを受け取った公開鍵で復号することも可能です。ですが…
送信者が作った鍵を使うということは、「おれおれ、暗号化データ送るから、復号には俺の公開鍵使ってくれよ。だーいじょうぶ、おれを信じろって」といわれて、それを信じて復号する、ということです。さて、送られてきたデータが暗号化されているからといって、その暗号化データの作成者が正当かどうか判断できないが、送られてきたデータを復号化するには、受け取った公開鍵を使用するしかないので言われるとおりに使って復号化したものは本当に問題ないのでしょうか?
相手が毎回鍵生成を行って(実際できます)、マルウェア入りデータを暗号化して手当たり次第にいろんな人に送りつけるようなことが行われるとして、それをあなたは「送られてきた公開鍵で復号化」しますか?
SSL利用サイトでもそうですが、このサイトがこの企業であることを認証機関が審査して正当であることを保証します。なのでこのサイトから渡された公開鍵で暗号化して通信しても大丈夫ですという運用なのです。
引用:SSHプロトコルが理解でき、SSHサーバと通信する相手です。(サーバにつなぐので、クライアント)
あるホスト(PCなど)のことを指すこともありますし、あるホスト上で動作するSSHクライアントプログラムのことをそう呼ぶこともあります。
これは場合によって使い分け、ですかね。
引用:上記の通り、私宛のデータを暗号化するときには、私の公開鍵を使ってください。私はそれを(私の)秘密鍵で復号化します。逆に私があなたに送るときには「あなたの公開鍵」を使いますので、あなたはそれを(あなたの)秘密鍵で復号化して下さいということですね。
理解の助けになれば幸いです
引用:
1.SSHでログインする場合、ホスト認証がされた後にユーザ認証がされるとのことでしょうか?
一例で言えば、大学の共用マシンにつなぎに行くつもりで
ssh myname@server.example.ac.jp
その上で、接続相手にログインする「自分」を認証してもらうわけですね。
引用:
2.すべて公開鍵という記載になってますが、ここでは秘密鍵というのは存在しないのでしょうか?
引用:
3.ホスト認証、ユーザ認証のそれぞれの鍵は誰が鍵を作成するのでしょうか?受信側と送信側という話が良く出てきますが、あまりよく理解できてません。
・ホスト認証:各ホストが自分で生成。つなぎに来た相手に自分の公開鍵を渡し、相手側で接続先の正当性判断に利用してもらう。(例えば公開鍵の指紋を事前に印刷して郵送しておき、実際の接続時に表示された内容と一致することを確認してもらう)
・ユーザー認証:各ユーザーが自分で作成する。他人には「公開鍵」を渡し、自分宛ての暗号化処理時には当該公開鍵を使用して暗号化してもらい、自分は「秘密鍵」で復号化する。(公開鍵ー秘密鍵のペアで暗号化、復号化が可能となる)
ということです。
4にも関連しますが、公開鍵暗号方式の基本は「自分宛ての暗号化処理には、私が作った鍵(公開用)を使ってください。この鍵が正当であることを私(と他の信頼できる誰か)が保証します」です。その相手に送る場合にしか使えない鍵なので、その公開鍵の正当性さえ確認できれば、安心して送信データの暗号化に使用できます。
また、ご質問の通り相手の秘密鍵で暗号化したものを受け取った公開鍵で復号することも可能です。ですが…
送信者が作った鍵を使うということは、「おれおれ、暗号化データ送るから、復号には俺の公開鍵使ってくれよ。だーいじょうぶ、おれを信じろって」といわれて、それを信じて復号する、ということです。さて、送られてきたデータが暗号化されているからといって、その暗号化データの作成者が正当かどうか判断できないが、送られてきたデータを復号化するには、受け取った公開鍵を使用するしかないので言われるとおりに使って復号化したものは本当に問題ないのでしょうか?
相手が毎回鍵生成を行って(実際できます)、マルウェア入りデータを暗号化して手当たり次第にいろんな人に送りつけるようなことが行われるとして、それをあなたは「送られてきた公開鍵で復号化」しますか?
SSL利用サイトでもそうですが、このサイトがこの企業であることを認証機関が審査して正当であることを保証します。なのでこのサイトから渡された公開鍵で暗号化して通信しても大丈夫ですという運用なのです。
引用:
5.そもそもSSHクライアントとは何のことでしょうか。
あるホスト(PCなど)のことを指すこともありますし、あるホスト上で動作するSSHクライアントプログラムのことをそう呼ぶこともあります。
これは場合によって使い分け、ですかね。
引用:
6.公開鍵暗号方式ですが、基本的に一方通行の使い方しかできないということをネットで見たのですが、一体全体どういうことでしょうか。。
理解の助けになれば幸いです
投稿ツリー
-
問題ID: 9910 SSHで公開鍵認証について
(shizu8878, 2014-5-3 22:40)
- Re: 問題ID: 9910 SSHで公開鍵認証について (arashi1977, 2014-5-3 23:35)
- Re: 問題ID: 9910 SSHで公開鍵認証について (antares01, 2014-5-4 9:03)
- Re: 問題ID: 9910 SSHで公開鍵認証について (shizu8878, 2014-5-6 2:08)