Secure Sockets layer hay SSL là một giao thức bảo mật được Netscape thiết kế nhằm cung cấp các kết nối bảo mật cho các ứng dụng trên nền giao thức TCP/IP. SSL đã được chuẩn hóa và sử dụng rộng rãi trong nhiều ứng dụng trên mạng Internet như web, mail, … Phiên bản hiện tại của SSL là 3.0. Phiên bản SSL được IEEE chuẩn hóa là được gọi là TLS (Transport Layer Security), và được xem như là SSL phiên bản 3.1.
III.3.1 Cấu trúc SSL:
SSL thực ra bao gồm hai lớp giao thức nằm phía trên TCP. Lớp thứ nhất là giao thức truyền dữ liệu SSL (SSL record protocol) và lớp thứ hai gồm một tập các giao thức phụ trợ (hình 3.13). Phần này giới thiệu khái quát các thành phần của SSL.
Hai khái niệm cơ bản thường được dùng trong SSL là kết nối (connection)vàphiên giao dịch (session).
-Kết nối là một kết nối (tạm thời) giữa một đầu cuối này với một đầu cuối kia để cung cấp một lọai dịch vụ thích hợp. Mỗi kết nối liên kết với một phiên giao dịch (session).
-Phiên giao dịch là một liên kết giữa một máy con và một máy chủ, được tạo ra bởi giao thức SSL Handshake protocol. Phiên giao dịch định nghĩa các tham số bảo mật dùng chung cho nhiều kết nối.
Trạng thái của phiên giao dịch được định nghĩa bởi các thông số sau đây:
Nhận dạng phiên (Session identifier): Một chuỗi byte ngẫu nhiên được server
chọn để nhận dạng một trạng thái của phiên giao dịch.
Chứng thực khóa đối phương (Peer certificate): Chứng thực khóa cơng khai (X509.v3) của thực thể đối phương. Thành phần này có thể có hoặc không. Phương pháp nén (Compression method): Giải thuật nén dữ liệu trước khi mã hóa.
Thuật tóan mã (Cipher spec): Xác định thuật tốn mã hóa và hàm băm được sử
dụng cho phiên giao dịch.
Khả năng phục hồi (Is resumable): Cho biết phiên giao dịch này có thể khởi tạo
một kết nối mới hay không.
Tương tự, các thông số định nghĩa trạng thái của một kết nối bao gồm:
Số nhận dạng ngẫu nhiên (Server and client random): Chuỗi byte chọn ngẫu
nhiên bởi server và client, có chức năng phân biệt các kết nối với nhau.
Khóa xác thực của máy chủ (Server write MAC secret): Khóa bí mật dùng để tính
giá trị xác thực MAC trên dữ liệu gởi đi từ server.
Khóa xác thực của máy con (Client write MAC secret): Khóa bí mật dùng để tính
giá trị xác thực MAC trên dữ liệu gởi đi từ máy con.
Khóa mật mã của máy chủ (Server write key): Khóa bí mật dùng để mật mã hóa dữ liệu gởi đi từ server.
Khóa mật mã của máy con (Client write key): Khóa bí mật dùng đểmật mã hóa dữ liệu gởi đi từ client.
Véc – tơ khởi tạo (Initialization vectors):vec-tơ khởi tạo (IV) dùng trong chế độ mã hóa CBC (Chaining Bock Cipher). Giá trị này được khởi tạo bởi giao thức SSL record.
Số thứ tự gói (Sequence numbers): Số thứ tự của các bản tin được gởi đi và nhận
về trên kết nối.
III.3.2 Giao thức truyền dữ liệu SSL:
Giao thức truyền dữ liệu SSL (SSL record protocol) cung cấp 2 dịch vụ cơ bản cho các kết nối SSL là dịch vụ bảo mật và dịch vụ tòan vẹn dữ liệu.
Hình 3.14 mơ tả họat động của giao thức truyền dữ liệu SSL. Theo đó, các thao tác mà SSL thực hiện trên dữ liệu bao gồm: phân đọan dữ liệu (fragmentation), nén dữ liệu
Dữ liệu gốc Phân đoạn Nén Gắn thông tin xác thực (MAC) Mật mã hoá Gắn tiêu đề giao thức SSL record
(compression), xác thực dữ liệu (MAC), mã hóa, thêm các tiêu đề cần thiết và cuối cùng gởi tòan bộ đọan thông tin trên trong một segment TCP. Ở phía nhận, q trình được thực hiện ngược lại.
Cấu trúc gói dữ liệu SSL record gồm các thành phần sau (hình 3.15):
-Kiểu dữ liệu (Content Type - 8 bits): Giao thức lớp trên. Giao thức này sẽ xử lý thơng tin
trong gói dữ liệu SSL.
- Phiên bản chính (Major Version - 8 bits): Phiên bản chính của SSL. Đối với SSL v3, giá
trị này là 3.
- Phiên bản phụ (Minor Version - 8 bits): Phiên bản phụ của SSL. Ví dụ: đối với SSLv3
thì giá trị trường này là 0.
- Kích thước dữ liệu (Compressed Length -16 bits): Chiều dài của phần dữ liệu (plaintext),
tính theo byte.
-Dữ liệu (Plaintext): Dữ liệu của lớp trên được chuyển đi trong gói SSL record. Dữ liệu này có thể được nén hoặc không.
-Mã xác thực (MAC): Mã xác thực, có kích thước = 0 byte nếu khơng dùng chức năng xác thực.
III.3.3 Giao thức thay đổi thông số mã:
Giao thức thay đổi thông số mã (Change cipher spec protocol) là giao thức đơn giản nhất trong cấu trúc SSL, dùng để thay đổi các thông số mã hóa trên kết nối SSL. Giao thức này chỉ gồm có một bản tin có kích thước 1 byte, mang giá trị 1. Chức năng của bản tin này là yêu cầu cập nhật các thông số mã hoá cho kết nối hiện hành.
III.3.4 Giao thức cảnh báo:
Giao thức cảnh báo (Alert protocol) dùng để trao đổi các bản tin cảnh báo giữa hai đầu của kết nối SSL. Có hai mức độ cảnh báo: warning (1) và fatal (2). Mức warning chỉ đơn giản dùng để thông báo cho đầu kia các sự kiện bất thường đang diễn ra. Mức fatal yêu cầu kết thúc kết nối SSL hiện hành, các kết nối khác trong cùng phiên giao dịch có thể vẫn được duy trì nhưng phiên giao dịch không được thiết lập thêm kết nối mới.
Kiểu dữ liệu Phiên bchínhản Phiên bản phụ Kích thước dữ liệu Dữ liệu (có thể nén hoặc khơng nén) Mã xác thực (0, 16 hoặc 20 byte) Thông tin được mã hố
Các bản tin cảnh báo của SSL bao gồm:
-unexpected_message: Nhận được một bản tin không phù hợp. -bad_record_mac:Bản tin vừa nhận có giá trị MAC khơng hợp lệ.
-decompression_failure: Thao tác giải nén thực hiện khơng thành cơng.. -handshake_failure: Phía gởi khơng thương lượng các thơng số bảo mật.
-illegal_parameter:Một trường nào đó trong bản tin bắt tay (handshake message) không hợp lệ.
-close_notify:Thông báo kết thúc kết nối.
-no_certificate: Khi nhận được yêu cầu cung cấp chứng thực khóa (certificate), nhưng nếu
khơng có chứng thực khóa nào thích hợp thì gởi cảnh báo này.
-bad_certificate:Chứng thực khóa khơng hợp lệ (chữ ký sai)
-unsupported_certificate: Kiểu chứng thực khơng được hỗ trợ. -certificate_revoked:Chứng thực khóa đã bị thu hồi.
-certificate_expired:Chứng thực khóa đã hết hạn sử dụng.
-certificate_unknown: Khơng xử lý được chứng thực khóa vì các lý do khác với các lý do
trên.
III.3.5 Giao thức bắt tay:
Giao thức bắt tay (handshake protocol) à giao thức phức tạp nhất của SSL, được hai phía
sử dụng để xác thực lẫn nhau và thương lượng để thống nhất các thuật tốn xác thực MAC và mã hóa. Thủ tục này cũng được để trao đổi các khóa bí mật dùng cho mã hóa và MAC. Thủ tục phải được thực hiện trước khi dữ liệu được truyền.
Thủ tục bắt tay gồm 4 giai đọan được mơ tả ở hình 3.16.
III.3.6 So sánh SSL và IPSec:
SSL và IPSec là hai giao thức tương đồng với nhau về chức năng. Cả hai đều được thiết kế để bảo vệ dữ liệu truyền trên các kết nối bằng các cơ chế xác thực và mã hóa. Tuy nhiên, hai kỹ thuật này có những điểm khác biệt nhau như sau:
SSL họat động ở lớp socket (hình 3.13), do đó nó được gắn kết ở phần người sử
dụng (user space) trong các hệ thống đầu cuối. IPSec họat động ở lớp mạng (network layer), nên được tích hợp vào trong chức năng của hệ điều hành. Đây chính là sự khác nhau cơ bản nhất giửa SSL và IPSec.
Cả SSL và IPSec đều cung cấp chức năng mã hóa (Encryption), bảo vệ dữ liệu (Integrity) và xác thực thông tin (Authentication), tuy nhiên SSL đơn giản hóa các kỹ thuật này để áp dụng trong mơ hình của nó, trong khi IPSec bao gồm một cách đầy đủ các chi tiết thiết kế của tất cả các kỹ thuật tạo thành, và do đó, khi tổ hợp lại sẽ xuất hiện nhiều lỗi tương thích trong nội bộ IPSec.
IPSec là thành phần của hệ điều hành, do đó, để triển khai IPSec thì phải thay đổi cấu hình hệ điều hành mà không cần thay đổi cấu hình chương trình ứng dụng. Ngược lại, SSL nằm ở mức người dùng nên phải cài đặt với từng ứng dụng cụ thể (ví dụ mail, web, …) mà khơng cần khai báo với hệ điều hành,
Vì những khác biệt trên đây, SSL thường được sử dụng để bảo vệ kết nối cho từng ứng dụng cụ thể, đặc biệt là Web, E-mail. Trong khi đó, IPSec thường được dùng để xây dựng các mạng riêng ảo (VPN) rồi trên cơ sở đó mới triển khai các dịch vụ ứng dụng.
client_hello server_hello
Chứng thực khóa server
Khóa bí mật của server
Yêu cầu cung cấp chứng thực
Kết thúc server_hello
Chứng thực khóa client
Khóa bí mật của client
Xác minh chứng thực khóa
Thay đổi thơng số mã
Kết thúc
Thay đổi thơng số mã
Kết thúc Client Server T h ờ i g ia n Hình 3.16: Thủ tục bắt tay SSL Giai đoạn 1:
Thiết lập các thông số bảo mật như phiên bản của giao thức, nhận dạng phiên giao dịch, thuật toán mật mã, phương pháp nén
và số ngẫu nhiên ban đầu.
Giai đoạn 2:
Server có thể gởi chứng thực khóa cơng khai, trao đổi khoá và yêu cầu client cung cấp
chứng thực khóa.
Giai đoạn 3:
Client gởi chứng thực khóa khi được u cầu
từ phía server, trao đổi khóa với server. Client cũng có thể gởi xác minh chứng thực khóa
cơng khai cho server (certificate_verify)
Giai đoạn 4:
Thay đổi các thơng số của thuật tốn mật mã
và kết thúc giao thức bắt tay.
Chú ý: những giao tác biểu diễn bằng nét rời là những giao tác tuỳ chọn, có thể có hoặc
khơng, tuỳ thuộc vào từng tình huống ứng
III.4 SECURE ELECTRONIC TRANSACTIONIII.4.1 Tổng quan về SET: