II. BÀI TẬP TÌNH HUỐNG
ĐẢM BẢO AN TỒN CHO HỆ THỚNG THÔNG TIN
6.3.2.2. Giao thức SSL (Secure Socket Layer)
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ã hố tồn bộ thơng tin đi/đến. Ngày nay, SSL được sử dụng rộng rãi cho các 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 được hình thành và phát triển từ 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.
Lịch sử phát triển của giao thức SSL: Giao thức SSL được giới thiệu
lần đầu tiên bởi nhóm nghiên cứu của Nescape vào năm 1994. Đầu năm 1995, phiên bản SSL V2.0 được tung ra thị trường và được tích hợp vào trong các sản phẩm của Nescape. Đến cuối năm 1995, Nescape đã giới thiệu phiên bản SSLV3.0 và đến giữa năm 1996 thì nó đã được tích hợp vào các dịng sản phẩm của Nescape. Ngày nay SSL đã trở thành một giao thức bảo mật dữ liệu truyền thông phổ biến trên mạng, được sử dụng ở hầu hết các trang web có yếu tố thanh tốn trực tuyến và được hỗ trợ bởi hầu hết các trình duyệt Web (Web Browser) và các phần mềm đóng vai trò là Web Server.
Hoạt động của giao thức SSL: Giao thức SSL được xây dựng trên
tầng giao vận của mơ hình TCP/IP. Bất kỳ ứng dụng mạng nào khi cài đặt sử dụng mơ hình TCP/IP đều có thể thay đổi cấu hình để có thể sử dụng giao thức SSL. Giao thức SSL là giao thức nhiều tầng:
Tầng Alert: đây là nơi đưa ra những thơng báo lỗi trong q trình
giao tiếp cùng với những mơ tả về lỗi này. Ngồi ra tầng này còn đưa ra những thơng báo mang tính ràng buộc trong quá trình giao tiếp giữa web browser và web server như các thông báo kết thúc phiên làm việc.
Tầng Change Cipher Spec: tầng này được sử dụng để thay đổi các
thuật toán mã hõa dữ liệu trong khi trao đổi thông tin giữa web browser và web server. Khi muốn thay đổi tḥt tốn mã hóa dữ liệu thì phía thay đổi cần gửi thơng báo cho phía nhận biết rằng mình sẽ thay đổi tḥt tốn mã
Tầng Record: xác định khuôn dạng cho việc tiến hành mã hoá và
truyền tin hai chiều giữa hai đối tượng. Đây là nơi đóng gói dữ liệu trước khi truyền đi, bao gồm thêm thành phần Header vào gói tin, chia gói tin thành các phần nhỏ và nén dữ liệu trước khi chúng được truyền đi.
Tầng Handshake: đây là nơi thiết lập các thông báo đồng bộ giữa
bên gửi và bên nhận thông tin thông qua giao thức bắt tay giữa hai bên. Trong quá trình thiết lập giao thức “bắt tay” giữa hai bên các tham số về phiên làm việc sẽ được tạo ra: Phiên bản của giao thức SSL là phiên bản nào, Thuật toán được dùng để mã hóa dữ liệu, Có lựa chọn việc chứng thực lẫn nhau giữa client và Server hay không (chú ý là server ln u cầu xác nhận cịn phía client là tùy chọn).
Hình 6.6: Cấu trúc hoạt đợng của giao thức SSL
Khi có hai ứng dụng trên hai máy tính, (ví 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 dữ 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 số (Digital Certificate) xác thực của ứng dụng chủ (Web Server).
Chứng thực số thường được xác nhận rộng rãi bởi một cơ quan trung gian (là CA - Certificate Authority) như RSA Data Sercurity hay VeriSign Inc., một dạng tổ chức độc lập, trung lập và có uy tín. Các tổ chức này cung cấp dịch vụ “xác nhận” số nhận dạng của một công ty và phát hành chứng chỉ duy nhất cho công ty đó như là bằng chứng nhận dạng (Identity) cho các giao dịch trên mạng, ở đây là các máy 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ã hoá cơng khai, chẳng hạn như RSA tại trình máy trạm), ứng dụng máy trạm sẽ sử dụng các thông tin trong chứng chỉ điện tử để mã hố 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 khố chính (Master Key) - khố bí mật hay khoá đối xứng - để làm cơ sở cho việc mã hố luồng thơng tin/dữ liệu qua lại giữa hai ứng dụng chủ khách. Cần chú ý là với mỗi một phiên làm việc thì một khóa chính lại được sinh ra và sử dụng để mã hóa dữ liệu. Tồn bộ cấp độ bảo mật và an tồ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 khố chính (Key Length) sử dụng cho lược đồ mã hố thơng tin.
Những ưu điểm của giao thức SSL: Ngày nay, giao thức SSL được sử dụng rộng rãi trong các giao dịch yêu cầu thanh toán qua mạng; giao thức SSL được hỗ trợ bởi hầu hết các trình duyệt và các phần mềm phía server; SSL được thiết kế độc lập với tầng ứng dụng nên có thể sử dụng cho nhiều ứng dụng khác nhau; mọi hoạt động của SSL đều trong suốt với người sử dụng.
Những hạn chế của giao thức SSL: Khơng có những cơ chế xác nhận người dùng một cách chắc chắn, do sự chứng thực phía browser chỉ là tham số tùy chọn, do đó không có cơ chế chống lại việc giả mạo khách hàng hay đảm bảo tính tin cẩn tuyệt đối giữa người bán đối với người mua (trong giao dịch mua - bán); có nguy cơ người mua hàng bị lộ thông tin về tài khoản của mình nếu như gặp phải người bán hàng là những kẻ lừa đảo trên mạng do trong giao thức SSL các thông tin được truyền trực tiếp từ người mua đến người bán bao gồm cả những thơng tin về số thẻ tín dụng, v.v...; Vẫn có khả năng bị các kẻ tấn cơng dị tìm ra khóa bí mật dùng để mã hóa thơng tin sau đó ăn cắp thơng tin được truyền trên mạng; nhiều người dùng hiện nay vẫn đang dùng SSL V2.0 thay vì SSL V3.0 và không có cơ chế xác nhận lẫn nhau trong quá trình thiết lập giao thức bắt tay.