0

https を使用して銀行口座にログインすると、ログイン情報を入力する前にサーバー側の SSL 認証のみが行われます。私のブラウザは、SSL セッション中にサーバーからの証明書情報に基づいてサーバー認証を行います。サーバー証明書を信頼できる証明書としてブラウザーに手動でインポートする必要はありませんでした。実行時に SSL 交換中に発生します。

一方で、インストールガイドを調べたときに証明書を手動でインポートする必要があるアプリケーションも見てきました (たとえば、keytool を使用)。

質問: SSL セッションの開始時に証明書情報が交換される場合、各側には相手側を認証するのに十分な情報があります。一部のアプリでは、クライアントとサーバーの間で相互に証明書を手動でインポートする必要があるのはなぜですか。どちらかまたは両方の側の認証です。

以下の回答に基づく追加情報: クライアント側の SSL 認証をオンにして、クライアント サーバー モデルに基づく商用ソフトウェアをインストールするシナリオについて言及していました。サーバーをマシン A にインストールし、2 つのクライアントをすべてプライベート ネットワーク内の異なるマシンにインストールしました。インストール中に、サーバーは自己署名証明書をローカルに生成します。2 クライアントも同様です。インストールが完了すると、クライアントの証明書をサーバー マシンにコピーし、それらを信頼できる証明書として手動でインポートするように求められました。また、サーバー証明書をクライアント マシンにコピーし、信頼できるストアにインポートします。彼らは、証明書のインポートを実行するために、Java keytool の上にラッパー ツールを提供しました。どうしてこの手動インポートはここで必要ですか? いずれにせよ、クライアントとサーバーは SSL ハンドシェイク中に証明書情報を交換し、認証を実行します。繰り返しますが、これらは自己署名証明書であり、CA が関与しています。

4

2 に答える 2

0

SSL サーバーの証明書は、認証局 (CA) によって「保証」される必要があります。ブラウザ (または他のプログラム) には、信頼する CA のリストが含まれています。標準 CA のいずれかによって認定されていないサイトを使用している場合、検証を成功させるには、その CA をインポートする必要があります。

正当なサイト (特にオンライン バンキング用) では、「代替」CA を使用する必要はありません。これは、機密性の高いデータを送信していないサイトに対してのみ行ってください。

于 2011-04-24T06:31:14.233 に答える
0

証明書は認証局によって署名されるため、ブラウザが信頼する認証局によって異なります。Web サーバーが、ブラウザー/アプリケーションによって信頼されている認証局によって署名された証明書を送信し、その証明書が有効である場合、警告はまったく表示されません。

一方、ブラウザーが Web サーバーから証明書を受け取り、その証明書に署名した認証局を信頼しない場合、ブラウザーはなんらかのアクションを実行します — 少なくとも、これについて警告する必要があります。Web サイトから証明書をインポートすると、基本的には、誰が署名したかに関係なく、その証明書を信頼することに決めたことをブラウザに伝えていることになります。

編集:同じ理由が適用されます: キーストアは、信頼できる認証局とそれに対応する証明書のリストを保持します。PKI の全体的な概念は、他の関係者のために署名付き証明書を発行する信頼できるCA の階層を持つことです。証明書が自己署名されている場合、有効な信頼チェーンはありません — Java は、証明書が攻撃者によって偽造されていないことをどのように知るのでしょうか?

SSL ハンドシェーク中に証明書が交換されるという理由だけで、クライアントと Web サーバー間の接続が暗黙的に信頼されていると想定しています。中間の人物が Web サーバーのふりをして、サーバー証明書を送信する代わりに自分の証明書を送信した場合はどうなるでしょうか。真ん中の人が受け取った証明書が信頼できないことをクライアントはどうやって知るのでしょうか? 証明書が信頼できる CA によって署名されている場合、または証明書が信頼できる証明書としてキーストアに手動で追加されている場合、クライアントは証明書を信頼する必要があるかどうかを確認できます。

于 2011-04-24T06:32:04.900 に答える