DB데이터 암호화

sidohigar·2021년 10월 27일
0
  1. 용어 정리
  • 서비스 마스터 키 (SMK) : SQL Server 인스턴스가 시작되고 각 데이터베이스에서 연결된 서버 암호, 자격 증명 및 데이터베이스 마스터 키를 암호화하는 데 사용될 때 처음으로 자동 생성
  • 데이터베이스 마스터 키 (DMK) : 데이터베이스에 있는 비대칭 키와 인증서의 프라이빗 키를 보호하는 데 사용되는 대칭 키
  1. SMK - DMK - 인증서 - 대칭키 로 암호화
-- 암호로 마스터 키 생성
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '암호'
GO

--자동으로 SMK로 DMK가 암호화 됨
SELECT NAME, IS_MASTER_KEY_ENCRYPTED_BY_SERVER FROM SYS.DATABASE WHERE NAME LIEK 'DB명%'

--인증서 생성
CREATE CERTIFICATE 인증서명 WITH SUBJECT = '인증서제목'

--생성된 인증서 조회
SELECT * FROM DB명.SYS.CERTIFICATES;

--대칭키 생성
CREATE SYMMETRIC KEY 대칭키명 WITH ALGORITHM = AES_256
ENCRYPTION BY CERTIFICATE 인증서명

--생성된 대칭키 조회
SELECT * FROM DB명.SYS.SYMMETRIC_KEYS
  1. 데이터 암호화 및 복호화
--대칭키 OPEN
OPEN SYMMETRIC KEY 대칭키명 DECRYPTION BY CERTIFICATE 인증서명
GO

-- 테스트용 테이블 생성 및 데이터 추가
CREATE TABLE TBL_TEST (NAME VARCHAR(50), ENC_NAME VARBINARY(256))
GO
INSERT INTO TBL_TEST 
VALUES ('HELLO WORLD', EncryptByKey(Key_GUID('대칭키명'), 'HELLO WORLD'))
GO

-- 데이터 확인
SELECT NAME, DecryptByKey(ENC_NAME) FROM TBL_TEST
GO

--대칭키 CLOSE
CLOSE SYMMETRIC KEY 대칭키명
GO


	

0개의 댓글