secure socket layer
DESCRIPTION
Secure Socket Layer. application transport network link physical. Socket layer. “Socket layer”: 응용 계층과 수송 계층의 사이에 위치 SSL 은 HTTP (application) 와 TCP (transport) 사이에서 동작한다. User. Socket “layer”. OS. NIC. 널리 사용되는 보안 프로토콜 거의 모든 브라우저와 웹 서버에서 지원한다 . https 원래 Netscape 에서 1993 년 개발 - PowerPoint PPT PresentationTRANSCRIPT
Socket layer
“Socket layer”: 응용 계층과 수송 계층의 사이에 위치
SSL 은 HTTP (application)와 TCP (transport) 사이에서 동작한다 .
application
transport
network
link
physical
Socket“layer”
OS
User
NIC
2
3
SSL: Secure Sockets Layer
널리 사용되는 보안 프로토콜 거의 모든 브라우저와 웹
서버에서 지원한다 . https
원래 Netscape 에서 1993 년 개발
IETF 표준 프로토콜 : TLS(transport layer security):
RFC 2246 SSL v3.0 의 약간의 변형
보안 기능 기밀성 (Confidentiality) 무결성 (Integrity) 인증 (Authentication)
원래의 목표 : 웹 상에서 전자상거래에 적용 암호화 ( 특별히 신용카드 번
호 ) 웹 서버의 인증 클라이언트 인증 ( 선택 )
모든 TCP 응용에서 사용 가능 Secure socket interface
웹상에서 상거래에서 요구사항 만약 Alice 가 BBB 라는 온라인 책방에서 책을
구입할 때 , Alice 가 거래하는 내용 , 특히 지불 정보 ( 예 ,
신용카드 번호 ) 를 다른 사람이 보지 않도록 해야 한다 . Alice 가 주문하는 내용을 침입자가 변경하자 않도록
해야 한다 . Alice 가 거래하는 서점이 정말 BBB 가 맞는지 확인할
수 있어야 한다 . Alice 가 책값을 지불했을 때 BBB 를 사칭하는 다른 사람이 받는 것은 아닐까 ?
BBB 는 책을 사는 사람이 진짜 Alice 인지 확인할 필요가 있는가 ?
4
5
SSL 의 절차
Handshake: client 는 server 를 인증하고 key 를 계산하는데 필요한 값들을 교환한다 .
Key 계산 : client 는 server 는 비밀값을 사용하여 키를 계산한다 .
데이터 전송 : 데이터는 레코드로 쪼개서 MAC 을 첨부하고 암호화하여 전송한다 .
연결 종료 : Special messages to securely close connection
단순화 된 SSL Protocol
S is pre-master secret K = S,RA,RB 으로부터 만들어진 암호화 키 msgs = all previous messages CLNT and SRVR are constants
Alice Bob
Can we talk?, cipher list, RA
Certificate, cipher, RB
{S}Bob, E(h(msgs,CLNT,K),K)
Data protected with key K
h(msgs,SRVR,K)
7
8
SSL: Handshake (2)1. C -> S: crypto algorithms 의 종류 , client nonce (Rc)2. S -> C: 선택한 알고리즘 + 인증서 + server nonce
(Rs)3. C: 인증서 (certificate) 를 검증 , server 의 공개키를 추출 ,
pre_master_secret 을 생성하여 server 의 공개키로 암호화하여 server 에 보낸다 .
4. C 와 S: 각자 pre_master_secret 과 nonces 를 사용하여 암호화와 MAC key 를 계산한다 .
5. C: 모든 handshake 메시지에 MAC 를 첨부하여 보낸다 . 6. S: 모든 handshake 메시지에 MAC 를 첨부하여 보낸다 .
9
crypto algorithms 의 협상 Cipher list
암호 알고리즘 RC4, RC2, DES, 3DES, DES40, IDEA
MAC 알고리즘 MD5, SHA-1
암호 알고리즘 유형 (stream or block) 해쉬 크기
MD5 : 0 or 16 바이트 , SHA-1: 20 바이트 IV 크기
CBC 암호화를 위한 IV 크기
10
SSL: Handshaking (3)
단계 5 와 6 은 협상 과정에서 중간자 공격을 막기 위해 수행한다 .
Client 의 crypto algorithm 중에는 강한 알고리즘과 약한 알고리즘이 있다 .
중간자 공격 (Man-in-the middle) 으로 알고리즘 명단에서 강한 알고리즘을 삭제할 수 있다 .
단계 5 와 6 의 메시지는 암호화된다 .
11
SSL: Handshaking (4) Client 와 sever 의 random nonce 를 사용하는
이유는 ? 만약 Trudy 가 Alice 와 Bob 사이에 교환되는 모든
메시지를 복사했다고 하자 . 다음날 , Trudy 는 Bob 과 TCP 연결을 설정하고 전날
Alice 가 보냈던 똑같은 메시지를 순서대로 보낸다 . Bob( 온라인 서점 ) 은 Alice 가 같은 주문을 다시
하는 것으로 생각한다 . 해결책 : Bob 은 연결할 때 마다 새로운 random
nonce 를 보낸다 . 따라서 오늘의 키는 어제의 키와 다르게 된다 .
따라서 Trudy 의 메시지는 Bob 의 MAC 검증에서 실패하게 된다 .
12
Key 계산 한 개의 키로 모든 암호화를 하는 것은 나쁜 방법이다 .
MAC 에서 사용하는 키와 암호화 키는 다른 것을 사용한다 . 4 개의 키와 2 IVs:
Kc = client 의 암호화 키 ( 대칭키 )
Mc = client 의 MAC key( 비밀값 )
Ks = server 의 암호화 키 ( 대칭키 )
Ms = server 의 MAC key( 비밀값 ) 2 IVs = client 와 server 가 사용할 IV 값
Key 들은 다음의 값을 사용하여 해쉬 함수의 출력값을 짤라서 사용한다 . Client 의 nonce(RA), sever 의 nonce(RB), master
secret(S)