• ベストアンサー

認証時の一番最初の公開鍵の獲得方法

ベリサイン等での認証を利用する場合、原理的に少なくとも1つの公開鍵は(CAのルートの公開鍵)オフラインで配送する必要があると思うのですが、どのような方法でクライアント1台1台に、正当な公開鍵を配賦しているのでしょうか? またある一定期間での更新(こちらはオンラインでも可能でしょうが)するひつようもあると思うのですがどのように運用しているのでしょうか?

  • mtbf0
  • お礼率100% (2/2)

質問者が選んだベストアンサー

  • ベストアンサー
  • hitsuji
  • ベストアンサー率22% (2/9)
回答No.1

ベリサインのルートCAの証明書(公開鍵)は、たとえばIEやNetscapeのようなブラウザに同梱されており、それらのブラウザを妥当な入手経路で入手すれば妥当な証明書を入手することができます。また、「一定期間で」更新する必要はないですが、証明書には有効期限がありますので、その際には新しい証明書を入手する必要があります。2000年になった時点である証明書が有効期限切れとなったのですが、その折にベリサインから出たアナウンスを参考URLにあげておきます。要するに、ブラウザをバージョンアップすると、新しい証明書もインストールされるということです。 なお、ブラウザに組み込まれている証明書が真正であるかどうかですが、これは証明書のシリアル番号とフィンガープリントを表示させ、その値をベリサインに照合することで確認できます(実際には http://www.verisign.com/repository/root.html のようなページに掲載されている値と比較する程度か)。

参考URL:
http://www.verisign.co.jp/server/cus/rootcert/user/index.html
mtbf0
質問者

お礼

ご丁寧かつ明確なご回答有り難うございました。 よく調べれば解ることまでお聞きし大変恐縮しております。 大変ずうずうしいのですが、ご回答に関連してまたまた質問させてください。 Q1:ルートCAの証明書(公開鍵)をタンパーフリーな媒体以外で配布することに    一抹の不安を感じるのですが、何か策が施されているのでしょうか? Q2:フィンガープリントとはどのようなものでしょうか?一方向関数による    ハッシュのようなものでしょうか? お手すきのときに回答いただければ幸いです。

その他の回答 (1)

  • hitsuji
  • ベストアンサー率22% (2/9)
回答No.2

A1. 公開鍵証明書は(秘密の情報が含まれるものではないので)受け取った時点で偽造や改ざんを受けていないことを確認する手段があれば充分です。 A2. シグネチャーは公開鍵証明書を1方向ハッシュ関数に通すことによって計算されます。よって、真正な公開鍵証明書を元に計算したことが明らかなシグネチャ-と、手元の公開鍵証明書を元に計算したシグネチャ-が一致しない場合、手元の公開鍵証明書は伝送中に損傷を受けた/改ざんされた/偽造されたと判断することができます。 A1. について補足すると、 http://www.verisign.com/repository/root.html のようなページが存在し、シグネチャーを照合できるようにしてあることが「策」を構成しています。もしも 上記URLの内容すら信頼できない場合にも、ベリサインのオフィスに電話を掛けたり、オフィスまで出向いたりする選択肢もあります(個人のエンドユーザがそこまでするとたぶん嫌がられると思います ^_^)

mtbf0
質問者

お礼

迅速かつ的確なご回答有り難うございます。 運用のイメージとセキュリティレベルについてイメージがつかめました。 ほんとうに有り難うございました。

関連するQ&A

  • RSA公開鍵によるクライアント認証について

    teratermなどでRSAの公開鍵を使ってクライアント認証ができますが、これはパスワード認証のように総当たり攻撃を食らうことがないので、セキュリティー的に安全だと聞きました。 そこで思ったのですが、RSAの公開鍵を使ったクライアント認証をする場合は、パスワード認証はできないように設定しないとまずいですよね?そうしないと結局総当たり攻撃を食らってしまいますよね? 周りの人はパスワード認証もRSAの公開鍵による認証もできる状態で、後者を使っているのですが、これは意味がないように思えるのですが。。。。

  • 公開鍵認証における第三者介入の可能性について

    公開鍵認証、例えばSSHによるアクセスにおける「クライアント(ユーザ)認証」のやり取りについて、中間者攻撃やなりすましの可能性、及びそれに対する防御がどう考慮されているのかがわからず、質問させていただきます。 まず、チャレンジ・レスポンス方式によるクライアント認証は、以下のような流れだと認識しています。 (1)サーバ側が、公開鍵(あらかじめユーザが配置したauthorized_keys)を用いて認証用のランダムデータを暗号化し、クライアント側に送る(チャレンジ)。 ※ここで第三者がデータを盗っても、正しいユーザ以外は対応する秘密鍵を持ってないのでどうすることもできない (2)クライアント側は、公開鍵に対応する秘密鍵によってデータを復号し、サーバへ送り返す(レスポンス)。 ※これは安全なのでしょうか…?(疑問点として詳細後述) (3)サーバ側では、クライアントから送られてきた復号済みデータと、元データと比較し、 合っていれば正しいクライアント(ユーザ)であると認証できる。 ここで、何か大きな思い違いをしているのかもしれませんが、 以下の疑問が生じています。 -------------------------------------- ◆疑問点1 (2)において、復号済みデータ自体がネット回線上に流れた際に、それが盗まれる可能性は存在すると思います。 第三者による不正な認証に使われてしまったりしないのでしょうか? もしかして、先に正しいクライアントが認証されれば、同じ復号済みデータは二度と使えなくなるから安全、とか…? でも、正しいクライアントが認証される前に悪意ある第三者が認証されてしまう可能性はないのでしょうか?(疑問点2に繋がります。 ◆疑問点2 (2)において、悪意ある第三者が介入し、サーバ側には届かないように復号済みデータを横取りし、あたかも自身が復号したデータであるかのようにそのままサーバへ送り、認証自体を横取りしてしまう(第三者が正しいクライアントとして認証されてしまう)ことはありうるのでしょうか? (→中間者攻撃:man-in-the-middle attack?なりすまし?) -------------------------------------- 上記、2つの疑問点についてご教授いただきたいです。 公開鍵、秘密鍵の性質は理解しているつもりなのですが、 データの暗号化・復号化自体をそれぞれの正しいクライアント・サーバにやらせつつ 第三者がやり取りの中間に立つようなことが可能なのであれば、 認証自体が第三者に横取りされ、そこでアクセスが確立しまうのではないかと思った次第です。 (この方法がおそらく無理だからこそ、公開鍵認証が安全なセキュリティ技術として普及しているのだと思いますが、何故無理なのかがわからず…。) お手数ですがどうぞよろしくお願いいたします。

  • sftp時の公開鍵認証

    windowsサーバにSFTPサーバを構築し、公開鍵での認証をかけ、SFTPでファイルやり取りを行いたいのですが、 ファイルやり取りはできるのですが、公開鍵での認証がうまくいきません。 色々なサイトを調べながら以下手順で構築していったのですが、 公開鍵、秘密鍵での認証がうまくいってないように見えます。 なんでもいいので、何か分かる方いましたらご教授お願いします。 ※クライアントPC、サーバともにwindows ◆秘密鍵、公開鍵ファイルの作成(クライアントPC) 1.クライアントPCにSFTP接続ソフト「WinSCP」をインストール 2.「WinSCP」の補助ツール「PuTTYgen」により、秘密鍵ファイル、公開鍵ファイルを作成 3.作成した公開鍵ファイルをサーバへコピー ◆SFTPサーバ構築、公開鍵認証設定(サーバ) 4.サーバにSFTP環境構築ソフト「freeFTPd」をインストール 5.SFTPの接続先(アドレス、ポート22)を設定 6.ユーザー(ID、パスワード)を作成。そのユーザーのSFTP時ホームディレクトリを設定 7.SFTPのサービスを開始 8.6で設定したホームディレクトリの直下に「.ssh」ディレクトリ作成 9.「.ssh」ディレクトリの直下に「authorized_keys」ファイルを作成 10.3でコピーした公開鍵ファイルの中身を、「authorized_keys」ファイルに追加(テキストベースでのコピペ) ◆サーバへのSFTP接続(クライアントPC) 11.クライアントPCで「WinSCP」を起動。SFTPサーバのIP、6で設定したユーザーのID、2で作成した秘密鍵を設定しログイン 12.「Further authentication required Authenticating with public key "dsa-key-20140512" Access denied.」 と表示され、ログインできない 13.秘密鍵を使わず6で設定したユーザーIDとパスワードであれば、ログイン可能。SFTPサーバとのファイルのやり取りも可能 また、「.ssh」ディレクトリと「authorized_keys」ファイルに書き込み権限があるユーザーの場合に、認証が失敗するという情報があったので、 クライアントPCに書き込み権限を持っていないユーザーでログインし、WinSCPを起動してアクセスしてみたのですが、同じ結果でした。

  • 公開鍵と秘密鍵

    サーバ側で ssh-keygen -t rsa と入力すると,公開鍵と秘密鍵が生成されますが どうしてクライアント側に秘密鍵をもたせるのでしょうか? 逆でも通信できる気がします. あと,サーバ1台に対して,クライアントが複数いる場合に 公開鍵と秘密鍵のペアはクライアントの人数分生成するのが適切なのでしょうか? (複数のサーバに1台のクライアントが接続する場合も,各サーバが1台のクライアントに対して公開鍵・秘密鍵を生成するのが適切なのでしょうか?) よろしくおねがいします.

  • PKI(公開鍵基盤)について教えて

    現在個人的に、PKI(公開鍵基盤)を勉強中です。 PKI(公開鍵基盤)のテキストを読むと、だいたいCA(Certificate Authority)は階層構造になっていて、ユーザが、取引先の電子証明書(公開鍵証明書)の正当性を近くのCAに照会に行くと、取引先の電子証明書の正当性をチェックして返答すると同時に、CAが自らの正当性を証明するために、(CAがなりすましでないことを証明するために)、順次、上位のCAに照会をかけ、最後にルートCAにたどり着くと、ルートCAは自らの秘密鍵で自己署名を行って、その自己署名で、CAになりすましがないことを最終的に担保すると書いてあります。 そのような長いトランザクションを、取引先の電子証明書の正当性をチェックする都度行っていると、時間がかかりすぎて実用に耐えないような気がします。 もしかして、実際のCAは階層構造ではなく、ほとんど我々は、ルートCAに直接照会をかけているのでしょうか。

  • 電子認証に伴う公開鍵について

    電子認証に伴う公開鍵についてわかりません。 電子署名にくっついてくるものだと思いますが 公開鍵を作成するには、市販のソフトが必要で しょうか?代表的なものがあれば費用等おしえ てください。 また、あちこちのHPで調べたのですが実際に 取引する場合の仕組みがよくわからないのです が実際に電子署名、証明書がどんなものかサン プル等を手に入れたいのですが何かいい方法が あるでしょうか?

  • SSLの公開鍵をCAから取得できる?

    SSLの通信を確認しているのですが、 クライアントPCとサーバがSSLで通信する場合、公開鍵をサーバから クライアントPCは取得しているようですが、CAからは取得できないのでしょうか? ブラウザにルート証明書がインストールされていないCAなら、 公開鍵をCAに要求し取得するものだと思っていましたが、 そうではないのでしょうか?ググっても明確な情報がでてきませんでした。ぜひご教示宜しくお願い致します。

  • [VPS] 公開鍵認証を設定できません

    閲覧ありがとうございます さくらVPSを借契約して色々と試しているのですが 公開鍵認証の設定ができずに困っています どこが抜けて、あるいは間違えているのか教えてください VPSのOSは"ubuntu 14.04" clientのOSは"windows7"です ssh_config で設定を以下のように変更 ssh 12345 PermitRootLogin no PubkeyAuthentication yes UsePAM no PasswordAuthentication yes #失敗した時のために"yes"にしています .ssh ディレクトリを作成 $mkdir .ssh $chmod 700 .ssh client側でPuTTYを使い公開鍵と秘密鍵を作成 公開鍵をOpenSSHに変換し、VPSに送信 公開鍵を登録、パーミッションの変更 $cat xxx.pub >> $HOME/.ssh/authorized_keys $sudo chmod 600 authorized_keys ユーザーのパーミッションの変更 $chmod 755 /home/user ファイアーウォールは"ufw"で設定しています 変更したsshポートは許可しているので問題はないはずです 公開鍵の登録にコピペをしたいですが、できないため回りくどい方法になっています 何をしても設定ができないようであれば、長いPWを設定して使おうと考えていますが 大丈夫でしょうか?

  • sshの認証鍵の作成はホストかクライアントか?

    sshで接続する際に公開認証鍵を使用する場合の認証鍵はホストとクライアントのどちらで作成するべきでしょうか? ネットでいろいろ参照すると、ホストで作成する場合とクライアントで作成する場合の両方が紹介されています。 teratermなどのクライアントで複数のLinuxのホストに接続する場合、 クライアントで作成して、同じ公開鍵を各Linuxのホストに配布したほうが、シンプルだと考えます。 ホストで鍵を作成したほうが、セキュリティ上、好ましい理由などがあれば、教えて頂きたく、質問させて頂きました。

  • SSHでの公開鍵認証接続時のログイン画面

    CentOSクライアントからのCentOSサーバへ公開鍵認証によるSSH接続をしたいと思っています。公開鍵認証なのでパスワードではなくパスフレーズでの認証ができるようにしたいです。 しかし、設定操作を一通りやってクライアントからサーバへログインしようとすると添付画像のとおり「パスワード」と書かれたログイン画面が出てきます。 一応パスフレーズとして設定した文字列を入力しないとログインできないようにはなってるのですが、これはちゃんと公開鍵認証ができるようになっているのでしょうか。また、ログイン時に入力した文字列はパスワードではなくパスフレーズとして登録されているのでしょうか。 以下、環境/前提条件および操作手順の詳細です。 ■環境/前提条件 ・OSは両方ともCentOS6.5 ・OpenSSHのバージョンは両方とも5.3 ・仮にサーバ側のホスト名をtestserver、その中にあるユーザー名をtest1とする ■操作手順 (1)クライアント側でssh-keygenでid_rsaとid_rsa.pubをローカルに作成し、パスフレーズを登録。 (2)サーバ側で  .ssh/authorized_keysを作成し、   chmod 700 .ssh  chmod 600 .ssh/authorized_keys  を実行 (3)クライアント側で以下のコマンドを打ち公開鍵ファイルをサーバへ転送  cat .ssh/id_rsa.pub |ssh test1@testserver 'cat >>  .ssh/authorized_keys' (4)両マシーン共再起動させた後、クライアントからサーバへ   ssh test1@testserver  でログインしようとしたら添付画像が出てきた。 パスワード欄にはtest1@testserverのパスワードではなく、(1)で登録したパスフレーズを入力しないとログインできないようになっているが、 このログイン画面に書かれてるのがパスフレーズではなくパスワードとなっているのが気がかりです(パスフレーズとして認識されていない?) これはちゃんと公開鍵認証ができるようになっているのでしょうか。また、ログイン時に入力した文字列はパスワードではなくパスフレーズとして登録されているのでしょうか。 目標が達成できていなければ、問題点および解決策を教えてくださいますようお願いします。