컬럼 대칭키 암호화 작업(SQL 2008) ① 마스터 키 생성 ② 인증서 생성 초기 한번만 실행 ③ 대칭키 생성

Slides:



Advertisements
Similar presentations
1. 브라우저에서 로 관리창으로 접속해서, 서버 인증서를 설치 할 서버를 선택하고 Manage 버튼을 클릭합니다. 2. Security 탭을 선택한 후, 인증서 Trust.
Advertisements

2008 년 11 월 20 일 실습.  실험제목 ◦ 데이터베이스 커넥션 풀  목표 ◦ 데이터베이스 커넥션 풀의 사용.
1 넷스팟 MAC ID 설정 방법 ( 서울캠퍼스 기준 ) 각종 스마트폰의 WiFi 를 이용시 각종 스마트폰의 WiFi 를 이용시 MAC ID 설정을 하는 방법 입니다. 아이폰의 경우는 별도의 설정없이 바로 사용이 가능하오니, 사용이 어려울 경우, 고객센터로 문의하시면 됩니다.
목차 Contents 무선인터넷용 비밀번호 설정방법 Windows 7 Windows 8 Windows XP MAC OS.
PARK SUNGJIN Oracle 설치 PARK SUNGJIN
DB 프로그래밍 학기.
DB 프로그래밍 학기.
You YOungseok 데이터베이스 테이블 및 인덱스 You YOungseok.
Database Laboratory, Hong Ik University
Consumer PC & AIO PC DMI Refresh 방법 설명 (UEFI DMI Ver)
질의어와 SQL 기본 SQL 고급 SQL 데이타의 수정 데이타 정의 언어 내장 SQL
SAS Foundation Client 9.4 설치 가이드
ERP 전용 브라우저 설치 매뉴얼 (Windows 7)
제 09 장 데이터베이스와 MySQL 학기 인터넷비즈니스과 강 환수 교수.
13장. 자바빈과 데이터베이스를 연동한 게시판 시스템
6장 Mysql 명령어 한빛미디어(주).
MySQL 및 Workbench 설치 데이터 베이스.
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
목차 백업과 복원.
14장 질의응답 한빛미디어(주).
11 테이블 관리와 데이터 딕셔너리 데이터베이스 응용 프로젝트 개발 테이블 구조 변경 데이터 딕셔너리.
테이블 : 데이터베이스를 구성하는 요소로 같은 성격에 정보의 집합체. 레코드 : 하나의 정보를 가지고 있는 컬럼의 집합체
5장 Mysql 데이터베이스 한빛미디어(주).
트랜잭션과 잠금 트랜잭션 처리 메커니즘을 자세히 이해한다. 트랜잭션의 종류를 파악한다.
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
ASP.NET : Database 접근 2008 컴퓨터공학실험(Ⅰ)
File Depender 중간 발표.
3.2 SQL Server 설치 및 수행(계속) 시스템 데이터베이스 master
13 인덱스 인덱스의 개념 인덱스의 구조 인덱스의 효율적인 사용 방법 인덱스의 종류 및 생성 방법 인덱스 실행 경로 확인
18강. 데이터 베이스 - II JDBC 살펴보기 Statement객체 살펴보기 Lecturer Kim Myoung-Ho
17강. 데이터 베이스 - I 데이터 베이스의 개요 Oracle 설치 기본적인 SQL문 익히기
5장 Mysql 데이터베이스 한빛미디어(주).
KIM HEESANG PL/SQL 2 KIM HEESANG
DB연동하기 원격db접속.
13 인덱스 인덱스의 개념 인덱스의 구조 인덱스의 효율적인 사용 방법 인덱스의 종류 및 생성 방법 인덱스 실행 경로 확인
You YoungSEok Oracle 설치 You YoungSEok
rc script, 특정 port로 telnet
환경 설정 예제 데이터베이스 생성 - 그림 3.34의 SQL Server 관리 스튜디오 창의 왼쪽 영역의 데이터베
CHAP 13. 방명록 만들기 실습.
JDBC Lecture 004 By MINIO.
2015학년도 PHP 기말 레포트 로그인 홈페이지 제작.
ERP 전용 브라우저 설치 매뉴얼 (Windows 7)
툴 설치 가이드 PrimeTime SynopsysMentor.
27강 JAVA Collections - II - Map계열 컬렉션 클래스 살펴보기 - Set계열 컬렉션 클래스 살펴보기
컬럼 대칭키 암호화 작업(SQL 2008) ① 마스터 키 생성 ② 인증서 생성 초기 한번만 실행 ③ 대칭키 생성
기말 프로젝트 계획 MVC 패턴 기반 웹 애플리케이션 개발 프로젝트명 : 팀명 : 팀원 :
1. 인증서버 :일반유선PC( 접속“CA관리” 클릭
CHAP 21. 전화, SMS, 주소록.
VHDL를 이용한 DES 설계 정보통신컴퓨터공학부 5조 김인옥, 백미숙
S-Work 2.0 DRM 신규 버전 설치 가이드 SOFTCAMP
Open4U 공급업체 접속 방법 Open4U 시스템 신규 접속 방법 메인 화면 및 로그인 하기 초기 비밀번호 변경하기
문성우 SQL 실습 Part Ⅰ 문성우.
STS 에서 웹 서버 설치 방법.
수동 설치시는 설치 방법 1. 두번에 설치 CD 속에 fscommand 폴더 밑에 Osstem 이라는 폴더를
WZC 무선 연결 방법 (Windows 7 Ver.).
오라클 11g 보안.
14 뷰(View) 뷰의 개념 뷰 관리.
TSA LOCK 설정방법 A/S 안내 (무상 A/S 2년 보증) 초기넘버는 0-0-0입니다.
제 23 장 오라클에서 보안 기능.
Chapter 10 데이터 검색1.
1. Vista Wireless LAN 설정하기
스쿨뱅킹 새학년 반편성 절차 안내서 2009.
(Artificial Intelligence, BabyBoom, Contract, BlockChain…)
maria db JDBC PROGRAMMING 5
Git을 이용한 버전 관리 - Branch 실습
14 뷰(View) 뷰의 개념 뷰 관리.
 6장. SQL 쿼리.
이 프레젠테이션은 PowerPoint의 새로운 기능에 대해 안내하며, 슬라이드 쇼에서 가장 잘 보입니다
Exporting User Certificate from Internet Explorer
SafeMSR 설정.
Presentation transcript:

컬럼 대칭키 암호화 작업(SQL 2008) ① 마스터 키 생성 ② 인증서 생성 초기 한번만 실행 ③ 대칭키 생성 ④ 대칭키 OPEN ⑤ 암/복호화 암/복호화시 ④⑤⑥ 세트로 실행 ⑥ 대칭키 CLOSE

① 마스터 키 생성 1. 명령문 2. 기타 -- 마스터 키 생성 USE TESTDB CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Pwd_Create_Master' -- ⓐ 데이터베이스의 마스터키를 암호화하는데 사용되는 암호입니다 2. 기타 -- 마스터 키 백업 OPEN MASTER KEY DECRYPTION BY PASSWORD = 'Pwd_Create_Master'; BACKUP MASTER KEY TO FILE = 'C:\MasterKey' -- 생성된 파일을 잘 보관해 두어야 한다.(★) ENCRYPTION BY PASSWORD = 'Pwd_Backup_Master' -- ⓑ 파일의 마스터키를 암호화하는데 사용되는 암호입니다. -- 마스터 키 삭제 DROP MASTER KEY -- 마스터 키 복원 RESTORE MASTER KEY FROM FILE = 'C:\MasterKey' -- 백업해 두었던 마스터 키 파일 DECRYPTION BY PASSWORD = 'Pwd_Backup_Master' -- ⓑ ENCRYPTION BY PASSWORD = 'Pwd_Create_Master' -- ⓐ -- 마스터키조회 SELECT * FROM TESTDB.sys.symmetric_keys

② 인증서 생성 1. 명령문 2. 기타 -- 인증서초기생성 CREATE CERTIFICATE Cert_JUMIN -- 인증서이름 ENCRYPTION BY PASSWORD = 'Pwd_Create_Cert' -- ⓒ인증서비밀번호 WITH SUBJECT = '주민번호인증서', -- 인증서제목 EXPIRY_DATE = '12/31/2050' -- 인증서유효기간('mm/dd/yyyy') , 주1) 끝장 주석 참조 2. 기타 -- 인증서조회 SELECT * FROM TESTDB.sys.certificates -- 인증서백업 BACKUP CERTIFICATE Cert_JUMIN TO FILE = 'C:\CERT' -- 인증서, 생성된 파일을 잘 보관해 두어야 한다.(★) WITH PRIVATE KEY ( FILE = 'C:\PRI' , -- 개인키, 생성된 파일을 잘 보관해 두어야 한다.(★) ENCRYPTION BY PASSWORD = 'Pwd_Backup_Cert', -- ⓓ키를 백업파일에 작성하기 전에 개인키를 암호화하는데 사용되는 암호입니다. DECRYPTION BY PASSWORD = 'Pwd_Create_Cert' -- ⓒ키를 백업하기전에 개인키의 암호를 해독하는데 사용되는 암호입니다 ) -- 인증서삭제 DROP CERTIFICATE Cert_JUMIN -- 인증서복구 CREATE CERTIFICATE Cert_JUMIN FROM FILE = 'C:\CERT' WITH PRIVATE KEY ( FILE = 'C:\PRI', ENCRYPTION BY PASSWORD = 'Pwd_Create_Cert', -- ⓒ개인키를 암호화 하는데 사용되는 암호를 지정합니다 DECRYPTION BY PASSWORD = 'Pwd_Backup_Cert' -- ⓓ파일에서 검색한 개인키의 암호를 해독하는데 필요한 암호를 지정합니다 );

③ 대칭키 생성 1. 명령문 CREATE SYMMETRIC KEY Sym_KEY -- 대칭키이름 WITH ALGORITHM = AES_128, -- 암호알골리즘 선택 IDENTITY_VALUE = 'Data encryption key 03/29/2010', -- 사용자 형식에 맞게 수정 KEY_SOURCE = 'ORGA WHOLE FOODS SYMMETRIC KEY‘ -- 사용자 형식에 맞게 수정 ENCRYPTION BY CERTIFICATE Cert_JUMIN -- 대칭키를 암호화하는데 사용되는 인증서 이름을 지정합니다 -- 대칭키조회 SELECT * FROM TESTDB.sys.symmetric_keys 2. 암호 알고리즘 DES | TRIPLE_DES | TRIPLE_DES_3KEY | RC2 | RC4 | RC4_128 | DESX | AES_128 | AES_192 | AES_256 3. 기타 대칭키는 백업과 복원이 없다. (★중요★) 생성시에 IDENTITY_VALUE, KEY_SOURCE 항목을 지정하고 만들어야 추후 삭제 되었을때 대칭키를 다시 만들어도 이전 대칭키로 암호화 된 데이터를 복호화 할 수 있습니다. 생성 쿼리 꼭 보관해 주셔야 합니다.

④ 대칭키 OPEN 1. 명령문 IF EXISTS (SELECT * FROM ORGA.sys.openkeys WHERE KEY_NAME = 'Sym_KEY') BEGIN PRINT 'ALREADY OPEN' END ELSE OPEN SYMMETRIC KEY Sym_KEY -- 대칭키이름 DECRYPTION BY CERTIFICATE Cert_ORGA_JUMIN -- 인증서이름 WITH PASSWORD = 'Pwd_Create_Cert ' -- ⓒ인증서비밀번호(대/소분자 같아야 함.) PRINT 'OPEN' 2. 기타 (암/복호화 할 때 항상 먼저 열어야 함.) -- 조회 SELECT * FROM TESTDB.sys.symmetric_keys

⑤ 암/복호화 1. 명령문 2. 암호화 컬럼 관련 -- 테이블 생성 CREATE TABLE 고객( 고객번호 INT IDENTITY PRIMARY KEY, 고객이름 VARCHAR(20) NOT NULL, 주민번호 VARBINARY(128) NOT NULL -- 대칭키가Open되어있지 않으면 NULL값으로 대체된다. ) GO -- 암호화 INSERT INTO 고객(고객이름, 주민번호) VALUES('지현명', EncryptByKey(Key_GUID('JUMIN_KEY'), ‘7905219925487')) --복호화 SELECT CONVERT(VARCHAR, DecryptbyKey(주민번호)) FROM 고객 2. 암호화 컬럼 관련 -- varbinary(128) 암호화 컬럼을 128byte로 지정할 경우 입력문자열 제한 1). ascii 1234567890123456789012345678901234567890123456789012345678901234567890 2). unicode 무궁화꽃이피었습니다무궁화꽃이피었습니다무궁화꽃이피었습니다무궁화꽃이

⑥ 대칭키 CLOSE 1. 명령문 IF EXISTS (SELECT * FROM TESTDB.sys.openkeys WHERE KEY_NAME = 'Sym_KEY') BEGIN CLOSE SYMMETRIC KEY Sym_KEY PRINT 'CLOSE' END ELSE PRINT ‘ALREADY CLOSE' 2. 기타 - 해당 세션에서 여러개의 대칭키를 사용하고 이를 모두 닫아야 한다면 CLOSE ALL SYMMETRIC KEYS

주1) 인증서의 유효기간에 관련하여 ( 본 참고자료 3페이지 1번 항목) ※ 참고 http://msdn.microsoft.com/en-us/library/bb326115.aspx http://msdn.microsoft.com/ko-kr/library/bb326115.aspx http://msdn.microsoft.com/ko-kr/library/ms366281.aspx 주1) 인증서의 유효기간에 관련하여 ( 본 참고자료 3페이지 1번 항목) 대칭키 생성 할 때 인증서 기반으로 생성했는데 만약 인증서의 유효기간이 지나면 대칭키 사용은 어떻게 될까요? 대칭키 생성 할 때만 인증서를 사용했기 때문에 인증서의 유효기간이 지났다고 해서 이미 생성된 대칭키 사용(암/복호화) 영향을 주지 않습니다. 만약, 대칭키가 잘못되어 다시 생성 할 때(대칭키는 백업/복구가 없음) 유효기간이 지난 인증서를 사용 할 수 없음으로 인증서 생성 쿼리에서 유효기간만 늘려서 다시 생성 하시면 됩니다. 인증서 DROP 할 때 이미 생성된 인증서를 사용한 대칭키가 있다면 먼저 대칭키를 DROP하고 나서 인증서를 DROP해야 합니다. 추가로 해보면 재미있을 만한 내용... 만약, 마스터키/인증서/ 대칭키 DROP 시키고 비밀번호 변경하여 재 생성 한 후 기존 데이터를 복호화 하면 어떻게 될까?

인증서와 대칭키 생성 위치