보안과 암호학의 모든것

1. 비밀키 암호화
1.1 자물쇠와 열쇠
암호화란, 키를 모르고는 절대 비밀 메시지를 알아 낼 수 없는 자물쇠와 그 자물쇠를 푸는 키 둘 다를 의미한다.
암호 사용자란, 메시지의 원래 의미를 숨기려고 암호를 사용하는 사람들이다.
1.2 치환법과 시저암호
암호: 어떤 문장을 암호화 하거나 복호화 하는 방법이다.
평문: 암호화되지 않는 문장
암호문: 암호화된 문장
암호화: 평문을 암호문으로 바꾸는 과정
복호화: 암호문을 평문으로 바꾸는 과정

1.7
기밀성은 비밀키를 공유한 사람들만 동일한 비밀키로 암호화한 파일을 복호화할 수 있다는 것에 대한 보증이다.
인증은 상대방의 신원에 대한 보증이다.
무결성: 파일이 전송도중에 변경되지 않았다는 것에 대한 보증
MAC (Message Authentication Code)
부인방지: 메시지를 보내는 사람이 파일을 보내지 않고도 파일을 보냈다고 부인할 수 없다는 것에 대한 보증이다.

1.8 비밀키 교환의 문제점들

공개키 암호 알고리즘

Diffie - Hellman - Merkle 키 교환법

비대칭키 : 암호키와 복호화 키 분리

2.10 공개키를 사용하면서 얻는 기밀성
공개키로 암호화된 메시지는 공개키에 관계된 개인키로만 복호화할 수 있다. 공개키 알고리즘의 아이디어는 해커가 공개키로 복호화하는 것이 불가능하며, 개인키를 알아내기도 힘들다는 것이다. 공개키는 숨길 필요가 없고, 분배하기 편하기 때문에 비밀키 알고리즘의 방법보다 키 분배 문제가 쉽게 해결된다.

2.11 공개키를 만드는 수학적 트릭
공개키 암호 알고리즘은 곱셈에 대한 인버스라는 간단한 수학적 개념을 토대로 만들어진다.
대부분의 공개키 암호 시스템은 역으로 계산하는 것이 어렵다는 것을 이용하여 보안성을 강화 시킨다.

2.12 개인키를 사용하여 전자 서명하기
개인키로 암호화 하는 것은 인증, 무결성, 부인 방지 기능을 제공해 준다.
RSA의 경우 개인키로 암호화하는 것은 '서명'과 같고, 공개키로 암호화 하는 것은 '서명 확인'과 같다.

 

2.13 해쉬: 키 없는 메시지 다이제스트 알고리즘

메시지 다이제스트 알고리즘은 공개키 암호 시스템을 더 효과적으로 만든다.

메시지 다이제스트 알고리즘, 해쉬 알고리즘, 전자 지문, 암호학적 체크섬

공개키 알고리즘으로 암호화 복호화 하는것은 속도가 늦기 때문에, 암호 학자들은 메시지를 축약하는 방법을 발명했다.


2.14 메시지 다이제스트 알고리즘을 통한 확신

키 없는 해쉬 또는 메시지 다이제스트

키 있는 메시지 다이제스트

키없는 다이제스트 알고리즘을 통한 확신 : 단방향성, 약한출돌, 강한 충돌

선택 MAC 공격 : 해커가 비밀키를 얻은 후에 어떤 평문에 대해서도 MAC문을 얻을수 있다.

존재 MAC 공격 : 비밀키를 알지 못하더라도 해커가 어떠한 유요한 평문/MAC 쌍을 위조할 수 있다.

MICs나 MDCs의 보안성은 단방향성, 약한 충돌방지, 강한 충돌 방지에 의해 결정된다.


2.15 비밀키, 공개키, 메시지 다이제스트 비교하기

암호화 속도

다이제스트 알고리즘 > DES >> RSA

키 길이

DES(56bit) RSA(512bit)

키분배의 편리함

공개키 >> 비밀키

암호적 확신

기밀성 : 비밀키, 공개키

인증 : 비밀키, 공개키

무결성 : 비밀키, 공개키

부인방지 : 공개키

비밀키(대칭적)

공개키(비대칭적)


3.공개키의 배포

공개키가 공개된 상태로 배포할 때, 이 공개키를 받는 사람은 지금 받고 있는 공개키가 확실히 공개키인가를 확인해야 한다.


3.16 전자 인증

전자인증과 전사 서명은 개인키 암호화를 통해서 서명되어져 있다.

전자인증 공격: 전자인증의 생성자 공격, 악의적인 인증 생성자, 전자 인증 사용자 공격, 개인키의 무단 사용

전자인증 사용자의 요구

1, 회수. 2, 인증. 3, 통지

전자 인증은 공개키를 안전하게 전송하기 위한 적절한 방법으로, 믿을만한 써드 파티에 의해서 서명되어진 형태로 사용된다. 그리고, 전자 인증의 상단에는 발행인과 수령인, 공개키가 첨부된 형태, 수령인의 공개키, 그리고 인증의 유효기간을 포함한 평문이 있고, 전자 인증의 하단에는 상단의 발행인이 서명한 해쉬, 전자인증의 소비자는 인증을 믿기 위해서 발행인의 공개키 복사본을 믿어야 한다.


3.17 X.509 공개키 시스템

인증기관 : 응용 프로그램, 인증, 발행, 취소를 관리한다.

낮은 인증이라는 것은 CA가 지원자가 원하는 사람인지를 알아보지 않는다는 것을 의미한다.

대부분 CA에서는 신용카드를 요청함으로써 신용카드에 있는 이름으로 낮은 인증 보장을 확인하게 된다.

높은 인증 보장이란, CA가 지원자가 유효한지를 판가름 하는데에 다른 방법을 사용한다는 것을 의미한다. 이 때문에 높은 인증 보장은 비용이 많이 들게 된다.

CA는 하위 CA를 두어 역할을 분담해서 처리할 수가 있는데, 예를 들면, PKI 시스템에서는 등록기관을 정의함으로 인해서 CA의 부담을 줄여주게 된다. 그리고, 인증 페기 리스트의 배포에 관한 것도 하위 CA에게 분담하게 된다.

루트 CA는 자신에 의해서 인증을 승인하기도 하는데, 이 같은 경우에는 추가적인 확인 없어도 유효한 것처럼 받아들여진다. 그리고 상업적인 루트 CA의 인증들은 다른 신뢰성 있는 방법으로 배포되는데, 그것은 네스케이프와 같은 인터넷 브라우저에 포함되는 형대로 배포가 된다. 그리고 회사 루트 CA는 다른 방법으로 인증을 배포할 수도 있다.


3.18 PGP와 믿음성 있는 웹

PGP의 전자 인증은 하나 이상의 서명을 포함할 수 있다는 것을 제외하고는 X.509의 자신이 승인한 인증과 유사하다. 하지만, X.509의 중앙집중식 제어(CA)와 상대적으로, PGP는 분산 신용 모델을 사용하게 된다.


4. Real-Worl 시스템


4.19 보안 전자 우편

1. 일회용 비밀키(세션키)생성

2. 세션키를 통한 전자우편 암호화

3. 수신자의 공개키를 통한 세션키 암호화

4. 송신자의 개인키 서명


암호화를 한 후 서명을 하는 경우 : 메세지를 복호화 하기 전에 서명을 승인하여 수령여부를 판단한다.

서명을 후 암호화 하는 경우 : 메세지 손상이 되어서는 안될 경우


4.20 Secure Socket Layer(SSL)와 Transport Layer Security(TLS)

SSL : 인증 기밀성 메시지 무결성

Hello와 협상 매개변수

클라이언트는 서버에 접속하기 위해 초기화를 하고, 암호화 매개변수를 제안한다.

서버는 암호화 목록을 답변한다.

전자 인증 교환

SSL은 클라이언트가 서버를 인증하게 된다.

키합의(교환)

인증

기밀성과 무결성

서버

1. 동일한 압축함수를 사용하여 메시지를 압축한다.

2. HMAC을 만들기 위해서 비밀 HMAC 키와 압축 데이터를 해쉬한다.

3. 앨리스로부터 밥에게 보내기 위해서 사용되는 DES 키를 통해 압축된 데이터와 HMAC의 조합을 암호화 한다.

클라이언트

1. 앨리스로부터 밥에게 보내는 DES 키로 HMAC과 압축된 데이터를 조합을 복호화 한다.

2. 두 가지 과정을 통해서 인증을 수행하게 되는데, 우선 비밀 HMAC 키를 압축된 데이터를 복호화한 후 해쉬를 하게 되고, 그 후에 새로운 해쉬로부터 나온 HMAC을 과정1에서 얻은 HMAC과 비교하게 된다.

3. 압축을 풀어서 평문을 복구시킨다.


4. 21IPsec 개요

사용자 인증과 IKE를 사용한 키교환

SA단계

Part1 : 사용자 인증과 IKE를 사용한 키교환

1단계 : 키 합의와 인증

평문 메시지로 암호화 매개변수와 공유 비밀키를 협상하고 교환하게 된다.

2단계 : 암호화 매개변수 설정

Part2 : 데이터 기밀성과 메시지 또는 파일 전송의 무결성

프로토콜과 모드

프로토콜 속성은 데이터 패킷이 기밀성 또는 메시지 무결성에 의해서 안전한지 여부

모드 속성은 얼마나 많은 데이터 패킷이 승인되어 안전한지 여부

ESP는 기밀성을 제공하지만, AH는 제공하지 않는다. 터널 모드는 전송 모드보다 많은 데이터를 보호한다.

VPN

PPTP, L2TP (PPTP+L2F)

제어관리

셀렉터

데이터의 송신지

데이터의 수신지

스프레드시트

데이터를 보낸 사람의 이름

송신자 포트

수신자 포트

제거 : 외부로 패킷을 빠져나가는 것을 허락하지 않는 것.

처리 : SPD가 데이터 패킷에 처리하는 보호규칙과 동일하다는 것

우회 : IPsec을 처리하지 않고 데이터 패킷을 내보내거나 받는 것을 허락


4.22 암호화 공격

재전송 공격

맨 인 더 미들 공격

메모리에서 키 찾기

컷앤드페이스트 공격

댓글

이 블로그의 인기 게시물

javascript ===, ==, >=, <=연산자

SQL oracle 내장함수[문자열 처리]

java 입출력2