MS SQL Server 암호화 및 백업 이해


13

그래서 SQL Server 백업 파일의 보안에 대해 대화를as습니다 .

공격자가 암호화되지 않은 .bak 파일에 액세스 할 수 있으면 데이터에 액세스 할 수 있다고 들었습니다.

이 시나리오를 보자.

OPEN SYMMETRIC KEY MySymetricKey DECRYPTION
BY CERTIFICATE MyCertificate

통지-여기에 비밀번호가 없습니다.

그런 다음 다음과 같이 테이블을 암호화합니다.

UPDATE tbl1
 SET namePAss = ENCRYPTBYKEY(KEY_GUID('MySymetricKey'),name)
GO

해커가 내 bak파일을 받았다고 가정 해 봅시다 . (자신의 컴퓨터와 sql-server에서) 데이터를보기 위해해야 ​​할 일은 다음과 같습니다.

SELECT  
       convert( NVARCHAR(max), decryptbykey(namePAss)) 
FROM tbl1

그는 여전히 데이터에 액세스 할 수 있습니까?

답변:


9
OPEN SYMMETRIC KEY MySymetricKey DECRYPTION`  
 BY CERTIFICATE MyCertificate`

통지-여기에 비밀번호가 없습니다.

그렇습니다. MyCertificate 어떻게 든 인증서를 열었 습니까? 여러 경우가있을 수 있지만 그 중 하나는 비밀번호로 끝납니다.

  • 비밀번호를 사용하여 인증서를 연 경우 (이 경우 비밀번호가 있음)
  • 인증서는 데이터베이스 마스터 키로 암호화되며 DBMK 비밀번호를 사용하여 데이터베이스 마스터 키를 열었습니다.-> 비밀번호입니다.
  • 인증서는 데이터베이스 마스터 키로 암호화되고 DBMK는 서비스 마스터 키로 암호화됩니다. 서비스 마스터 키는 계정 비밀번호->로 암호화 된 서비스 계정 DPAPI 스토리지 키를 사용하여 열렸으며 이는 비밀번호입니다.

마지막 키에는 암호가없는 것 같지만 서비스 계정 암호가 있습니다. 백업은 다른 호스트에서 복원 될 때 데이터베이스 마스터 키의 서비스 마스터 키 암호화가 없으므로 데이터에 액세스 할 수 없게됩니다.

암호화 계층을 참조하십시오


예, 비밀번호가 있지만 이전 단계에 있습니다. 내가 만든 때 : CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'DB Master key password!' GO-암호로 만들었습니다. 그러나 이상한 점은 내가 열면 암호가 필요 없다는 것입니다. 이것은 붙여 넣은 코드입니다. 이것은 내가 이해하지 못하는 것입니다. 해커라면-나는 그것을 만드는 데 사용되는 암호를 신경 쓰지 않습니다. 내가해야 할 일은 OPEN SYMMETRIC KEY MySymetricKey DECRYPTION 인증서로 인증하는 것 뿐이며 여기에는 비밀번호가 없습니다. 저를 수정하시기 바랍니다
Royi Namir에게

3
@RoyiNamir Remus의 마지막 글 머리 기호를 참조하십시오. 비밀번호를 지정 하지 않았지만 인증서는 궁극적으로 서비스 계정 비밀번호로 보호됩니다.
Mark Storey-Smith

@Remus 당신은 내 새로운 질문 (매우 관련) dba.stackexchange.com/questions/29287/…을 볼 수 있습니까?
Royi Namir

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.