•
SSL/TLS 상의 HTTP
◦
통신 내용을 암호화해 주는 프로토콜로서 SSL(Secure Socket Layer) 혹은 TLS(Transport Layer Security)를 이용
◦
프로토콜의 이중 구조
▪
SSL/ TLS 상에서 HTTP 실행
▪
HTTP의 통신(요청과 응답)은 암호화 되어 도청을 방지
▪
신용카드 번호 보내기(SSL/TLS의 역할)
1) 기밀성 : 앨리스가 송신하는 신용카드 번호와 주소를 ‘도청’ 당하는 일 없이 밥 서점에 보내고 싶다.
2) 무결성 : 앨리스가 송신하는 신용카드 번호와 주소를 ‘조작’ 당하는 일 없이 밥 서점에 보내고 싶다.
3) 인증 : 통신 상대의 웹 서버가 ‘진짜 밥 서점’ 이라는 것을 확인하고 싶다.
▪
해결책
•
기밀성 : 대칭암호
◦
대칭키 생성 : 의사 난수 생성기
◦
대칭 암호키 공유 : 공개키 암호, Diffie-Hellman 키 교환
•
데이터 인증 : 메시지 인증 코드
◦
메시지 인증 코드 생성 : 일방향 해시 함수
•
상대 인증 : 공개키에 디지털 서명을 붙인 인증서
▪
SSL/TLS 상에 올릴 수 있는 다른 프로토콜
•
SMTP : 메일 전송
•
POP3 : 메일 수신
▪
SSL/TLS에서 사용하는 대칭 암호, 공개키 암호, 디지털 서명, 일방향 해시 함수 등은 부품과 같이 교환 가능
▪
암호 기술의 ‘추천 세트’ 가 SSL/TLS로 규정
▪
이 추천 세트를 암호 스위트(ciper suite)
▪
TLS 프로토콜 계층
▪
TLS 레코드 프로토콜
•
TLS 핸드쉐이크 프로토콜 밑에 위치
•
대칭 암호를 사용해서 메시지를 암호화하고 통신하는 부분
•
대칭 암호와 메시지 인증 코드를 이용
•
알고리즘과 공유키 는 핸드쉐이크 프로토콜을 사용해서 서버와 클라이언트가 상담을 통해 결정됨
▪
TLS 핸드쉐이크 프로토콜
•
핸드쉐이크 프로토콜
•
암호 사양 변경 프로토콜
•
경고 프로토콜
•
애플리케이션 데이터 프로토콜
▪
핸드 쉐이크 프로토콜
•
TLS 핸드쉐이크 프로토콜의 일부로 클라이언트와 서버가 암호 통신에 사용할 알고리즘과 공유키를 결정
•
인증서를 이용한 인증
▪
암호 사양 변경 프로토콜
•
암호 방법을 변경하는 신호를 통신 상대에게 전달
▪
경고 프로토콜
•
뭔가 에러가 발생했다는 것을 통신 상대에게 전달
▪
애플리케이션 데이터 프로토콜
•
TLS 상에 올라 있는 애플리케이션의 데이터를 통신 상대에게 전달