主要なセキュリティ概念
製品のセキュリティの最適化を目指す管理者は、次のセキュリティ概念をよく理解しておく必要があります。
HTTPS
Hypertext Transfer Protocol Secure(HTTPS)では、チャネルを介して送信されるデータの暗号化に、セキュア ソケット レイヤ(SSL) またはその後続の標準規格である Transport Layer Security(TLS)が使用されます。SSL で複数の脆弱性が見つかったため、 では現在 TLS のみがサポートされています。
(注) |
TLS は大まかに SSL と呼ばれることが多いため、本ガイドでもこの表記に従います。 |
SSL は、プライバシー、認証、およびデータ整合性を組み合わせることで、クライアントとサーバーの間のデータ転送を保護します。これらのセキュリティ メカニズムを有効にするために、SSL は証明書、秘密キー/公開キー交換ペア、および Diffie-Hellman 鍵共有パラメータを使用します。
SSL 証明書
SSL 証明書と秘密キー/公開キー ペアは、ユーザー認証および通信パートナーの ID 検証に使われるデジタル ID の一種です。VeriSign や Thawte などの認証局(CA)は、エンティティ(サーバーまたはクライアント)を識別するための証明書を発行します。クライアントまたはサーバー証明書には、発行認証局の名前とデジタル署名、シリアル番号、証明書が発行されたクライアントまたはサーバーの名前、公開キー、および証明書の有効期限が含まれます。CA は、1 つ以上の署名証明書を使用して SSL 証明書を作成します。各署名証明書には、CA 署名の作成に使用される照合秘密キーがあります。CA は署名付き証明書(公開キーが埋め込まている)を簡単に入手できるようにしているため、誰でもその証明書を使用して、SSL 証明書が実際に特定の CA によって署名されたことを確認できます。
一般に、証明書の設定には次の手順が含まれます。
-
サーバーの ID 証明書を生成する。
-
サーバーに ID 証明書をインストールする。
-
対応するルート証明書をクライアントまたはブラウザにインストールする。
実行する必要がある具体的なタスクは、ご利用の環境によって異なります。
1 方向 SSL 認証
これは、クライアントが適切なサーバー(中間サーバーではなく)に接続していることを保証する必要がある場合に使用される認証方法で、オンライン バンキングの Web サイトなどのパブリック リソースに適しています。認証は、クライアントがサーバー上のリソースへのアクセスを要求したときに開始されます。リソースが存在するサーバーは、その ID を証明するために、サーバー証明書(別名 SSL 証明書)をクライアントに送信します。クライアントは受信したサーバー証明書を、クライアントまたはブラウザにインストールする必要がある別の信頼できるオブジェクト(サーバー ルート証明書)と照合して検証します。サーバーの検証後、暗号化された(つまりセキュアな)通信チャネルが確立されます。ここで、 サーバーは HTML フォームへの有効なユーザー名とパスワードの入力を求めます。SSL 接続が確立された後にユーザー クレデンシャルを入力すると、未認証の第三者による傍受を防ぐことができます。最終的に、ユーザー名とパスワードが受け入れられた後、サーバー上に存在するリソースへのアクセスが許可されます。
(注) |
クライアントは複数のサーバーとやり取りするために、複数のサーバー証明書を格納する必要がある場合があります。 |
クライアントにルート証明書をインストールする必要があるかどうかを判断するには、ブラウザの URL フィールドでロック アイコンを探します。通常このアイコンが表示される場合は、必要なルート証明書がすでにインストール済みであることを示します。多くの場合、これはより大きいいずれかの認証局(CA)によって署名されたサーバー証明書に該当します。一般的なブラウザではこれらの CA からのルート証明書が含まれているからです。
クライアントがサーバー証明書に署名した CA を認識しない場合は、接続がセキュリティで保護されていないことを意味します。これは必ずしも大きな問題ではなく、接続するサーバーの ID が検証されていないことを示しているだけです。この時点で、次の 2 つの操作のいずれかを実行できます。1 つは必要なルート証明書をクライアントまたはブラウザにインストールできます。ブラウザの URL フィールドにロック アイコンが表示された場合は、証明書が正常にインストールされたことを意味します。もう 1 つは、クライアントに自己署名証明書をインストールできることです。信頼できる CA によって署名されたルート証明書とは異なり、自己署名証明書は作成者である個人またはエンティティによって署名されます。自己署名証明書を使用して暗号化チャネルを作成できますが、接続するサーバーの ID が検証されていないため、固有のリスクが伴うことを理解しておいてください。