問題ID: 9910 SSHで公開鍵認証について

  • フォーラムは新サイトへ移行しました。
  • このフォーラムではゲスト投稿が禁止されています
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 .3 | 投稿日時 2014-5-3 22:40
shizu8878  半人前   投稿数: 9
クライアントがSSHでサーバへログインする際、2つの認証が行われ、その説明が書かれていますが、よく理解ができません。
この問題に限らず、
よくわかっていないため、質問も分かりにくいかと思います。すみません。また初歩的な質問も含まれるので不快に思われた方はスルーしてください。。

1.SSHでログインする場合、ホスト認証がされた後にユーザ認証がされるとのことでしょうか?

2.すべて公開鍵という記載になってますが、ここでは秘密鍵というのは存在しないのでしょうか?

3.ホスト認証、ユーザ認証のそれぞれの鍵は誰が鍵を作成するのでしょうか?受信側と送信側という話が良く出てきますが、あまりよく理解できてません。

4.公開鍵暗号方式の場合、受信側で公開鍵・秘密鍵を作成するとありますが、なぜ送信側で鍵を作成することはできないのでしょうか?
送信側で公開鍵と秘密鍵を作成⇒送信側で作成した秘密鍵でデータを暗号化⇒受信側に公開鍵を渡しておいて、受信側は公開鍵でデータを複合化してもらう…というのは不可能ですか?
秘密鍵でデータの暗号化はできないのでしょうか?

5.そもそもSSHクライアントとは何のことでしょうか。調べたらteratermとありましたが、teratermに/etcなどのディレクトリがあるのでしょうか?ただのクライアントPCでもないですよね…。
ちょっと理解が追いつかないのでご説明お願いしたいです。。

6.公開鍵暗号方式ですが、基本的に一方通行の使い方しかできないということをネットで見たのですが、一体全体どういうことでしょうか。。

取り留めなくて申し訳ありません。
ディジタル署名の仕組み、SSHの仕組み等、その他諸々よくわかっていないため、大変わかりにくい質問文となりましたが
何卒よろしくお願いいたします。。
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2014-5-3 23:35
arashi1977  長老 居住地: 広島  投稿数: 1715
調べずに書いてるところがあるので、参考レベルにしてください。

引用:
1.SSHでログインする場合、ホスト認証がされた後にユーザ認証がされるとのことでしょうか?
そうです。まずは接続先のホストが自分の知ってる相手か、そして以前つないだ相手と同じかを確認します。
一例で言えば、大学の共用マシンにつなぎに行くつもりで
ssh myname@server.example.ac.jp
ってやったとして、自分のPCの/etc/hostsが書き換えられてserver.example.ac.jpの接続先IPが不正な接続先になってたとしても、つないだ時点で「接続相手から送られてきた指紋が正しいものか」「known_hostsに記録されている内容と合っているか」を確認することで接続先が正しいかどうかを判断できます。
その上で、接続相手にログインする「自分」を認証してもらうわけですね。

引用:
2.すべて公開鍵という記載になってますが、ここでは秘密鍵というのは存在しないのでしょうか?
一般的には、秘密鍵は「自分の手元」においておくものです。誰か(他人)の「秘密鍵」を持っている時点で、公開鍵暗号方式の運用方法を間違っていると思ってもらっていいと思います。

引用:
3.ホスト認証、ユーザ認証のそれぞれの鍵は誰が鍵を作成するのでしょうか?受信側と送信側という話が良く出てきますが、あまりよく理解できてません。
ながいですが…
・ホスト認証:各ホストが自分で生成。つなぎに来た相手に自分の公開鍵を渡し、相手側で接続先の正当性判断に利用してもらう。(例えば公開鍵の指紋を事前に印刷して郵送しておき、実際の接続時に表示された内容と一致することを確認してもらう)
・ユーザー認証:各ユーザーが自分で作成する。他人には「公開鍵」を渡し、自分宛ての暗号化処理時には当該公開鍵を使用して暗号化してもらい、自分は「秘密鍵」で復号化する。(公開鍵ー秘密鍵のペアで暗号化、復号化が可能となる)
ということです。
4にも関連しますが、公開鍵暗号方式の基本は「自分宛ての暗号化処理には、私が作った鍵(公開用)を使ってください。この鍵が正当であることを私(と他の信頼できる誰か)が保証します」です。その相手に送る場合にしか使えない鍵なので、その公開鍵の正当性さえ確認できれば、安心して送信データの暗号化に使用できます。
また、ご質問の通り相手の秘密鍵で暗号化したものを受け取った公開鍵で復号することも可能です。ですが…

送信者が作った鍵を使うということは、「おれおれ、暗号化データ送るから、復号には俺の公開鍵使ってくれよ。だーいじょうぶ、おれを信じろって」といわれて、それを信じて復号する、ということです。さて、送られてきたデータが暗号化されているからといって、その暗号化データの作成者が正当かどうか判断できないが、送られてきたデータを復号化するには、受け取った公開鍵を使用するしかないので言われるとおりに使って復号化したものは本当に問題ないのでしょうか?

相手が毎回鍵生成を行って(実際できます)、マルウェア入りデータを暗号化して手当たり次第にいろんな人に送りつけるようなことが行われるとして、それをあなたは「送られてきた公開鍵で復号化」しますか?

SSL利用サイトでもそうですが、このサイトがこの企業であることを認証機関が審査して正当であることを保証します。なのでこのサイトから渡された公開鍵で暗号化して通信しても大丈夫ですという運用なのです。

引用:
5.そもそもSSHクライアントとは何のことでしょうか。
SSHプロトコルが理解でき、SSHサーバと通信する相手です。(サーバにつなぐので、クライアント)
あるホスト(PCなど)のことを指すこともありますし、あるホスト上で動作するSSHクライアントプログラムのことをそう呼ぶこともあります。
これは場合によって使い分け、ですかね。

引用:
6.公開鍵暗号方式ですが、基本的に一方通行の使い方しかできないということをネットで見たのですが、一体全体どういうことでしょうか。。
上記の通り、私宛のデータを暗号化するときには、私の公開鍵を使ってください。私はそれを(私の)秘密鍵で復号化します。逆に私があなたに送るときには「あなたの公開鍵」を使いますので、あなたはそれを(あなたの)秘密鍵で復号化して下さいということですね。

理解の助けになれば幸いです
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2014-5-4 9:03 | 最終変更
antares01  長老   投稿数: 690
引用:
4.公開鍵暗号方式の場合、受信側で公開鍵・秘密鍵を作成するとありますが、なぜ送信側で鍵を作成することはできないのでしょうか?
送信側で公開鍵と秘密鍵を作成⇒送信側で作成した秘密鍵でデータを暗号化⇒受信側に公開鍵を渡しておいて、受信側は公開鍵でデータを複合化してもらう…というのは不可能ですか?

LPICの話とは別に、一般的な公開鍵暗号方式の場合で言えば、送信側で鍵を作成できます。
但し、第3者に知られたくない秘密にしておきたい情報を暗号化する時には送信者が送信者の秘密鍵で暗号化し、
受信者に送信者の公開鍵を渡すというやりかたは行いません。
公開鍵というのは、名前のとおり、「公開」するものなので特定の人にだけ渡すものではないです。
万が一、送信者の秘密鍵で暗号化したデータが、第3者に渡ってしまった場合、簡単に復号できてしまいます。
その為、受信者の公開鍵で暗号化し、受信者に受信者だけが持つ受信者の秘密鍵で復号してもらいます。

引用:
秘密鍵でデータの暗号化はできないのでしょうか?

送信者の秘密鍵で暗号化するのは、送信者がデータを秘密にしたい時ではなく、
違う用途で利用します。

よくあるのは本人の正当性確認です。
送信者Aさんの秘密鍵で暗号化したデータを、受信者Bさんが送信者の公開鍵で復号します。
受信者Bさんからすれば、
⇒Aさんの公開鍵で復号できるということは、Aさんの秘密鍵で暗号化したデータに間違いない。
⇒Aさんの秘密鍵はAさんしか持っていない。
⇒Aさん以外がAさんになりすました訳ではない。
⇒これはAさんが送ってきたと判断して大丈夫だな。
と、なります。(Aさんが自分の秘密鍵を漏らさない前提に成り立つロジックなのですが)

引用:
6.公開鍵暗号方式ですが、基本的に一方通行の使い方しかできないということをネットで見たのですが、一体全体どういうことでしょうか。。

その情報元を見てないので推測ですが、送信者、受信者どちらが所持する秘密鍵・公開鍵
いずれも同じですが、公開鍵暗号化方式は、「暗号化した時の鍵では復号できない」と言うことを
言いたいのだと思います。

---------
少し話しが変わりますが、暗号関係については以下の4点を勉強されることをお勧めします。
この4点が理解できると、色々なことがすんなりと頭に入ってくると思います。

・公開鍵暗号方式
・共通鍵暗号方式(秘密鍵暗号方式と呼ぶ人もいます)
 公開鍵暗号方式でも秘密鍵という言葉がでてくるので、
 混同しないように私は共通鍵暗号方式と呼んでいます
・ハッシュ
・PKI(Public Key Infrastructure)
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2014-5-6 2:08
shizu8878  半人前   投稿数: 9
>arashi1977 さま
ご丁寧な回答ありがとうございました。
また、お時間を割いてしまったようで大変申し訳ありませんでした。
詳しく書いて頂いたおかげでモヤモヤとしたところが
かなり明確になりました。ありがとうございました。

>antares01 さま
arashi1977さまの回答にもありましたが、技術的には可能なのにもかかわらず、何故送信側で鍵を作成しないのかがよくわかりました。
また送信者の秘密鍵で暗号化する場合は違う用途というご説明もありがとうございました。
理解を深めるために、antares01さまにご指摘いただいた4点について、よく勉強したいと思います。ご回答、本当にありがとうございました。正直かなり助かりました。。

  >フォーラム検索へ


Copyright (c) 2020 Ping-t All rights reserved.