[Network] 암호화, Symmetric Key, Public Key, Private Key, Hash, SSL, TLS, PKI, 인증서

공부한 내용 정리하는 공간입니다.

틀린 내용이 있을 수 있습니다.

모든 지적, 첨언 환영합니다.

암호화 요구사항

기밀성 (Confidentiality) : 인가된 자만 데이터 접근

신뢰성 (Authenticity) : 인증

무결성 (Integrity) : 인가된 자만 데이터 변경

    >Key를 이용한 암호화 기술로서 3가지 해결

 


Symmetric Key (대칭키)

암호화 키 = 복호화 키

키를 전달하는 방법도 중요함

ex)

암호화 명령어 ↓

openssl enc -e -des3 -salt -in p1.txt -out cip.bin

p1.txt 파일을 des3 알고리즘을 이용한 대칭키로 암호화하여 cip.bin 파일로 변환

 

복호화 명령어 ↓

openssl enc -d -des3 -in cip.bin -out p2.txt

cip.bin 파일을 des3 알고리즘을 이용한 대칭키로 복호화하여 p2.txt 파일로 변환

 


Public Key (공용키), Private Key (개인키)

비대칭키

 

Public Key 암호화 (기밀성 보장)

Process 송신자 수신자
1   Private Key, Public Key 생성
2 ← (Public Key 전달) ←
3 수신자의 Public Key로 암호화  
4 → (암호화된 데이터 전달) →
5   Private Key로 복호화

 

Private Key 암호화 (신뢰성 보장)

Process 송신자 수신자
1 Private Key, Public Key 생성  
2 → (Public Key 전달) →
3 Private Key로 암호화  
4 → (암호화된 데이터 전달) →
5   송신자의 Public Key로 복호화

 

Hash & Digest (무결성 보장)

Process 송신자 수신자
1 Hash 알고리즘 결정
2 Private Key, Public Key 생성  
3 → (Public Key 전달) 
4 Data  Hash 진행  
5 Digest를 Private Key로 암호화 (전자서명)  
6 → (원본 데이터 + 전자서명 전달) →
7   Data Hash 진행
8   전자서명을 Public Key로 복호화
9   7번의 Digest와 8번의 Digest를 비교해서
무결성 점검

 


Hash

데이터를 고정된 크기의 값으로 변환하는 함수

원본으로 복원 불가능 (단방향성)

출력값 : Digest

알고리즘 종류 : MD 알고리즘, SHA 알고리즘 (현업에서 사용)

SHA 알고리즘 블록 크기 해시값 길이 해시 강도 (안전성)
SHA-1 512bits 160bits 0.625
SHA-256 512bits 256bits 1
SHA-384 1024bits 384bits 1.5
SHA-512 1024bits 512bits 2

 


SSL / TLS

SSL (Secure Socket Layer) TLS (Transport Layer Security)
5계층
응용계층을 보호하는 프로토콜
인증서 기반의 암호화 기술
4계층
전송 계층 상위에서 동작
응용계층 암호화
SSL 3.1 = TLS 1.0

 

SSL/TLS Processing

비대칭키는 대칭키를 안전하게 전달하는 데 사용

대칭키는 실제 데이터를 암호화/복호화하는 데 사용

Process Server Client
1 ← (데이터 요청) ←
2 → (Public Key가 포함된 인증서 전달) 
3   Session Key 생성
4   Server Public Key로 Session Key 암호화
5 ← (암호화된 Session Key 전달) ←
6 Private Key로 복호화  
7 앞으로 데이터 전송 전/후 Session Key로 암/복호화 (데이터를 안전하게 전송)

 


PKI (Public Key Infrastructure) & 인증서

PKI : 전자서명과 암호화를 지원하는 보안 시스템

인증기관 (CA) 이 인증서 발급

X.509 인증서 : 웹 서버와 브라우저 간 전자 인증서

Process CA(인증기관) Web Browser Web Server Client
1  CA→ (공개키를 포함한 인증서 배포) → W.B    
2   W.B → (브라우저 설치 시 CA 인증서(+CA 공개키) 전달) → W.S, C
3 CA ← (공개키를 포함한 인증요청서 전달) ← W.S  
4 심사      
5 CA → (Server 인증서(+CA 전자서명+Server 공개키) 전달) → W.S  
6     W.S ← (Server 접속) ← C
7     W.S →  (Server 인증서 전달) → C
8       Server 인증서
신뢰성 확인
(2번 CA 공개키로
7번 CA 전자서명 확인)
9       Server 공개키로
대칭키 암호화
10     W.S ← (암호화된 대칭키 전달) ← C
11     데이터를 암호화해서 주고받을 수 있음 (대칭키 사용)