정보보호개론
유비쿼터스: 사용자가 네트워크나 컴퓨터를 의식하지 않고 마음대로 네트워크에 접속할 수 있는 정보통신환경
-5A:어디서나,언제나,어떤장치나,어떤네트워크나,어떤서비스나 사용 가능
정보화의 역기능:개인 프라이버시 침해,공격의 용이성, 전파속도의 증가와 파급효과
프로그램 보안 : 공격자가 활용할 수 없도록 소프트웨어적으로 보안을 하는 기술
시스템 보안:컴퓨터 시스템에 공격자가 침입했을 때 이에 대응하는 기술
네트워크 보안:네트워크 패킷을 분석하여 공격에 대비하는 기술
응용보안:응용 프로그램의 보안 요구사항을 충족시키기 사용되는 기술
4대 정보보호 서비스
) -->1. 비밀성:인가된 사용자들만 정보를 볼 수 있도록 해주는 서비스
) -->2. 무결성:비인가된 사람의 데이터 변경을(삽입,삭제,변경) 발견할 수 있도록 해주는 서비스
) -->3. 인증: 주장된 것을 검증할 수 있도록 해주는 서비스
) -->4. 가용성 : 사용자가 요구하는 서비스를 항상 제공할 수 있도록 해주는 서비스
) -->e 이중 비밀성,무결성,인증은 암호기술을 이용하여 제공함
) -->1장 암호알고리즘의 개요
교육 목표
) -->1. 보안 목적
) -->2. 암호알고리즘에 대한 이해(종류 특성,용도)
-대칭 알고리즘
-비대칭 알고리즘
--공개키 기반 구조
-해쉬함수
-전자서명 알고리즘
3. 암호해독과 암호알고리즘의 안전성 이해
) -->1.1 보안 목적
비밀성 : 인가된 사용자들만 정보를 볼 수 있도록 해주는 서비스(기밀성)
-데이터의 중요도, 비밀을 유지해야 하는 기간에 따라 처리하는 방법이 달라짐
무결성 : 비인가된 사용자가 데이터를 변경했을 경우 발견할 수 있도록 해주는 서비스
인증 : 식별 + 검증
) -->- 주장된 것을 검증하는 것
) -->- 유형
) -->- - 메시지 인증:무결성과 같음
) -->- - 메시지 원천지 인증
) -->- - 개체 인증 : 주장된 신원을 인증
개체인증에 사용되는 요소
) -->- 사용자만 알고있는 지식(패스워드)
) -->- 사용자만 갖고있는 특징(생체정보)
) -->- 사용자만 갖고있는 것(ID카드)
) -->e 이중 두가지를 조합한 방법을 2-factor 인증이라 함
부인방지 : 개체가 지난 행위나 약속을 부인하지 못하도록 해주는 서비스
) -->- 송신 부인방지(NRO)
) -->- 전달 부인방지(NRD)
) -->- 제출 부인방지(NRS)
) -->- 수신 부인방지(NRR)
프라이버시의 종류
) -->- 내용 프라이버시:eg)사용자가 만화 서비스를 이용하고 있는데 어떤 만화를 이용하는지 숨기고 싶은 것
) -->- 행동 프라이버시:eg)사용자는 만화 서비스를 이용하는 것 자체를 숨기고 싶어함
) -->- 위치 프라이버시:eg)사용자가 어디서 만화 서비스를 이용하고 있는지 숨기고 싶어함
프라이버시 보장을 위한 요구사항
) -->- 불관찰성 : 특정 메시지의 송신자와 수신자를 알 수 없어야 함
) -->- 불연결성 : 두 개의 메시지가 주어졌을 때, 두 개의 메시지가 동일 송신자로부터 보내졌는지, 혹은 동일 수신자에게 전달되는지를 연결할 수 없는 것
) -->e 불연결성은 특정 메시지의 불관찰성이 깨졌을 때 그 피해를 최소화 하기 위해 제공되는 것
완전 프라이버시를 제공하면 사용자들에 의해 악용될 수 있기 때문에 조건부 프라이버시를 제공
) -->- 조건부 프라이버시는 신뢰할 수 있는 기관은 필요할 경우 특정 메시지의 익명을 철회할 수 있음
) -->- 하지만 이 경우 특정 기관 하나가 단독으로 권력을 행사하게 되면 권력남용의 우려가 있음
) -->- 이와 같은 권력남용 방지를 위해 권력을 분산시켜야 함
) -->- 이 경우 암호기술에서 임계 기반 비밀 공유기법을 사용함
) -->- - n명에게 특정 권한을 부여하고 이중 t명이 동의하면 해당 권한을 수행할 수 있게 하는 것
통신 메시지의 비밀성/무결성을 보장하기 위한 암호기술 적용과 통신 계층간의 관계
TLS(Transport Layer Scurity) : TLS는 SSL이 표준화되면서 바뀐 이름이다. 이 규약은 인터넷과 같이 TCP/IP 네트워크를 사용하는 통신에 적용되며, 통신 과정에서 전송계층 종단간 보안과 데이터 무결성을 확보해준다.
IPSec : 안전에 취약한 인터넷에서 안전한 통신을 실현하는 통신 규약.
애드혹 네트워크: 통신 기반 구조를 전혀 사용하지 않고 무선 통신 기술을 사용하는 이동 노드들에 의해 자율적으로 구성된 네트워크
기본 용어
평문
암호문
암호화:평문을 암호문으로 바꾸는 과정
복호화 : 암호문을 평문으로 바꾸는 과정
암호기술 : 메시지를 안전하게 유지하는 기술과 학문
암호해독기술 : 암호문으로부터 평문을 추정하는 학문과 기술
암호학 : 암호기술 + 암호해독기술
암호알고리즘 : 암호화와 복호화에 사용되는 수학 함수(좁은의미). 암호기술에 사용되는 모든 알고리즘(넓은 의미)
) -->- 현대 암호화 함수와 복호화 함수는 키를 사용
) -->- 표기법
암호키 : 암호화/복호화에 사용되는 키
완전성 요구사항
현대 암호알고리즘의 안전성은 키에 의존함
키 대신에 알고리즘의 비밀성에 의존하는 경우에는 제한적 알고리즘이라 함
암호화/복호화 함수는 전단사함수이여야 함
키 용어
암호키 : 암호알고리즘에 사용되는 모든 종류의 키
암호화키:암호화 과정에 사용되는 모든 키
복호화키:복호화 과정에 사용되는 모든 키
비밀키: 대칭알고리즘에 사용되는 암호키
개인키 : 비대칭알고리즘에서 각 개인이 비밀로하는 암호키
공개키 : 비대칭알고리즘에서 각 개인이 공개하는 암호키
세션키 : 특정 통신 세션에서만 사용되는 일회성 비밀키
암호알고리즘의 분류
결정적 암호알고리즘 : 암호키와 메시지가 같으면 항상 같은 암호문으로 암호화되는 알고리즘
확률적 암호알고리즘 : 암호키와 메시지가 같아도 항상 다른 암호문으로 암호화되는 알고리즘
전자서명에도 사용됨
안전성 측면에서는 확률적 암호알고리즘이 바람직함
대칭 알고리즘 : 암호화할 때 사용되는 암호키와 복호화할 때 사용되는 암호키가 같음
비대칭 알고리즘 : 암호화할 때 사용되는 암호키와 복호화 할 때 사용되는 암호키가 다름
대칭 암호알고리즘: 암호화키 = 복호화키. 비밀키 암호알고리즘
) -->- 원격에 있는 두 사람이 대칭 암호알고리즘을 이용하기 위해서는 사전에 안전하게 대칭키를 공유해야 함
종류
) -->- 스트림 암호방식 : 평문의 각 비트를 하나씩 암호화하는 방식
) -->- 블록 암호방식 : 평문을 일정한 크기의 블록으로 나누어 각 블록을 암호화하는 방식
) -->- 대표 알고리즘 : ASE
블록 암호방식을 사용하는 대칭 알고리즘은 항상 같은 크기의 블록을 받아야 함
ECB모드 : 나누어진 개별 평문블록들을 독립적으로 암호화 하는 것-> 결정적 알고리즘에서는 동일 평문 블록이 항상 같은 암호 블록으로 암호화되는 문제가 있음
대칭 암호알고리즘의 사용 용도
) -->- 송신자와 수신자가 공유하는 있는 비밀키로 메시지를 암호화하여 교환함으로써 제3자가 도청할 수 없도록 만듬
) -->- 개체인증 :
비대칭 알고리즘
두개의 키를 공개키와 개인키라 함
각 사용자는 자신의 공개키를 공개하고 개인키는 비밀스럽게 유지함
대표 알고리즘 : RSA, ElGamel
공개키 암호알고리즘은 대칭 암호알고리즘과 같은 용도로 사용가능하지만 상대적인 성능문제로 인해 잘 사용되지 않음
개인키를 사용하여 메시지를 암호화할 수 있는 경우에는 전자서명 알고리즘으로 사용가능
공개키 인증 : 공개키 암호알고리즘을 사용하기전에 선행되어야 하는 것은 공개키의 인증임
공개키 인증을 제공하는 가장 대표적인 메커니즘이 인증서임
인증서는 공개키와 그것의 소유자를 바인딩시켜 주는 전자문서
보통 신뢰할 수 있는 인증기관(CA)가 전자서명하여 생성함
인증서의 검증
) -->1. 인증서의 서명 확인(발급 인증기관의 공개키 사용)
) -->2. 인증서의 유효기간 확인
) -->3. 인증서의 사용용도 확인(서명,암호화)
) -->4. 인증서의 폐지여부 확인
) -->e 위 네가지 단계를 통해 한번 확인된 인증서는 보통 캐시에 보관되며, 이 인증서를 다시 사용할 경우에는 위 네가지단계를 반복하지 않고 유효기간과 폐지여부만 확인.
PKI의 신뢰모델
인증서를 검증할 때 해당 인증서를 발급한 기관의 공개키를 이용함. 발급기관의 인증서를 검증하기 위해서는 상위 기관의 인증서가 필요함. 이와 같이 인증서를 발급하는 기관을 트리형태로 표현할 수 있음. 이 때 트리의 루트에 있는 인증기관을 최상위 인증기관이라 함
전세계의 모든 계층을 단일구조화할 수 없기 때문에 상호보증하는 형식을 취함. 이것을 상호인증이라 함.
인증서를 사용하기 위해 필요한 소프트웨어,하드웨어,인력,정책,절차를 일컬어 PKI(공개키 기반구조)라함
PKG
공개키는 누구나 만들 수 있으므로, 그에 상응하는 개인키는 아무나 생성할 수 없어야 공개키 암호시스템으로 사용할 수 있음.
이를 위해 신원 기반 시스템에서는 사용자의 개인키를 발급해 주는 PKG라는 신뢰기관 을 도입
따라서 PKG 모든 사용자의 개인키를 만들 수 있으므로 모든 암호문을 복호화할 수 있고, 모든 사용자의 서명을 위조할 수 있음.
) -->- 부인방지에 취약함
) -->- 여러기관의 권한을 분배하여 n명 중 t명이 동의해야 권한을 행사할 수 있도록 함
법 강화를 위한 키 위탁
정부는 비밀 통신을 할 수 있는 능력을 유지하고 싶음
) -->1. 암호화 사용금지
) -->2. 암호알고리즘을 해독할 수 있는 능력 보유
) -->3. 키 위탁 : 사용자들이 사용하는 모든 키를 강제로 보관.
) -->e 키 위탁은 키를 분실했을 경우에도 키를 복구를 위해서도 유용함
해쉬함수
해쉬함수 : 임의의 길이의 이진 문자열을 고정된 길이의 이진 문자열로 매핑해 주는 함수
요구사항
) -->- 압축
) -->- 계산의 용이성 : x가 주어지면 H(x)는 쉬워야함
) -->- 일방향성 : 입력을 모르는 해쉬값 y가 주어졌을 때, H(x’)=y 를 만족하는 x’을 찾는 것은 계산적으로 어려워야 함
) -->- 약한 충돌회피성 : x가 주어졌을 때 , H(x’)=H(x)인 x’을 찾는 것은 계산적으로 어려워야함
) -->- 강한 충돌회피성 : H(x’)=H(x)인 서로 다른 입력 x와 x’을 찾는 것은 계산적으로 어려워야 함
충돌 : 서로 다른 x와 x’에 대해 H(x)=H(x’)이면 충돌이 발생했다고 함.
해쉬함수의 용도
) -->- 전자서명 : 서명 크기와 비용을 줄이기 위해 전체 메시지 대신에 메시지의 해쉬값에 서명함.
) -->- 무결성
) -->- 패스워드 해싱
단순히 메시지의 변경여부만 확인하기 위해 사용하는 경우에는 조작탐지코드(MDC)라 함
반대로 비밀키를 사용하게 되면 데이터 원천지 인증과 무결성을 동시에 제공할 수 있으며 이때에는 메시지 인증 코드 (MAC)라 함
수신자에게 M과 H(M)을 전송하면 공격자가 M을 조작하여 M’을 보낸다 하더라도 H(M’)과 H(M)이 다르다는 것을 확인하면 공격자를 알아챌 수 있음
하지만 공격자가 M’과 H(M’)을 보내면 알아챌 수 없기 떄문에 해결책이 필요함
) -->1. M, MAC.K(M)을 전송 -> 송신자와 수신자가 K를 공유하고 있어야 함
) -->2. (전자서명) M, Sig.-KA(M)
비용 측면에서는 1이 우수함. 하지만 2는 대응되는 공개키를 가지고있는 사용자는 무결성을 검증할 수 있음.
사전공격: 흔하게 사용되는 패스워드에 대한 해쉬값을 모두 구해 저장된 해쉬값과 비교
Salt 사용 : 해쉬값을 구할 때 임의의 랜덤값인 salt를 포함하여 계산
Weakest Link Principle : 시스템의 전체 안전성은 가장 취약한 부분의 안전성과 같다.
전자서명의 요구사항
) -->- 인증 : 누가 서명했는지 확인 가능해야 함.
) -->- 위조 불가 : 위조 불가해야 함
) -->- 재사용불가 : 서명을 다시 사용할 수 없어야 함
) -->- 변경불가 : 서명된 문서의 내용을 변경할 수 없어야 함
) -->- 부인방지 : 나중에 부인할 수 없어야 함
전자서명 방식의 종류
직접 서명 방식: 서명자가 홀로 서명알고리즘을 수행하여 서명하는 방식
) -->e 문제 : 서명키를 분실하면 공격자의 부정을 증명할 수 없음
중재 서명 방식 : 중재자와 프로토콜을 수행하여 서명하는 방식
) -->e 중재자는 서명의 증인 역할을 하게 됨
) -->e 서명자가 시간에 대한 부정을 할 수 없음.
전자 서명 알고리즘의 분류
) -->- 서명으로부터 메시지를 복구할 수 있는 서명 알고리즘(DSS With recovery)-> 작은 메시지만 가능함
) -->- 검증에 원 메시지가 필요한 서명 알고리즘(DSS With Appendix) : 메시지와 서명블록이 별도로 존재하며 메시지와 서명 블록이 함께 제시되어야 검증 가능, 보통 해쉬함수사용
알호알고리즘에 대한 암호해독 : 키를 모르는 상태에서 암호문으로부터 평문을 얻어내는 행위
암호해독 외에 다른 방법으로 키가 알려진 것을 노출되었다고 함
암호프로토콜에 대한 공격
수동 공격:프로토콜의 진행을 방해하지 않고 공격하는 것 -> 트래픽 분석, 도청
능동 공격 : 프로토콜의 진행에 개입함(메시지 차단,삭제, 삽입, 변경, 재전송)
전사공격 : 가능한 모든 키를 검사하는 방법 ->암호해독 공격은 아님
암호해독 공격의 분류
) -->- 암호문 단독 공격
) -->- 기지 평문 공격
) -->- 선택 평문 공격
) -->- 적응적 선택 평문 공격
) -->- 선택 암호문 공격
암호문 단독 공격
기지 평문 공격 : 공격자가 선택할 수 없고 우연히 알게된 암호문/평문쌍으로 공격
선택 평문 공격 : 공격할 쌍들을 얻기 전에 해독에 사용할 모든 평문을 선택하는 경우
적응적 선택 평문 공격 : 얻은 암호문을 바탕으로 공격하는 동안 새로운 평문에 대한 암호문을 얻음
부채널 공격 : 알고리즘의 입력과 출력외에 다른 정보를 이용하는 것
) -->- 시간정보 : 입력이 주어졌을 때 계산되는데 걸리는 시간
) -->- 전력소비 : 입력이 주어졌을 때 출력이 계산하기 위해 소모된 전력
알고리즘에 대한 공격 결과
) -->- 완전 성공 : 암호키를 발견
) -->- 광역 성공 : 암호키를 발견하지 못했지만 복호화할 수 있는 알고리즘 발견
) -->- 인스턴스 성공 : 어떤 한 암호문으로부터 평문을 얻어냄
) -->- - 선택적 위조 : 특정 종류의 메시지에 대한 서명을 위조할 수 있음
) -->- - 존재위조 : 어떤 메시지에 대한 서명을 위조할 수 있지만 공격자는 위조할 수 있는 메시지에 대한 어떤 선택권이 없는 경우
) -->- 정보추출 : 암호문으로부터 평문의 일부나 암호키와 관련된 정보를 얻어냄
공격의 복잡성 척도
데이터 복잡성 : 공격이 성공하기 위해 필요한 양
처리 복잡성 : 공격이 성공하기 위해 필요한 시간
저장 공간 요구사항 : 공격하기 위해 필요한 메모리 공간
암호알고리즘의 안전성
계산적 안전성 : 암호알고리즘을 해독하기위해 알려진 가장 우수한 공격방법을 사용하더라도 불합리하게 많은 시간이 소요될 경우
증명가능 안전성 : 어렵다고 알려진 문제와 등가일 경우
무조건적 안전성 : 무한한 컴퓨터 자원을 가져와도 암호알고리즘을 해독할 수 없는 경우
의미론적 안전성 : 암호문이 주어졌을 때 효율적으로 계산할수 있는 모든 것을 암호문이 없어도 계산할 수 있어야 함
구별 불가 안전성 : 두 개의 메시지 중 하나를 암호화한 암호문이 주어졌을 때 공격자가 어떤 평문을 암호화한 것인지 맞출 수 있는 확률이 50%를 넘지 않아야 함
NM특성 : 암호문에 대응되는 평문을 알지 못하는 경우 이 암호문을 의미 있는 다른 암호문을변경하는 것이 가능하지 않으면 암호알고리즘은 NM특성을 제공한다고 함
'컴퓨터 공학' 카테고리의 다른 글
객체지향개발론 1장 객체지향 프로그래밍 개념 재검토 (0) | 2015.11.27 |
---|---|
정보보호개론 2장. 암호프로토콜의 개요 (0) | 2015.11.27 |
컴파일러 1장 (0) | 2015.11.27 |
Virtualbox 해상도 변경하는 법 (0) | 2015.11.27 |
[공유] 구글의 웹폰트 사용하기 "예쁜 웹폰트 css만 추가하면 어렵지 않아요~~~" (0) | 2015.11.27 |