• Tidak ada hasil yang ditemukan

6.4 무선전송층보안

N/A
N/A
Protected

Academic year: 2023

Membagikan "6.4 무선전송층보안"

Copied!
29
0
0

Teks penuh

(1)

6.4 무선 전송층 보안

6장. 무선네트워크 보안

목포해양대해양컴퓨터공학과

1

(2)

개요 (1)

WTLS 는 모바일 장비 ( 클라이언트 ) 와 WAP 게이트웨이 간의 보안 서비스를 제공

WTLS 는 SSL(Secure Socket Layer) 을 보완하여 표준화한 전송계층보안 (TLS: Transport Layer Security) 프로토콜에 기반

WTLS 는 TLS 에 비해 더 작은 수의 메시지를 사용하므로 더 효율적

목포해양대해양컴퓨터공학과

2

(3)

개요 (2)

종단 - 대 - 종단 보안

• WTLS 사용: 클라이언트와 게이트웨이 사이

• TLS 사용: 게이트웨이와 목적지 서버 사이

WAP 게이트웨이 내부에서 WTLS 와 TLS 사이의 변환을 담당

• 게이트웨이는 보안상 취약

• 외부 공격에 대한 높은 수준의 보안 필요

목포해양대해양컴퓨터공학과

3

(4)

개요 (3)

WTLS 기능

• 데이터 무결성(Data Integrity):

메시지 인증을 통하여 클라이언트와 게이트웨이 사이에 전송된 데이터 무결성을 보장

• 프라이버시(Privacy):

암호화를 통해 기밀성을 보장

• 인증(Authentication):

디지털 인증서를 통하여 상호 인증을 제공

• 서비스 거부 공격에 대한 보호(Denial-of-Service Protection):

재전송된 메시지나 확인할 수 없는 메시지를 탐지하고 제거

목포해양대해양컴퓨터공학과

4

(5)

WTLS 세션과 연결 (1)

안전 연결 (Secure Connections)

• OSI 계층 모델 정의에서 연결이란 적절한 서비스를 제공하는

전송

• SSL에서 이러한 연결은 대등-대-대등(peer-to-peer) 관계

• 연결은 일시적

• 모든 연결은 하나의 특정 세션과 연관

목포해양대해양컴퓨터공학과

5

(6)

WTLS 세션과 연결 (2)

안전 연결 (Secure Sessions)

• SSL 세션은 하나의 클라이언트와 하나의 서버 간의 연관

• 세션은 핸드셰이크 프로토콜로 생성

• 세션은 다수 개의 연결이 공유할 수 있는 하나의 암호 보안 매개변수 집합을 정의

• 세션을 이용하면 매번 연결을 할 때 새로운 보안 매개변수를 설정하기 위한 작업을 반복하지 않아도 됨

목포해양대해양컴퓨터공학과

6

(7)

WTLS 세션과 연결 (3)

• 세션 상태 매개변수

세션 식별자(Session Identifier): 서버가 부여한 임의의 바이트열

프로토콜 버전(Protocol Versions):

대등 인증서(Peer Certificates):

압축 방법(Compression Method): 압축 알고리즘

암호명세(CipherSpec): 암호화 알고리즘, MAC 계산용 해시알고리즘, 해시 크기 등

마스터 비밀(Master Secret): 공유하는 20바이트 비밀값

순서번호(Sequence Number):

키 갱신(Key Refresh): 연결상태변수 갱신 주기

재개 가능성(Is Resumable): 새로운 연결 설정시 기존 세션 사용 여부

목포해양대해양컴퓨터공학과

7

(8)

WTLS 세션과 연결 (4)

연결 상태 매개변수

• 연결 종단(Connection End): 서버 역할 또는 클라이언트 역할

• 대량 암호화 알고리즘(Bulk Cipher Algorithm):

• MAC 알고리즘(Mac Algorithm):

• 압축 알고리즘(Compression Algorithm):

• 마스터 비밀(Master Secret):

• 클라이언트 랜덤(Client Random): 클라이언트가 제공하는 16비트 값

• 서버 랜덤(Server Random): 서버가 제공하는 16비트 값

• 순서번호 모드(Sequence Number Mode):

• 키 갱신(Key Refresh): 연결상태변수를 얼마나 자주 갱신하는지

나타냄 (n=2key_refresh마다 새로 계산)

목포해양대해양컴퓨터공학과

8

(9)

WTLS 프로토콜 구조 (1)

WTLS 는 두 계층으로 구성된 프로토콜

• WTLS 레코드 프로토콜

• 상위 프로토콜

핸드셰이크 프로토콜

암호명세 변경 프로토콜

경고 프로토콜

목포해양대해양컴퓨터공학과

9

(10)

WTLS 프로토콜 구조 (2)

• WTLS 레코드 프로토콜

• 상위 계층(WTP, WTLS 핸드셰이크 프로토콜, WTLS경고 프로토콜, WTLS 암호 변경

프로토콜)으로부터

사용자 데이터를 받아서, 이 데이터를 PDU 안에 캡슐화

목포해양대해양컴퓨터공학과

10

(11)

WTLS 프로토콜 구조 (3)

• WTLS 레코드 프로토콜 동작 단계

단계 1.

페이로드를 비손실 압축 알고리즘으로 압축

단계 2.

HMAC 알고리즘을 이용하여, 압축된 데이터의 메시지 인증

코드(MAC)를 계산

HMAC에서는MD-5 SHA-1과 같은 다양한 해시 알고리즘 중 하나를 사용

해시 코드의 길이는0, 5 혹은 10바이트

MAC 코드를 압축된 데이터에 덧붙임

단계 3.

압축된 메시지와MAC 코드는 대칭암호 방법으로 암호화

암호화에 사용되는 알고리즘은 DES, 삼중 DES, RC5 혹은 IDEA

단계 4.

레코드 프로토콜은 암호화된 페이로드 앞부분에 헤더를 추가

목포해양대해양컴퓨터공학과

11

(12)

WTLS 프로토콜 구조 (4)

WTLS 레코드 형식

목포해양대해양컴퓨터공학과

12

(13)

WTLS 프로토콜 구조 (5)

레코드 프로토콜 헤더 필드

• 레코드 종류(Record Type, 8비트):

레코드 길이 필드 표식(Record Length Field Indicator, 1비트):

순서 번호 필드 표식(Sequence Number Field Indicator, 1비트):

암호명세 표식(CipherSpec Indicator, 1비트):

데이터 유형(Content Type, 4비트):

• 순서 번호(Sequence Number, 16비트):

현재 레코드와 연관된 순서 번호

안정적이지 않은 전송상에서 안정적인 연결 제공이 가능

• 레코드 길이(Record Length, 16비트):

평문 데이터(압축을 사용하는 경우 압축된 평문)의 바이트 단위 길이

목포해양대해양컴퓨터공학과

13

(14)

WTLS 프로토콜 구조 (6)

암호명세 변경 프로토콜 (Change CipherSpec Protocol)

• 상위 프로토콜 중 가장 간단한 프로토콜

• 단 하나의 메시지로 구성

메시지 크기는 단 한 바이트이고, 그 값은 1이다

• 목적

지연된 상태를 현재 상태에 복사하는 것

이로 인해 이 연결에서 사용할 암호세트가 업데이트 됨

암호명세 변경 메시지가 도착하는 시점에서 메시지 송신자는 현재 쓰기 상태를 지연된 상태에 복사하고, 수신자는 현재 읽기 상태를 지연된 상태로 복사

목포해양대해양컴퓨터공학과

14

(15)

WTLS 프로토콜 구조 (7)

경고 프로토콜 (Alert Protocol)

• 대등 장비에 WTLS와 연관된 경고하기 위해 사용

• WTLS를 사용하는 다른 응용과 마찬가지로 경고 메시지도

현재 상태에 따라 압축되고 암호화

• 이 프로토콜의 각 메시지는 2바이트로 구성

첫 번째 바이트

경고 메시지 의 수준에 따라 주의(Warning, 1), 중요(Critical, 2), 심각(Fatal, 3)의 값

두 번째 바이트

특정 경고 종류를 구분하는 코드

만약 수준이 심각이라면, WTLS는 즉시 해당 연결을 종료 목포해양대

해양컴퓨터공학과

15

(16)

WTLS 프로토콜 구조 (8)

경고 프로토콜 (계속)

• 같은 세션의 다른 연결은 계속 사용할 수 있지만, 새로운 연결을 만드는 것은 허용되지 않음

중요한 수준의 경고는 현재 안전연결의 종료를 의미

같은 세션의 다른 연결을 계속 사용할 수 있고 새로운 연결을 만드는 것도 가능

• 경고 메시지를 이용하여 연결종료

어느 쪽이든 연결 종료 메시지 교환시작 가능

연결 종료 메시지가 전달되면, 이후의 모든 메시지는 무시

연결 종료 메시지를 받은 쪽은 반드시 응답을 보내어 연결이 종료되었음을 확인

목포해양대해양컴퓨터공학과

16

(17)

WTLS 프로토콜 구조 (9)

• 심각한 경고의 예

session_close_notify:

unexpected_message:

bad_record_mac:

decompression_failure:

handshake_failure:

• 심각하지 않은 경고의 예

connection_close_notify:

bad_certificate:

unsupported_certificate:

certificate_revoked:

certificate_expired:

certificate_unknown:

목포해양대해양컴퓨터공학과

17

경고 프로토콜 ( 계속 )

(18)

WTLS 프로토콜 구조 (10)

핸드셰이크 프로토콜

• 서버와 클라이언트가 상호 인증을 수행

• WTLD 레코드에 담아 보낼 데이터 보호를 위해 사용할 암호 및

MAC 알고리즘과 암호 키를 결정

• 실제 응용 데이터를 전송하기 전에 핸드셰이크 프로토콜을 사전에 반드시 설립

• 핸드셰이크 프로토콜의 중요한 기능 중의 하나는 사전-마스터 비밀을 생성

마스터 비밀 생성에 사용

마스터 비밀은 기타 암호 키를 생성할 때 비밀 값으로 사용

목포해양대해양컴퓨터공학과

18

(19)

WTLS 프로토콜 구조 (11)

핸드셰이크 프로토콜 ( 계속 )

목포해양대해양컴퓨터공학과

19

(20)

WTLS 프로토콜 구조 (12)

핸드셰이크 프로토콜 ( 계속 )

목포해양대해양컴퓨터공학과

20

(21)

WTLS 프로토콜 구조 (13)

핸드셰이크 프로토콜 ( 계속 )

• 클라이언트와 서버 간에 여러 차례의 메시지 교환

• 4 단계 교환

1단계: 논리적 연결을 시작하고 연관될 보호 기능을 확립

2단계: 서버 인증과 키 교환

3단계: 클라이언트 인증과 키 교환

4단계: 안전 연결 설정을 완료

목포해양대해양컴퓨터공학과

21

(22)

암호 알고리즘 (1)

인증 :

• 인증서 사용

키교환 :

• 마스터 키 생성

의사랜덤 함수 :

• PRF는 비밀 값, 종자, 비밀 레이블을 받은 다음 임의길이 랜덤

값을 생성

마스터 키 생성 :

• 현재 세션을 위해 안전한 키 교환을 통해 생성

목포해양대해양컴퓨터공학과

22

(23)

암호 알고리즘 (2)

인증

• 인증서 필드

Certificate_version: 인증서 버전

Signature_algorithm: 인증서 서명시 사용하는 알고리즘

Issuer: 인증서에 서명한 주체, 보통은 특정 CA임

Valid_not_before: 인증서 유효기간 시작

Valid_not_after: 인증서 유효기간 종료

Subject: 인증되는 공개키의 주인

Public_key_type: 공개키의 종류(알고리즘)

Parameter_specifier: 공개키와 유관한 파라미터를 지정

Public key: 인증되는 공개키

Signature: CA의 개인키로 서명

목포해양대해양컴퓨터공학과

23

(24)

암호 알고리즘 (3)

키 교환

• 다음 키 교환 프로토콜에서는 server_key_exchange 메시지를 반드시 사용

DH_anon:

일반적인 Diffie-Hellman 계산을(인증 없이) 수행

결정된 값(Z)을 pre_master_secret 값으로 사용

ECDH_anon:

타원곡선 Diffie-Hellman 계산을 수행

결정된 값(Z)을 pre_master_secret 값으로 사용

RSA_anon:

인증을 하지 않는RSA 키교환

서버는 자신의 RSA 공개키를 전송 목포해양대

해양컴퓨터공학과

24

(25)

암호 알고리즘 (4)

키 교환 ( 계속 )

• 다음 키 교환 프로토콜에서는 server_key_exchange 메시지를 전송하지 않음

ECDH_ECDSA:

ECDSA에 기반한 인증서를 이용한 타원곡선Diffie-Hellman 키 교환

RAS:

RSA 키 교환에서는 RSA 기반 인증서를 사용

서버는 자신의 RSA 공개키가 포함된 인증서를 전송

목포해양대해양컴퓨터공학과

25

(26)

암호 알고리즘 (5)

의사랜덤 함수

• PRF는 비밀 값, 종자, 비밀 레이블을 받은 다음 임의길이 랜덤

값을 생성

• TLS 표준에서 PRF를 최대한 안전하게 하기 위해 두 개의 해시

알고리즘을 사용

• WTLS에서는 하나만 사용하여 구현할 수 있음

목포해양대해양컴퓨터공학과

26

(27)

암호 알고리즘 (6)

PRF ( 계속 )

P_hash(secret, seed) = HMAC_hash(secret, A(1)‖seed)‖

= HMAC_hash(secret, A(2)‖seed)‖

= HMAC_hash(secret, A(3)‖seed)‖…

• A(0) = seed

• A(𝑖) = HMAC_hash(secret, A(𝑖 − 1))

PRF(secret, label, seed) = P_hash(secret, label‖seed) 목포해양대해양컴퓨터공학과

27

(28)

암호 알고리즘 (7)

마스터 키 생성

• 생성과정 2단계

제1단계

pre_master_secret 값을 교환

2단계

서버와 클라이언트가 다음을 계산해서 master_secret 값을 독립적으로 계산

master_secret = PRF(pre_master_secret,“ master secret”, ClientHello.random

‖ ServerHello.random)

목포해양대해양컴퓨터공학과

28

(29)

암호 알고리즘 (8)

마스터 키 생성 ( 계속 )

• MAC과 암호화 키 생성

HMAC-hash(MAC_secret, seq_number‖

WTLSCompressed.record_type‖

WTLSCompress.length‖WTLSCompressd.fragment)

• 사용할 수 있는 암호화 알고리즘

목포해양대해양컴퓨터공학과

29

Referensi

Dokumen terkait

Further inspection of the factors affecting vitamin D defi ciency using median concentration found lower concentration of vitamin D occurred in patients who were obese,

Based on the data, the application of learning human reproductive system with cultural approach can improve students' understanding of the human reproductive system concept.. In