SQL 서버에 암호 설명:TDE,열 수준 암호화하고 더 많은
데이터 보호를 위해 매우 중요한 조직의 준수하고 규정 준수 표준과 같은 GDPR 와의 기대를 충족하는 클라이언트와 비즈니스 파트너입니다. 데이터 유출로 인해 큰 벌금이 부과 될뿐만 아니라 평판이 손상 될 수도 있습니다. 돕기 위해 Microsoft SQL Server 는 데이터 보호를위한 5 가지 종류의 암호화를 지원합니다. 이 기사에서는 각각을 설명하고 어디에 사용해야하는지 설명합니다.
SSL 교통 암호화
좋아하는 웹사이트 트래픽을 보호하는 브라우저와 서버 사이에서,SQL 서버를 사용하도록 구성할 수 있습 Secure Sockets Layer(SSL)트래픽을 암호화로 사이버 인스턴스와 클라이언트 응용 프로그램입니다. 또한 클라이언트는 서버의 인증서를 사용하여 서버의 신원을 확인할 수 있습니다. SSL 만을 보호로 이동하는 데이터를 네트워크를 통해,그러나,대부분의 다른 형태의 SQL 서버에 암호화,SSL 을 사용할 수 있에서 지원되는 모든 버전의 SQL 서버 및 모든 버전에서.
SSL 을 활성화하기 전에 sql Server 에 인증서를 설치해야합니다. 이를 수행하는 가장 좋은 방법은 자체 기업 인증 기관(CA)에 인증서를 요청하는 것입니다. Windows Server 는 CA 로 구성할 수 있으며 클라이언트가 발행하는 인증서를 신뢰하도록 클라이언트를 설정할 수 있습니다. 또는 테스트 환경에 가장 적합하지만 자체 서명 된 인증서를 사용하는 것이 가능합니다.
SQL Server 투명한 데이터를 암호화(TDE)
투명한 데이터를 암호화(TDE)에서 SQL 서버 데이터 보호에서 나머지 부분을 암호화하여 데이터베이스 데이터 및 로그 파일에 디스크가 있습니다. 클라이언트 기존 응용 프로그램에 투명하게 작동하므로 TDE 가 활성화되면 변경할 필요가 없습니다. Tde 는 페이지 수준에서 실시간 암호화를 사용합니다. 페이지는 데이터 및 로그 파일의 크기를 늘리지 않고 디스크에 기록되기 전에 암호화되며 메모리로 읽을 때 페이지가 해독됩니다. Tde 는 Sql Server 의 엔터프라이즈 버전에서만 사용할 수 있습니다. 또한 Azure Sql 데이터베이스,Azure SQL 데이터웨어 하우스 및 병렬 데이터웨어 하우스에서 작동합니다.
TDE encryption 은 계층 구조를 가지고 있으며 windows Dpapi(Data Protection API)가 계층 위에 앉아 서비스 마스터 키(SMK)를 암호화하는 데 사용됩니다. SMK 를 사용하여 자격 증명,연결된 서버 암호 및 다른 데이터베이스에 상주하는 DMKs(데이터베이스 마스터 키)를 암호화 할 수 있습니다. SQL DMK 는 인증서의 개인 키와 데이터베이스에 저장된 비대칭 키를 보호하는 대칭 키입니다.
SQL 서버가 생성할 수 있는 자체 서명된 인증서를 사용할 TDE 또는 당신서 인증서를 요청할 수 있습니 캘리포니아(는 일반적인 접근 방식). TDE 를 사용하기로 결정한 경우 인증서와 인증서와 연결된 개인 키를 백업해야 합니다. 다른 SQL Server 에서 데이터베이스를 복원하거나 연결해야 합니다. 다른 SQL Server 데이터베이스에서 TDE 를 사용하도록 설정하면 tempdb 시스템 데이터베이스도 암호화됩니다. 사용하지 않는 경우 TDE,당신은 유지하는 인증서 및 개인 핵심기 때문에 부품의 거래 로그에 남아 있을 수 있습 암호화할 때까지 전체 백업을 수행합니다.
TDE 도 필요한 데이터베이스 암호화 키(DEK),중 symmetric key 보호되는 인증서를 사용하여 저장된 마스터 데이터베이스에서,또는 비대칭 키에 의해 보호되는 서비스를 사용하는 확장 가능한 키 관리(EKM),Microsoft 와 같은 Azure 키. TDE 지원 데이터베이스의 백업 파일은 DEK 를 사용하여 암호화되므로 복원 작업 중에 DEK 를 보호하는 인증서를 사용할 수 있어야합니다.대칭 키는 동일한 암호를 사용하여 데이터를 암호화하고 해독합니다. 비대칭 키는 하나의 암호를 사용하여 데이터(공개 키)를 암호화하고 다른 암호를 사용하여 데이터(개인 키)를 해독합니다. 당신이 사용할 수 있습성 인증서 명령어를 만들고 인증서를 만들기 대칭키를 만들고 비대칭 키 Transact-SQL 을 만드는 명령은 데이터베이스 암호화 키를 사용합니다.
백업 암호화
백업 암호화 작동 다음과 같 TDE 그러나 암호화 SQL 백업을 대신에의 활성 데이터 및 로그 파일이 있습니다. 백업 암호화는 sql Server2014 이상에서 사용할 수 있습니다. 지정할 수 있습니다 AES128,AES192,AES256 개 또는 트리플 DES 암호화,그리고 중 하나를 사용하여 인증서 또는 비대칭 키에 저장된 EKM. 또한 다른 인증서 또는 키를 사용해야하지만 tde 와 백업 암호화를 동시에 활성화 할 수 있습니다.
Tde 와 마찬가지로 백업 암호화를 사용하도록 설정하면 인증서 또는 키도 백업해야 합니다. 키나 인증서가 없으면 백업 파일을 사용하여 데이터를 복원할 수 없습니다. Sql Server Managed Backup to Microsoft Azure 를 사용할 때 백업을 암호화 할 수도 있습니다.백업을 암호화하기 위해 인증서를 사용하는 경우 데이터를 복원 할 때 원래 인증서가 있어야한다는 점에 유의해야합니다. 즉,인증서에 백업이 생성되었을 때와 동일한 지문이 있어야 합니다. 인증서를 갱신하거나 어떤 방식 으로든 변경하면 지문이 변경 될 수 있습니다.
Column/Cell-Level Encryption
sql Server 의 모든 버전에서 사용할 수 있으며 중요한 데이터가 포함된 열에서 cell-level encryption 을 사용할 수 있습니다. 데이터는 디스크에 암호화되며 DECRYPTBYKEY 기능을 사용하여 암호를 해독 할 때까지 메모리에 암호화 된 상태로 유지됩니다. 따라서 SQL 데이터는 암호화되어 있지만 단순히 사용자 컨텍스트에서 함수를 사용하여 암호를 해독하는 것 이상으로 안전하지 않습니다. 또한 데이터를 해독하는 데 기능이 필요하기 때문에 클라이언트 응용 프로그램은 셀 수준 암호화와 함께 작동하도록 수정해야합니다.
암호화 키 관리
TDE 와 마찬가지로 셀 수준 암호화를 사용하기 전에 마스터 키(DMK)를 만들어야합니다. 네 가지 옵션이 있습니다 암호화를 위한 정보를 사용하여 세포 수준의 암호화:
- 사용할 수 있습니다 암호를 암호화하고 해독하는 데이터,하지만 당신은 암호화 저장된 절차와 기능; 그렇지 않으면 메타데이터에서 암호를 액세스할 수 있습니다.
- 비대칭 키는 강력한 보안을 제공하지만 성능에 영향을 줄 수 있습니다.
- 대칭 키는 일반적으로 충분히 강하며 보안과 성능간에 좋은 균형을 제공합니다.
- 인증서는 또한 보안과 성능 간의 균형을 잘 제공하며 데이터베이스 사용자와 연결될 수 있습니다.
항상 암호화된
항상 암호화된 암호화에는 민감한 데이터는 클라이언트 응용 프로그램를 공개하지 않고 암호화 키를 데이터베이스 엔진,제 분리 데이터 간의 소유자 및 데이터 관리자입니다. 예를 들어,항상 암호화 사용을 확신할 수 있는 데이터베이스 관리자가 없을 읽을 수 있는 민감한 데이터이다. 이름에서 알 수 있듯이 데이터는 휴식 시간에 암호화되며 Azure 와 같은 타사 시스템에서 사용되는 경우 암호화됩니다.
항상 암호화 된 개별 데이터베이스 열에 대해 구성 할 수 있습니다. 두 종류의 키가 사용됩니다: 열 암호화 키 및 열 마스터 키. 열 암호화 키를 보호하는 데이터를 열고 열이터베이스를 사용하는’키 키를 보호하는 암호화 하나 더 많은 열을 암호화 키를 사용합니다. 열 마스터 키는 Azure Key Vault 와 같은 외부 신뢰할 수있는 키 저장소에 저장됩니다.
암호화 프로세스는 클라이언트 응용 프로그램에 투명하지만 클라이언트 컴퓨터에 특수 드라이버가 필요합니다. Always Encrypted 는 sql Server2016 이상에서 사용할 수 있지만 Enterprise edition 에서만 사용할 수 있습니다. 때문에 추가 클라이언트 측의 요구 사항,항상 암호화에 가장 적합한 상황에서는 분리에 데이터의 소유자 및 관리자는 기본 요구 사항입니다.