SSL WEB Security v Web v SSL TLS
SSL 보안 WEB Security
목 차 v Web 보안 개요 v SSL/ TLS v SET 2
1. Web 보안 개요 ▣ 웹어플리케이션의 전형적인 아키텍처 n-tiers SQL Database HTTP request (cleartext or SSL) Web Client Transport HTTP reply (HTML, Javascript, VBscript, etc) Web Server Apache, IIS, Netscape etc… Web app Perl, C/C++, JSP, etc. . Connector DB ADO, ODBC, etc. . 4
2. SSL/TLS v SSL/TLS의사용 11
2. SSL/TLS v SSL/TLS의 위치 12
2. 1. 1 SSL Architecture v SSL 구조 : 그림 17. 2 u 2계층 프로토콜로 구성 u 상위 계층: SSL 동작에 대한 관리 l l l u Handshake 프로토콜, Cipher Spec 프로토콜, Alert 프로토콜 하위 계층 l SSL Record Protocol 14
SSL Record protocol 16
SSL Record protocol v 기밀성 (Confidentiality) u 핸드쉐이크 프로토콜은 대칭키 암호를 위한 세션키 를 정의한다. u IDEA, RC 2 -40, DES, 3 DES, Fortezza, RC 4 -40, RC 4 -128 u 메시지는 암호화 이전에 압축한다. v 메시지 무결성 (Message integrity) u 인증코드(MAC)를 만드는데 사용될 공유된 비밀키 를 정의 u similar to HMAC but with different padding 17
SSL Record protocol v 단편화 (Fragmentation) u v v v 214 byte(16348 byte) or 혹은 이보다 작은 블록으로 분해 압축 (Compression) u 무 손실 압축 u 지정된 압축 알고리즘이 없음 인증코드 (MAC) 암호화 (Encryption) u IDEA, RC 2 -40, DES, 3 DES, Fortezza, RC 4 -40, RC 4 -128 18
SSL Record protocol v SSL record header u 컨텐츠 유형 Contents type(8 bits) u 주요버전 Major Version(8 bits) u 하위버전 Minor Version(8 bits) u 압축길이 Compressed Length(16 bits) 20
Handshake Protocol Phase 1. 보안 기능 확립하기 protocol version, session ID, cipher suite, compression method, initial RN Phase 2. 서버 인증과 키 교환 key exchange, request certificate Phase 3. 클라이언트 인증과 키 교환 client sends key exchange, certificate verification Phase 4. 종료 change cipher suite, finish 24
1 Client. Hello Note: Optional or situation-dependent messages that are not always sent 클 라 이 언 트 7 Certificate 8 Client. Key. Exchange 9 Certificate. Verify 10 Change. Cipher. Spec 11 Finished Server. Hello 2 Certificate 3 Server. Key. Exchange 4 Certificate. Request 5 Server. Hello. Done 6 Change. Cipher. Spec 12 Finished 13 25 서 버
Phase 1. 보안 기능 확립하기 1. Client_Hello Message Prot: 22 …Length Version: 3. 0 Length… Type: 1 …Length… Version: 3. 0 Client. Random. Value (32 bit+28 bytes) ID len Session ID Cipher. Suite length Cipher. Suite 2 Cmp len Cmp 1 Cipher. Suite 1 … … Cipher. Suite n ……… Cmp n Value Cipher Suite 0, 0 SSL_NULL_WITH_NULL 0, 1 SSL_RSA_WITH_NULL_MD 5 0, 2 SSL_RSA_WITH_NULL_SHA 0, 4 SSL_RSA_WITH_RC 4_128_MD 5 0, 5 SSL_RSA_WITH_RC 4_128_SHA 0, 7 SSL_RSA_WITH_IDEA_CBC_SHA : : 0, 30 SSL_FORTEZZA_DMS_WITH_RC 4_128_SHA 26
Phase 1. 보안 기능 확립하기 (cont’d) 2. Server_Hello Message Prot: 22 …Length… Version: 3. 0 Type: 2 …Length… Version: 3. 0 Client. Random. Value (32 bit+28 bytes) ID len Session ID(option) Cipher. Suite Cmp Client_Hello의 cipher suite list에서 한개를 선택한다 27
Phase 2. 서버 인증 및 키 교환 1 Client. Hello Note: Optional or situation-dependent messages that are not always sent 클 라 이 언 트 7 Certificate 8 Client. Key. Exchange 9 Certificate. Verify 10 Change. Cipher. Spec 11 Finished Server. Hello 2 Certificate 3 Server. Key. Exchange 4 Certificate. Request 5 Server. Hello. Done 6 서 버 Change. Cipher. Spec 12 Finished 13 28
Phase 2. 서버 인증 및 키 교환 3. Certificate Message Prot: 22 …Length Version: 3. 0 Type: 11 Length… Certificate Chain Length Certificate 1 ……… Certificate n Length CA CA Certificate n CA 29
Phase 2. 서버 인증 및 키 교환 (cont’d) 4. Server. Key. Exchange Message Prot: 22 …Length Version: 3. 0 Type: 12 …Length mod value n값 Length… RSA mod length RSA… RSA exp length RSA exp value § C = Me(mod n) Signed MD 5 hash (16 bytes) e값 30
Phase 2. 서버 인증 및 키 교환 (cont’d) 5. Certificate. Request Message CT Value Prot: 22 Version: 3. 0 …Length Type: 13 …Length CT length . . . CT n Length… CT 1 CT 2 Certificate Type 1 RSA sign 2 DSS sign 3 RSA sign with fixed Diffie-Hellman 4 DSS sign with fixed Diffie-Hellman 5 RSA sign with ephemeral 6 DSA sign with ephemeral 20 Fortezza DMS CAs length CA 1 length DN(Distinguished Name) of CA 1 ……… Server가 받아들일 수 있는 인증기관 List 31
Phase 3. 클라이언트 인증 및 키 교환 1 Client. Hello Note: Optional or situation-dependent messages that are not always sent 클 라 이 언 트 7 Certificate 8 Client. Key. Exchange 9 Certificate. Verify 10 Change. Cipher. Spec 11 Finished Server. Hello 2 Certificate 3 Server. Key. Exchange 4 Certificate. Request 5 Server. Hello. Done 6 서 버 Change. Cipher. Spec 12 Finished 13 32
Phase 3. 클라이언트 인증 및 키 교환 (cont’d) 7. Certificate Message u If the server has requested a certificate, l The client sends a certificate message 33
Phase 3. 클라이언트 인증 및 키 교환 (cont’d) 8. Client. Key. Exchange Message Prot: 22 …Length Version: 3. 0 Type: 16 Length… Encrypted Premaster Secret Server의 공개키로 암호화 48 bytes random value 34
Master Secret Generation Procedure ‘A’ SHA Premaster Secret ‘BB’ SHA Client Random Premaster Secret ‘CCC’ Server Random Client Random Premaster Secret Server Random Client Random Server Random SHA Premaster Secret MD 5 Hash Premaster Secret Hash MD 5 Hash Master Secret ( 48 bytes ) 35
Key Material generation procedure (cont’d) ‘A’ SHA Master Secret ‘BB’ SHA Server Random Master Secret ‘CCC’ Client Random Server Random Master Secret Client Random Server Random Client Random SHA Master Secret MD 5 Hash . . . Master Secret MD 5 Hash Master Secret Hash MD 5 Hash . . . Key Material 36
Phase 4. 완료 1 Client. Hello Note: Optional or situation-dependent messages that are not always sent 클 라 이 언 트 7 Certificate 8 Client. Key. Exchange 9 Certificate. Verify 10 Change. Cipher. Spec 11 Finished Server. Hello 2 Certificate 3 Server. Key. Exchange 4 Certificate. Request 5 Server. Hello. Done 6 서 버 Change. Cipher. Spec 12 Finished 13 37
Phase 4. 완료 (cont’d) 10. Change. Cipher. Spec Message u Pending Cipher. Spec into the current one u Record Layer에서 테이터 암호화 때 클라이언트와 서버간 서로 약속한 암호화 알고리즘 사용한다는 것 을 통보 38
Phase 4. 완료 (cont’d) 11. Finished Message Prot: 22 56 36 Version: 3. 0 Type: 20 Len: 0 0 MD 5 hash (16 bytes) Handshake message SHA hash (20 bytes) MD 5 Message Authentication Code (16 bytes) Encrypted MAC 39
Secure Electronic Transaction (cont’d) v Secure E-Commerce componets 45
Dual Singnature v 이중서명 (Dual signature) 50
Purchase Request (Customer) 54
Purchase Request (Merchant) 56
- Slides: 61