暗号化階層Encryption Hierarchy

適用対象: ○SQL Server ○Azure SQL Database XAzure SQL Data Warehouse XParallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

SQL ServerSQL Server では、暗号化とキーの階層的な管理インフラストラクチャを使用してデータを暗号化します。encrypts data with a hierarchical encryption and key management infrastructure. 各層では、証明書、非対称キー、および対称キーの組み合わせを使用して、その層の下位にある層を暗号化します。Each layer encrypts the layer below it by using a combination of certificates, asymmetric keys, and symmetric keys. 拡張キー管理 (EKM) モジュールで、非対称キーと対称キーを SQL ServerSQL Server の外部に格納できます。Asymmetric keys and symmetric keys can be stored outside of SQL ServerSQL Server in an Extensible Key Management (EKM) module.

次の図は、暗号化階層のそれぞれの層がその下位にある層を暗号化することを示しており、最も一般的な暗号化構成を示しています。The following illustration shows that each layer of the encryption hierarchy encrypts the layer beneath it, and displays the most common encryption configurations. 階層の先頭へのアクセスは、通常、パスワードで保護されます。The access to the start of the hierarchy is usually protected by a password.

いくつかの暗号化の組み合わせをスタック内に表示します。Displays some encryption combinations in a stack.

次の概念に注意してください。Keep in mind the following concepts:

  • 最適なパフォーマンスを得るには、証明書や非対称キーではなく、対称キーを使用してデータを暗号化します。For best performance, encrypt data using symmetric keys instead of certificates or asymmetric keys.

  • データベース マスター キーは、サービス マスター キーによって保護されます。Database master keys are protected by the Service Master Key. サービス マスター キーは、 SQL ServerSQL Server セットアップで作成され、Windows データ保護 API (DPAPI) を使用して暗号化されます。The Service Master Key is created by SQL ServerSQL Server setup and is encrypted with the Windows Data Protection API (DPAPI).

  • 追加の層を重ねる他の暗号化階層も使用できます。Other encryption hierarchies stacking additional layers are possible.

  • 拡張キー管理 (EKM) モジュールは、SQL Server の外部で対称または非対称キーを保持します。An Extensible Key Management (EKM) module holds symmetric or asymmetric keys outside of SQL Server.

  • 透過的なデータ暗号化 (TDE) では、データベース暗号化キーという対称キーを使用する必要があります。データベース暗号化キーは、master データベースのデータベース マスター キーによって保護される証明書、または EKM に格納された非対称キーによって保護されます。Transparent Data Encryption (TDE) must use a symmetric key called the database encryption key which is protected by either a certificate protected by the database master key of the master database, or by an asymmetric key stored in an EKM.

  • サービス マスター キーとすべてのデータベース マスター キーは対称キーです。The Service Master Key and all Database Master Keys are symmetric keys.

次の図は、同じ情報を別の方法で示しています。The following illustration shows the same information in an alternative manner.

いくつかの暗号化の組み合わせをホイール内に表示します。Displays some encryption combinations in a wheel.

この図は、さらに次の概念を示しています。This diagram illustrates the following additional concepts:

  • この図では、矢印は一般的な暗号化階層を示しています。In this illustration, arrows indicate common encryption hierarchies.

  • EKM 内の対称キーと非対称キーによって、 SQL ServerSQL Serverに格納されている対称キーと非対称キーへのアクセスを保護できます。Symmetric and asymmetric keys in the EKM can protect access to the symmetric and asymmetric keys stored in SQL ServerSQL Server. EKM に結ばれた点線は、 SQL ServerSQL Serverに格納されている対称キーと非対称キーの代わりに EKM 内のキーを使用できることを示しています。The dotted line associated with EKM indicates that keys in the EKM could replace the symmetric and asymmetric keys stored in SQL ServerSQL Server.

暗号化メカニズムEncryption Mechanisms

SQL ServerSQL Server には、次の暗号化メカニズムが用意されています。provides the following mechanisms for encryption:

  • Transact-SQLTransact-SQL 関数functions

  • 非対称キーAsymmetric keys

  • 対称キーSymmetric keys

  • 証明書Certificates

  • 透過的なデータ暗号化Transparent Data Encryption

Transact-SQL 関数Transact-SQL Functions

個々のアイテムは、Transact-SQLTransact-SQL 関数を使用して挿入または更新するときに暗号化できます。Individual items can be encrypted as they are inserted or updated using Transact-SQLTransact-SQL functions. 詳細については、「ENCRYPTBYPASSPHRASE (Transact-SQL)」および「DECRYPTBYPASSPHRASE (Transact-SQL)」を参照してください。For more information, see ENCRYPTBYPASSPHRASE (Transact-SQL) and DECRYPTBYPASSPHRASE (Transact-SQL).


通常は単に証明書と呼ばれる公開キー証明書は、公開キーの値を、対応する秘密キーを保持する人物、デバイス、またはサービスの ID にバインドする、デジタル署名されたステートメントです。A public key certificate, usually just called a certificate, is a digitally-signed statement that binds the value of a public key to the identity of the person, device, or service that holds the corresponding private key. 証明書は、CA (証明機関) によって発行および書名されます。Certificates are issued and signed by a certification authority (CA). CA から証明書を受け取るエンティティは、その証明書のサブジェクトです。The entity that receives a certificate from a CA is the subject of that certificate. 通常、証明書には次の情報が含まれています。Typically, certificates contain the following information.

  • サブジェクトの公開キー。The public key of the subject.

  • サブジェクトの ID 情報 (名前や電子メール アドレスなど)。The identifier information of the subject, such as the name and e-mail address.

  • 有効期間。The validity period. これは、証明書が有効であると見なされる期間です。This is the length of time that the certificate is considered valid.

    証明書は、証明書で指定された期間中のみ有効です。すべての証明書には、 有効期間の開始日有効期間の終了日 の日付が含まれています。A certificate is valid only for the period of time specified within it; every certificate contains Valid From and Valid To dates. これらの日付によって、有効期間の境界が設定されます。These dates set the boundaries of the validity period. 証明書の有効期間が終了すると、現在期限が切れている証明書のサブジェクトを使用して新しい証明書を要求する必要があります。When the validity period for a certificate has passed, a new certificate must be requested by the subject of the now-expired certificate.

  • 発行者の ID 情報。Issuer identifier information.

  • 発行者のデジタル署名。The digital signature of the issuer.

    この署名により、公開キーとサブジェクトの ID 情報のバインドが有効であることが証明されますThis signature attests to the validity of the binding between the public key and the identifier information of the subject. (デジタル署名情報の処理により、その情報だけでなく、送信者が保持している一部の機密情報が署名と呼ばれるタグに変換されます)。(The process of digitally signing information entails transforming the information, as well as some secret information held by the sender, into a tag called a signature.)

証明書の主な利点は、個々のサブジェクトのパスワードの設定をホストで保守する必要性がなくなる点です。A primary benefit of certificates is that they relieve hosts of the need to maintain a set of passwords for individual subjects. ホストでは、証明書の発行者の信頼を確立するだけで済みます。信頼された発行者は、多数の証明書に署名できます。Instead, the host merely establishes trust in a certificate issuer, which may then sign an unlimited number of certificates.

セキュリティで保護された Web サーバーなどのホストが、信頼されているルート機関として発行者を指定すると、このときホストは、発行された証明書のバインドを確立するために発行者が使用したポリシーを暗黙的に信頼することになります。When a host, such as a secure Web server, designates an issuer as a trusted root authority, the host implicitly trusts the policies that the issuer has used to establish the bindings of certificates it issues. つまりホストは、証明書のサブジェクトの ID が発行者側で確認されているものと見なします。In effect, the host trusts that the issuer has verified the identity of the certificate subject. ホストが発行者を信頼されているルート機関として指定する際は、発行者の公開キーが含まれている発行者の自己署名付きの証明書を、ホスト コンピューターの信頼されているルート証明機関の証明書ストアに配置します。A host designates an issuer as a trusted root authority by putting the self-signed certificate of the issuer, which contains the public key of the issuer, into the trusted root certification authority certificate store of the host computer. 中間または下位の証明機関が信頼されるのは、信頼されているルート証明機関からの有効な証明書パスを持っている場合のみです。Intermediate or subordinate certification authorities are trusted only if they have a valid certification path from a trusted root certification authority.

発行者は、証明書の有効期限が切れる前に、証明書を取り消すことができます。The issuer can revoke a certificate before it expires. 証明書を取り消すと、証明書で評価されている公開キーと ID のバインドが取り消されます。Revocation cancels the binding of a public key to an identity that is asserted in the certificate. 各発行者は、特定の証明書の有効性をチェックするときにプログラムで使用できる、証明書の廃止リストを保持しています。Each issuer maintains a certificate revocation list that can be used by programs when they are checking the validity of any given certificate.

SQL ServerSQL Server によって作成された自己署名付きの証明書は、X.509 標準に従っており、X.509 v1 フィールドをサポートしています。The self-signed certificates created by SQL ServerSQL Server follow the X.509 standard and support the X.509 v1 fields.

非対称キーAsymmetric Keys

非対称キーは、秘密キーとそれに対応する公開キーで構成されています。An asymmetric key is made up of a private key and the corresponding public key. 各キーは、他方のキーで暗号化されたデータを暗号化解除できます。Each key can decrypt data encrypted by the other. 非対称の暗号化と暗号化解除は、比較的リソースを集中して消費しますが、対称の暗号化よりも高レベルのセキュリティを提供します。Asymmetric encryption and decryption are relatively resource-intensive, but they provide a higher level of security than symmetric encryption. 非対称キーは、データベース内のストレージに対する対称キーの暗号化に使用できます。An asymmetric key can be used to encrypt a symmetric key for storage in a database.

対称キーSymmetric Keys

対称キーは、暗号化と暗号化解除の両方で使用される 1 つのキーです。A symmetric key is one key that is used for both encryption and decryption. 対称キーを使用した暗号化および暗号化解除は、高速であり、データベース内の機密データでの定型的な使用に適しています。Encryption and decryption by using a symmetric key is fast, and suitable for routine use with sensitive data in the database.

透過的なデータ暗号化Transparent Data Encryption

透過的なデータ暗号化 (TDE) は、対称キーを使用した暗号化の特殊なケースです。Transparent Data Encryption (TDE) is a special case of encryption using a symmetric key. TDE では、データベース暗号化キーという対称キーを使用してデータベース全体を暗号化します。TDE encrypts an entire database using that symmetric key called the database encryption key. データベース暗号化キーは、データベース マスター キーまたは EKM モジュールに格納された非対称キーによって保護される、他のキーまたは証明書によって保護されます。The database encryption key is protected by other keys or certificates which are protected either by the database master key or by an asymmetric key stored in an EKM module. 詳細については、「透過的なデータ暗号化 (TDE)」をご覧ください。For more information, see Transparent Data Encryption (TDE).

SQL Server の保護Securing SQL Server

セキュリティ関数 (Transact-SQL)Security Functions (Transact-SQL)

参照See Also

権限の階層 (データベース エンジン) Permissions Hierarchy (Database Engine)