MỤC LỤC Trang CHƯƠNG I: TỔNG QUAN VỀ GIAO THỨC SSL 1.1. Khái niệm về SSL………………………………………………………………... 2 1.2. Lịch sử phát triển của SSL……………………………………………………….. 3 1.3. Giới thiệu chung về giao thức SSL………………………………………………..4 1.3.1. Khả năng ứng dụng SSL trong bảo mật thông tin 4 1.3.2. Các thuật toán mã hóa dùng trong SSL 6 1.3.2.1. Giới thiệu chung 6 1.3.2.2. Bộ mã hóa tiêu biểu sử dụng thuật toán RCA 7 1.4. Một số ứng dụng của SSL 8 1.4.1. Ứng dụng công nghệ xác thực máy chủ SSL trong giao dịch thương mại điện tử ….9 1.4.2. Ứng dụng của SSL trong chứng chỉ số, chữ ký số 11 1.4.3. Giải pháp máy ảo chuyên dụng SSL 13 1.4.4. Ứng dụng SSL VPN dành cho ISP 14 CHƯƠNG II: CẤU TRÚC VÀ CÁC GIAO THỨC BẢO MẬT CỦA SSL (RFC 6101) 2.1. Cấu trúc và cách thức hoạt động của giao thức SSL …………………………….16 2.1.1. Cấu trúc giao thức SSL. ……..16 2.1.1.1. Nhiệm vụ và cấu trúc SSL 17 2.1.1.2. Phiên SSL và kết nối SSL 18 2.1.2. Cách thức hoạt động của giao thức SSL 21 2.1.2.1. Đàm phán Cipher suite 21 2.1.2.2. Xác thực Server 21 2.1.2.3. Gửi dữ liệu đã mã hóa 22 2.1.2.4. Tiến trình SSL 22 2.1.2.5. Lựa chọn Cipher suite và xóa Entuty verification 25 2.2. Các giao thức bảo mật của SSL 25 2.2.1. Giao thức bản ghi (Record Protocol). 26 2.2.2. Giao thức ChangeCipherspec. 32 2.2.3. Giao thức cảnh báo (Alert Protocol). 33 2.2.4. Giao thức bắt tay (Handshake Protocol). 35 2.2.4.1. Giai đoạn 1: Thiết lập khả năng bảo mật 38 2.2.4.2. Giai đoạn 2: Xác thực Server và trao đổi khóa. 41 2.2.4.3. Giai đoạn 3: Xác thực Client và trao đổi khóa .44 2.2.4.4. Giai đoạn 4: Kết thúc kết nối bảo mật. 46 CHƯƠNG III: DEMO PHƯƠNG PHÁP TẤN CÔNG WEB HTTP & GIẢI PHÁP PHÒNG CHỐNG VÀ TRIỂN KHAI SSL 3.1. Muc tiêu của Demo 47 3.2. Mô hình của Demo 47 3.3. Công cụ và phần mềm sử dụng trong Demo 48 3.4. Các bước thực hiện 48 3.4.1. Phương pháp tấn công web HTTP 48 3.4.2. Giải pháp phòng chống và triển khai SSL 49 3.4.2.1. Tư tạo chứng thực CA cho chính mình 49 3.4.2.2. Tạo chứng thực cho máy chủ (server). 51 3.4.2.3. Cài đặt MyCA và MyServer 53 3.5. Kết quả Demo 59 KẾT LUẬN VÀ TÀI LIỆU THAM KHẢO 63 CHƯƠNG I: TỔNG QUAN VỀ GIAO THỨC SSL 1.1. Khái niệm về SSL SSL (Secure Socket Layer ) là giao thức đa mục đích được thiết kế để tạo ra các giao tiếp giữa hai chương trình ứng dụng trên 1 cổng định trước (socket 443) nhằm mã hoá toàn bộ thông tin đi/đến, mà ngày nay được sử dụng rộng rãi cho giao dịch điện tử như truyền số hiệu thẻ tín dụng, mật khẩu, số bí mật cá nhân (PIN) trên Internet. Giao thức SSL (Secure Socket Layer) tổ hợp nhiều giải thuật mã hóa nhằm đảm bảo quá trình trao đổi thông tin trên mạng được bảo mật. Việc mã hóa dữ liệu diễn ra một cách trong suốt, hỗ trợ nhiều giao thức khác chạy trên nền giao thức TCP Việc kết nối giữa một Web browser tới bất kỳ điểm nào trên mạng Internet đi qua rất nhiều các hệ thống độc lập mà không có bất kỳ sự bảo vệ nào với các thông tin trên đường truyền. Không một ai kể cả người sử dụng lẫn Web server có bất kỳ sự kiểm soát nào đối với đường đi của dữ liệu hay có thể kiểm soát được liệu có ai đó thâm nhập vào thông tin trên đường truyền. Để bảo vệ những thông tin mật trên mạng Internet hay bất kỳ mạng TCP/IP nào, SSL đã kết hợp những yếu tố sau để thiết lập được một giao dịch an toàn: Xác thực: đảm bảo tính xác thực của trang mà bạn sẽ làm việc ở đầu kia của kết nối. Cũng như vậy, các trang Web cũng cần phải kiểm tra tính xác thực của người sử dụng. Mã hóa: đảm bảo thông tin không thể bị truy cập bởi đối tượng thứ ba. Để loại trừ việc nghe trộm những thông tin “ nhạy cảm” khi nó được truyền qua Internet, dữ liệu phải được mã hoá để không thể bị đọc được bởi những người khác ngoài người gửi và người nhận.
Trang 1TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHỆ TPHCM
KHOA CÔNG NGHỆ THÔNG TIN
─────── ───────
ĐỒ ÁN MÔN HỌC
BẢO MẬT THÔNG TIN
ĐỀ TÀI: GIAO THỨC BẢO MẬT SSL
Giáo viên hướng dẫn: Văn Thiên Hoàng Lớp : 10LDTHM1
Nhóm thực hiện: NHÓM 1
1 Lê Trần Thanh Tùng – 1081020102
2 Nguyễn Hoài Phương – 1081020077
3 Quách Đình Thắng – 1081020094
4 Viên Ngọc Quang - 1081020084
TPHCM 05/2012
Page | 1
Trang 2MỤC LỤC
Trang
CHƯƠNG I: TỔNG QUAN VỀ GIAO THỨC SSL
1.1 Khái niệm về SSL……… 2
1.2 Lịch sử phát triển của SSL……… 3
1.3 Giới thiệu chung về giao thức SSL……… 4
1.3.1 Khả năng ứng dụng SSL trong bảo mật thông tin 4
1.3.2 Các thuật toán mã hóa dùng trong SSL 6
1.3.2.1 Giới thiệu chung 6
1.3.2.2 Bộ mã hóa tiêu biểu sử dụng thuật toán RCA 7
1.4 Một số ứng dụng của SSL 8
1.4.1 Ứng dụng công nghệ xác thực máy chủ SSL trong giao dịch thương mại điện tử .….9
1.4.2 Ứng dụng của SSL trong chứng chỉ số, chữ ký số 11
1.4.3 Giải pháp máy ảo chuyên dụng SSL 13
1.4.4 Ứng dụng SSL VPN dành cho ISP 14
CHƯƠNG II: CẤU TRÚC VÀ CÁC GIAO THỨC BẢO MẬT CỦA SSL (RFC 6101) 2.1 Cấu trúc và cách thức hoạt động của giao thức SSL……….16
2.1.1 Cấu trúc giao thức SSL …… 16
2.1.1.1 Nhiệm vụ và cấu trúc SSL 17
2.1.1.2 Phiên SSL và kết nối SSL 18
2.1.2 Cách thức hoạt động của giao thức SSL 21
Trang 32.1.2.1 Đàm phán Cipher suite 21
2.1.2.2 Xác thực Server 21
2.1.2.3 Gửi dữ liệu đã mã hóa 22
2.1.2.4 Tiến trình SSL 22
2.1.2.5 Lựa chọn Cipher suite và xóa Entuty verification 25
2.2 Các giao thức bảo mật của SSL 25
2.2.1 Giao thức bản ghi (Record Protocol) 26
2.2.2 Giao thức ChangeCipherspec 32
2.2.3 Giao thức cảnh báo (Alert Protocol) 33
2.2.4 Giao thức bắt tay (Handshake Protocol) 35
2.2.4.1 Giai đoạn 1: Thiết lập khả năng bảo mật 38
2.2.4.2 Giai đoạn 2: Xác thực Server và trao đổi khóa 41
2.2.4.3 Giai đoạn 3: Xác thực Client và trao đổi khóa 44
2.2.4.4 Giai đoạn 4: Kết thúc kết nối bảo mật 46
CHƯƠNG III: DEMO PHƯƠNG PHÁP TẤN CÔNG WEB HTTP & GIẢI PHÁP
PHÒNG CHỐNG VÀ TRIỂN KHAI SSL 3.1 Muc tiêu của Demo 47
3.2 Mô hình của Demo 47
3.3 Công cụ và phần mềm sử dụng trong Demo 48
3.4 Các bước thực hiện 48
3.4.1 Phương pháp tấn công web HTTP 48
3.4.2 Giải pháp phòng chống và triển khai SSL 49
3.4.2.1 Tư tạo chứng thực CA cho chính mình 49
3.4.2.2 Tạo chứng thực cho máy chủ (server) 51
3.4.2.3 Cài đặt MyCA và MyServer 53
3.5 Kết quả Demo 59
KẾT LUẬN VÀ TÀI LIỆU THAM KHẢO 63
Trang 4CHƯƠNG I: TỔNG QUAN VỀ GIAO THỨC SSL
1.1 Khái niệm về SSL
SSL (Secure Socket Layer ) là giao thức đa mục đích được thiết kế để tạo ra các giao tiếp giữa hai chương trình ứng dụng trên 1 cổng định trước (socket 443) nhằm mã hoá toàn bộ thông tin đi/đến, mà ngày nay được sử dụng rộng rãi cho giao dịch điện tử như truyền số hiệu thẻ tín dụng, mật khẩu, số bí mật cá nhân (PIN) trên Internet
Giao thức SSL (Secure Socket Layer) tổ hợp nhiều giải thuật mã hóa nhằm đảm bảo quá trình trao đổi thông tin trên mạng được bảo mật Việc mã hóa dữ liệu diễn ra một cách trong suốt, hỗ trợ nhiều giao thức khác chạy trên nền giao thức TCP
Việc kết nối giữa một Web browser tới bất kỳ điểm nào trên mạng Internet đi qua rất nhiều các hệ thống độc lập mà không có bất kỳ sự bảo vệ nào với các thông tin trên đường truyền Không một ai kể cả người sử dụng lẫn Web server có bất kỳ sự kiểm soát nào đối với đường đi của dữ liệu hay có thể kiểm soát được liệu có ai đó thâm nhập vào thông tin trên đường truyền Để bảo vệ những thông tin mật trên mạng Internet hay bất
kỳ mạng TCP/IP nào, SSL đã kết hợp những yếu tố sau để thiết lập được một giao dịch
an toàn:
Xác thực: đảm bảo tính xác thực của trang mà bạn sẽ làm việc ở đầu kia của kết
nối Cũng như vậy, các trang Web cũng cần phải kiểm tra tính xác thực của người sử dụng
Mã hóa: đảm bảo thông tin không thể bị truy cập bởi đối tượng thứ ba Để loại trừ
việc nghe trộm những thông tin “ nhạy cảm” khi nó được truyền qua Internet, dữ liệu phải được mã hoá để không thể bị đọc được bởi những người khác ngoài người gửi và người nhận
Trang 5Toàn vẹn dữ liệu: đảm bảo thông tin không bị sai lệch và nó phải thể hiện chính
xác thông tin gốc gửi đến
Với việc sử dụng SSL, các Web site có thể cung cấp khả năng bảo mật thông tin, xác thực và toàn vẹn dữ liệu đến người dùng SSL được tích hợp sẵn vào các browser và Web server, cho phép người sử dụng làm việc với các trang Web ở chế độ an toàn Khi Web browser sử dụng kết nối SSL tới server, biểu tượng ổ khóa sẽ xuất hiện trên thanh trạng thái của cửa sổ browser và dòng “http” trong hộp nhập địa chỉ URL sẽ đổi thành
“https” Một phiên giao dịch HTTPS sử dụng cổng 443 thay vì sử dụng cổng 80 như dùng cho HTTP
1.2 Lịch sử phát triển của SSL
Được phát triển bởi Netscape, ngày nay giao thức Secure Socket Layer (SSL) đã được sử dụng rộng rãi trên World Wide Web trong việc xác thực và mã hoá thông tin giữa client và server Và được coi là giao thức bảo mật quan trọng lớp vận chuyển (Layer Transport) có tầm quan trọng cao nhất đối với sự bảo mật của các trình ứng dụng trên Web
Cho đến bây giờ, có ba phiên bản của SSL:
1 SSL 1.0: được sử dụng nội bộ chỉ bởi Netscape Communications Nó chứa một số
khiếm khuyết nghiêm trọng và không bao giờ được tung ra bên ngoài
Trang 62 SSL 2.0: được kết nhập vào Netscape Communications 1.0 đến 2.x Nó có một số
điểm yếu liên quan đến sự hiện thân cụ thể của cuộc tấn công của đối tượng trung gian Trong một nỗ lực nhằm dùng sự không chắc chắn của công chúng về bảo mật của SSL, Microsoft cũng đã giới thiệu giao thức PCT (Private Communication Technology) cạnh tranh trong lần tung ra Internet Explorer đầu tiên của nó vào năm 1996
3 SSL 3.0: Netscape Communications đã phản ứng lại sự thách thức PCT của Microsoft
bằng cách giới thiệu SSL 3.0 vốn giải quyết các vấn đề trong SSL 2.0 và thêm một số tính năng mới Vào thời điểm này, Microsoft nhượng bộ và đồng ý hỗ trợ SSL trong tất
cả các phiên bản phần mềm dựa vào TCP/IP của nó (mặc dù phiên bản riêng của nó vẫn
hỗ trợ PCT cho sự tương thích ngược)
Tổ chức IETF (Internet Engineering Task Force ) đã chuẩn hoá SSL và đặt lại tên
là TLS (Transport Layer Security) Mặc dù là có sự thay đổi về tên nhưng TSL chỉ là một phiên bản mới của SSL Phiên bản TSL 1.0 tương đương với phiên bản SSL 3.1 Tuy nhiên SSL là thuật ngữ được sử dụng rộng rãi hơn
Hiện nay: SSL 3.2 (Tương đương TLS 1.1)
1.3 Giới thiệu chung về giao thức SSL:
1.3.1 Khả năng ứng dụng SSL trong bảo mật thông tin:
Ngày nay việc bảo mật thông tin là yếu tố quan trọng để quyết định sự sống còn của một tổ chức, một công ty hay doanh nghiệp.Với sự phát triển nhanh chóng của công nghệ đã mang lại nhiều tiện ích cho người dùng nhưng đồng thời cũng đặt ra một nhu cầu hết sức cấp thiết về sự an toàn và bảo mật Và SSL chính là giải pháp tốt nhất hiện nay đáp ứng những nhu cầu đó và nó được coi như là “lá chắn cuối cùng” trong bảo mật thương mại điện tử
Việc truyền các thông tin nhạy cảm trên mạng rất không an toàn vì những vấn đề sau:
Trang 7• Bạn không thể luôn luôn chắc rằng bạn đang trao đổi thông tin với đúng đối tượng cần trao đổi.
• Dữ liệu mạng có thể bị chặn ,vì vậy dữ liệu có thể bị 1 đối tượng thứ 3 khác đọc trộm, thường được biết đến như attacker
• Nếu attacker có thể chặn dữ liệu, attacker có thể sửa đổi dữ liệu trước khi gửi nó đến người nhận
Và giao thức SSL được đưa ra để có thể giải quyết các vấn đề trên SSL không phải
là một giao thức đơn lẻ, mà là một tập các thủ tục đã được chuẩn hoá để thực hiện các nhiệm vụ bảo mật sau:
Xác thực server:
Cho phép người sử dụng xác thực được server muốn kết nối Lúc này, phía browser sử dụng các kỹ thuật mã hoá công khai để chắc chắn rằng certificate và public ID của server là có giá trị và được cấp phát bởi một CA (certificate authority) trong danh sách các CA đáng tin cậy của client Điều này rất quan trọng đối với người dùng
Ví dụ: như khi gửi mã số credit card qua mạng thì người dùng thực
sự muốn kiểm tra liệu server sẽ nhận thông tin này có đúng là server
mà họ định gửi đến không
Xác thực Client:
Cho phép phía server xác thực được người sử dụng muốn kết nối Phía server cũng sử dụng các kỹ thuật mã hoá công khai để kiểm tra xem certificate và public ID của server có giá trị hay không và được cấp phát bởi một CA (certificate authority) trong danh sách các CA đáng tin cậy của server không Điều này rất quan trọng đối với các nhà cung cấp
Ví dụ: như khi một ngân hàng định gửi các thông tin tài chính mang
tính bảo mật tới khách hàng thì họ rất muốn kiểm tra định danh của người nhận
Mã hoá kết nối:
Trang 8 Tất cả các thông tin trao đổi giữa client và server được mã hoá trên đường truyền nhằm nâng cao khả năng bảo mật Điều này rất quan trọng đối với cả hai bên khi có các giao dịch mang tính riêng tư Ngoài ra, tất cả các dữ liệu được gửi đi trên một kết nối SSL đã được
mã hoá còn được bảo vệ nhờ cơ chế tự động phát hiện các xáo trộn, thay đổi trong dữ liệu ( đó là các thuật toán băm – hash algorithm)
1.3.2 Các thuật toán mã hóa dùng trong SSL
1.3.2.1 Giới thiệu chung:
Các thuật toán mã hoá (cryptographic algorithm hay còn gọi là cipher) là các hàm toán học được sử dụng để mã hoá và giải mã thông tin Giao thức SSL hỗ trợ rất nhiều các thuật toán mã hoá, được sử dụng để thực hiện các công việc trong quá trình xác thực server và client, truyền tải các certificates và thiết lập các khoá của từng phiên giao dịch (sesion key) Client và server có thể hỗ trợ các bộ mật mã (cipher suite) khác nhau tuỳ thuộc vào nhiều yếu tố như phiên bản SSL đang dùng, chính sách của công ty về độ dài khoá mà họ cảm thấy chấp nhận được - điều này liên quan đến mức độ bảo mật của thông tin, …
Các thuật toán được sử dụng trong giao thức SSL:
• DES (Data Encryption Standard): là một thuật toán mã hoá có chiều dài khoá là
56 bit
• 3-DES (Triple-DES): là thuật toán mã hoá có độ dài khoá gấp 3 lần độ dài khoá
trong mã hoá DES
• DSA (Digital Signature Algorithm): là một phần trong chuẩn về xác thực số
đang được được chính phủ Mỹ sử dụng
• KEA (Key Exchange Algorithm):là một thuật toán trao đổi khoá đang được
chính phủ Mỹ sử dụng
• MD5 (Message Digest algorithm): được phát thiển bởi Rivest
Trang 9• RSA: là thuật toán mã hoá công khai dùng cho cả quá trình xác thực và mã hoá dữ
liệu được Rivest, Shamir, and Adleman phát triển
• RSA key exchange: là thuật toán trao đổi khoá dùng trong SSL dựa trên thuật
Và thuật toán được sử dụng phổ biến là RSA key exchange
Các phiên bản SSL 2.0 và SSL 3.0 hỗ trợ cho hầu hết các bộ mã hoá Người quản trị có thể tuỳ chọn bộ mã hoá sẽ dùng cho cả client và server Khi một client và server trao đổi thông tin trong giai đoạn bắt tay (handshake), họ sẽ xác định bộ mã hoá mạnh nhất có thể và sử dụng chúng trong phiên giao dịch SSL
1.3.2.2 Bộ mã hóa sử dụng thuật toán phổ biến RCA:
Đây là danh sách các bộ mã hoá được hỗ trợ trong SSL mà sử dụng thuật toán trao đổi khoá RSA và được liệt kê theo khả năng bảo mật từ mạnh đến yếu
• Mạnh nhất
o Thuật toán mã hoá 3- DES, thuật toán xác thực SHA-1
• Mạnh
o Thuật toán mã hoá RC4 (với độ dài khoá 128 bit), thuật toán xác thực MD5
o Thuật toán mã hoá RC2 (với độ dài khoá 128 bit), thuật toán xác thực MD5
o Thuật toán mã hoá DES (với độ dài khoá 56 bit), thuật toán xác thực SHA –
1
• Tương đối mạnh
Trang 10o Thuật toán mã hoá RC4 (với độ dài khoá 40 bit), thuật toán xác thực MD5
o Thuật toán mã hoá RC2 (với độ dài khoá 40 bit), thuật toán xác thực MD5
• Yếu nhất
o Không mã hoá thông tin, chi dùng thuật toán xác thực MD5
Chú ý:Khi nói các thuật toán mã hoá RC4 và RC2 có độ dài khoá mã hoá là 40 bit thì thực chất độ dài khoá vẫn là 128 bit nhưng chỉ có 40 bit được dùng để mã hoá
1.4 Một số ứng dụng của SSL
Trong thực tiễn, sự hiểu biết của người sử dụng về cơ chế bảo mật được "sắp đặt" trong các giao dịch điện tử trên mạng Internet là ít ỏi và mờ Tất cả phần lớn dựa vào sự tin tưởng (trust), chẳng hạn tên tuổi của các hãng uy tín (VisaCard, MasterCard, ) va sản phẩm có tính nǎng tốt của các hãng nổi tiếng (Oracle, Microsoft, Netscape, )
Bảo mật và an tàn là vấn đề quan trọng trong việc quyết định sự phát triển mạnh mẽ thương mại điện tử hoặc hiện nay như chính phủ điện tử (e-government) và tạo lòng tin cho khách hàng và công chúng
Trong các giao dịch điện tử trên mạng và trong các giao dịch thanh toán trực tuyến, thông tin/dữ liệu trên môi trường mạng Internet không an toàn thường được bảo đảm bởi cơ chế
Trang 11bảo mật thực hiện trên tầng vận tải có tên Lớp cổng bảo mật SSL (Secure Socket Layer) - một giải pháp kỹ thuật hiện nay được sử dụng khá phổ biến trong các hệ điều hành mạng máy tính trên Internet SSL là giao thức đa mục đích được thiết kế để tạo ra các giao tiếp giữa hai chương trình ứng dụng trên một cổng định trước (socket 443) nhằm mã hoá toàn
bộ thông tin đi/đến, được sử dụng trong giao dịch điện tử như truyền số liệu thẻ tín dụng, mật khẩu, số bí mật cá nhân (PIN) trên Internet
Giao thức SSL được hình thành và phát triển đầu tiên nǎm 1994 bởi nhóm nghiên cứu Netscape dẫn dắt bởi Elgammal, và ngày nay đã trở thành chuẩn bảo mật thực hành trên mạng Internet
1.4.1 Ứng dụng công nghệ xác thực máy chủ ssl trong giao dịch thương mại điện tử:
Một khách hàng làm quen với Website và truy nhập một địa chỉ URL an toàn, được đảm bảo bằng mã số máy chủ Điều này có thể là một mẫu đơn đặt hàng trực tuyến thu thập những thông tin cá nhân từ khách hàng như địa chỉ, số điện thoại, số thẻ tín dụng hoặc các thông tin thanh toán khác
Trình duyệt của khách hàng tự động truyền cho máy chủ số phiên bản SSL của trình duyệt đó, các cài đặt mật mã, các dữ liệu được sinh ngẫu nhiên, và những thông tin khác mà máy chủ đó cần để giao tiếp với khách hàng sử dụng SSL
Máy chủ trả lời, tự động truyền tới trình duyệt của người sử dụng xác nhận số của Website cùng với số phiên bản SSL của máy chủ, các thiết lập mật mã
Trình duyệt của người sử dụng xem xét các thông tin chứa trong xác nhận máy chủ đó và xác nhận rằng: Xác nhận máy chủ đó có giá trị và còn trong thời hạn sử dụng;
Cơ quan chức năng xác thực CA cho máy chủ này có quyền được ký và là một cơ quan xác thực tin cậy, xác thực của cơ quan này được liệt kê sẵn trong trình duyệt đang sử dụng; Khoá công cộng của CA này được cài đặt sẵn trong trình duyệt đang sử dụng, xác nhận tính hợp lệ của chữ ký điện tử của người cung cấp; Tên miền được chỉ định bằng
Trang 12xác thực máy chủ khớp với tên miền thực của máy chủ đó Nếu máy chủ này không được xác thực, người sử dụng sẽ được cảnh báo rằng một kết nối được mã hoá, được xác thực
có thể không thiết lập được
Nếu máy chủ đó được xác thực thành công, trình duyệt Web của khách hàng này
sẽ tạo ra một khoá phiên (session key) duy nhất để mã hoá tất cả các giao tiếp với Website đó bằng việc sử dụng mã hoá không đối xứng
Trình duyệt của người sử dụng tự mã hoá khoá phiên đó bằng khoá công cộng của site sao cho chỉ site đó mới có thể đọc được khoá phiên đó, rồi gửi nó tới máy chủ
Máy chủ giải mã cho khoá phiên đó bằng việc sử dụng khoá cá nhân của chính nó
Trình duyệt gửi một thông điệp tới máy chủ thông báo cho máy chủ biết rằng các thông điệp tiếp sau đó từ khách hàng sẽ được mã hoá bằng khoá phiên đó
Máy chủ sau đó gửi một thông điệp tới khách hàng thông báo với khách hàng rằng các thông điệp tiếp sau từ máy chủ sẽ được mã hoá bằng khóa phiên đó
Một phiên giao dịch an toàn SSL bây giờ đã được thiết lập Giao thực máy chủ SSL sau đó sử dụng mã hoá đối xứng để mã hoá và giải mã thông điệp bên trong phiên giao dịch an toàn SSL này
Một phiên giao dịch kết thúc, khoá phiên sẽ được vô hiệu hoá
Tất cả quá trình trên diễn tự động trong vài giây, chính vì thế mà giao thức xác thực máy chủ SSL giúp cho các giao dịch điện tử này được thực hiện trực tuyến, an toàn; đồng thời nó cũng không gây ra bất cứ phiền toái nào cho người sử dụng, tạo điệu kiện cho việc mở rộng các ứng dụng TMĐT
1.4.2 Ứng dụng của SSL trong chứng chỉ số, chữ ký số:
SSL Certificates - Chứng chỉ số có vai trò rất quan trọng trong các giao dịch trực tuyến như: đặt hàng, thanh toán, trao đổi thông tin, đặc biệt là trong các lĩnh vực
Trang 13thương mại điện tử, sàn giao dịch vàng và chứng khoán, ngân hàng điện tử, chính phủ điện tử Khi được sử dụng, mọi dữ liệu trao đổi giữa người dùng và website sẽ được mã hóa (ở phía người gửi) và giải mã (ở phía người nhận) bởi cơ chế SSL mạnh mẽ nhất hiện nay
Nếu Website không sử dụng chứng chỉ số, mọi dữ liệu sẽ được truyền đi nguyên bản Khi đó, nguy cơ dữ liệu bị xâm nhập trong quá trình trao đổi dữ liệu giữa người gửi và người nhận sẽ rất cao Một hậu quả trước mắt là khách hàng sẽ không tin tưởng, và dẫn đến không sử dụng dịch vụ của website đó Hậu quả lớn hơn nữa là kẻ gian sẽ tận dụng cơ hội này để lấy hếtthông tin khách hàng, thông tin kinh doanh của website và xa hơn, kẻ gian có thể ăn cắp thông tin trên thẻ tín dụng của khách để sử dụng bất hợp pháp
VeriSign® là thương hiệu uy tín nhất trên toàn thế giới hiện nay trong lĩnh vực cung cấp chứng chỉ số Một website có gắn biểu tượng "VeriSign Secured Seal" sẽ gia tăng mức độ tin cậy từ phía khách hàng lên rất nhiều lần Tại thị trường Việt Nam, chúng tôi là đơn vị cung cấp các giải pháp bảo mật của VeriSign trong lĩnh vực cung cấp chứng chỉ số - chứng thực số với khả năng mã hóa dữ liệu tốt nhất
và độ tin cậy cao nhất
Chứng chỉ số SSL Server sẽ cho phép bạn lập cấu hình Website của mình theo giao thức bảo mật SSL (Secure Sockets Layer) Loại chứng chỉ số này sẽ cung cấp cho Website của bạn một định danh duy nhất nhằm đảm bảo với khách hàng của bạn về tính xác thực và tính hợp pháp của Website Chứng chỉ số SSL Server cũng cho phép trao đổi thông tin an toàn và bảo mật giữa Website với khách hàng, nhân viên và đối tác của bạn thông qua công nghệ SSL mà nổi bật là các tính năng:
• Thực hiện mua bán bằng thẻ tín dụng
• Bảo vệ những thông tin cá nhân nhạy cảm của khách hàng
• Đảm bảo hacker không thể dò tìm được mật khẩu
Giao thức SSL (Secured Socket Layer) và Chứng thực số là giải pháp bảo vệ thông tin cá nhân của người dùng trong quá trình trao đổi dữ liệu trên môi trường
Trang 14mạng, đồng thời đảm bảo sự tin cậy của những thông tin trên website người dùng truy cập, từ đó xóa bỏ đi rào cản về nguy cơ lộ thông tin cá nhân, giúp người dùng yên tâm thực hiện các giao dịch trên mạng, giúp doanh nghiệp phát huy được hết các tiềm năng của website mình
Giải pháp chứng thực ssl của Vsign
• Trên cơ sở nghiên cứu nhu cầu của doanh nghiệp, của người sử dụng mạng, VSign cung cấp dịch vụ chứng thực SSL cho các doanh nghiệp kinh doanh thương mại điện tử
o Khi đăng ký sử dụng dịch vụ chứng thực số SSL VSign sẽ cấp cho khách hàng một chứng chỉ số SSL Mỗi chứng chỉ SSL chứa đựng thông tin của duy nhất một khách hàng mà danh tính của họ đã được xác thực
và một cặp khóa bao gồm một khóa bí mật và một khóa công khai Khóa công khai dùng để mã hóa dữ liệu và khóa bí mật dùng để giải mã thông tin
o Khi web browser truy cập đến phần dữ liệu đã được mã hóa, Client (web browser) sẽ phát sinh ra một Session Key ngẫu nhiên và yêu cầu Server gửi Chứng thực SSL Sau đó Client sẽ kiểm tra tính hợp lệ của Chứng thực SSL Nếu Chứng thực SSL của Server hợp lệ, Client sẽ mã hóa Session Key bằng Public Key Client gửi Session Key đã được mã hóa cho Server Sau đó, Server giải mã Session Key bằng Private Key
Do đó, các luồng thông tin được truyền giữa client và server được bảo đảm an toàn tuyệt đối
• Giao thức SSL được thiết kế độc lập với tầng ứng dụng để đảm bảo tính bí mật, an toàn và chống giả mạo luồng thông tin qua internet giữa hai ứng dụng bất kỳ Khi khách hàng truy cập vào website sử dụng dịch vụ chứng thực SSL của VSign thì trên thanh địa chỉ sẽ xuất hiện biểu tượng ổ khóa SSL Click chuột vào biểu tượng ổ khóa, các thông tin về doanh nghiệp được VSign chứng
Trang 15thực sẽ hiện thị Nếu các thông tin không phù hợp với chứng chỉ, browser sẽ hiện thị thông báo lỗi hoặc một khuyến cáo để người dùng cảnh giác.
• Trước khi cung cấp dịch vụ chứng thực SSL cho website, VSign sẽ tiến hành xác thực các thông tin sau:
o Sự tồn tại của doanh nghiệp xin cấp chứng thực về mặt pháp lý
o Định danh chính xác của doanh nghiệp xin cấp chứng thực và các thông tin liên quan (bao gồm địa chỉ, số điện thoại, …)
o Mã số đăng ký tại các cơ quan nhà nước (ví dụ số giấy phép đăng ký kinh doanh)
o Quyền sử dụng tên miền
1.4.3 Giải pháp máy ảo chuyên dụng SSL:
Ứng dụng mạng riêng ảo sử dụng SSL (SSL VPN)
• SSL VPN có thể hiểu đơn giản là công nghệ kết nối mạng riêng ảo sử dụng các giao thức kết nối bảo mật và mã hoá thông tin, đảm bảo tính riêng biệt trên môi trường Internet chung
• Ứng dụng mạng riêng ảo sử dụng SSL cho phép người dùng truy cập từ xa vào mạng lưới của công ty bất kỳ lúc nào, SSL hỗ trợ các trình duyệt web chuẩn như là IE, FireFox, Đối với người dùng là những văn phòng nhỏ hoặc những người sử dụng điện thoại để truy cập vào những ứng dụng nội
bộ và chia sẽ tập tin nội bộ Vigor2930 cho phép chúng ta thiết lập tối đa 30 phiên SSL
Ứng dụng mạng riêng ảo và tường lửa (VPN & Firewall)
• Cơ chế kiển soát trạng thái gói tin(SPI Firewall) có thể giúp bạn thiết lập các chính sách cho tường lửa của bạn dễ dàng, tính năng SCM cho phép bạn kiểm soát truy cập một cách chính xác và hiệu quả hơn với các ứng dụng IM và P2P Bên cạnh đó với tính năng chống tấn công từ chối dịch
Trang 16vụ(DoS / DDoS) và lọc các nội dung của trang web nhằm giảm thiểu các mối đe doạ từ bên trong và bên ngoài trang web.
• Với việc hỗ trợ chipset mã hoá VPN bằng phần cứng ngay trên thiết bị, Vigor2930VS hỗ trợ tối đa 100 VPN với các giao thức cao cấp như IPSec / PPTP / L2TP / L2TP over IPSec with AES / DES / 3DES for encryption and MD5 / SHA-1 for authentication
1.4.4 Ứng dụng SSL VPN dành cho ISP:
Giải pháp SSL VPN SA 6000 SP cho phép các ISP cung cấp những giải pháp truy cập từ xa và truy cập extranet, dịch vụ phục hồi sau thảm họa và dịch vụ bảo mật LAN Intranet - VoIP WLAN tới các khách hàng doanh nghiệp trên toàn cầu Quan trọng hơn cả, đó là những giải pháp không đòi hỏi chi phí cao, nhưng vẫn đảm bảo công nghệ bảo mật hàng đầu và tính chuyên dụng của sản phẩm, đáp ứng nhu cầu của các doanh nghiệp vừa và nhỏ, vốn rất quan tâm tới chi phí đầu tư
Khi ISP triển khai các dịch vụ SSL VPN này, những người dùng được cấp phép của khách hàng sử dụng dịch vụ đều có quyền truy cập bảo mật tới mọi tài nguyên mạng từ bất cứ một kết nối Internet và trình duyệt Web chuẩn nào, như máy tính cá nhân, máy tính xách tay và các thiết bị di động Người dùng cuối không còn bị ràng buộc sử dụng các thiết bị cụ thể, cũng như không phải làm việc ở những vị trí cố định nào Không như các mạng riêng ảo IPSec trước kia, khách hàng của ISP không cần một máy khách (client) để có thể truy cập
từ xa – cho phép tăng sự linh động và gia tăng hiệu suất khai thác hệ thống
SSL VPN cũng sẽ là một trong những dịch vụ quan trọng giúp các ISP đa dạng hoá sản phẩm của mình, khai thác tiềm năng rất lớn của dịch vụ mạng bảo mật dành cho doanh nghiệp vừa và nhỏ"
Trang 17CHƯƠNG II: CẤU TRÚC VÀ CÁC GIAO THỨC
Để làm được điều này người ta đã ứng dụng giao thức SSL để bảo vệ các dữ liệu trong quá trình trao đổi giữa tất cả các dịch vụ mạng sử dụng TCP/IP để hỗ trợ các tác vụ truyền thông mạng giữa máy chủ và máy khách
Giao thức SSL đầu tiên do Netscape phát triển, mục đích để bảo mật dữ liệu gửi/nhận trên Internet của các giao thức thuộc lớp ứng dụng như HTTP, LDAP hay POP3
SSL sử dụng giao thức TCP để cung cấp các kết nối bền vững, bảo mật và được xác thực giữa các điểm cuối với nhau (ví dụ như giữa client và server) Mặc dù có thể sử
Trang 18dụng SSL để bảo vệ dữ liệu liên quan đến bất kỳ dịch vụ nào, nhưng SSL chủ yếu được dùng trong các ứng dụng HTTP (server và client) Ngày nay hầu hết các HTTP server đều hỗ trợ các phiên SSL, ở phía client các trình duyệt Internet Explorer và Netscape Navigator đều hỗ trợ SSL.
Hình 2.1: SSL giữa tầng ứng dụng và tầng TCP/IP
2.1.1.1 Nhiệm vụ và cấu trúc của SSL:
Những mục đích chính của việc phát triển SSL là:
• Xác thực server và client với nhau: SSL hỗ trợ sử dụng các kỹ thuật mã hoá
khoá chuẩn (mã hoá sử dụng khoá công khai) để xác thực các đối tác truyền thông với nhau Hầu hết các ứng dụng hiện nay xác thực các client bằng cách sử dụng chứng chỉ số, SSL cũng có thể sử dụng phương pháp này để xác thực client
• Đảm bảo toàn vẹn dữ liệu: trong một phiên làm việc, dữ liệu không thể bị làm
hỏng dù vô tình hay cố ý
• Bảo vệ tính riêng tư: dữ liệu trao đổi giữa client và server phải được bảo vệ,
tránh bị đánh cắp trên đường truyền và chỉ có đúng người nhận mới có thể đọc được các dữ liệu đó Các dữ liệu được bảo vệ bao gồm các những dữ liệu liên quan đến chính hoạt động giao thức (các thông tin trao đổi trong quá trình thiết lập phiên làm việc SSL) và các dữ liệu thực trao đổi trong phiên làm việc
Trang 19Thực tế SSL không phải là một giao thức đơn mà là một bộ các giao thức, có thể được chia làm 2 lớp:
1 Giao thức đảm bảo sự an toàn và toàn vẹn dữ liệu: lớp này chỉ có một giao thức là
SSL Record Protocol
2 Các giao thức thiết kế để thiết lập kết nối SSL: lớp này gồm có 3 giao thức: SSL
Handshake Protocol, SSL ChangeCipherSpecProtocol và SSL Alert Protocol
Hình 2.2: Các lớp giao thức SSL
SSL sử dụng các giao thức này để thực hiện các nhiệm vụ được đề cập ở trên
• SSL Record Protocol chịu trách nhiệm mã hoá và đảm bảo toàn vẹn dữ liệu Như
ta thấy trong hình 2.2, giao thức này còn chịu trách nhiệm đóng gói các dữ liệu của các giao thức SSL khác tức là cũng liên quan đến các tác vụ kiểm tra dữ liệu SSL
• Ba giao thức còn lại chịu trách nhiệm quản lý các phiên, quản lý các tham số mã hoá và truyền các thông điệp SSL giữa client và server
2.1.1.2 Phiên SSL và kết nối SSL:
Các khái niệm đề cập ở trên là các khái niệm cơ bản của công nghệ SSL Ngoài ra còn có rất nhiều thuộc tính khác của SSL mà chúng ta sẽ xem xét ở đây:
Trang 20• Connection (kết nối): là một liên kết client/server logic với những kiểu dịch vụ thích
hợp SSL connection là một kết nối điểm nối điểm giữa 2 nút mạng
• Session (phiên): là một sự kết hợp giữa một client và một server xác định bằng một bộ
các tham số ví dụ thuật toán sẽ sử dụng, số hiệu phiên v.v Khi một phiên SSL giữa một client và một server được thiết lập bằng giao thức SSL Handshake Protocol thì tất cả các kết nối sau này được thiết lập giữa cặp server/client đó sẽ sử dụng chung bộ tham số đó
mà không phải tiến hành thoả thuận lại Điều đó có nghĩa là trong một phiên SSL giữa một client và một server có thể có nhiều kết nối giữa client và server đó Về lý thuyết cũng có thể có nhiều phiên SSL dùng chung một kết nối, nhưng trên thực tế không sử dụng đến khả năng này
Khái niệm phiên và kết nối SSL liên quan đến nhiều tham số sử dụng trong truyền thông hỗ trợ SSL giữa client và server Trong quá trình thoả thuận của giao thức handshake ngoài việc chọn các phương pháp mã hoá dữ liệu thì một loạt các tham số của Session State cũng được chọn, Session State bao gồm:
Bảng 2.3 Các thành phần thông tin trạng thái Session SSL
Thành Phần Mô tả
Session ID
1 chuỗi byte bất kì được chọn bởi server để nhận dạng trạng thái phiên là hoạt động
(active) hay phục hồi lại (resumable)
Peer certificate Một chứng chỉ X509.v3.Thành phần này của trạng thái có
thể là null
Compression
method Thuật toán dừng để nén dữ liệu trước khi mã hóa
Cipher spec Chỉ ra thuật toán mã hóa dữ liệu (như rỗng,AES…) và
thuật toán băm (như MD5 hay SHA-1) sử dụng để tính
Trang 21toán MAC.Nó cũng định nghĩa các thuộc tính mã hóa như hash-size.
Master secret Khóa mật 48-byte được chia sẻ giữa client và server
Is resumable Một cờ chỉ ra rằng phiên này có thể được dùng để khởi tạo
các kết nối khác hay không
Sequence Mỗi phía duy trì các số chuỗi riêng biệt cho các thông báo
Trang 22number được truyền và được nhận cho mỗi nối kết.
Ở trong hai trường hợp, điều quan trọng cần lưu ý là các phía giao tiếp phải
sử dụng nhiều session SSL đồng thời và các session có nhiều nối kết đồng thời
2.1.2 Cách thức hoạt động của giao thức SSL:
Việc trao đổi trên mạng sử dụng SSL bắt đầu với việc trao đổi thông tin qua lại giữa client và server.Sự trao đổi thông tin này gọi là SSL handshake
Ba mục tiêu chính của SSL handshake là:
2.1.2.2 Xác thực Server:
Trong SSL, bước xác thực là tùy chọn, nhưng trong ví dụ về giao tác commerce trên Web, client theo thông thường sẽ muốn xác thực server.Việc xác thực server cho phép client chắc chắn rằng chính server này đại diện cho đối tượng mà client tin tưởng
e-Để chứng minh server thuộc về tổ chức mà nó khẳng định là nó đại diện, server phải trình chứng chỉ khóa công khai của nó cho client Nếu chứng chỉ này là
Trang 23hợp lệ , client có thể chắc chắn về định danh của server.
Thông tin trao đổi qua lại giữa client và server cho phép chúng thỏa thuận 1 khóa bí mật chung Ví dụ,với RSA, client dùng khóa công khai của server, có được
từ chứng chỉ khóa công khai, để mã hóa thông tin khóa bí mật Client gửi thông tin khóa bí mật đã được mã hóa đến server Chỉ có server mới có thể giải mã cái message này bởi vì quá trình giải mã phải cần đến khóa riêng của server
2.1.2.3 Gửi dữ liệu đã mã hóa:
Bây giờ, cả client và server có thể truy cập đến khóa bí mật chung.Với mỗi message , chúng dùng đến hàm băm mã hóa, đã được chọn trong bước thứ nhất của tiến trình này, và chia sẻ thông tin bí mật,để tính toán 1 HMAC nối thêm vào message Sau đó, chúng dùng khóa bí mật và thuật toán khóa bí mật đã được đàm phán ở bước đầu tiên của tiến trình này để mã hóa dữ liệu và HMAC an toàn Client
và server giờ đây có thể trao đổi thông tin với nhau 1 cách an toàn với các dữ liệu đã băm và mã hóa
2.1.2.4 Tiến trình SSL:
Hình sau minh họa chuỗi tuần tự các message được trao đổi trong SSL handshake Các message mà chỉ được gửi trong 1 trường hợp nào đó được đánh dấu là tùy chọn
Trang 24Hình 2.5: Các message SSL
Các message SSL được gửi theo thứ tự sau:
1) Client hello: client gửi đến server các thông tin bao gồm phiên bản SSL cao nhất
và 1 danh sách các cipher suite mà nó hỗ trợ (TLS 1.0 được chỉ ra như là SSL3.1).Thông tin cipher suite bao gồm các thuật toán mã hóa và kích thước khóa
2) Server hello: server chọn ra phiên bản SSL cao nhất và cipher suite tốt nhất mà
cả client và server hỗ trợ, và gửi thông tin này về cho client
3) Certificate: server gửi cho client 1 chứng chỉ hoặc 1 chuỗi chứng chỉ.Về cơ
bản,1 chuỗi chứng chỉ bắt đầu bằng chứng chỉ khóa công khai của server và kết thúc bằng chứng chỉ gốc của tổ chức có thẩm quyền chứng chỉ.Message này là tùy
Trang 25chọn,nhưng nó được dùng bất cứ khi nào xác thực server là cần thiết.
4) Certificate request: nếu server cần xác thực client,nó gửi cho client 1 yêu cầu
xem chứng chỉ.Trong các ứng dụng internet,message này hiếm khi được gửi đi
5) Server key exchange: server gửi cho client 1 message trao đổi khóa server trong
khi khóa công khai được gửi ở phần 3) bên trên thì không đủ cho trao đổi khóa
6) Server hello done: server nói với client rằng nó hoàn thành các message đàm
phán ban đầu
7) Certificate: nếu server cần chứng chỉ từ client trong message 4, client gửi
chuỗi chứng chỉ của nó,cũng giống như server làm trong message 3
8) Client key exchange: client sinh ra thông tin được dùng để tạo ra khóa trong
mã hóa đối xứng.Với RSA, client mã hóa thông tin khóa này bằng khóa công khai của server rồi gửi nó đến server
9) Certificate verify: message này được gửi khi client trình ra chứng chỉ như
trên.Mục tiêu của nó là cho phép server hoàn thành tiến trình xác thực client.Khi message này được dùng,client gửi thông tin với chữ kí số tạo bằng hàm băm mã hóa.Khi server giải mã thông tin này bằng khóa công khai của client,server có thể xác thực client
10) Change cipher spec: client gửi message bảo server thay đổi kiểu mã hóa.
11) Finished: client nói với server rằng nó sẵn sàng để bắt đầu trao đổi dữ liệu an
toàn
12) Change cipher spec: server gửi message bảo client thay đổi kiểu mã hóa.
13) Finished: server nói với client rằng nó sẵn sàng để bắt đầu trao đổi dữ liệu an
toàn.Kết thúc SSL handshake
14) Encrypted data: client và server trao đổi với nhau,sử dụng thuật toán mã hóa đối
Trang 26xứng và hàm băm mã hóa đã đàm phán ở message 1 và 2,và dùng khóa bí mật mà client gửi cho server trong message 8.
15) Closed messages : Kết thúc 1kết nối,mỗi bên gửi 1 message close-notify để
thông báo đầu kia biết kết nối bị đóng
Nếu các tham số được sinh ra trong 1 phiên SSL được lưu lại,các tham số này có thể thỉnh thoảng được dùng lại cho các phiên SSL sau.Việc lưu lại các tham số phiên SSL cho phép các trao đổi bảo mật về sau được bắt đầu nhanh chóng hơn
2.1.2.5 Lựa chọn Cipher suite và xóa Entuty verification:
Giao thức SSL định nghĩa 1 chuỗi các bước đặc biệt để bảo đảm 1 kết nối
“được bảo vệ”.Tuy nhiên,việc lựa chọn Cipher suite sẽ tác động trực tiếp đến loại bảo mật mà kết nối có được.Ví dụ, nếu 1 cipher suite nặc danh được chọn, ứng dụng không có cách nào để kiểm tra định danh của đầu xa Nếu 1 suite-không có mã hóa, được chọn, tính bí mật của dữ liệu không thể được bảo vệ
Thêm vào đó, giao thức SSL không chỉ rõ rằng những tài liệu chứng nhận nhận được phải khớp với những cái mà đầu kia gửi Nếu kết nối theo cách nào đó mà
bị redirect đến 1 kẻ xấu, nhưng tài liệu chứng nhận của kẻ xấu này khi trình ra thì được chấp nhận dựa trên những tư liệu tin tưởng hiện tại, kết nối này sẽ được xét là hợp lệ
Khi dùng SSLSockets nên luôn luôn kiểm tra tài liệu chứng nhận của đầu xa trước khi gửi bất kì dữ liệu nào Các lớp SSLSockets không tự động kiểm tra hostname
trong URL có khớp với hostname trong tài liệu chứng nhận của đầu kia hay không Một ứng dụng có thể bị khai thác bằng URL spoofing nếu hostname không được kiểm tra
Các giao thức như HTTPS cần thiết phải kiểm tra hostname.Các ứng dụng
có thể dùng HostnameVerifier để viết chồng lên luật hostname HTTPS mặc định
Trang 272.2 Các giao thức bảo mật của SSL
SSL là giao thức tầng (layered protocol), bao gồm 4 giao thức con sau:
+ Giao thức SSL Handshake
+ Giao thức SSL Change Cipher Spec
+ Giao thức SSL Alert
+ SSL Record Layer
2.2.1 Giao thức bản ghi (Record Protocol):
SSL Record Protocol sử dụng để trao đổi tất cả các kiểu dữ liệu trong một phiên, bao gồm các thông điệp, dữ liệu của các giao thức SSL khác và dữ liệu của ứng dụng
SSL Record Protocol liên quan đến việc bảo mật và đảm bảo toàn vẹn dữ liệu Mục đích của SSR Record Protocol là thu nhận những thông điệp mà ứng dụng chuẩn bị gửi, phân mảnh dữ liệu cần truyền, đóng gói, bổ xung header tạo thành một đối tượng gọi
là bản ghi (record), bản ghi đó được mã hoá và có thể truyền bằng giao thức TCP
Bước đầu tiên của quá trình chuẩn bị truyền dữ liệu là phân mảnh dữ liệu, tức là chia nhỏ dòng dữ liệu thành các mảnh kích thước 16KB (hoặc nhỏ hơn) Những mảnh dữ liệu này sau đó có thể được nén trước khi truyền Sau đó bắt đầu quá trình tạo các bản ghi cho mỗi đơn vị dữ liệu bằng cách bổ xung thêm header, một số byte cho đủ kích thước qui định của bản ghi nếu kích thước bản ghi chưa đủ và cuối cùng là phần MAC MAC (Message Authentication Code) là mã xác thực thông điệp sử dụng để khi phát dữ liệu trong các phiên SSL
Phần header của mỗi bản ghi chứa 2 thông tin quan trọng đó là độ dài của bản ghi
và độ dài của khối dữ liệu thêm vào phần dữ liệu gốc Phần dữ liệu của một bản ghi gồm:
• dữ liệu gốc
Trang 28• các byte bổ xung cho đủ kích thước gói tin qui định
• giá trị MAC
MAC được sử dụng để kiểm chứng sự toàn vẹn của thông điệp chứa trong bản ghi gửi cùng với MAC đó MAC là kết quả của một của một hàm băm theo một thuật toán băm được qui định trước (ví dụ MD5 hoặc SHA-1)
MAC được tính toán dựa trên việc áp dụng hàm băm trên các dữ liệu sau: khoá bí mật, dữ liệu gốc, phần thông tin bổ xung, số thứ tự
Khoá bí mật ở đây có thể là khoá ghi MAC của client (client write MAC secret) hoặc của server (server write MAC secret) tuỳ thuộc vào ai là người tạo gói tin
Sau khi nhận được một gói tin thì bên nhận tự tính lại giá trị MAC và so sánh với giá trị MAC chứa trong gói tin đó Nếu hai giá trị MAC đó giống nhau có nghĩa là dữ liệu không bị thay đổi trong quá trình truyền trên mạng Độ dài của trường MAC phụ thuộc vào phương pháp để tính ra nó Tiếp theo, phần dữ liệu cộng với MAC sẽ được mã hoá
sử dụng phương pháp mã hoá (đối xứng) đã thoả thuận trước ví dụ DES hoặc triple DES Như vậy là cả dữ liệu và MAC đều được mã hóa Phần dữ liệu đã được mã hoá đó được gắn thêm header bao gồm các trường sau:
• Kiểu nội dung (content type): xác định dữ liệu nào chứa trong gói tin để quyết
định xem giao thức nào ở lớp cao hơn sẽ chịu trách nhiệm xử lý dữ liệu của gói tin
đó Các giá trị có thể của trường này là: change_cipher_spec, alert, handshake và application_data tham chiếu đến các giao thức tương ứng ở mức cao hơn
• Phiên bản chính (major version): phần chỉ số chính của phiên bản SSL đang sử
dụng Ví dụ với SSL 3.0 thì giá trị trường này là 3
• Phiên bản phụ (minor version): phần chỉ số phụ của phiên bản SSL đang sử
dụng Ví dụ với SSL 3.0 thì giá trị trường này là 0
Trang 29Sau khi tính toán xong các trường này, bản ghi đã được tạo xong và sẵn sàng để gửi đến cho máy đích Toàn bộ quá trình chuẩn bị bản ghi trước khi gửi được mô tả trong hình 2.6.
Hình 2.6 : Quá trình tạo một bản ghi của SSL Record Protocol
• Bước đầu tiên là phân mảnh.Mỗi message của lớp bên trên được phân mảnh
thành các block ,mỗi block là 214 byte (16384 byte) hoặc ít hơn
Trang 30• Tiếp theo,nén được áp dụng 1 cách tùy chọn.Nén phải là không mất mát thông
tin và có thể không làm tăng chiều dài nội dung nhiều hơn 1024 byte (Dĩ nhiên, người ta mong muốn nén làm co lại dữ liệu hơn là nới rộng dữ liệu.Tuy nhiên, với những block ngắn, có thể, do định dạng quy ước, thuật toán nén thực sự làm cho output dài hơn input).Trong SSLv3 (cũng như phiên bản hiện tại của TLS), không có thuật toán nén nào được chỉ rõ, vì vậy thuật toán nén mặc định là null
• Bước xử lí kế tiếp là tính toán MAC (mã xác thực message) trên dữ liệu đã
được nén.Để thực hiện cần dùng đến 1 khóa bí mật được chia sẻ Phép tính được định nghĩa như sau:
hash(MAC_write_secret || pad_2 || hash(MAC_write_secret ||
pad_1 ||seq_num ||SSLCompressed.type || SSLCompressed.length
|| SSLCompressed.fragment))
trong đó:
|| : phép nối/hoặc
MAC_write_secret: khóa bí mật được chia sẻ.
hash: thuật toán băm mã hóa, MD5 hoặc SHA-1.
pad_1: byte 0x36 (0011 0110) được lặp lại 48 lần (384 bit) cho MD5 và 40 lần
(320 bit) cho SHA-1
pad_2: byte 0x5c (0101 1100) được lặp lại 48 lần cho MD5 và 40 lần cho
SHA-1
seq_num: sequence number cho message này
SSLCompressed.type: giao thức ở lớp trên được dùng để xử lí phân mảnh này.
SSLCompressed.length: chiều dài của phân mảnh đã được nén.
SSLCompressed.fragment: phân mảnh đã được nén (nếu nén không được dùng,
Trang 31phân mảnh ở dạng plaintext).
Chú ý rằng, cái này tương tự như thuật toán HMAC Điểm khác biệt là 2 phần đệm (pad) được || trong SSLv3 và được XOR trong HMAC.Thuật toán MAC trong SSLv3 được dựa trên bản phác thảo Internet ban đầu cho HMAC.Phiên bản gần nhất của HMAC được định nghĩa trong RFC 2104,sử dụng XOR
• Kế tiếp, message đã nén cộng thêm MAC được mã hóa theo phương pháp
• 3-DES (Triple-DES): là thuật toán mã hoá có độ dài khoá gấp 3 lần độ dài khoá
trong mã hoá DES
• DSA (Digital Signature Algorithm): là một phần trong chuẩn về xác thực số đang
được được chính phủ Mỹ sử dụng
• KEA (Key Exchange Algorithm) là một thuật toán trao đổi khoá đang được chính
phủ Mỹ sử dụng
Trang 32• MD5 (Message Digest algorithm) được phát thiển bởi Rivest
• RSA: là thuật toán mã hoá công khai dùng cho cả quá trình xác thực và mã hoá dữ
liệu được Rivest, Shamir, and Adleman phát triển
• RSA key exchange: là thuật toán trao đổi khoá dùng trong SSL dựa trên thuật toán
Các thuật toán trao đổi khoá như KEA, RSA key exchange được sử dụng
để 2 bên client và server xác lập khoá đối xứng mà họ sẽ sử dụng trong suốt phiên giao dịch SSL Và thuật toán được sử dụng phổ biến là RSA key exchange
Các phiên bản SSL 2.0 và SSL 3.0 hỗ trợ cho hầu hết các bộ mã hoá Người quản trị có thể tuỳ chọn bộ mã hoá sẽ dùng cho cả client và server Khi một client và server trao đổi thông tin trong giai đoạn bắt tay (handshake), họ sẽ xác định bộ mã hoá mạnh nhất có thể và sử dụng chúng trong phiên giao dịch SSL
Fortezza có thể được sử dụng trong mục tiêu mã hóa smart card
Với mã hóa stream (luồng),message đã nén cộng thêm MAC được mã hóa.Chú ý rằng MAC được tính toán trước khi mã hóa xảy ra và MAC được mã hóa cùng với plaintext hoặc là plaintext đã nén
Với mã hóa block (khối), MAC có thể được đệm thêm trước khi mã hóa.Phần đệm thêm (padding) có dạng gồm nhiều byte đệm được theo sau bởi 1 byte chỉ rõ chiều dài của phần đệm.Tổng số lượng đệm vào là lượng nhỏ nhất sao cho tổng kích thước dữ liệu được mã hóa (plaintext +MAC + padding) là 1 bội số của chiều dài khối mã hóa.Ví dụ, plaintext (hoặc text đã nén nếu nén được dùng) là 58 byte, với MAC là 20 byte (dùng SHA-1), được mã hóa với chiều dài block là 8 byte (như DES ).Cùng với byte padding.length ,nó sinh ra tổng cộng 79 byte.Để tạo ra 1 số