CREATE SYMMETRIC KEY(Transact-SQL)
대칭 키를 생성하고 해당 속성을 지정합니다.
CREATE SYMMETRIC KEY key_name [ AUTHORIZATION owner_name ]
WITH <key_options> [ , ... n ]
ENCRYPTION BY <encrypting_mechanism> [ , ... n ]
<encrypting_mechanism> ::=
CERTIFICATE certificate_name
|
PASSWORD = 'password'
|
SYMMETRIC KEY symmetric_key_name
|
ASYMMETRIC KEY asym_key_name
<key_options> ::=
KEY_SOURCE = 'pass_phrase'
|
ALGORITHM = <algorithm>
|
IDENTITY_VALUE = 'identity_phrase'
<algorithm> ::=
DES | TRIPLE_DES | RC2 | RC4 | RC4_128
| DESX | AES_128 | AES_192 | AES_256
- key_name
-
데이터베이스에서 대칭 키를 식별하는 고유한 이름입니다. 임시 키의 이름은 한 개의 번호(#) 기호로 시작해야 합니다. 예를 들면 #temporaryKey900007과 같습니다. 2개 이상의 #으로 시작하는 이름이 포함된 대칭 키는 만들 수 없습니다.
- AUTHORIZATION owner_name
-
이 키를 소유하는 데이터베이스 사용자 또는 응용 프로그램 역할의 이름을 지정합니다.
- certificate_name
-
대칭 키를 암호화하는 데 사용되는 인증서 이름을 지정합니다. 인증서는 데이터베이스에 이미 있어야 합니다.
- ' password '
-
대칭 키를 보호하는 데 사용할 TRIPLE_DES 키를 파생할 암호를 지정합니다. 암호 복잡성이 확인됩니다. 항상 강력한 암호를 사용해야 합니다.
- symmetric_key_name
-
만들려는 키를 암호화하는 데 사용할 대칭 키를 지정합니다. 지정된 키는 데이터베이스에 이미 있어야 하며 열려 있어야 합니다.
- asym_key_name
-
만들려는 키를 암호화하는 데 사용할 비대칭 키를 지정합니다. 이 비대칭 키는 데이터베이스에 이미 있어야 합니다.
- KEY_SOURCE = 'pass_phrase'
-
키를 파생할 전달 구를 지정합니다.
- IDENTITY_VALUE = 'identity_phrase'
-
임시 키로 암호화된 데이터 분류용 GUID를 생성할 ID 구를 지정합니다.
대칭 키를 만들 때 대칭 키는 인증서, 암호, 대칭 키 또는 비대칭 키 중 하나 이상을 사용하여 암호화해야 합니다. 키에는 각 유형에 대해 두 개 이상의 암호화가 포함될 수 있습니다. 즉, 여러 인증서, 암호, 대칭 키 및 비대칭 키를 동시에 사용하여 단일 대칭 키를 암호화할 수 있습니다.
주의: |
|---|
| 데이터베이스 마스터 키의 공개 키 대신 암호를 사용하여 대칭 키를 암호화한 경우 TRIPLE_DES 암호화 알고리즘이 사용됩니다. 따라서 AES와 같은 강력한 암호화 알고리즘을 사용하여 만든 키는 더 약한 알고리즘으로 보호됩니다. |
키를 여러 사용자에게 배포하기 전에 선택적인 암호를 사용하여 대칭 키를 암호화할 수 있습니다.
임시 키는 키를 만드는 사용자가 소유합니다. 임시 키는 현재 세션에 대해서만 유효합니다.
IDENTITY_VALUE는 새 대칭 키로 암호화된 데이터를 분류하는 GUID를 생성합니다. 이 분류는 암호화된 데이터와 키를 일치시키는 데 사용됩니다. 특정 구에서 생성된 GUID는 항상 동일합니다. GUID를 생성하는 데 사용한 구는 연결된 대칭 키를 삭제하지 않는 한 현재 세션에서 다시 사용할 수 없습니다. IDENTITY_VALUE는 선택적인 절이지만 임시 키로 암호화된 데이터를 저장할 때는 이 절을 사용하는 것이 좋습니다.
기본 암호화 알고리즘은 없습니다.
중요: |
|---|
| 중요한 데이터를 보호할 때는 RC4 및 RC4_128 스트림 암호를 사용하지 않는 것이 좋습니다. SQL Server 2005에서는 이러한 키로 수행된 암호화를 솔트하지 않습니다. |
대칭 키에 대한 정보는 sys.symmetric_keys 카탈로그 뷰에 표시됩니다.
DES 알고리즘 관련 설명:
-
DESX 이름이 잘못 지정되었습니다. ALGORITHM = DESX로 만들어진 대칭 키는 실제로 192비트 키의 TRIPLE DES 암호화를 사용합니다. DESX 알고리즘은 제공되지 않습니다.
-
ALGORITHM = TRIPLE_DES로 만들어진 대칭 키는 128비트 키의 TRIPLE DES 암호화를 사용합니다.
1. 대칭 키 만들기
다음 예에서는 AES 256 알고리즘을 사용하여 JanainaKey09라는 대칭 키를 만든 다음 새 키를 Shipping04 인증서를 사용하여 암호화합니다.
CREATE SYMMETRIC KEY JanainaKey09 WITH ALGORITHM = AES_256
ENCRYPTION BY CERTIFICATE Shipping04;
GO
2. 임시 대칭 키 만들기
다음 예에서는 #MarketingXXV라는 임시 대칭 키를 The square of the hypotenuse is equal to the sum of the squares of the sides라는 전달 구를 사용하여 만듭니다. 이 키는 Pythagoras 문자열에서 생성되고 Marketing25 인증서로 암호화된 GUID와 함께 제공됩니다.
CREATE SYMMETRIC KEY #MarketingXXV
WITH ALGORITHM = AES_128,
KEY_SOURCE
= 'The square of the hypotenuse is equal to the sum of the squares of the sides',
IDENTITY_VALUE = 'Pythagoras'
ENCRYPTION BY CERTIFICATE Marketing25;
GO
