Toggle navigation
꿈꾸는 개발자, DBA 커뮤니티 구루비
로그인
:
회원가입
:
공지
:
버그
:
RSS
:
저작권
구루비 커뮤니티는
Tibero Database
로 운영되고 있습니다.
지식창고
Database Q&A
Oracle Database
Study RoadMap
권순용의 DB 이야기
권순용의 데이터모델링
엑시엄이 보는 DB 세상
Basic SQL 강좌
Advanced SQL 강좌
QUIZ로 배우는 SQL
PL/SQL 강좌
Admin 강좌
Oracle10g 강좌
Tuning 강좌
백업&복구 강좌
기타 강좌
Oracle 노하우/팁
Oracle 퀴즈
Oracle 자료실
Community
전체글
공지사항
IT 행사 및 소식
Toad for Oracle
Toad Data Point 강좌
Toad 기본강좌
Toad 소개
Toad 노하우/팁/자료
Toad 커뮤니티
Tibero DB
우리 회사 데이터베이스를 티베로로 변경하기
Tibero5 기본강좌
Tibero4 기본강좌
Tibero 노하우/팁/자료
Tibero TechNet
Tibero6 온라인메뉴얼
Database 북카페
SQL 전문가 가이드
대용량 데이터베이스솔루션 I
대용량 데이터베이스솔루션 II
새로쓴 대용량 데이터베이스솔루션 1
오라클 성능 고도화 원리와 해법 I
오라클 성능 고도화 원리와 해법 II
SQL 튜닝의 시작
Optimizing Oracle Optimizer
비용기반의 오라클 원리
전문가를 위한 오라클 데이터베이스 아키텍처
트러블슈팅 오라클 퍼포먼스(제2판)
오라클 성능 트러블슈팅의 기초
클라우드 데이터베이스 Oracle 12c 가이드
이펙티브 오라클
데이터베이스 설계와 구축(개정판)
관계형 데이터 모델링 프리미엄 가이드 DB구축
Real MariaDB
Database 기타
PostgreSQL 기본강좌
PostgreSQL 노하우/팁/자료
ALTIBASE 기초강좌
ALTIBASE 노하우/팁/자료
ALTIBASE Technical Center
CUBRID 기초강좌
CUBRID 노하우/팁/자료
CUBRID 홈페이지
MySQL 노하우/팁/자료
MySQL 홈페이지
Tag
세미나
세미나 목록
세미나 신청
세미나 Q&A
세미나 후기
세미나 자료실
My 신청세미나
My 취소세미나
My Home
My 정보
My 내공
My 정보수정
내가 즐겨찾는 게시글
내가 즐겨찾는 강좌
내가 작성한 게시글
내가 작성한 댓글
About
커뮤니티 발자취
구루비 소개
내공점수 소개
HOME
[종료]구루비 DB 스터디
2012년 하반기 - 오라클 성능 트러블슈팅의 기초 스터디
암호화의 유형
암호화의 유형
(by tlswofl)
[2012.12.04]
암호화의 유형
동적 데이터 암호화
정적 데이터 암호화
수작업 애플리케이션 암호화
오라클 Wallet
Transparent 컬럼 레벨 암호화
Transparent 테이블스페이스 암호화
데이터베이스 내장 암호화 기술을 사용하기 위해서는
Enterprise Edition의 ASO(Advanced Security Option) 추가 비용이 필요
암호화의 유형
동적 데이터 암호화
데이터베이스로부터 나오는 정보의 변화하는 스트림이 대상이 된다.
부가 기능 제공
부인방지 데이터: 서버/클라이언트간 패킷 전송 과정에서 제3자의 유입이 없음을 확인
데이터 정확도 보호: 서버/클라이언트에서 모든 패킷을 검증하여 조작되지 않았음을 확인
데이터 재생 방지: 서버/클라이언트간 실시간 데이터 송수신 제공
예제
은행 계좌 입출금시 제 3자의 패킷 유입을 막아 클라이언트 계정의 돈을 자신의 계정으로 전송하는 패킷을 유입할 수 없도록 함 ==> 부인방지
데이터 패킷을 검증하여 제 3자가 데이터 패킷을 가로채 $100 -> $900 으로 변경하지 못하게 함 ==> 데이터 정확도 보호
패킷을 최대 한번만 전송하도록 하여 중간자가 패킷을 가로채 재전송할 수 없게 함 ==> 데이터 재생 방지
오라클에서의 네트워크 암호화가 애플리케이션에 미치는 영향은 거의 없다.
정적 데이터 암호화
데이터 파일 내의 데이터를 암호화하는 것이다.
정적 데이터 암호화를 통해 데이터 파일이 타인에게 노출되어도 도용자는 SYSDBA 권한으로도 데이터에 접근이 불가능하다.
암호화 되지 않은 데이터 파일이 도용당하면 오라클 소프트웨어는 물론 간단한 UNIX 유틸리티를 통해서도 정보 취득이 가능하다.
오라클의 온라인 리두 로그/아카이브 리두 로그 파일/언두 파일을 통해서도 정보 취득이 가능하다.
정적 데이터 암호화의 종류
수작업 애플리케이션 암호화
transparent 컬럼 레벨 암호화
transparent 테이블스페이스 암호화
수작업 애플리케이션 암호화
트리거/사용자 정의 함수를 이용하여 암호화/복호화 프로그램 코딩
암복호화를 위한 API가 있기 때문에 암복호화 자체가 어렵지 않으나 암호화키 관리의 어려움이 있다.
데이터베이스 테이블 저장시 데이터 파일 도용시 함께 도용의 위험
PL/SQL 패키지에 키를 저장해도 동일한 문제 발생
데이터베이스 외부 애플리케이션에 저장시 어느 정도 성공
하지만 키와 데이터베이스의 백업 연계, 주기적 키 재설정으로 인한 키 관리의 어려움이 따른다.
이는 오라클에서 제공하는 TDE(Transparent Data Encryption) 프레임워크를 재개발하는 작업으로 시간 낭비
오라클 Wallet
오라클에서 제공하는 TDE 사용을 위한 키관리 방법
암호화 키가 암호화되어 저장된 단순한 파일로 데이터베이스 외부에 저장된다.
데이터베이스가 도용되었다면 wallet도 함께 도용 필요
wallet이 도용되어도 암호화된 키가 유출된것뿐 실제키는 유출 불가능(wallet 락해제를 위해서는 패스워드 필요)
wallet을 사용하는 방법
ALTER SYSTEM 명령어를 사용해 비밀번호를 통해 wallet release
자동 로그인 wallet을 사용
DBA의 개입없이 데이터베이스 오픈시 즉시 wallet release
하지만 데이터베이스와 wallet이 있는 물리적 장비에서만 작동 가능
외부 HSM(hardware security module) 활용
11gR1 이상에서만 사용 가능
데이터베이스 서버 외부의 external 하드웨어 일부에 키 저장(더 안전한 키 저장 메커니즘)
오라클 Wallet 설정
sqlnet.ora 파일에 wallet의 위치를 명시한다.
alter system 명령을 통해 wallet 생성(비밀번호 지정)
데이터베이스를 restart 한다.
alter sysetm 명령을 통해 wallet release
아래 명령을 통해 wallet close 가능
Transparent 컬럼 레벨 암호화
10gR2부터 도입
지정된 컬럼이 블록의 데이터 접근시 투명하게 복호화되고 블록의 데이터를 수정시 투명하게 암호화된다. (관련 리두, 언두, 템프 데이터 모두 암호화)
사용방법
사용자는 이 테이블을 소유했기 때문에 자유롭게(투명하게) INSERT, SELECT 가 가능하다.
데이터베이스 도용시
도용자는 wallet open이 불가능하므로 wallet을 close 한다.
그 후 INSERT, SELECT시 데이터 확인/수정이 불가능함을 확인할 수 있다.
데이터 접근을 위해서는 wallet open이 필수적이다.
함수 기반 인덱스가 생성된 컬럼에 사용 불가능 => 테이블스페이스 레벨의 암호화 사용
Transparent 테이블스페이스 암호화
11gR1 도입
전체 테이블스페이스의 내용을 암호화한다.
사용방법
데이터베이스 도용시
암호화된 테이블스페이스의 블록을 덤프
헤더에서 가져온 데이터베이스 이름과 테이블스페이스의 이름만 확인 가능
암호화되지 않은 테이블스페이스의 블록을 덤프
일반 테이블스페이스에 속한 테이블을 암호화된 테이블스페이스로 MOVE해도 이전 데이터파일을 덤프하면 여전히 데이터 확인이 가능하다. MOVE는 이전 데이터를 삭제하지 않으며 이러한 정보는 여전히 리두, 언두, 백업 파일에서도 찾을 수 있다.
암호화시 MOVE 작업시 발생한 복사본 주의 필요
일반 테이블스페이스의 세그먼트를 모두 MOVE한후 일반 테이블스페이스 삭제 필요
HOME
[종료]구루비 DB 스터디
2012년 하반기 - 오라클 성능 트러블슈팅의 기초 스터디
암호화의 유형