다음을 통해 공유


암호화 알고리즘 선택

적용 대상: 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 키를 반복해서 사용하는 것은 암호화를 매우 약하게 만드는 잘 알려진 오류입니다. 따라서 RC4RC4_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를 사용합니다.