Tìm hiểu về lỗi liên quan đến chứng chỉ khi thực thi SSL
Trang 1Mục lục
Danh mục các từ viết tắt iii
Danh mục các bảng biểu và hình vẽ iii
Chương 1 1
Tìm hiểu tổng quan về Web và SSL 1
1.1 Giới thiệu chung về web 1
1.2 Tổng quan về SSL 1
1.2.1.Tổng quan về giao thức SSL 1
1.2.2 Lịch sử phát triển của giao thức SSL 2
1.2.3 Khái niệm về giao thức SSL 4
1.2.4 Cấu trúc của giao thức SSL 6
1.3 Tầm quan trọng của SSL Certificates (chứng chỉ số) 11
Chương 2 12
Cách thức làm việc của giao thức SSL 12
2.1 Hoạt động của giao thức SSL 12
2.2 Nhiệm vụ của SSL 18
2.3 Các giao thức con của SSL 20
2.3.1 Giao thức bản ghi (SSL Record Protocol) 20
2.3.2 Giao thức bắt tay (SSL Handshake Protocol) 25
2.4 Đánh giá 30
2.4.1 Ưu điểm 30
2.4.2 Nhược điểm 30
Chương 3 32
Các ứng dụng sử dụng SSL 32
3.1 Ứng dụng trong Internet Banking 32
3.2 Ứng dụng trong thương mại điện tử 33
Trang 2Chương 4 36
Lỗi liên quan đến chứng chỉ khi thực thi SSL 36
4.1 Web browser không nhận ra các chứng chỉ ký bởi một CA 36
4.2 Chứng chỉ hết hạn 42
Chương 5 43
Bảo mật website với SSL certificate của VeriSign.com 43
5.1 Tạo file Request Certificate 43
5.2 Xin SSL Certificate từ VeriSign.com 52
5.3 Cấu hình Trusted Root Certification Authority 62
5.4 Import SSL Certificate cho Web Server 70
5.5 Kiểm tra kết quả 77
*Tại sao lại sử dụng SSL Certificate của Verisign.com? 78
Kết luận: 85
TÀI LIỆU THAM KHẢO 87
Trang 3Danh mục các từ viết tắt
SSL: Secure Socket Layer
PIN: Personal identification number
HTTP: Hyper Text Transport Protocol
IMAP: Internet Messaging Access Protocol
FTP: File Transport Protocol
IANA: Internet Asigned Numbers Authority
CA: Certificate authority
MAC: Message Authentication Code
Danh mục các bảng biểu và hình vẽ
Hình 1.1 Vị trí của SSL trong mô hình TCP/IP
Hình 1.2 Cấu trúc của giao thức SSL/TLS
Hình 2.1 Từng bước thành lập một kết nối SSL
Hình 2.2 Kết nối SSL
Hình 2.3 Mô hình chung về SSL Record Protocol
Hình 2.4 Các trường trong SSL Record Protocol
Hình 2.5 Quá trình tạo một bản ghi của SSL Record Protocol
Hình 2.6 Các pha làm việc của SSL Handshake Protocol
Bảng 1.1 Các số cổng được gán cho các giao thức ứng dụng chạy trên TLS/SSL
Bảng 1.2 Các thành phần thông tin trạng thái Session SSL
Bảng 1.3 Các thành phần thông tin trạng thái nối kết SSL
Trang 4Lời nói đầu
Hiện nay, nước ta đang trong giai đoạn tiến hành công nghiệp hóa, hiện đại hóa đất nước Công nghệ thông tin được xem là ngành công nghiệp mũi nhọn được ưu tiên trong quá trình phát triển Tin học đã và đang đóng góp rất nhiều cho xã hội trong mọi mặt của đời sống xã hội
Cùng với sự phát triển mạnh mẽ của công nghệ thông tin thì thương mại điện
tử cũng đã có những bước phát triển mới đáp ứng yêu cầu phát triển của kinh tế thế giới Một vấn đề quan trọng trong thương mại điện tử đó là việc bảo vệ bí mật nội dung thông tin Ngày càng có nhiều phương tiện biện pháp ra đời phục
vụ cho quá trình bảo vệ thông tin Ngày nay, các ứng dụng mã hóa và bảo mật thông tin đang được sử dụng ngày càng phổ biến không chỉ trong thương mại điện tử mà trong rất nhiều các lĩnh vực khác nhau trên Thế giới, như các lĩnh vực
an ninh, quân sự, quốc phòng, v.v…
Ứng dụng mã hóa và bảo mật thông tin trong các hệ thống thương mại điện tử, giao dịch chứng khoán,… đã trở nên phổ biến trên thế giới và sẽ ngày càng trở nên quen thuộc với người dân Việt Nam Tháng 7/2000, thị trường chứng khoán lần đầu tiên được hình thành tại Việt Nam; các thẻ tín dụng bắt đầu được sử dụng, các ứng dụng hệ thống thương mại điện tử đang ở bước đầu được quan tâm và xây dựng Do đó, nhu cầu về các ứng dụng mã hóa và bảo mật thông tin trở nên rất cần thiết
Giao thức SSL ra đời đã đáp ứng được nhu cầu cầu bảo mật thông tin khi truyền trên kênh truyền công cộng SSL là các 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 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á
Trang 5Vì vậy, em xin làm về đề tài: “Tìm hiểu về lỗi liên quan đến chứng chỉ khi thực thi SSL” và từ đó đưa ra giải pháp tốt ưu nhất Đồ án: “Tìm hiểu về lỗi liên quan đến chứng chỉ khi thực thi SSL” bao gồm các nội dung chính sau:
Chương 1: Tìm hiểu tổng quan về Web và SSL
Chương 2: Cách thức làm việc của giao thức SSL
Chương 3: Tìm hiểu các ứng dụng sử dụng SSL
Chương 4: Lỗi liên quan đến chứng chỉ khi thực thi SSL
Chương 5: Bảo mật Web site với SSL Certificate của VeriSign.com
Trang 6Tuy đã hết sức cố gắng học tập theo sự chỉ dẫn của thầy giáo nhưng vì thời gian có hạn và kinh nghiệm trong việc tự nghiên cứu còn chưa phong phú, nên
đồ án không tránh khỏi nhiều sai sót Kính mong nhận được nhiều ý kiến đóng góp của các thầy cô giáo cùng các bạn sinh viên trong trường để đồ án của em ngày càng hoàn thiện hơn
Trang 7Chương 1 Tìm hiểu tổng quan về Web và SSL
1.1 Giới thiệu chung về web
Ngày nay, khi Internet được phổ biến rộng rãi, các tổ chức, cá nhân đều có nhu cầu giới thiệu thông tin của mình trên xa lộ thông tin cũng như thực hiện các phiên giao dịch trực tuyến Vấn đề này sinh là khi phạm vi ứng dụng của các ứng dụng web ngày càng mở rộng thì khả năng xuất hiện lỗi và bị tấn công càng cao, trở thành đối tượng cho nhiều người tấn công với các mục đích khác nhau Đôi khi, cũng chỉ đơn giản là để thử tài hoặc đùa giỡn với người khác
Cùng với sự phát triển không ngừng của Internet và các dịch vụ trên Internet,
số lượng các vụ tấn công trên Internet cũng tăng theo cấp số nhân Trong khi các phương tiện thông tin đại chúng ngày càng nhắc nhiều đến những khả năng truy cập thông tin của Internet, thì các tài liệu chuyên môn bắt đầu đề cập nhiều đến vấn đề đảm bảo và an toàn dữ liệu cho các máy tính được kết nối vào mạng Internet
Với những công cụ tự tìm lỗ hổng tuy giúp rất nhiều cho những nhà lập trình Web nhưng vẫn không thể ngăn chặn toàn bộ vì công nghệ Web đang phát triển nhanh chóng (chủ yếu chú trọng đến yếu tố thẩm mĩ, yếu tố tốc độ…) nên dẫn đến nhiều khuyết điểm mới phát sinh Sự tấn công không nằm trong khuôn khổ vài kĩ thuật đã phát hiện, mà linh động và tăng lên tùy vào những sai sót của nhà quản trị hệ thống cũng như của những người lập trình ứng dụng
1.2 Tổng quan về SSL
1.2.1.Tổng quan về giao thức 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 một cổng định trước (socket
Trang 8443) 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.
SSL được thiết kế như là một giao thức riêng cho vấn đề bảo mật có thể hỗ trợ cho rất nhiều ứng dụng Giao thức SSL hoạt động bên trên TCP/IP và bên dưới các giao thức ứng dụng tầng cao hơn như là HTTP (Hyper Text Transport
Protocol), IMAP ( Internet Messaging Access Protocol) và FTP (File Transport Protocol) Trong khi SSL có thể sử dụng để hỗ trợ các giao dịch an toàn cho rất nhiều ứng dụng khác nhau trên Internet, thì hiện nay SSL được sử dụng chính cho các giao dịch trên Web
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
+ Giao thức SSL Record Layer
Giao thức SSL record xác định các định dạng dùng để truyền dữ liệu Giao thức SSL handshake (gọi là giao thức bắt tay) sẽ sử dụng SSL record protocol để trao đổi một số thông tin giữa server và client vào lấn đầu tiên thiết lập kết nối SSL
1.2.2 Lịch sử phát triển của giao thức SSL
Ngày nay, việc mua bán, giao dich hàng trên mạng không còn gì là mới mẻ
nữa Có rất nhiều web site trên khắp thế giới có thể cho phép giao dịch thương
mại điện tử Giao dich trên mang tiếp tục phát triển không ngừng vì thế mà bảo mật cho các giao dịch trên mạng bắt đầu trở nên quan trọng trong kinh doanh, các tổ chức, các cá nhân
May mắn thay, một giao thức truyền tin mà được cung cấp bảo mật đã được
Trang 9vận chuyển nó có tầm quan trọng cao đối với sự bảo mật của các trình ứng dụng trên web đó là hai giao thức SSL/ TLS.
Nói chung, có một số khả năng để bảo vệ bằng mật mã lưu lượng dữ liệu HTTP Ví dụ, vào những năm 1990, tập đoàn CommerceNet đã đề xuất S-HTTP
mà về cơ bản là một cải tiến bảo mật của HTTP Một phần thực thi của S-HTTP
đã làm cho có sẵn công cộng trong một phiên bản được chỉnh sửa của trình duyệt Mosaic NCSA mà những người dùng phải mua (trái với trình duyệt Mo NCSA
"chuẩn" có sẵn công cộng và miễn phí trên Internet)
Tuy nhiên, cùng thời điểm Netscape Communication đã giới thiệu SSL và một giao thức tương ứng với phiên bản đầu tiên của Netscape Navigator, Trái với tập đoàn CommerceNet, Netscape Communications đã không tính phí các khách hàng của nó về việc thực thi giao thức bảo mật của nó Kết quả, SSL trở thành giao thức nổi bật để cung cấp các dịch vụ bảo mật cho lưu lượng dữ liệu HTTP
1994 và S-HTTP lặng lẽ biến mất
Sercure Socket Layer (SSL) hiện nay là giao thức bảo mật rất phổ biến trên Internet trong các hoạt động thương mại điện tử (E-Commerce) Việt Nam đang trên đường hội nhập với nền công nghệ thông tin thế giới, vì vậy các hoạt động giao dịch trên mạng ở Việt Nam cũng sẽ phát triển hơn, khi đó vấn đề bảo mật trở nên quan trọng, và việc triển khai SSL là điều cần thiết để bảo mật cho những công việc đó
Cho đến bây giờ, có ba phiên bản của SSL:
Trang 10bả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 SLL 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)
Thông số kỹ thuật mới nhất của SSL 3.0 đã được tung ra chính thức vào tháng 3 năm 1996 Nó được thực thi trong tất cả các trình duyệt chính bao gồm
ví dụ Microsoft Internet Explorer 3.0 (và các phiên bản cao hơn), Netscape Navigator 3.0 (và các phiên bản cao hơn), và Open SSL 3.0 đã được điều chỉnh bởi IETF TLS WG Thực tế, thông số kỹ thuật giao thức TLS 1.0 dẫn xuất từ SSL3.0
1.2.3 Khái niệm về giao thức SSL
Trang 11Hình 1.1: Vị trí của SSL trong mô hình TCP/IPGiao 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ã hoá: đả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
Toà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
Trang 121.2.4 Cấu trúc của giao thức SSL
Cấu trúc của SSL và giao thức SSL tương ứng được minh họa trong hình 1.2 (Cấu trúc SSL và giao thức SSL) Theo hình này, SSL ám chỉ một lớp (bảo mật) trung gian giữa lớp vận chuyển (Transport Layer) và lớp ứng dụng (Application Layer)
SSL được xếp lớp lên trên một dịch vụ vận chuyển định hướng nối kết và đáng tin cậy, chẳng hạn như được cung cấp bởi TCP Về khả năng, nó có thể cung cấp các dịch vụ bảo mật cho các giao thức ứng dụng tùy ý dựa vào TCP chứ không chỉ HTTP
Hình 1.2: Cấu trúc của giao thức SSL/TLSTóm lại, Giao thức SSL cung cấp sự bảo mật truyền thông vốn có ba đặc tính
Trang 13- Tính xác thực và tính toàn vẹn của lưu lượng dữ liệu cũng được bảo vệ vì các thông báo được xác thực và được kiểm tra tính toàn vẹn một cách trong suốt bằng cách sử dụng MAC.
Tuy nhiên, điều quan trọng cần lưu ý là SSL không ngăn các cuộc tấn công phân tích lưu lượng Ví dụ, bằng cách xem xét các địa chỉ IP nguồn và đích không được mã hóa và các sô cổng TCP, hoặc xem xét lượng dữ liệu được
truyền, một người phân tích lưu lượng vẫn có thể xác định các bên nào đang tương tác, các loại dịch vụ đang được sử dụng, và đôi khi ngay cả dành được
thông tin về các mối quan hệ doanh nghiệp hoặc cá nhân Hơn nữa, SSL không
ngăn các cuộc tấn công có định hướng dựa vào phần thực thi TCP, chẳng hạn như các cuộc tấn công làm tràn ngập TCP SYN hoặc cưỡng đoạt session
Để sử dụng sự bảo vệ SSL, cả client lẫn server phải biết rằng phía bên kia đang sử dụng SSL Có ba khả năng để giải quyết vấn đề này:
- Sử dụng các số cổng chuyên dụng được dành riêng bởi Internet Asigned Numbers Authority (IANA) Trong trường hợp này, một số cổng riêng biệt phải được gán cho mọi giao thức ứng dụng vốn sử dụng SSL
- Sử dụng số cổng chuẩn cho mọi giao thức ứng dụng và để thương lượng các tùy chọn bảo mật như là một phần của giao thức ứng dụng (bây giờ được chỉnh sửa đôi chút)
- Sử dụng một tùy chọn TCP để thương lượng việc sử dụng một giao thức bảo mật, chẳng hạn như SSL trong suốt giai đoạn thiết lập nối kết TCP thông thường
Sự thương lượng dành riêng cho ứng dụng của các tùy chọn bảo mật (nghĩa là khả năng thứ hai) có khuyết điểm là đòi hỏi mọi giao thức ứng dụng được chỉnh sửa để hiểu tiến trình thương lượng Ngoài ra, việc xác định một tùy chọn TCP (nghĩa là khả năng thứ ba) là một giải pháp tốt, nhưng đó không được thảo luận nghiêm túc cho đến bây giờ Thực tế, các số cổng riêng biệt đã được dành riêng
và được gán bởi IANA cho mọi giao thức ứng dụng vốn có thể chạy trên SSL hoặc TLS (nghĩa là khả năng thứ nhất) Tuy nhiên, hãy chú ý việc sử dụng các số
Trang 14cổng riêng biệt cũng có khuyết điểm là đòi hỏi hai nối kết TCP nếu client không biết những gì mà server hỗ trợ Trước tiên, client phải nối kết với cổng an toàn
và sau đó với cổng không an toàn hay ngược lại Rất có thể các giao thức sau này
sẽ hủy bỏ phương pháp này và tìm khả năng thứ hai Ví dụ, SALS (Simple
Authentication và Security Layer) xác định một phù hợp để thêm sự hỗ trợ xác
thực vào các giao thức ứng dụng dựa vào kết nối Theo thông số kỹ thuật SALS,
việc sử dụng các cơ chế xác thực có thể thương lượng giữa client và server của một giao thức ứng dụng đã cho
Các số cổng được gán bởi IANA cho các giao thức ứng dụng vốn chạy trên SSL/TLS được tóm tắt trong bảng 1.1 và được minh họa một phần trong hình 2.3 Ngày nay, "S" chỉ định việc sử dụng SSL được thêm (hậu tố) nhất quán vào các từ ghép của các giao thức ứng dụng tương ứng (trong một số thuật ngữ ban đầu, S được sử dụng và được thêm tiền tố một cách không nhất quán và một số
từ ghép)
Bảng 1.1: Các số cổng được gán cho các giao thức ứng dụng chạy trên
TLS/SSL
Từ khóa
5 SMTP trên TLS/SSLNntps 56
3 NNTP trên TLS/SSL
Trang 154 IRC trên TLS/SSLPop3s 99
5 POP3 trên TLS/SSL Nói chung, một session SSL có trạng thái và giao thức SSL phải khởi tạo và duy trì thông tin trạng thái ở một trong hai phía của session Các phần tử thông tin trạng thái session tương ứng bao gồm một session ID, một chứng nhận ngang hàng, một phương pháp nén, một thông số mật mã, một khóa mật chính và một
cờ vốn chỉ định việc session có thể tiếp tục lại hay không, được tóm tắt trong bảng 1.2 Một session SSL có thể được sử dụng trong một số kết nối và các
thành phần thông tin trạng thái nối kết tương ứng được tóm tắt trong bảng 1.3 Chúng bao gồm các tham số mật mã, chẳng hạn như các chuỗi byte ngẫu nhiên server và client, các khóa mật MAC ghi server và client, các khóa ghi server và client, một vector khởi tạo và một số chuỗi Ở 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
Bảng 1.2 Các thành phần thông tin trạng thái Session SSL
Thành Phần Mô tả
Session ID Định danh được chọn bởi server để nhận dạng một trạng thái
session hoạt động hoặc có thể tiếp tục lại
Trang 16Peer certificate Chứng nhân X.509 phiên bản 3 của thực thể ngang hàng.Compression
method Thuật toán dừng để nén dữ liệu trước khi mã hóa
Cipher spec Thông số của các thuật toán mã hóa dữ liệu và MAC
Master secret Khóa mật 48-byte được chia sẻ giữa client và server
Is resumable Cờ vốn biểu thị session có thể được sử dụng để bắt đầu các
nối kết mới hay không
Bảng 1.3 Các thành phần thông tin trạng thái nối kết SSL
Khóa ghi server Khóa được sử dụng cho việc mã hóa dữ liệu bởi server và
giải mã bởi clientKhóa ghi client Khóa được sử dụng để mã khóa dữ liệu bởi client và giải
Số chuỗi Mỗi phía duy trì các số chuỗi riêng biệt cho các thông
báo được truyền và được nhận cho mỗi nối kết
Giao thức SSL gồm hai phần chính, SSL Record Protocol và một số giao thức con SSL được xếp lớp trên nó:
- Record OK được xếp lớp trên một dịch vụ lớp vận chuyển định hướng nối
Trang 17Các dịch vụ toàn vẹn (bao gồm nhưng thứ như chống xem lại).
Các giao thức con SSL được xếp lớp trên SSL Record Protocol để cung cấp sự
hỗ trợ cho việc quản lý session SSL và thiết lập nối kết
Giao thức con SSL quan trọng nhất là SSL Handshake Protocol Lần lượt giao thức này là một giao thức xác thực và trao đổi khóa vốn có thể được sử dụng để thương lượng, khởi tạo và đồng bộ hóa các tham số bảo mật và thông tin trạng thái tương ứng được đặt ở một trong hai điểm cuối của một session hoặc nối kết SSL
Sau khi SSL Handshake Protocol đã hoàn tất, dữ liệu ứng dụng có thể được gửi và được nhận bằng cách sử dụng SSL Record Protocol và các tham số bảo mật được thương lượng và các thành phần thông tin trạng thái
1.3 Tầm quan trọng của SSL Certificates (chứng chỉ số)
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 thươ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 đó
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
Trang 18Chương 2 Cách thức làm việc của giao thức SSL
2.1 Hoạt động của giao thức SSL
Điểm cơ bản của 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ỳ, thí dụ như webserver và các trình duyệt khách (browsers), do đó được sử dụng rộng rãi trong nhiều ứng dụng khác nhau trên môi trường Internet Toàn bộ cơ chế hoạt động và hệ thống thuật toán mã hoá sử dụng trong SSL được phổ biến công khai, trừ khoá chia xẻ tạm thời (session key) được sinh ra tại thời điểm trao đổi giữa hai ứng dụng là tạo ngẫu nhiên và bí mật đối với người quan sát trên mạng máy tính Ngoài ra, giao thức SSL còn đỏi hỏi ứng dụng chủ phải được chứng thực bởi một đối tượng lớp thứ ba (CA) thông qua giấy chứng thực điện tử (digital certificate) dựa trên mật mã công khai (thí dụ RSA)
Trang 19Biểu đồ dưới đây sẽ chỉ ra một cách đơn giản với từng bước quá trình thiết lập kết nối SSL giữa máy khách (client – dùng một đường dẫn web browser) và máy chủ (server – dùng một SSL web server)
Trang 20Hình 2.1 Từng bước thành lập một kết nối SSL
Trang 21Như bạn thấy trên hình, quá trình thiết lập kết nối SSL bắt đầu bằng việc trao đổi các tham số mã hoá và sau đó xác nhận các server một cách tuỳ ý (dùng gia thức SSL Handshake) Nếu “bắt tay” (Handshake) thành công, cả hai chiều đều chấp nhận bộ mã hoá chung và các khoá mã hoá, thì dữ liệu ở tầng ứng dụng (thông thường dùng HTTP, nhưng cũng có thể là một giao thức khác) có thể được gửi thông qua đường hầm (tunnel) mã hoá (dùng SSL Record Layer).
Trong thực tế, tiến trình trên còn phức tạp hơn một chút Để tránh những cái
“bắt tay” không cần thiết, một số tham số mã hoá được giữ lại Các thông báo được gửi đi Bộ mã hoá cũng có thể được thay đổi Tuy nhiên, bất chấp các đặc điểm kĩ thuật đó, cách thức phổ biến nhất của tiến trình này làm việc thực sự như trên
Giao thức SSL dựa trên hai nhóm con giao thức là giao thức “bắt tay”
(handshake protocol) và giao thức “bản ghi” (record protocol) Giao thức “bắt tay” xác định các tham số giao dịch giữa hai đối tượng có nhu cầu trao đổi thông tin hoặc dữ liệu Giao thức “bản ghi” xác định khuôn dạng cho tiến hành mã hoá
và truyền tin hai chiều giữa hai đối tượng đó
Khi hai ứng dụng máy tính, thí dụ giữa một trình duyệt web và máy chủ web, làm việc với nhau, máy chủ và máy khách sẽ trao đổi “lời chào” (hellos) dưới dạng các thông điệp cho nhau với xuất phát đầu tiên chủ động từ máy chủ, đồng thời xác định các chuẩn về thuật toán mã hoá và nén số liệu có thể được áp dụng giữa hai ứng dụng Ngoài ra, các ứng dụng còn trao đổi “số nhận dạng/khoá theo phiên” (session ID, session key) duy nhất cho lần làm việc đó Sau đó ứng dụng khách (trình duyệt) yêu cầu có chứng thực điện tử (digital certificate) xác thực của ứng dụng chủ (web server)
Sau khi kiểm tra chứng chỉ điện tử của máy chủ (sử dụng thuật toán mật mã công khai, như RSA tại trình máy trạm), ứng dụng máy trạm sử dụng các thông
tin trong chứng chỉ điện tử để mã hoá thông điệp gửi lại máy chủ mà chỉ có máy
chủ đó có thể giải mã Trên cơ sở đó, hai ứng dụng trao đổi khoá chính (master
Trang 22key) - khoá bí mật hay khoá đối xứng - để làm cơ sở cho việc mã hoá luồng thông tin/dữ liệu qua lại giữa hai ứng dụng chủ khách Toàn bộ cấp độ bảo mật
và an toàn của thông tin/dữ liệu phụ thuộc vào một số tham số: (i) số nhận dạng theo phiên làm việc ngẫu nhiên; (ii) cấp độ bảo mật của các thuật toán bảo mật
áp dụng cho SSL; và (iii) độ dài của khoá chính (key length) sử dụng cho lược
đồ mã hoá thông tin
Sau đây ta xem xét một cách khái quát cơ chế hoạt động của SSL để phân tích cấp độ an toàn của nó và các khả năng áp dụng trong các ứng dụng nhạy cảm, đặc biệt là các ứng dụng về thương mại và thanh toán điện tử
Hình 2.2: Kết nối SSLCác bước thực hiện trao đổi xác thực và các thông tin cần thiết để thiết lập đường hầm giữa Client và Server như sau:
Bước 1: Client gửi message ClientHello cho Server để bắt đầu khởi tạo phiên
Trang 23Version : Xác định phiên bản mới nhất của giao thức SSL mà phía Client hỗ trợ.
RandomNumber : Một số ngẫu nhiên có độ dài 32 bytes dùng để tính khóa cho phiên giao dịch khi trao đổi dữ liệu
SessionID: Để xác định phiên giao dịch này
CipherSuites : Danh sách các thuật toán mã hóa mà Client có thể hỗ trợ
CompressionMethods : Xác định các thuật toán nén dữ liệu mà Client có thể
hỗ trợ
Bước 2 - ServerHello : Khi nhận được Message ClientHello, Server sẽ trả lời lại Client với Message ServerHello.Message này gồm các thông tin sau:
Version : phiên bản giao thức SSL được chọn sử dụng trong giao tiếp
RandomNumber : Một số ngẫu nhiên có độ dài 32 bytes dùng để tính khóa cho phiên giao dịch khi trao đổi dữ liệu
SessionID: Để xác định phiên giao dịch này
CipherSuite : Thuật toán mã hóa mà Server chọn để sử dụng.
CompressionMethod: Thuật toán nén dữ liệu mà Server chọn để sử dụng
Bước 3-ServerKeyExchange : Server gửi thông tin về khóa chung của nó
bằng thông điệp ServerKeyExchange -Message này chứa thông tin về Public key của Server.Public key của Server sẽ được Client sử dụng để xác thực Server
Bước 4-ServerHelloDone : Server kết thúc phần của nó trong quá trình thỏa
thuận bằng thông điệp ServerHelloDone -Đây là message mà Server muốn nói với Client là nó đã gửi xong thông tin khởi tạo giao dịch Bản thân thông điệp không chưa thông tin nào khác, vì chỉ khi client nhận được thông điệp này nó mới tiến hành chuyển sang phần thiết lập phiên trao đổi thông tin an toàn
Bước 5-ClientKeyExchange : Client gửi thông tin khóa của phiên giao
dịch (đã được mã hóa bằng public key của server) trong thông điệp
ClientKeyExchange -Message này chứa thông tin về khóa của Client Message này được mã hóa bằng chính Public key của Server Chính sự mã hóa này bảo vệ
Trang 24thông tin về khóa của Client đồng thời xác thực Server Vì chỉ có Server mới có thể giải mã được Message này.
Bước 6-ChangeCipherSpec : Message này Client gửi để đánh dấu các
bên bắt đầu sử dụng các dịch vụ và thông tin an toàn
Bước 7-Finished: Client gửi message này để báo cho Server biết quá trình giao dịch có thành công không Message này bao gồm các thông tin sau : Thông tin về khóa
Nội dung của các message bắt tay SSL trước được trao đổi bởi hệ thống Bước 8- ChangeCipherSpec: Message này được gửi bởi Server nó cũng giống như cái gửi bởi Client Cấu trúc của chúng như sau :
Bước 9-ServerFinished : Server gửi message này Cấu trúc của nó cũng giống như là cái message mà Client gửi
2.2 Nhiệm vụ của SSL
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:
Trang 25Xá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: 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)
Trong giao thức SSL có sự kết hợp của mật mã đối xứng và bất đối xứng Các thuật toán mật mã bất đối xứng như: RSA, và thuật toán Diffie-Hellman Các hàm băm như MD5, SHA1 Các thuật toán mật mã đối xứng được hỗ trợ là RC2, RC4, 3DES
Các chứng chỉ khóa công khai được sử dụng cho việc xác thực và bảo vệ khóa mật mã đối xứng các trung tâm chứng thực đặc biệt xác minh các chứng chỉ số của người dùng bằng một chữ ký số SSL hỗ trợ các chứng chỉ số thỏa
mãn chuẩn X.509
Trang 262.3 Các giao thức con của SSL
Giao thức SSL dựa trên hai nhóm con giao thức là giao thức “bắt tay”
(handshake protocol) và giao thức “bản ghi” (Record protocol)
2.3.1 Giao thức bản ghi (SSL Record Protocol)
SSL Record Protocol nhận dữ liệu từ các giao thức con SSL lớp cao hơn và xử
lý việc phân đoạn, nén, xác thực và mã hóa dữ liệu Chính xác hơn, giao thức này lấy một khối dữ liệu có kích cỡ tùy ý làm dữ liệu nhập và tạo một loạt các đoạn dữ liệu SSL làm dữ liệu xuất (hoặc còn được gọi là các bản ghi) nhỏ hơn hoặc bằng 16,383 byte
Trang 27Hình2.3: Mô hình chung về SSL Record ProtocolMục đích của giao thức SSL 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ổ sung
header tạo thành 1 đối tượng gọi là bản ghi,bản ghi đó được mã hóa 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 đi
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,một số byte cho đủ kích thước quy định của bản ghi nếu kích thước của bản ghi chưa đủ
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 1 bản ghi gồm:
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: khóa bí mật,dữ liệu gốc,phần thông tin bổ xung,số thứ tự
Khóa bí mật ở đây có thể là khóa ghi MAC của client hoặc của server tùy thuộc vào ai là người tạo ra 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ó
Trang 28nghĩ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ã hóa sử dụng phương pháp
mã hóa(đối xứng) đã thỏa thuận trước ví dun 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ã hóa đó được gắn thêm header bao gồm các trường sau:
Kiểu nội dung(content type-8 bit): 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 sử 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- 8 bit):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ị của trường này là 3
Phiên bản phụ(minor version – 8 bit):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ị này là 0
Compressed length(16 bit): Độ dài byte của plaintext fragment (hoặc nén đoạn nếu nén được sử dụng) Giá trị tối đa là 214 1 2048
Trang 29Hình 2.4 Các trường trong SSL Record Protocol
Sau 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.4
Hình 2.5: Quá trình tạo một bản ghi của SSL Record Protocol
Như được minh họa trong hình 2.5, một số giao thức con SSL được xếp lớp trên SSL Record Protocol Mỗi giao thức con có thể tham chiếu đến các loại thông báo cụ thể vốn được gửi bằng cách sử dụng SSL Record Protocol Thông
số kỹ thuật SSL 3.0 xác định ba giao thức SSL sau đây:
Trang 30giá trị là warning(1) và fatal(2) xác định tính nghiêm trọng của thông điệp.Khi 1 trong 2 bên gửi thông điệp có giá trị bit đầu tiên là fatal(2) thì phiên làm việc giữa 2 bên sẽ kết thúc ngay lập tức.Byte tiếp theo của thông điệp chứa mã lỗi xảy
ra trong phiên giao dịch SSL
Alert level types
Co
de
Level type Connection state
1 warnin
g connection or security may be unstable.
2 fatal connection or security may be compromised, or an
unrecoverable error has occurred
Handshake Protocol là bộ giao thức SSL phức tạp nhất.Giao thức này được sử dụng để khởi tạo phiên SSL giữa client và server.Thông điệp của giao thức này chứa rất nhiều loại thông tin,ví dụ các thuật toán mã hóa và các khóa mã mà 2 bên sẽ phải thỏa thuận với nhau.Nhờ giao thức này các bên sẽ xác thực lẫn nhau
và thỏa thuận các tham số cho phiên làm việc sẽ được thiết lập SSL Handshake Protocol là giao thức con SSL chính được sử dụng để hỗ trợ xác thực client và server và để trao đổi một khóa session Do đó SSL Handshake Protocol trình bày tổng quan và được thảo luận trong phần tiếp theo
Sau cùng, ChangeCipherSpec Protocol là giao thức SSL đơn giản nhất.Nó chỉ chứa 1 thông điệp kích thước 1 Byte.Mục đích duy nhất của thông điệp này là làm chuyển trạng thái của 1 phiên từ “đang chờ”(pending) sang “bền
vững”(fixed).Ví dụ khi 2 bên quy ước bộ giao thức nào sẽ sử dụng,cả client và server đều phải gửi thông điệp loại này cho bên đối tác,sau khi đã trao đổi xong thì coi như hai bên đã đồng ý với nhau
Ngoài những giao thức con SSL này, một SSL Application Data Protocol
Trang 312.3.2 Giao thức bắt tay (SSL Handshake Protocol)
SSL Handshake Protocol là giao thức con SSL chính được xếp lớp trên SSL
Record Protocol Kết quả, các thông báo thiết lập quan hệ SSL được cung cấp
cho lớp bản ghi SSL nơi chúng được bao bọc trong một hoặc nhiều bản ghi SSL vốn được xử lý và được chuyển như được xác định bởi phương pháp nén và thông số mật mã của session SSL hiện hành và các khóa mật mã của nối kết SSL
Quy trinh thỏa thuận giữa client và server được chia làm 4 pha được thể hiện trong hình 2.6
Trang 32Hình 2.6: Các pha làm việc của SSL Handshake ProtocolTrong pha thứ 1:một kết nối logic được thiết lập giữa client và server để thỏa thuận các tham số của kết nối.Phía client gửi cho server 1 thông điệp
Trang 33Pha thứ 4: Thay đổi mã bộ và kết thúc giao thức handshake.Client gửi
Change_cipher_spec,và Finish cho server.Và server cũng gửi lại cho client 2 thông điệp trên để kết thúc
Giao thức SSL sử dụng kết hợp 2 loại mã hoá đối xứng và công khai Sử dụng
mã hoá đối xứng nhanh hơn rất nhiều so với mã hoá công khai khi truyền dữ liệu, nhưng mã hoá công khai lại là giải pháp tốt nhất trong qúa trình xác thực Một giao dịch SSL thường bắt đầu bởi quá trình “bắt tay” giữa hai bên (SSL handshake) Các bước trong quá trình “bắt tay” có thể tóm tắt như sau:
Bước 1: Client sẽ gửi cho server số phiên bản SSL đang dùng, các tham số của thuật toán mã hoá, dữ liệu được tạo ra ngẫu nhiên (đó chính là digital signature)
và một số thông tin khác mà server cần để thiết lập kết nối với client
Bước 2: Server gửi cho client số phiên bản SSL đang dùng, các tham số của thuật toán mã hoá, dữ liệu được tạo ra ngẫu nhiên và một số thông tin khác mà client cần để thiết lập kết nối với server Ngoài ra server cũng gửi certificate của
nó đến client, và yêu cầu certificate của client nếu cần
Bước 3: Client sử dụng một số thông tin mà server gửi đến để xác thực server Nếu như server không được xác thực thì người sử dụng sẽ được cảnh báo và kết nối không được thiết lập Còn nếu như xác thực được server thì phía client sẽ thực hiện tiếp bước 4
Bước 4: Sử dụng tất cả các thông tin được tạo ra trong giai đoạn bắt tay ở trên, client (cùng với sự cộng tác của server và phụ thuộc vào thuật toán được sử dụng) sẽ tạo ra premaster secret cho phiên làm việc, mã hoá bằng khoá công khai (public key) mà server gửi đến trong certificate ở bước 2, và gửi đến server Bước 5: Nếu server có yêu cầu xác thực client, thì phía client sẽ đánh dấu vào
phần thông tin riêng chỉ liên quan đến quá trình “bắt tay” này mà hai bên đều
biết Trong trường hợp này, client sẽ gửi cả thông tin được đánh dấu và
certificate của mình cùng với premaster secret đã được mã hoá tới server
Server sẽ xác thực client Trường hợp client không được xác thực, phiên làm
Trang 34việc sẽ bị ngắt Còn nếu client được xác thực thành công, server sẽ sử dụng khoá
bí mật (private key) để giải mã premaster secret, sau đó thực hiện một số bước
để tạo ra master secret
Bước 6: Client và server sẽ sử dụng master secret để tạo ra các session key, đó chính là các khoá đối xứng được sử dụng để mã hoá và giải mã các thông tin trong phiên làm việc và kiểm tra tính toàn vẹn dữ liệu
Bước 7: Client sẽ gửi một lời nhắn đến server thông báo rằng các message tiếp theo sẽ được mã hoá bằng session key Sau đó nó gửi một lời nhắn đã được mã hoá để thông báo rằng phía client đã kết thúc giai đoạn “bắt tay”
Bước 8: Server cũng gửi một lời nhắn đến client thông báo rằng các message tiếp theo sẽ được mã hoá bằng session key Sau đó nó gửi một lời nhắn đã được
mã hoá để thông báo rằng server đã kết thúc giai đoạn “bắt tay”
Bước 9: Lúc này giai đoạn “bắt tay” đã hoàn thành, và phiên làm việc SSL bắt đầu Cả hai phía client và server sẽ sử dụng các session key để mã hoá và giải mã thông tin trao đổi giữa hai bên, và kiểm tra tính toàn vẹn dữ liệu
Ý nghĩa của các thông điệp trao đổi trong “quá trình bắt tay”:
Connection(Kết nối):là 1 liên kết client/server logic với những kiểu dịch vụ thích hợp.SSL connection là 1 kết nối điểm nối điểm giữa 2 nút mạng
Session(phiên): là 1 sự kết hợp giữa 1 client và 1 server xác định bằng 1 bộ các tham số ví dụ thuật toán sẽ sử dụng,số hiệu phiên…Khi 1 phiên SSL giữa 1 client và 1 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 client/server đó sẽ sử dụng chung bộ tham số đó mà không phải tiến hành thỏa thuận lại
Điều đó có nghĩa là trong 1 phiên SSL giữa 1 client và 1 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 1 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 liên quan đến nhiều tham số sử dụng trong
Trang 35thức handshake ngoài việc chọn các phương pháp mã hóa dữ liệu thì 1 loạt các tham số của session State cũng được chọn,session State bao gồm:
Session Indentifier:là định danh cho server tạo ra và gán cho mỗi phiên làm việc với 1 client nhất định
Peer Certificate:Chứng chỉ X.509 của nút còn lại của phiên
Phương pháp nén:xác định phương pháp nén dữ liệu trước khi mã hóa
Mô tả thuật toán CipherSpec:xác định thuật toán để mã hóa dữ liệu(ví dụ thuật toán DES) và thuật toán hash(ví dụ MD5) sẽ sử dụng trong phiên
Master secret: là 1 số bí mật 48 byte được server và client dùng chung
Cờ “is resumable”:cho biết có thể sử dụng phiên này để khởi tạo các kết nối mới hay không
Sequence number(số thứ tự):server và client quản lý 1 cách riêng rẽ các số thứ
tự để đánh số các thông điệp gửi và nhận cho mỗi kết nối
Trang 362.4 Đánh giá
2.4.1 Ưu điểm
Ưu điểm chính của giao thức SSL nói riêng và các giao thức bảo mật lớp vận chuyển (Transport layer) nói chung là chúng độc lập với ứng dụng theo nghĩa là chúng có thể được sử dụng để bảo vệ bất kỳ giao thức ứng dụng được xếp lớp lên trên TCP một cách trong suốt Hình 2.3 minh họa một số giao thức ứng dụng điển hình bao gồm NSIIOP, HTTP, FTP, Telnet, IMAP, IRC, và POP3 Tất cả chúng có thể được bảo vệ bằng cách xếp lớn chúng lên trên SSL (mẫu tự S được thêm vào trong các từ ghép giao thức tương ứng chỉ định việc sử dụng SSL) Tuy nhiên, chú ý rằng SSL có một định hướng client-server mạnh mẽ và thật sự
không đáp ứng các yêu cầu của các giao thức ứng dụng ngang hàng.
- Bảo đảm tính riêng tư và toàn vẹn của tất cả dữ liệu được truyền giữa 2 máy tính khi nó ở trong mạng
- Trong suốt với người sử dụng
- An toàn, ổn định, dễ triển khai
2.4.2 Nhược điểm
Thực tế, SSL không cung cấp biện pháp đầy đủ các biện pháp bảo vệ
Có những cuộc tấn công mà SSL trở nên bị vô hiệu :
-Mặc dù dữ liệu trên đường truyền Internet được mã hoá nhưng SSL không bảo vệ dữ liệu được lưu trữ trên đĩa
-Những phần mềm dễ bị tổn thương chính là lỗ hổng cho những kẻ xâm nhập -Những thông tin bị ăn trộm qua trang lưu trữ tạm thời ( Page Cache)
trong chương trình duyệt
-Những cuộc tấn công bằng tay như Capture toàn bộ trang Web, thay đổi nội
dung qua những công cụ Web Proxy
Trang 37-Ăn trộm thông tin bí mật bên trong bộ nhớ của chương trình duyệt SSL mã hoá dữ liệu trong quá trình truyền dữ liệu trên mạng, nhưng dữ liệu đã được giải
mã lại bên trong bộ nhớ của chương trình duyệt Những kẻ tấn công dùng công
cụ đọc bộ nhớ để xem thông tin
Trang 38Chương 3 Các ứng dụng sử dụng SSL
3.1 Ứng dụng trong Internet Banking
Một đặc điểm rất quan trọng trong bất kỳ giải pháp Internet Banking nào là phải đảm bảo tính xác thực và an toàn trong giao dịch Điều này phụ thuộc vào nhiều yếu tố khác nhau và với sự tiến bộ của công nghệ, các ngân hàng có thể lựa chọn các giải pháp bảo mật khác nhau cho giải pháp Internet Banking mà mình chọn ứng dụng
Có nhiều phương pháp để giải quyết vấn đề xác thực và bảo mật giao
dịch an toàn như: Sử dụng bàn phím ảo, phương pháp mật khẩu một lần (One Time Password), xác thực hai phương thức (Two Factor Authentication), hay dùng thiết bị khóa phần cứng (Hardware Token), thẻ thông minh (TTM) có chữ
ký số (PKI Smartcard) Các ngân hàng lớn trên thế giới thường sử dụng các giải pháp xác thực và an toàn giao dịch dựa trên hạ tầng khóa công khai (PKI) cùng với sự tham gia của Hardware Token (TTM tích hợp sẵn đầu đọc cổng USB) hay thẻ thông minh (PKI Smartcard)
Giải pháp bảo mật sử dụng chữ ký điện tử giải quyết đồng thời được 4 vấn đề quan trọng trong các giao dịch điện tử là: Xác thực người dùng, bảo mật thông tin giao dịch, toàn vẹn dữ liệu và chống chối bỏ Bên cạnh đó, mỗi khách hàng sẽ được cung cấp một bộ thiết bị gồm: Thẻ Smartcard bên trong có chứa chứng chỉ
số và cặp khóa công khai/ khóa riêng (PrivateKey/PublicKey) và một đầu đọc TTM tiếp xúc Khi khách hàng ở bất kỳ đâu có máy tính nối mạng Internet, họ chỉ thực hiện một việc rất đơn giản là gắn đầu đọc (hỗ trợ cổng USB) vào máy tính, vào trang web Internet Banking của NH và gắn thẻ vào đầu đọc, sau đó khách hàng đăng nhập hệ thống hay thực hiện các giao dịch NH và yêu cầu nhập
Trang 39được tuân theo chuẩn GlobalPlatform (tên riêng của chuẩn TTM đa ứng dụng),
hệ thống trang web sử dụng giao thức SSL (Security Socket Layer), chứng chỉ Website (Chứng chỉ số dành cho website để kiểm tra sự giả mạo - nếu có) và hỗ trợ mọi trình duyệt như IE, Firefox
Trong giao thức SSL thì RSA là một trong những giải thuật mã hóa bất đối xứng được dùng thông dụng nhất Nó được dùng hàng ngày trong các giao dịch thương mại điện tử qua web browser (SSL), PGP, dùng cho digital signature đảm bảo tính toàn vẹn của các thông điệp khi lưu chuyển trên Internet, phân phối
& cấp phát các secret keys…
RSA được sử dụng rất nhiều trong các giao dịch Internet banking hiện nay:Hoạt động của một kết nối https (SSL):
1 Web browser kết nối với web server và yêu cầu một kết nối an toàn và bảo mật
2 Web server trả về cho web browser site's certificate
3 Web browser kiểm tra các thông tin trong site's certificate xem có thật hay
không (khi certificate không co thật sẽ thấy xuất hiện một cảnh báo, và nếu
muốn cố tự mình cho rằng nó co thật thì click Yes để kết nối, một khi thấy cảnh báo hiện ra mà vẫn cố chấp nhận giao dịch thì web site mà đang kết nối có thể là
web site giả mạo)
4 Web browser lúc này mới tạo ra một session key sau đó dùng server's
public key để mã hóa (asymmetric) và chuyển session key đã được encrypt này tới web server
5 Web server dùng private key của nó để giải mã (asymmetric) và lấy được
session key dùng để mã hóa data (symmetric) giửa web server và web browser
3.2 Ứng dụng trong thương mại điện tử
Trọng tâm của bất kỳ hoạt động TMĐT nào cũng là giao dịch tài chính giữa Web site và người mua hàng Một trong những phương pháp phổ biến nhất để nhận thanh toán từ khách hàng là thông qua thẻ tín dụng trực tuyến Nhưng
Trang 40bằng việc chấp nhận thông tin thẻ tín dụng của khách hàng qua Web site, thì cũng phải chấp nhận trách nhiệm an ninh cho những thông tin đó
Giao thức chuẩn cho an ninh truyền thông trên Web là SSL (Secure Sockets Layer) Được phát triển bởi Netscape Communications Corporation, giao thức bảo mật SSL cung cấp mã hoá dữ liệu, xác thực máy chủ, xác thực máy khách và tính hợp pháp của e-mail cho các máy sử dụng kết nối TCP/IP, cho phép các ứng dụng máy khách/máy chủ giao tiếp mà không bị nghe trộm, xâm phạm hoặc làm giả e-mail
Hiện nay ,hầu hết các website thương mại điện tử đều ứng dụng SSL để bảo mật cho các giao dịch giữa họ và khách hàng.Để tạo dc một kết nối dạng SSL thì máy chủ web cần phải có thêm một SSL Certificate.Trong quá trình kích hoạt SSL, các nhà quản trị web phải cung cấp một số thông tin đặc trưng cho trang web và cho công ty của họ,sau đó máy chủ sẽ sinh ra một cặp khóa - một private key (khóa riêng ) và một public key (khóa công cộng ).Cặp khóa này dùng để mã hóa dữ liệu truyền giữa khách hàng và máy chủ web.
Sau khi web server tạo ra SSL Certificate,nhà quản trị web phải đăng kí Certificate này với một tổ chức chứng thực.Tổ chức này sẽ cung cấp cho công ty một Certificate Authority(CA),CA này dùng để kiểm tra tính hợp lệ của thông tin website và cho phép trang web sử dụng SSL Khi có CA thì trang web có thể tạo được một kết nối mã hóa giữa máy chủ web và trình duyệt của người dùng.
Một SSL Certificate thường chứa những thông tin của công ty như: tên miền, tên nước Ngoài ra, nó còn chứa các thông tin về thời hạn hiệu lực của
Certificate cũng như các thông tin về tổ chức chứng thực đảm bảo cho website của công ty.
Khi trình duyệt kết nối đến một trang web dc bảo mật,trình duyệt sẽ kiểm tra Certificate của trang web này và bảo đảm 3 yếu tố sau:
+ Certificate này dc cung cấp bởi 1 hãng có uy tín.