secure socket layer

13
Secure Socket Layer 1

Upload: piper-jacobs

Post on 01-Jan-2016

49 views

Category:

Documents


1 download

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 Presentation

TRANSCRIPT

Secure Socket Layer

1

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

6

SSL: Handshake (1)

목적1. 서버 인증2. crypto algorithms 의 협상3. 키 설정4. 클라이언트 인증 ( 선택 사항 )

단순화 된 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)

SSL 인증

Alice 는 Bob 을 인증하지만 Bob 은 Alice 을 인증하지 못한다 . 어떻게 client 는 server 를 인증하는가 ? 왜 server 는 client 를 인증하지 않는가 ?

원하면 , 상호 인증도 가능하다 : Bob 은 메시지 2 에 client 의 인증서를 요청할 수 있다 . 이것은 client 가 인증서를 가질 것을 요구한다 . 대신 server 는 client 의 ( 암호화된 ) 암호를

요구할 수 있다 .

13