암호화 계층Encryption Hierarchy

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. 비대칭 키 및 대칭 키는 SQL ServerSQL Server 외부의 EKM(확장 가능 키 관리) 모듈에 저장할 수 있습니다.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 DPAPI(데이터 보호 API)를 사용하여 암호화됩니다.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에 연결된 점선은 EKM의 키가 SQL ServerSQL Server에 저장된 대칭 키 및 비대칭 키를 대체할 수 있음을 나타냅니다.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).

인증서Certificates

일반적으로 인증서라고도 부르는 공개 키 인증서는 해당 개인 키를 보유하는 사람, 장치 또는 서비스의 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.

  • 이름 및 전자 메일 주소와 같은 주체에 대한 식별 정보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.

    인증서는 인증서 내에 지정된 기간 동안만 유효합니다. 모든 인증서에는 Valid FromValid To 날짜가 포함됩니다.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.

  • 발행자 식별자 정보Issuer identifier information.

  • 발행자의 디지털 서명The digital signature of the issuer.

    이 서명은 공개 키와 주체의 식별자 정보 사이의 바인딩에 대한 유효성을 증명합니다.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.

    보안 웹 서버와 같은 호스트가 발행자를 트러스트된 루트 기관으로 지명하면 발행자가 발행하는 인증서에 대한 바인딩을 구성하는 데 사용된 정책도 호스트에서 암시적으로 트러스트됩니다.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

대칭 키는 암호화 및 암호 해독에 대해 사용되는 하나의 키입니다.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)
보안 개체 Securables