- 데이터베이스 시스템 –
제10장 데이터베이스 보안
2009. 02. 05
경원대학교 소프트웨어학부
목 차
10.1 개요
10.2 임의 접근제어 10.3 강제 접근 제어
10.4 암호화
Korth 8.8장
10.1 개 요
DB 무결성 보호, 자료 불법 사용 방지 DB 보안 목표
- 무결성: 오류가 없어야
권한 있는 자만 정확하게 수정할 수 있어야,, - 가용성: 사용할 수 있어야
권한 있는 자는 접근이 거부되지 말아야,, - 기밀성: 노출되지 말아야
권한 없는 자에게 노출되지 말아야,,,
제10.1장 데이터베이스 보안 개요
10.1 개 요
무결성과 보안의 관계
- 네트워크 보안, 운영체제 보안은 별도
제10.1장 데이터베이스 보안 개요
10.1 개 요
DB 보안 쟁점 - 사법 제도:
개인 정보 보호법, 정보 공개법, 영업기밀침해방지법, 부정경쟁방지법, 상충 조정
- 행정 정책:
정보 공개 수준 결정. 금융 기록, 의료 기록,,, - 보안 수준:
통신망, HW, OS, DBMS 수준 등 - 보안 등급:
자료와 사용자를 등급 분류,,,
제10.1장 데이터베이스 보안 개요
10.1 개 요
DBMS의 보안 형태
- 사용자 검증을 위한 보안 계정 - DB 객체들을 위한 접근 보안 - DB 파일을 위한 OS 보안
Database 보안 기법
- 임의 보안 기법: 사용자에게 특정 권한 부여
- 강제 보안 기법: 자료와 사용자들을 분류하고 보안 정책 적용 - 역할-기반 보안: 역할 개념으로 강제 보안
제10.1장 데이터베이스 보안 개요
DB 보안의 문제점
- 특정 정보에 접근할 수 있는 권한의 한계 법으로 규정. Ex. Private control law
- 보안의 수준: 물리적, H/W, OS, DBMS 권한 부여 authorization
권한: 사용자 개별적으로 주어진 접근 권리 자신의 권한을 다른 사용자에게 넘겨주는 것.
역할 role
업무별로 사용자에게 부여하는 권한.
ex. teller, manager, auditor,,,
제10.1장 데이터베이스 보안 개요
DB 보안을 위한 제어 수단
접근 제어 data를 제어해서 주어진 사용자에게 접근 권한 주기
자료에 대한 유형별 접근 권리 분류
추론 제어 추론에 의한 누출 방지 통계 데이터베이스 보안
흐름 제어 정보가 보안 수준이 낮은데로 흘러가 covert channel: 시간 통로, 저장 통로
암호화 노출이 되어도 인식 곤란하게 암호화, 인증
제10.1장 데이터베이스 보안 개요
10.1.2 보안업무
DBA 업무: DB 관리 책임 + 보안 정책을 수립하여 집행 계정 생성: 계정 + 암호
권한 부여: 특정 계정에 특정 권한 권한 취소:
보안 등급: 사용자 계정에 보안 등급 지정
추적 감사: 로그 조사: 기간 중 DB에 적용된 모든 연산을 검사 암호화
사용자 계정, 암호
제10.1장 데이터베이스 보안 개요
10.2 임의 접근 제어
안전을 위한 접근 통제 1. 임의접근제어
특정 사용자에게 특권 부여.
높은 유연성 2. 강제접근제어
모든 사용자를 분류하여 권한 부여.
높은 보호수준 3. 특수접근제어
제10.2장 접근제어
10.2. 임의접근 제어
GRANT 와 REVOKE 명령으로 임의접근제어 지원.
GRANT: 기본 테이블과 뷰에 특권 부여
GRANT 특권 ON 객체 TO 사용자 [WITH GRANT OPTION]
특권의 종류
- select, insert, delete, references - create, alter, drop
제10.2장 임의 접근제어
[표 10.1)] GRANT 명령에서 지정 가능한 권한
권한 종류 권한의 내역
검색 권한 SELECT에 의한 테이블 검색
갱신 권한 UPDATE, DELETE, INSERT에 의한 갱신 참조 권한 외부 키 정의
10.2. 임의접근 제어
제10.2장 임의 접근제어
Kim
Lee
Park
Choi
DBA GRANT Noh OPTION
권한과 역할
create role teller
grant select on account to teller
grant teller to John create role manager grant teller to manager grant manager to many
제10.2장 임의 접근제어
REVOKE [ GRANT OPTION FOR ] privileges
ON object FROM users { RESTRICT | CASCADE}
GRANT SELECT ON 뱃사람 TO art WITH GRANT OPTION : Joe가 실행
GRANT SELECT ON 뱃사람 TO bob WITH GRANT OPTION : Art가 실행
REVOKE SELECT ON 뱃사람 FROM Art CASCADE :Joe(뱃사람의 생성자)가 실행
제10.2장 임의 접근제어
View:
불 필요한 자료 은닉.
- 사용자에게 개인화된 DB모델 지원 방법
- 사용자의 관심을 특정 자료에 제한 시스템 사용 단순화 - 사용자: 기본 테이블 접근 금지
Create view Incentive
AS select C.cname, O.item, O.amount from customer C, order O
where C.cid = O.cid;
Grant select ON Incentive TO Yoon, Park
제10.2장 임의 접근 제어
10.3 강제접근 제어
임의접근제어의 약점:
권한 없는 사용자가 권한이 있는 사용자로 하여금 자료 유출 ex. 학생 A가 교수 S의 성적 테이블 K를 보려고 한다.
방법:
A는 테이블 X를 만들고, 이 테이블에 대한 INSERT 특권을 S 교수에게 부여, S가 사용하는 응용 프로그램을 고쳐서 K를 읽어서 X에 복사한다.
대책:
모든 객체에 보안등급 지정, 모든 주체에 허가등급 지정.
제10.3장 강제 접근제어
Bell-LaPadula 모델
- 주체 S가 객체 O를 읽으려면,
calss(S) >= class(O) 인 경우만 가능
ex. S 등급 사용자는 C 등급의 테이블을 볼 수 있으나, TS 등급의 테이블은 볼 수 없다.
- 주체 S가 객체 O를 기록하려면, class(S) <= class(O)인 경우만 가능.
ex. S 등급의 사용자는 S, TS 등의 객체들만 기록 가능.
TS top secret, S secret, C classified, U unclassified.
제10.3장 강제 접근제어
DoD 보안 등급 Covert channel:
강제접근제어에서 높은 등급에서 낮은 등급으로 정보가 새는 것.
4단계 보안 등급
A: 보안정책의 수학적 증명 요구 B: 강제접근제어.
B2: + 신원확인, 비밀채널 제거.
B3: + 추적감사, 보안관리자 C: 임의접근제어.
C2: 로그인 확인, 추적감사 D: 최저 등급
제10.3장 강제 접근제어
10.3.2 특수접근 제어
1. 역할-기반 접근제어
권한이 역할과 결합. 사용자에게 역할 지정.
권한을 가진 자가 정해진 자료와 자원에 접근 2. 통계 DB 접근제어
개인 비밀을 보장하는 통계 제공,, 3. XML 접근제어
XML에 대한 전자 서명과 암호화 표준.
저장된 문서 전체 또는 부분에 적용 가능.
제10.3장 강제 접근제어
10.4 암호화
10.4.1 자료 암호화
디스크 블록 암호화
시스템 SW가 디스크 블록을 읽고 복호화. 시간과 공간이 효율 적
ex. DB backup tape 암호화 단점: 분산환경에서는 곤란
대책: 자료가 DB에 도착하기 전에 응용프로그램이 암호화.
지정된 컬럼들을 암호화
제10.4장 암호화
10.4.1 자료 암호화
DES Data Encryption Standard
1977년. 암호화 키를 기반으로 문자 대치와 재배열.
단점: 암호 사용시 통신할 때 누출 가능
AES Advanced Encryption Standard
2000년. Rijmen과 Daemen의 Rijndael알고리즘.
DES와 같은 공유(대칭)키 알고리즘.
제10.3장 프로그램 보안
10.4.2 공개키 암호화
PKI 공개키 암호화
공개 키 알고리즘(RSA)으로 암호화, 전자서명, 전자인증서를 활용하는 사용자 인증 시스템.
대칭, 비대칭 알고리즘?
RSA
Rivest, Shamir, Adleman 제안
제10.3장 프로그램 보안
10.4.3 인증 certificate
DB에 접속하는 소프트웨어나 사람의 신원 확인.
ex. 비밀번호, 약점: 네트워크 도청.
Challenge-response 시스템 - 비밀번호 기법:
DB가 시도 문자열을 보내면 사용자가 암호화하여 재전송.
- 공개키 기법
DB가 공개키로 문자열을 암호화해서 보내면, 사용자가 개 인키로 해독하여 반송.
약점: 컴퓨터가 무력화되면 비밀 키가 공격자에게 누출.
대책: 스마트 카드(키를 내장 칩에 저장)에서 암복호화
제10.3장 프로그램 보안
Challenge-response 시스템
제10.4장 암호화
25
전자서명 digital signature
문서를 작성한 자의 신원과 문서의 변경 여부를 확인하는 수단으로 비대칭 암호화 방식으로 생성한 정보
물리적인 서명의 역할을 전자적으로 수행.
부인방지 보장.
개인키가 누출되지 않은 이상 생성한 사람을 증명함.
제10.4장 암호화
평문 암호화 비문 복호화 평문
인증기관 사용자
비밀키
서버 비밀키
암호화 서버 공개키
복호화 사용자 공개키
전자 인증서 digital certificate
인증: 두 개체가 상대방에게 서로 자신을 증명하는 양방향 과 정.
사용자는 사이트의 공개 키를 가지면 확인 가능.
문제:
사용자가 사이트의 공개 키를 어떻게 믿는가?
대책: 전자 인증서
인증기관의 서명을 받은 공개 키를 이용.
인증서: (인증기관, 사이트, 사이트 주소, 사이트 공개 키)
제10.4장 암호화
전자인증서 Digital Certificate
공개 키 기반에서 확인자가 인증서 발급기관에게 요청 하여 받는 진짜 사용자의 공개 키이다.
제10.4장 암호화
Client Server Site
원문 암호화
원문 해독
사이트 개인키
사이트 인증기관 공개키
공개키
암호화 복호화
사이트 공개키
개인키 인증기관 암호문
상거래 사이트 보안 프로토콜
SSL: 고객과 상거래 사이트간의 지불 정보 보안 프로토콜.
고객 - browser -
인터넷서점 - EC site - Verisign
- CA - EC 공개키
인증서 생성(EC 공개키) by CA의 비밀키
CA의 인증서 요청
CA의 인증서
사용자 신뢰 복호화
by CA의 공개키
Session key로 암(복)호화 된 자료
인증서 확인 서버의 URL 확인 Session key 생성 Session key 암호화
by EC 공개키
site 신뢰
session key CA의 비밀키
CA의 인증서
Session key로 복(암)호화 된 자료 session key 복호화
by site의 비밀키
계정 설정 비밀번호 암호화
로그인, 비밀번호
전화, e-mail로 비밀번호 복호화 by session key 정보
제10.4장 암호화
제10.5장 익힘문제
10.5 익힘 문제
1. DB의 안전 목표를 설명하시오
2. 권한과 역할을 설명하고 관계를 설명하시오.
3. View의 보안 기능을 설명하시오 4. DBA의 보안 기능을 설명하시오
5. 임의접근제어의 기능과 효과를 설명하시오 6. 강제접근제어의 기능과 효과를 설명하시오 7. 특수접근제어의 기능과 효과를 설명하시오 8. 인증이란?
9. 공인 인증서?
10. 시도-응답 시스템의 문제점은?
11. 전자서명?
제10.3장 익힘문제
10.5 익힘 문제
12. SSL의 안전성과 효율성을 설명하시오.
13. DoD 보안 등급을 설명하시오
14. 특수접근제어 기법을 설명하시오
15. 대칭키와 비대칭키의 안전성과 효율성을 비교하시오 .