WCF セキュリティ用語
セキュリティについて説明するときに使用する用語の中には、だれもが知っているとは限らないものもあります。 ここでは、セキュリティ用語の一部を簡単に説明します。このトピックは、すべての項目について詳細に説明することを目的としたものではありません。
Windows Communication Foundation (WCF) のドキュメントで使用される用語の詳細については、「Windows Communication Foundation の基本概念」を参照してください。
アクセス制御リスト (ACL: Access Control List)
オブジェクトに適用されるセキュリティ保護のリスト。 (オブジェクトとは、ファイル、プロセス、イベント、またはセキュリティ記述子を持つものすべてです)。ACL 内のエントリは、アクセス制御エントリ (ACE: Access Control Entry) です。 ACL には、随意 ACL とシステム ACL の 2 種類があります。
認証
ユーザー、コンピューター、サービス、またはプロセスが、それ自身のクレームどおりのものであることを確認するプロセス。
authorization
リソースに対するアクセスと権限を制御する行為。 たとえば、あるグループのメンバーにはファイルの読み取りを許可し、そのファイルの変更は別のグループのメンバーだけに許可することです。
証明機関 (CA: Certificate Authority) の証明書
証明書を要求したサーバーとクライアントにサーバー認証証明書およびクライアント認証証明書を発行した CA を識別します。 CA 証明書には、デジタル署名に使用する公開キーが含まれるため、署名証明書とも呼ばれます。 CA がルート証明機関である場合、CA 証明書はルート証明書と呼ばれることがあります。 また、場合によってはサイト証明書とも呼ばれます。
CA 階層
CA 階層には、複数の CA が含まれます。 CA 階層は、ルート証明機関とも呼ばれる階層の最上位に到達するまで、各 CA が階層の上位にある別の CA によって証明されるように編成されています。
証明書 (certificate)
エンティティとそのエンティティの公開キーに関する情報が含まれたデジタル署名付き記述。これにより、この 2 つの情報が関連付けられます。 証明機関と呼ばれる信頼された組織 (またはエンティティ) は、エンティティがそれ自身の主張どおりのものであることを検証した後に、証明書を発行します。
証明書には、さまざまな種類のデータを含めることができます。 たとえば、X.509 証明書には、証明書の書式、証明書のシリアル番号、証明書の署名に使用されているアルゴリズム、証明書を発行した CA の名前、証明書を要求したエンティティの名前と公開キー、および CA の署名が含まれます。
証明書ストア
一般に、証明書、証明書失効リスト (CRL)、および証明書信頼リスト (CTL) を格納する永続ストレージ。 ただし、永続ストレージに格納する必要のない証明書を使用する場合は、メモリ内に証明書ストアを単独で作成し、開くことができます。
claims
送信者の ID を確立するために使用する、エンティティ間で渡される情報。 たとえば、ユーザー名/パスワード トークンや X.509 証明書などがあります。
クライアント証明書
クライアント認証 (Web サーバーでの Web ブラウザーの認証など) に使用する証明書。 Web ブラウザー クライアントがセキュリティで保護された Web サーバーへのアクセスを試みたときに、クライアントは証明書をサーバーに送信して、サーバーがクライアントの ID を確認できるようにします。
資格情報
セキュリティ プリンシパルが自身の ID を確立するために使用する、既に認証済みのログオン データ (パスワードなど)、または Kerberos プロトコル チケット。 資格情報は、リソースへのアクセスを制御するために使用されます。
ダイジェスト データ
公開キー暗号化規格 (PKCS: Public Key Cryptography Standard) #7 で定義されたデータ コンテンツ タイプ。任意のデータ型とコンテンツのメッセージ ハッシュ (ダイジェスト) で構成されます。
デジタル署名
送信する情報に送信者の ID をバインドするデータ。 デジタル署名は、メッセージ、ファイル、またはその他のデジタル エンコードされた情報にバンドルされる場合もあれば、別々に送信される場合もあります。 デジタル署名は公開キー環境で使用され、認証サービスと整合性サービスを提供します。
encoding
データをビット ストリームに変換するプロセス。 エンコーディングは、データを 1 と 0 のストリームに変換するシリアル化プロセスの一部です。
交換キー ペア
セッション キーを暗号化するために使用する公開キーと秘密キーのペア。セッション キーを安全に保管し、他のユーザーと交換できるようにするために使用します。
hash
数学関数 (「ハッシュ アルゴリズム」を参照) を任意の量のデータに適用することによって取得される固定サイズの数値。 通常、このデータには、nonce と呼ばれるランダムなデータが含まれます。 結果をより複雑にするために、サービスとクライアントの両方が nonce の交換を支援します。 この結果は、メッセージ ダイジェストとも呼ばれます。 パスワードなどの機密データが暗号化されている場合でも、機密データを送信するよりハッシュ値を送信する方が安全性が高くなります。 ハッシュの送信者と受信者は、受信後にハッシュを検証できるように、ハッシュ アルゴリズムと nonce について合意する必要があります。
ハッシュ アルゴリズム
データ (メッセージやセッション キーなど) のある部分のハッシュ値を生成するために使用するアルゴリズム。 一般的なハッシュ アルゴリズムとして、MD2、MD4、MD5、SHA-1 などがあります。
Kerberos プロトコル
クライアントがネットワーク認証サービスとやり取りする方法を定義するプロトコル。 クライアントは、Kerberos キー配布センター (KDC) からチケットを取得し、接続を確立する際にこれらのチケットをサーバーに提示します。 Kerberos チケットは、クライアントのネットワーク資格情報を表します。
ローカル セキュリティ機関 (LSA)
ユーザーを認証し、ローカル システムにログオンさせる保護されたサブシステム。 LSA は、システムのローカル セキュリティのあらゆる側面に関する情報を保持します。この情報を総称して、システムのローカル セキュリティ ポリシーと呼びます。
ネゴシエート
セキュリティ サポート プロバイダー インターフェイス (SSPI: Security Support Provider Interface) と他のセキュリティ サポート プロバイダー (SSP: Security Support Provider) との間で、アプリケーション層の役割を果たす SSP。 アプリケーションは、SSPI を呼び出してネットワークにログオンするときに、要求を処理する SSP を指定できます。 アプリケーションが Negotiate
を指定した場合、Negotiate
は要求を分析し、顧客が構成したセキュリティ ポリシーに基づいて要求を処理するのに最適な SSP を選択します。
nonce
"リプレイ" 攻撃を阻止するために使用されるランダムに生成された値。
否認防止
特定のアクションを実行したユーザーを識別することにより、そのユーザーが試みたアクションへの責任を否認できないようにする機能。 たとえば、ファイルが削除されたときに、システムによってユーザーの ID が必ず記録されるようにしておきます。
公開キー暗号化規格 (PKCS)
公開キー暗号化の普及を加速するために、世界各国のセキュリティ システムの開発者の協力を得て RSA Data Security, Inc. によって作成された仕様。
PKCS #7
Cryptographic Message Syntax Standard。 暗号化を適用できるデータ (デジタル署名など) の一般的な構文。 PKCS #7 は、証明書または証明書失効リスト、およびその他のメッセージ属性 (タイムスタンプなど) を普及させるための構文も提供します。
plaintext
暗号化されていないメッセージ。 プレーンテキスト メッセージは、クリアテキスト メッセージと呼ばれることもあります。
特権
システム関連のさまざまな操作 (システムのシャットダウン、デバイス ドライバーの読み込み、システム時刻の変更など) を実行するためのユーザー権限。 ユーザーのアクセス トークンには、ユーザーまたはユーザーのグループが保持する特権のリストが含まれます。
秘密キー (private key)
公開キー アルゴリズムで使用するキー ペアのうち、公開されない方のキー。 通常、秘密キーは、対称セッション キーの暗号化、メッセージのデジタル署名、または対応する公開キーで暗号化されたメッセージの復号化に使用されます。 「公開キー」も参照してください。
process
アプリケーションが実行されるセキュリティ コンテキスト。 通常、セキュリティ コンテキストはユーザーに関連付けられています。したがって、特定のプロセスで実行されるすべてのアプリケーションに、所有するユーザーのアクセス許可と特権が適用されます。
公開キーと秘密キーのペア
公開キー暗号化に使用される暗号化キーのセット。 各ユーザーについて、暗号化サービス プロバイダー (CSP: Cryptographic Service Provider) は通常、公開キーと秘密キーの 2 つのペア (交換キー ペアとデジタル署名キー ペア) を保持しています。 この 2 つのキー ペアは、セッション間で保持されます。
公開キー (public key)
セッション キーまたはデジタル署名を復号化するときに通常使用される暗号化キー。 公開キーは、メッセージの暗号化にも使用できます。この場合、メッセージを復号化できるのは、対応する秘密キーを持つ個人だけであることが保証されます。
公開キー暗号化
キーのペアを使用する暗号化。一方のキーでデータを暗号化し、もう一方のキーでデータを復号化します。 これに対して、対称暗号化アルゴリズムでは、暗号化と復号化の両方に同じキーを使用します。 実際には、公開キー暗号化は、対称暗号化アルゴリズムで使用するセッション キーを保護するために使用するのが一般的です。 この場合、何らかのデータの暗号化に使用されたセッション キーを暗号化するために公開キーが使用され、秘密キーが復号化に使用されます。 セッション キーを保護するだけでなく、公開キー暗号化を使用してメッセージにデジタル署名し (秘密キーを使用)、その署名を検証する (公開キーを使用) こともできます。
公開キー基盤 (PKI)
公開キー アプリケーションを作成、展開、および管理するためのサービスと管理ツールの統合セットを提供するインフラストラクチャ。
否認
ユーザーがあるアクションを実行したことを第三者が他の方法で証明できないため、ユーザーがその事実を偽って否定できること。 たとえば、ファイルを削除したユーザーがその事実を否定することに成功した場合、そのユーザーは否認したことになります。
root authority
CA 階層の最上位にある CA。 ルート証明機関は、階層の次のレベルにある CA を証明します。
セキュア ハッシュ アルゴリズム (SHA)
メッセージ ダイジェストを生成するハッシュ アルゴリズム。 SHA は、DSS (Digital Signature Standard) の DSA (Digital Signature Algorithm) と共に使用されます。 SHA には、SHA-1、SHA-256、SHA-384、および SHA-512 の 4 種類があります。 SHA-1 は、160 ビットのメッセージ ダイジェストを生成します。 SHA-256、SHA-384、および SHA-512 は、それぞれ 256 ビット、384 ビット、512 ビットのメッセージ ダイジェストを生成します。 SHA は、NIST (National Institute of Standards and Technology) と NSA (National Security Agency) によって開発されました。
SSL (Secure Sockets Layer)
公開キー/秘密キー テクノロジの組み合わせを使用して、安全なネットワーク通信を行うためのプロトコル。
セキュリティ コンテキスト
現在有効になっているセキュリティの属性またはルール。 たとえば、コンピューターに現在ログオンしているユーザーや、スマート カード ユーザーが入力した個人 ID 番号などです。 SSPI の場合、セキュリティ コンテキストは、接続に関連するセキュリティ データ (セッション キーやセッションの存続を示す情報など) が含まれた不透明なデータ構造です。
セキュリティ プリンシパル (security principal)
セキュリティ システムによって認識されるエンティティ。 プリンシパルには、人間のユーザーと共に自律プロセスを含めることができます。
セキュリティ サポート プロバイダー (SSP)
1 つ以上のセキュリティ パッケージをアプリケーションで使用できるようにすることにより SSPI を実装するダイナミック リンク ライブラリ (DLL)。 各セキュリティ パッケージは、アプリケーションの SSPI 関数呼び出しと実際のセキュリティ モデルの関数間のマッピングを提供します。 セキュリティ パッケージは、Kerberos 認証や LanMan (Microsoft LAN Manager) などのセキュリティ プロトコルをサポートします。
セキュリティ サポート プロバイダー インターフェイス (SSPI)
Microsoft リモート プロシージャ コール (RPC: Remote Procedure Call) などのトランスポート レベルのアプリケーションと、Windows 分散セキュリティなどのセキュリティ プロバイダー間の共通インターフェイス。 SSPI により、トランスポート アプリケーションは、複数のセキュリティ プロバイダーの中の 1 つを呼び出して、認証済みの接続を取得できます。 これらの呼び出しでは、セキュリティ プロトコルの詳細を広範囲にわたり認識しておく必要はありません。
セキュリティ トークン サービス
マルチサービス シナリオで、カスタム セキュリティ トークンを発行し、発行済みトークンを管理するよう設計されたサービス。 通常、カスタム トークンは、カスタム資格情報を含む SAML (Security Assertions Markup Language) トークンです。
サーバー証明書
サーバー認証 (Web ブラウザーに対する Web サーバーの認証など) に使用する証明書。 Web ブラウザー クライアントがセキュリティで保護された Web サーバーへのアクセスを試みたときに、サーバーは証明書をブラウザーに送信して、クライアントがサーバーの ID を確認できるようにします。
session
単一のキー マテリアルの保護の元でのメッセージ交換。 たとえば、SSL セッションでは、単一のキーを使用し、そのキーの下で複数のメッセージをやり取りします。
セッション キー
1 回使用された後に破棄される、ランダムに生成されたキー。 セッション キーは対称キーです (暗号化と復号化の両方に使用されます)。 セッション キーはメッセージと共に送信され、対象の受信者の公開キーで暗号化することで保護されます。 1 つのセッション キーは、約 40 ~ 2,000 ビットのランダムな数値で構成されます。
補足の資格情報
外部のセキュリティ ドメインに対してセキュリティ プリンシパルを認証する際に使用する資格情報。
対称暗号化
1 つのキーを暗号化と復号化の両方に使用する暗号化。 大量のデータを暗号化する場合、対称暗号化が推奨されます。 一般的な対称暗号化アルゴリズムとして、RC2、RC4、および DES (Data Encryption Standard) があります。
「公開キー暗号化」も参照してください。
対称キー (symmetric key)
暗号化と復号化の両方に使用する単一のキー。 通常、セッション キーは対称キーです。
トークン (アクセス トークン)
アクセス トークンには、ログオン セッションのセキュリティ情報が含まれます。 システムは、ユーザーのログオン時にアクセス トークンを作成し、そのユーザーのために実行されるすべてのプロセスがトークンのコピーを保持します。 トークンにより、ユーザー、ユーザーのグループ、およびユーザーの特権が識別されます。 システムはトークンを使用して、セキュリティ保護可能なオブジェクトへのアクセスを制御したり、ユーザーがローカル コンピューターで実行できるシステム関連のさまざまな操作を制御したりします。 アクセス トークンには、プライマリ アクセス トークンと偽装アクセス トークンの 2 種類があります。
トランスポート層
サービスの品質と情報の正確な配信の両方に対して責任を負うネットワーク層。 この層で実行されるタスクには、エラーの検出と修正も含まれます。
信頼リスト (証明書信頼リスト (CTL: Certificate Trust List))
信頼されたエンティティによって署名されている項目の定義済みリスト。 CTL は、証明書のハッシュのリストやファイル名のリストなど、どのようなものでもかまいません。 リスト内のすべての項目は、署名エンティティによって認証 (承認) されます。
信頼プロバイダー
指定されたファイルが信頼できるものかどうかを判断するソフトウェア。 この判断は、そのファイルに関連付けられている証明書に基づいて行われます。
ユーザー プリンシパル名 (UPN)
ユーザー アカウント名 (ユーザー ログイン名と呼ばれることもある) と、ユーザー アカウントが存在するドメインを識別するドメイン名です。 これは、Windows ドメインにログオンするための標準的使用方法です。 形式は、someone@example.com
(電子メール アドレスの場合) です。
Note
標準の UPN 形式に加え、WCF は、cohowinery.com\someone
などの下位レベル形式の UPN も受け入れます。
X.509
国際的に認知されている証明書の規格。証明書の必須部分が定義されています。