애플리케이션 보안 - SSL(Secure Sockets Layer) / TLS(Transport Layer Security)
다음 지문은 무엇을 설명한 것인가? 3
[보기]
- TCP/IP 프로토콜에서 전송 계층 바로 위에 위치하며 보안 기능을 수행한다.
-사용자 상호인증, 데이터 기밀성, 메시지 무결성 등의 보안 서비스를 제공한다.
- Handshake 프로토콜, Change Cipher Spec, Aler 프로토콜Record 프로토콜로 구성된다.
① IPSec
② PGP
③ SSL/TLS
④ SHTTP
1. SSL (Secure Socket Layer) 및 TLS (Transport Layer Security)
ㅇ 전송계층 상에서 클라이언트,서버에 대한 인증 및 데이터 암호화 수행
- 클라이언트와 서버 양단 간 응용계층 및 TCP 전송계층 사이에서 안전한 보안 채널을 형성해 주는 역할을 수행하는 보안용 프로토콜
ㅇ 주요 응용
- HTTP (HTTPS), FTP, TELNET, SMTP, SIP, POP, IMAP 등 에서 사용 가능
- 주로, 웹 브라우저와 웹 서버 사이의 안전한 보안 채널을 제공하기 위해 많이 사용됨
ㅇ 오픈 소스 구현 例) OpenSSL
2. SSL/TLS 주요 기능
ㅇ 상호 인증
- 공개키 인증서를 이용하여 서버,클라이언트의 상호 인증
- 즉, 클라이언트/서버 두 응용 간에 상대방에 대한 인증
ㅇ 메세지 압축
- 디폴트는 Null (즉, 무 압축)
. (압축 알고리즘은 미리 정해지지 않고 협상으로 지정 가능)
ㅇ 메세지 인증 (메세지 무결성)
- 메세지 인증 코드 HMAC에 의한 메세지 무결성 제공 (HMAC MD5, HMAC SHA-1 등)
ㅇ 암호화용 세션 키 생성(대칭 키 합의)을 위한 키 교환
- RSA : 두 키(공개 키 및 개인 키)가 하나의 수 체계를 형성 (서버 공개 키 사용)
- Diffie-Hellman : Diffie-Hellman 프로토콜을 기반으로 한 키 교환 방식
ㅇ 생성된 공유 비밀키에 의해 암호화된 종단간 안전한 연결 통로 제공
- 스트림 암호화 : 40, 128 비트의 RC4
- 블록 암호화 : IDEA, 40,56 비트의 DES, 168 비트의 3DES 등
3. SSL/TLS 특징
ㅇ 클라리언트/서버 기반의 프로토콜
ㅇ 응용 프로그램(어플리케이션) 자체 구현 가능
- 대부분의 다른 보안 프로토콜(EAP,IPsec 등)은 운영체제 등에 밀접하게 관련됨
ㅇ 인증 구조 : X.509
- X.509에서 규정된 공개키 인증서 교환에 의해 상대방에 대한 인증 수행
ㅇ 키 교환 방식 : (협상 선택 가능)
- Null, RSA 공개 키 교환, Anonymous Diffie-Hellman 키 교환, Ephermeral Diffie-Hellman 키 교환, Fixed Diffie-Hellman 키 교환, Fortezza
ㅇ 대칭키 암호화 방식 : (협상 선택 가능)
- RC2 (40), RC4 (40), RC4 (128), DES, Triple DES, IDEA 등
ㅇ 해쉬 알고리즘 : (협상 선택 가능)
- Null, MD5, SHA-1
4. SSL/TLS 프로토콜 스택
ㅇ 전송계층 TCP 위에서, `보안 소켓/보안 채널/터널링`을 구성
- 응용계층에서 생성된 데이터에 대한 보안(인증,무결성,기밀성),압축 등의 서비스 제공
- SSL/TLS 보안 터널을 위한 TCP/UDP 포트번호
. 例) 보안 HTTP를 위한 포트번호 443 (HTTPS)
- 한편, UDP 상에서도 가능한 버젼으로,
. DTLS (Datagram Transport Layer Security) RFC 6347(2012년)가 있음
ㅇ 프로토콜 스택 ☞ SSL/TLS 구성 프로토콜 참조
- 크게, 하위 레코드 계층 프로토콜(단편화,압축,무결성,암호화,인증 기능 제공)과 상위 핸드세이크 관련 프로토콜들로 구성됨
5. SSL/TLS 핸드세이크 단계
ㅇ 초기 협상 단계
- 클라이언트, 서버 간에 Client Hello,Server Hello 메세지 교환
- 클라이언트가 서버에게 Cipher Suite(사용 가능 암호화,해싱 방식 등)을 보내고 서버 인증서를 요구
ㅇ 인증 단계
- 서버에서 공개키,서버명,인증기관 주소 등을 포함한 인증서를 클라이언트에게 전송
- 이때, 서버는 클라이언트가 제시한 것 중 자신이 선택한 암호화 방식 및 인증서를 보냄
- 필요시 클라이언트는, 인증서를 발급한 인증기관 서버에 접속하여 서버 인증서의 유효성 확인
ㅇ 보안 채널 형성
- 클라이언트는 보안 채널 형성에 필요한 세션키를 만들기 위해,
- 서버의 공개키를 이용하여 임의의 수(Pre Master Key)를 암호화시켜 서버에게 전송하고,
- 서버는 자신의 비밀키(개인키)로 이를 해독(역암호화)하게 됨
- 이때 임의의 수(Pre Master Key)로부터 Master Key를 유도하고,
- 이 Master Key로부터 양측은 암호화,복 호화에 필요한 세션키를 생성함
ㅇ 상호 암호화 통신 시작
- 즉, 보안성이 확립된 TLS 터널 내에서 상호 통신
'IT > 정보보안' 카테고리의 다른 글
애플리케이션 보안 - 하트블리드 (Heartbleed) (0) | 2019.08.22 |
---|---|
애플리케이션 보안 - 전자 문서 (EDI, XML) (0) | 2019.08.22 |
애플리케이션 보안 - 스테가노그래피(Steganography), DOI(Digital Object Identifier) (0) | 2019.08.22 |
애플리케이션 보안 - VSFTP 설정 파일 vsftpd.conf (0) | 2019.08.22 |
애플리케이션 보안 - 핑거프린팅 (Digital Finger Printing) (0) | 2019.08.22 |
댓글