암호화 알고리즘 선택
적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW)
암호화는 SQL Server의 인스턴스를 보호하려는 관리자가 사용할 수 있는 여러 가지 방어 수단 중 하나입니다.
암호화 알고리즘은 권한이 없는 사용자가 쉽게 바꿀 수 없는 데이터 변환을 정의합니다. 관리자와 개발자가 DES, 3중 DES, TRIPLE_DES_3KEY, RC2, RC4, 128비트 RC4, DESX, 128비트 AES, 192비트 AES 및 256비트 AES를 포함하여 SQL Server 내의 여러 알고리즘 중에서 선택할 수 있습니다.
SQL Server 2016(13.x)부터 AES_128
, AES_192
, 및 AES_256
이외의 알고리즘은 사용되지 않습니다. 오래된 알고리즘을 사용하려면(권장하지 않음) 데이터베이스 간 호환성 수준을 120 이하로 설정해야 합니다.
올바른 알고리즘을 선택하는 방법
모든 상황에 적합한 단일 알고리즘은 없으며 각 알고리즘의 장점에 대한 지침은 이 문서의 범위를 벗어납니다. 그러나 다음과 같은 일반적인 원칙이 적용됩니다.
강력한 암호화는 일반적으로 약한 암호화보다 더 많은 CPU 리소스를 사용합니다.
일반적으로 짧은 키보다 긴 키가 강력한 암호화를 생성합니다.
비대칭 암호화는 대칭 암호화보다 느립니다.
길고 복잡한 암호는 짧은 암호보다 강력합니다.
키가 로컬로만 저장되는 경우 대칭 암호화를 사용하는 것이 좋습니다. 통신을 통해 키를 공유해야 하는 경우 비대칭 암호화를 사용하는 것이 좋습니다.
많은 양의 데이터를 암호화하는 경우 대칭 키를 사용하여 데이터를 암호화한 다음 비대칭 키를 사용하여 해당 대칭 키를 암호화하는 것이 좋습니다.
암호화된 데이터는 압축할 수 없지만 압축된 데이터는 암호화할 수 있습니다. 압축을 사용할 경우 데이터를 암호화하기 전에 먼저 압축해야 합니다.
암호화 알고리즘 및 암호화 기술에 대한 자세한 내용은 주요 보안 개념을 참조하세요.
사용되지 않는 RC4 알고리즘
RC4 알고리즘은 이전 버전과의 호환성을 위해서만 지원됩니다. 새 자료는 데이터베이스가 호환성 수준 90 또는 100인 경우에만 RC4
또는 RC4_128
(을)를 사용하여 암호화할 수 있습니다(권장하지 않음). 대신 AES 알고리즘 중 하나와 같은 새 알고리즘을 사용하십시오. SQL Server 2012(11.x) 이상 버전에서 RC4
또는 RC4_128
을 사용하여 암호화된 자료는 모든 호환성 수준에서 해독할 수 있습니다.
SQL Server에서는 솔트를 자동으로 제공하지 않기 때문에 서로 다른 데이터 블록에서 동일한 RC4
또는 RC4_128
KEY_GUID
(을)를 반복해서 사용하면 동일한 RC4 키가 만들어집니다. 동일한 RC4 키를 반복해서 사용하는 것은 암호화를 매우 약하게 만드는 잘 알려진 오류입니다. 따라서 RC4
및 RC4_128
키워드는 더 이상 사용되지 않습니다. SQL Server의 이후 버전에서는 이 기능이 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 애플리케이션은 수정하세요.
DES 알고리즘 관련 설명
DESX 이름이 잘못 지정되었습니다. ALGORITHM = DESX
를 사용하여 만든 대칭 키에 실제로 192비트 키를 포함하는 TRIPLE DES 암호화가 사용됩니다. DESX 알고리즘은 제공되지 않습니다. SQL Server의 이후 버전에서는 이 기능이 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 애플리케이션은 수정하세요.
ALGORITHM = TRIPLE_DES_3KEY
(으)로 만든 대칭 키는 192비트 키 포함 Triple DES를 사용합니다.
ALGORITHM = TRIPLE_DES
(으)로 만든 대칭 키는 128비트 키 포함 Triple DES를 사용합니다.