암호화는 SQL Server 인스턴스를 보호하려는 관리자가 사용할 수 있는 여러 가지 심층 방어 중 하나입니다.
암호화 알고리즘은 권한이 없는 사용자가 쉽게 되돌릴 수 없는 데이터 변환을 정의합니다. SQL Server를 사용하면 관리자와 개발자가 DES, Triple DES, TRIPLE_DES_3KEY, RC2, RC4, 128비트 RC4, DESX, 128비트 AES, 192비트 AES 및 256비트 AES를 비롯한 여러 알고리즘 중에서 선택할 수 있습니다.
모든 상황에 적합한 단일 알고리즘은 없으며, 각 상황에 대한 지침은 SQL Server 온라인 설명서의 범위를 벗어버집니다. 그러나 다음과 같은 일반적인 원칙이 적용됩니다.
강력한 암호화는 일반적으로 약한 암호화보다 더 많은 CPU 리소스를 사용합니다.
긴 키는 일반적으로 짧은 키보다 더 강력한 암호화를 생성합니다.
비대칭 암호화는 동일한 키 길이를 사용하는 대칭 암호화보다 약하지만 상대적으로 느립니다.
긴 키가 있는 블록 암호화는 스트림 암호화보다 강력합니다.
길고 복잡한 암호는 짧은 암호보다 강력합니다.
많은 데이터를 암호화하는 경우 대칭 키를 사용하여 데이터를 암호화하고 비대칭 키를 사용하여 대칭 키를 암호화해야 합니다.
암호화된 데이터는 압축할 수 없지만 압축된 데이터는 암호화할 수 있습니다. 압축을 사용하는 경우 데이터를 암호화하기 전에 압축해야 합니다.
중요합니다
RC4 알고리즘은 이전 버전과의 호환성을 위해서만 지원됩니다. 데이터베이스의 호환성 수준이 90 또는 100인 경우 새 자료는 RC4 또는 RC4_128로만 암호화할 수 있습니다. 이 옵션은 사용하지 않는 것이 좋습니다. 대신 AES 알고리즘 중 하나와 같은 새 알고리즘을 사용하십시오. SQL Server 2012 이상에서는 RC4 또는 RC4_128 사용하여 암호화된 자료를 호환성 수준에서 해독할 수 있습니다.
여러 데이터 블록에서 동일한 RC4 또는 RC4_128 KEY_GUID 반복적으로 사용하면 SQL Server에서 솔트를 자동으로 제공하지 않으므로 동일한 RC4 키가 발생합니다. 동일한 RC4 키를 반복적으로 사용하는 것은 매우 약한 암호화를 초래하는 잘 알려진 오류입니다. 따라서 RC4 및 RC4_128 키워드는 더 이상 사용되지 않습니다. 이 기능은 이후 버전의 Microsoft SQL Server에서 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 말고, 현재 이 기능을 사용하는 애플리케이션은 가능한 한 빨리 수정하세요.
암호화 알고리즘 및 암호화 기술에 대한 자세한 내용은 MSDN에 대한 .NET Framework 개발자 가이드의 주요 보안 개념을 참조하세요.
DES 알고리즘에 대한 설명:
DESX의 이름이 잘못 지정되었습니다. ALGORITHM = DESX로 만든 대칭 키는 실제로 192비트 키와 함께 TRIPLE DES 암호화를 사용합니다. DESX 알고리즘이 제공되지 않습니다. 이 기능은 이후 버전의 Microsoft SQL Server에서 제거됩니다. 새 개발 작업에서 이 기능을 사용하지 말고 현재 이 기능을 사용하는 애플리케이션을 수정할 계획입니다.
ALGORITHM = TRIPLE_DES_3KEY로 생성된 대칭 키는 192비트 키를 사용하는 TRIPLE DES를 사용합니다.
ALGORITHM = TRIPLE_DES 128비트 키와 함께 TRIPLE DES를 사용하여 만든 대칭 키입니다.
관련 작업
| 대칭 키를 사용하여 암호화합니다. | CREATE SYMMETRIC KEY(Transact-SQL) |
| 비대칭 키를 사용하여 암호화 | CREATE ASYMMETRIC KEY(Transact-SQL) |
| 인증서를 사용하여 암호화 | 인증서 생성(Transact-SQL) |
| 투명한 데이터 암호화를 사용하여 데이터베이스 파일 암호화 | TDE(투명한 데이터 암호화) |
| 테이블의 한 열을 암호화하는 방법입니다. | 데이터 열 암호화 |