28
Giao thức SSL/TLS

Bai Giang SSL-TLS.ppt

Embed Size (px)

Citation preview

Page 1: Bai Giang SSL-TLS.ppt

Giao thức SSL/TLS

Page 2: Bai Giang SSL-TLS.ppt

Giao thức TLS-Transport Layer Security

• Được phát triển từ giao thức SSL-Secure Sockets Layer của hãng Netscape

• Nhằm giải quyết các vấn đề về bảo mật, toàn vẹn và xác thực

Page 3: Bai Giang SSL-TLS.ppt

TLS

• SSL/TLS đem lại các yếu tố sau cho truyền thông trên internet:– Bí mật - Sử dụng mật mã

– Toàn vẹn - Sử dụng MAC

-Xác thực- Sử dụng chứng chỉ X.509

• SSL/TLS ngày nay được sử dụng ở các web server và các trình duyệt internet

Page 4: Bai Giang SSL-TLS.ppt

Ứng dụng trong HTTP

• Các ứng dụng dựa trên http sử dụng TLS rất phổ biến– https://

• Để sử dụng được cần có Web Server hỗ trợ TLS (IIS, Tomcat, Apache ..)

• Trình duyệt hỗ trợ TLS– Firefox

– Internet Explorer

– Opera

– Sarafi

– Vv..

Page 5: Bai Giang SSL-TLS.ppt

Các ứng dụng khác sử dụng TLS

• Telnet• FTP• LDAP• POP3• SSLrsh• Vv….

Page 6: Bai Giang SSL-TLS.ppt

Giao thức TLS

• Là một giao thức trên tầng vận tải • Hoạt động dựa trên sự giao thức truyền tin cậy• Hỗ trợ mọi giao thức ứng dụng trên tầng IP

IPTCPTLS

HTTP Telnet FTP LDAP

Page 7: Bai Giang SSL-TLS.ppt

Vấn đề đảm bảo bảo mật của TLS

• Mã hoá các thông điệp truyền đi• Sử dụng các mã hoá quy ước với các khoá chia sẻ• Sử dụng các thuật toán

– DES, 3DES

– RC2, RC4

– IDEA

AMessage Message

B$%&#!@

Page 8: Bai Giang SSL-TLS.ppt

Vấn đề trao đổi khoá trong TLS

• TLS cần phương pháp an toàn để trao đổi khoá bí mật và nó sử dụng hệ mật khoá công khai để thực hiện điều này

• Hệ mật thường thường được sử dụng là RSA hoặc Diffie-Hellman

Page 9: Bai Giang SSL-TLS.ppt

TLS đảm bảo tính toàn vẹn

• Tính độ dài cố định của mã xác thực thông điệp (MAC)– Bao gồm giá trị băm của thông điệp

– Giá trị chia sẻ bí mật

– Số tuần tự các gói tin

• Truyền MAC với thông điệp

Page 10: Bai Giang SSL-TLS.ppt

TLS đảm bảo tính toàn vẹn

• Bên nhận tạo ra một giá trị MAC mới và so sánh với giá trị MAC được truyền thì thông điệp mới được coi là toàn vẹn

• TLS sử dụng các hàm băm MD5, SHA-1

A BMessage’

MAC’

MAC

=?

Message

MAC

Page 11: Bai Giang SSL-TLS.ppt

TLS đảm bảo tính xác thực

• Kiểm tra danh tính của thành phần tham gia truyền thông

• Chứng chỉ được sử dụng để đồng bộ định danh với khoá công khai và các thuộc tính khác

ACertificate

B

Certificate

Page 12: Bai Giang SSL-TLS.ppt

Các bước hoạt động của TLS

• Thiết lập một phiên làm việc– Đồng bộ thuật toán mã hoá

– Chia sẻ khoá bí mật

– Thực hiện xác thực

• Truyền dữ liệu của ứng dụng– Đảm bảo tính bí mật và toàn vẹn

Page 13: Bai Giang SSL-TLS.ppt

Kiến trúc của TLS

• TLS định nghĩa các bản ghi (record protocol) để truyền thông tin của ứng dụng và của TLS

• Phiên làm việc được thiết lập sử dụng giao thức bắt tay (HandShake Protocol)

TLS Record Protocol

Handshake Protocol

Alert Protocol

ChangeCipher Spec

Page 14: Bai Giang SSL-TLS.ppt

Giao thức bản ghi (Record Protocol)

Page 15: Bai Giang SSL-TLS.ppt

Pha bắt tay

• Thoả thuận bộ thuật toán mã hoá gồm– Thuật toán mã hoá đối xứng sử dụng

– Phương pháp trao đổi khoá

• Thiết lập và chia sẻ khoá bí mật

Page 16: Bai Giang SSL-TLS.ppt

Pha bắt tay

• Thông điệp Hello• Thông điệp trao đổi khoá và chứng chỉ• Thay đổi CiperSpec và gửi thông điệp kết thúc

pha bắt tay và chuyển sang quá trình truyền dữ liệu

Page 17: Bai Giang SSL-TLS.ppt

Hello

• Client “Hello” - Khởi tạo phiên làm việc– Gửi thông tin phiên bản giao thức

– Thông tin về bộ mã hoá sử dụng

– Server chọn giao thức và bộ mã hoá phù hợp

• Client có thể yêu cầu sử dụng các phiên làm việc đã có từ trước nằm ở trong cache– Server lựa chọn sao cho phù hợp

Page 18: Bai Giang SSL-TLS.ppt

Trao đổi khoá

• Server gửi chứng chỉ chứa khoá công khai (RSA) hoặc tham số của Diffie-Hellman

• Client tạo ra 48-byte ngẫu nhiên gửi tới Server sử dụng khoá công khai của server

• Mầm khoá bí mật được tính toán – Sử dụng các giá trị bí mật truyền trong thông điệp Hello giữa

Server và Client

Page 19: Bai Giang SSL-TLS.ppt

Chứng chỉ khoá công khai

• Chứng chỉ X.509 đồng bộ khoá công khai với định danh người dùng

• Trung tâm CA tạo ra chứng chỉ– Dựa vào các chính sách và các định danh được xác nhận

– Ký lên chứng chỉ

• Người sử dụng chứng chỉ phải đảm bảo là nó hợp lệ

Page 20: Bai Giang SSL-TLS.ppt

Kiểm tra tính hợp lệ của chứng chỉ

• Để kiểm tra được thì các CA phải tin cậy lẫn nhau– Một CA có thể phát hành chứng chỉ cho CA khác

• Kiểm tra chứng chỉ vẫn còn hiệu lực– CA phải đưa ra danh sách các chứng chỉ hết hiệu lực, phải

thu hồi (CRL-Certificate Revocation List)

Page 21: Bai Giang SSL-TLS.ppt

Nội dung chứng chỉ X.509

• Version

• Serial Number

• Signature Algorithm Identifier– Object Identifier (OID)

– e.g. id-dsa: {iso(1) member-body(2) us(840) x9-57 (10040) x9algorithm(4) 1}

• Issuer (CA) X.500 name

• Validity Period (Start,End)

• Subject X.500 name

• Subject Public Key

– Algorithm

– Value

• Issuer Unique Id (Version 2 ,3)

• Subject Unique Id (Version 2,3)

• Extensions (version 3)– optional

• CA digital Signature

Page 22: Bai Giang SSL-TLS.ppt

Ký lên chứng chỉ

• Ký bằng RSA– Tạo ra hàm băm của chứng chỉ

– Mã hoá sử dụng khoá bí mật của CA

• Xác minh chữ ký (Signature verification)– Giải mã sử dụng khoá công khai của CA

– Kiểm tra, đối chiếu giá trị băm

Page 23: Bai Giang SSL-TLS.ppt

Trao đổi khoá phía Server

Client

ClientHello

Server

ServerHello Certificate ServerKeyExchange

Hello messages struct { } HelloRequest; struct { uint32 gmt_unix_time; opaque random_bytes[28]; } Random; opaque SessionID<0..32>; uint8 CipherSuite[2]; enum { null(0), (255) } CompressionMethod; struct { ProtocolVersion client_version; Random random; SessionID session_id; CipherSuite cipher_suites CompressionMethod compression_methods } ClientHello;

struct { ProtocolVersion server_version; Random random; SessionID session_id; CipherSuite cipher_suite; CompressionMethod compression_method; } ServerHello;

Page 24: Bai Giang SSL-TLS.ppt

Yêu cầu chứng chỉ

Client

ClientHello

Server

ServerHello Certificate ServerKeyExchange CertificateRequest

struct { select (KeyExchangeAlgorithm) { case diffie_hellman: ServerDHParams params; Signature signed_params; case rsa: ServerRSAParams params; Signature signed_params; }; } ServerKeyExchange

Page 25: Bai Giang SSL-TLS.ppt

Chứng chỉ Client

Client

ClientHello

ClientCertificate ClientKeyExchange

Server

ServerHello Certificate ServerKeyExchange CertificateRequest

struct { select (KeyExchangeAlgorithm) { case rsa: EncryptedPreMasterSecret; case diffie_hellman: DiffieHellmanClientPublicValue; } exchange_keys; } ClientKeyExchange;

Page 26: Bai Giang SSL-TLS.ppt

Đổi khoá và thực hiện truyền dữ liệu

Client

[ChangeCipherSpec] Finished

Application Data

Server

[ChangeCipherSpec] Finished

Application Data

Page 27: Bai Giang SSL-TLS.ppt

Thống nhất thuật toán mã hóa sử dụng

• Thoả thuận thuật toán mã hoá sử dụng

• Kết thúc– Gửi bản sao chép của pha bắt tay sử dụng phiên làm việc

mới

– Cho phép kiểm tra tính đúng đắn của pha bắt tay

Page 28: Bai Giang SSL-TLS.ppt

Sử dụng phiên làm việc

Client

ClientHello (Session #)

[ChangeCipherSpec] Finished

Application Data

Server

ServerHello (Session #)

[ChangeCipherSpec] Finished

Application Data