▣ 네트워크 보안_SSL(Secure Socket Layer) 프로토콜, TLS, MAC(메시지 인증코드), HTTPS, 프록시 서버, WTLS
- 암호화 요소들을 컴퓨터 네트워크 통신에 적용하여, 비 보안적인 공개 통신 라인에 보안 서비스(기밀성, 무결성, 인증)를 제공해 줄 수 있는 보안 프로토콜
* 부인방지기능은 없음
- 트랜스포트 계층의 Socket Library로서 응용 프로그램과 독립적이고, 통신경로 전체를 암호화하는 방식
- Netscape에서 처음 개발, 이후 마이크로소프트사 PCT 발표
IETF(Internet Engineering Task Force)에 의해 TLS(Transport Layer Security)로 표준화
- SSL은 공개키 인증서에 기반을 둔 인증 방법을 사용
- 익명모드(An, Anonymous), 서버 인증모드(SA, Server authenticated),
클라이언트-서버 인증모드(MA, mutual authenticated)
- 여러 암호 알고리즘 지원 -> 실행과정에서 선택
- 무결성 검증을 위한 메시지인증코드(MAC)제공
- 필요에 의한 인증서 설치를 제외한 클라이언트단의 어떤 어플리케이션 설치도 필요 없음
SSL 사용 : https://
SSL 프로토콜은 OSI 7계층 모델의 어느 한 계층에 속해서 동작하는 것이 아니라,
응용계층과 전송계층 사이에 독립적인 프로토콜 계층을 만들어서 동작
이 때, 응용계층의 프로토콜들은 외부로 보내는 데이터를 TCP가 아닌 SSL에 보내게 되고,
SSL은 받은 데이터를 암호화하여 TCP에 보내어 외부 인터넷으로 전달하게 됨
전달 받을 때 역시, TCP로부터 받은 데이터를 복호화하여 응용계층에 전달하게 되는데,
이 과정에서 Application은 SSL을 TCP로 인식하고, TCP는 SSL을 Application으로 인식하기 때문에,
Application과 TCP사이의 데이터 전달 방식은 기존 전달 방식을 그대로 사용하게 됨
■ SSL/TLS 구성요소
구성요소 | 내용 |
Record Layer Protocol |
분배된 대칭키를 이용하여 데이터 암호화 작업을 수행함 TCP위에 위치, HandShake Protocol에 의해 결정된 비밀키 암호 알고리즘에 의해 메시지 암호화 상위 레벨의 프로토콜을 캡슐화(Encapsulation) 클라이언트/서버간 협상한 비밀키 암호 알고리즘에 의해 메시지 암호화 데이터를 적절한 크기의 메시지로 단편화, 압축, 암호화 및 전송 수행 MAC생성을 통해 실제 암호문 생성 |
Chanage CipherSpec Protocol |
ChangeCipherSpec 단계를 개시 하자는 신호(Signal) - 간단한 구조 SSL 통신을 하려는 양 편이 SSL 암호화 통신을 할 때 사용할 암호화 알고리즘들, 즉 비밀키, 메시지 다이제스트, 공개키 알고리즘을 적용하자는 신호 |
Alert Protocol |
SSL 통신을 하는 양 편에 Alert 신호를 알리기 위해 사용되는 2byte 구조 SSL 통신을 하는 양 쪽에서 에러나, 주의 같은 정상적이지 않은 상황이 발생 했을 때 이를 상대방에게 통보 |
Handshake Protocol |
사용할 암호 알고리즘 결정 및 키 분배작업 수행 Record Protocol 상위에 위치하여 PKI 기반 사용자 인증 담당 비밀키 암호 알고리즘의 종류 및 키 설정 담당 서버, 클라이언트 인증 수행 |
■ SSL 통신시의 메시지 교환 순서(초기 협상 과정)
구분 | 알고리즘 |
전자서명, 키 교환 알고리즘 | RSA |
암호 알고리즘 | RC4, RC2, IDEA, DES, 3DES, Fortezza |
Hash함수(MAC) | MD5, SHA-1 |
* MAC(메시지 인증코드, Message Authentication Code)의 개념
해시함수+대칭키로 메시지 무결성을 인증하고 거짓행세(메시지 인증으로 검출)를 검출
(메시지 인증 : 올바른 송신자에게 온것을 인증하는 것)
무결성을 확인하고 메시지에 대한 인증을 하는 기술 -> 도청(소극적 공격) 방어, 변경과 거짓행세 검출 가능
임의 길이의 메시지와 송신자 및 수신자가 공유하는 키
두 개를 입력으로 하여 고정 비트길이의 출력을 만드는 함수
이 출력값을 MAC이라고 함
2019년 120번
정답 : 1번
SSL/TLS는 TCP 프로토콜을 기반으로 4계층과 5계층(전송계층과 세션계층)에서 동작하는 보안 프로토콜이며, 네트워크 계층(3계층)의 대표적인 암호화 프로토콜은 IPSec임
2020년 101번
정답 : 1번
상위 계층으로부터 오는 메시지를 전달하며, 메시지는 단편화되거나 선택적으로 압축됨
MAC은 협의된 해시 알고리즘을 사용하여 압축된 메시지를 추가
압축된 단편화와 MAC은 협의된 암호화 알고리즘을 사용하여 암호화 됨
분배된 대칭키를 이용하여 데이터 암호화 작업을 수행함
클라이언트/서버간 협상한 비밀키 암호 알고리즘에 의해 메시지 암호화
데이터를 적절한 크기의 메시지로 단편화, 압축, 암호화 및 전송 수행
* MAC(메시지 인증코드, Message Authentication Code)의 개념
해시함수+대칭키로 메시지 무결성을 인증하고 거짓행세(메시지 인증으로 검출)를 검출
(메시지 인증 : 올바른 송신자에게 온것을 인증하는 것)
2021년 115번
정답 : 2번
HTTP프록시 서버를 통해 HTTPS 통신을 하는 경우 프록시 서버가 HTTPS를 지원하지 않기 때문에 HTTP프록시 서버는 단순 터널링 역할만 수행함. 즉 HTTP프록시 서버는 TCP 프로토콜로 클라이언트와 서버를 중개하는 기능만 수행함
HTTP CONNECT 메소드는 요청한 리소스에 대해 양방향 연결을 시작하는 메소드임(터널을 열기 위해 사용)
CONNECT 메소드를 이용하여 브라우저의 원하는 목적지와의 TCP연결을 HTTP프록시 서버에 요청함
서버는 클라이언트를 대신하여 연결의 생성을 진행함. 한번 서버에 의해 연결이 수립되면, 프록시 서버는 클라이언트에 오고가는 TCP스트림을 계속해서 프록시함
2011년 114번
정답 : 2번
서버와 클라이언트 양쪽 모두 세션키를 생성하는 부분은 Handshake프로토콜에서 이루어짐
2012년 115번
정답 : 4번
Handshake 프로토콜을 수행하는 과정에서 키 교환 알고리즘의 종류와 관계없이 반드시 전송되어야 하는 메시지는 실제 암호화하기 위한 대칭키를 클라이언트에서 만든 후 서버와 교환하는 클라이언트 키교환임
SSL은 기본적으로 혼합 암호화 알고리즘을 사용함. 실제 메시지는 대칭키 기반으로 암호화하고 암호화 하는 대칭키는 공개키 기반으로 전송하는 방식을 근간으로 동작함
2013년 105번
정답 : 4번
1) 이미 SSL 핸드쉐이킹을 했다면 비용과 시간을 절약하기 위해서 기존의 세션을 재활용하게 되는데 이 때 사용할 연결에 대한 식별자를 서버 측으로 전송함(중지한 세션의 재시작할 경우 기존의 세션값을 재활용)
2) SSL은 기본적으로 혼합 암호화 알고리즘을 사용하므로 대칭키를 분배하기 위해서는 상대방의 공개키를 가지고 암호화 하므로 반드시 동일하지 않음
3) 서버인증서와 클라이언트 인증서는 옵션이므로 반드시 수행되지 않음
구성요소 | 내용 |
Record Layer Protocol |
분배된 대칭키를 이용하여 데이터 암호화 작업을 수행함 TCP위에 위치, HandShake Protocol에 의해 결정된 비밀키 암호 알고리즘에 의해 메시지 암호화 상위 레벨의 프로토콜을 캡슐화(Encapsulation) 클라이언트/서버간 협상한 비밀키 암호 알고리즘에 의해 메시지 암호화 데이터를 적절한 크기의 메시지로 단편화, 압축, 암호화 및 전송 수행 MAC생성을 통해 실제 암호문 생성 |
Chanage CipherSpec Protocol |
ChangeCipherSpec 단계를 개시 하자는 신호(Signal) - 간단한 구조 SSL 통신을 하려는 양 편이 SSL 암호화 통신을 할 때 사용할 암호화 알고리즘들, 즉 비밀키, 메시지 다이제스트, 공개키 알고리즘을 적용하자는 신호 |
Alert Protocol |
SSL 통신을 하는 양 편에 Alert 신호를 알리기 위해 사용되는 2byte 구조 SSL 통신을 하는 양 쪽에서 에러나, 주의 같은 정상적이지 않은 상황이 발생 했을 때 이를 상대방에게 통보 |
Handshake Protocol |
사용할 암호 알고리즘 결정 및 키 분배작업 수행 Record Protocol 상위에 위치하여 PKI 기반 사용자 인증 담당 비밀키 암호 알고리즘의 종류 및 키 설정 담당 서버, 클라이언트 인증 수행 |
2014년 109번
정답 : 2번
WTLS에서는 해시(Hash)알고리즘을 사용한 무결성을 제공하며 WAP의 전자서명을 이용하여 부인 방지 서비스를 제공함
(TLS/SSL의 경우는 부인 방지 서비스를 제공하지 않음)
WTLS은 SSL기반으로 모바일 환경에 맞게 경량화 한 보안 프로토콜임
SSL과 구조적 차이점은 메시지 사이즈 경량화, ECC 알고리즘의 수용, 작은 크기의 인증서 지원
(X.509인증서, WTLS인증서, X9.68 인증서) 등이 있음
WTLS 특징
Data intergrity : 터미널과 어플리케이션 서버 간에 보내진 데이터가 바뀌거나 손상되지 않도록 보장
Privacy : 터미널과 어플리케이션 서버 사이에 전송되는 데이터의 비밀이 유지되도록 함. 또한 중간에 가로채어진 데이터 스트림이 이해될 수 없도록 함
Authentication(상호인증) : 터미널과 어플리케이션 서버간의 확실성을 보장
Denial of service protection : 재연되거나 검증되지 못한 데이터를 제거. 서비스 거부 공격 방지 및 상위 프로토콜 레이어를 보호
2015년 103번
정답 : 1번
SSL은 기밀성과 무결성을 제공하지만 부인 방지 서비스는 제공하지 않음
부인방지를 제공하기 위해서는 전자서명을 이용한 공개키 방식 암호화로 데이터를 전송해야 하지만, SSL은 세션키 교환을 통한 비밀키 방식으로 전송 데이터를 암호화 함. 암호화된 데이터에 붙은 메시지인증코드(MAC)는 무결성을 제공하기 위한 용도로 사용됨
SSL/TLS와 WTLS는 대표적인 암호화 프로토콜임
SSL각각의 프로토콜(Record Layer, Change Cipher spec, Alert, Handshake)의 역할과 클리이언트-서버 간 커넥션 수립 절차 및 교환 정보에 대한학습이 필요함
2017년 105번
정답 : 3번
SSL은 기밀성과 무결성을 제공하지만 부인 방지 서비스는 제공하지 않음
부인방지를 제공하기 위해서는 전자서명을 이용한 공개키 방식 암호화로 데이터를 전송해야 하지만, SSL은 세션키 교환을 통한 비밀키 방식으로 전송 데이터를 암호화 함. 암호화된 데이터에 붙은 메시지인증코드(MAC)는 무결성을 제공하기 위한 용도로 사용됨
송신자 개인키를 이용한 전자서명은 생성하지 않으므로 부인방지 기능은 제공하지 않는다.
인증(부인방지) 송개송공
암호화 수공수개