4.3. MỘT SỐ KỸ THUẬT ÁP DỤNG CHO AN TOÀN TRONG THƯƠNG MẠI ĐIỆN TỬ
Trên thực tế, người ta sử dụng nhiều giải pháp để bảo vệ thông tin cho các giao dịch qua mạng. Đối với mỗi dạng hiểm hoạ, có những giải pháp khác nhau và cần có một chính sách chung về chiến lược an toàn bảo mật hữu hiệu.
4.3.1. Bảo vệ máy khách
Các máy khách (thông thường là các PC) phải được bảo vệ nhằm chống lại các đe doạ xuất phát từ phần mềm hoặc dữ liệu được tải xuống máy khách từ Internet.
Như chúng ta đã biết, active content bao gồm nhiều chương trình được nhúng vào các trang Web, tạo nên sự sống động cho các trang Web. Tuy nhiên, một active content giả có vẻ vô hại nhưng lại gây ra các thiệt hại khi chúng chạy trên máy khách. Các chương trình được viết bằng Java, JavaScript mang lại sự sống động cho các trang Web. Một số các công cụ active content phổ biến khác là các ActiveX control. Bên cạnh các mối đe doạ xuất phát từ các chương trình bên trong các trang Web, thì các trình đồ hoạ, các trình duyệt gài sẵn (trình duyệt plug-ins) và các phần đính kèm thư điện tử cũng là các mối đe doạ có thể gây hại cho các máy khách khi các chương trình ẩn này được thực hiện.
Nhiều active content gây hại có thể lan truyền thông qua các cookie. Các đoạn văn bản nhỏ này được lưu giữ trên máy tính của bạn và có chứa các thông tin nhạy cảm không được mã hoá. Điều này có nghĩa là bất kỳ ai cũng có thể đọc và làm sáng tỏ một cookie, thu được thông tin có trong đó. Thông tin này liên quan đến thẻ tín dụng, mật khẩu và thông tin đăng nhập. Do cookie giống như các thẻ đăng nhập vào các Website, chúng không gây hại trực tiếp cho các máy khách nhưng nó vẫn là nguyên nhân gây ra các thiệt hại do chứa nhiều thông tin không mã hoá.
Một mối đe doạ khác đối với máy khách là một server site đóng giả một Website hợp pháp. Đây thực sự là một mối quan tâm an toàn đối với máy khách, các máy khách cần có trách nhiệm nhận biết các máy chủ của mình. Các mục tiếp theo trình bày các cơ chế bảo vệ hiện có, chúng được thiết kế nhằm ngăn chặn hoặc giảm đáng kể khả năng các hiểm hoạ xảy ra đối với máy khách.
a. Giám sát Active content
Các trình duyệt Navigator của Netscape và Internet Explorer của Microsoft được trang bị để nhận biết các trang Web có chứa active content chuẩn bị được tải xuống. Khi bạn tải về và chạy các chương trình được nhúng vào các trang Web, bạn muốn đảm bảo rằng các chương trình này đến từ một nguồn bạn biết và tin cậy. Cách thức mà hai trình duyệt trên sử dụng để đảm bảo an toàn được trình bày trong các mục sau đây. Trước hết chúng ta xem xét các chứng chỉ số, chúng thực sự cần thiết cho phía máy khách và máy chủ khi xác thực.
b. Bảo vệ bằng các chứng chỉ số
Một chứng chỉ số (hay ID số) là phần đính kèm với thông báo điện tử hoặc một chương trình được nhúng vào một trang Web. Khi một chương trình được tải xuống có chứa một chứng chỉ số, nó nhận dạng nhà phát hành và thời hạn hợp lệ của chứng chỉ. Một chứng chỉ không chứa bất kỳ điều gì liên quan đến nội dung được tải xuống. Ngầm định của việc sử dụng các chứng chỉ là nếu bạn tin cậy nhà cung cấp/người phát hành, chứng chỉ cung cấp cho bạn sự đảm bảo rằng các nội dung được ký có nguồn gốc tin cậy từ nhà cung cấp. Lưu ý rằng chứng chỉ của nhà cung cấp CA có số thứ tự duy nhất cho từng chứng chỉ và chữ ký.
Cơ quan chứng thực (CA) phát hành chứng chỉ số cho cá nhân hoặc tổ chức. CA yêu cầu các thực thể muốn có chứng chỉ cần cung cấp bằng chứng nhận dạng thích hợp. Một khi đáp ứng được điều này, CA sẽ phát hành một chứng chỉ. CA ký chứng chỉ (đóng tem phê chuẩn), theo dạng khoá mã công khai, "không giữ bí mật" đối với bất kỳ người nào nhận chứng chỉ. Khoá là một số, thường là một số nhị phân dài (long binary), được sử dụng với thuật toán mã hoá nhằm "giữ bí mật" các ký tự có trong thông báo bảo vệ. Vì vậy, về mặt lý thuyết là không thể đọc được hoặc giải mã chúng. Các khoá dài có khả năng bảo vệ tốt hơn các khoá ngắn. Một trong các CA tồn tại lâu nhất và được nhiều người biết đến là VeriSign.
Yêu cầu nhận dạng của các CA cũng khác nhau. Một CA có thể yêu cầu bằng lái xe đối với các chứng chỉ cá nhân, trong khi các CA khác có thể yêu cầu vân tay. Các chứng chỉ được phân loại thành các lớp đảm bảo như sau: thấp, trung bình, hoặc cao, phụ thuộc phần lớn vào các yêu cầu nhận dạng cần phải đáp ứng.
VeriSign đưa ra một số lớp chứng chỉ, từ lớp 1 đến 4. Các chứng chỉ lớp 1 là các chứng chỉ ở mức thấp nhất, gắn liền với các địa chỉ thư điện tử và các khoá công khai. Các chứng chỉ lớp 4 áp dụng cho các máy chủ và tổ chức. Các yêu cầu đối với chứng chỉ lớp 4 cao hơn rất nhiều so với các yêu cầu dành cho chứng chỉ lớp 1. Ví dụ, các chứng chỉ lớp 4 của VeriSign đảm bảo nhận dạng cá nhân và mối quan hệ của cá nhân này với công ty hoặc tổ chức xác định.
|
Hình 2 : Cấu trúc một chứng chỉ của VeriSign
Khi tải về một trang Web có chứa ch¬ng tr×nh ®éng, nhưng ch¬ng tr×nh ®éng này chưa được ký, sẽ xuất hiện một hộp thoại chỉ báo rằng ở đây không có chứng chỉ hợp lệ. Việc Internet Explorer có hiển thị cảnh báo an toàn hay không phụ thuộc vào việc bạn định cấu hình an toàn cho trình duyệt của mình như thế nào.
Các chứng chỉ có thời hạn tồn tại nhất định, có thể nhận biết nhãn thời gian khi nhấn vào một siêu liên kết. Nhãn thời gian này cho biết thời hạn tồn tại hợp lệ của một chứng chỉ. Chứng chỉ sẽ bị thu hồi nếu hết hạn. Trong trường hợp khách hàng vi phạm, cơ quan cấp chứng chỉ CA có thể từ chối không phát hành các chứng chỉ mới và thu hồi các chứng chỉ đang lưu hành mà không cần có sự đồng ý của khách hàng.
Internet Explorer chia Internet thành nhiều vùng. Ta có thể phân loại các Website và xếp chúng vào một trong các vùng này, sau đó gán nhãn an toàn thích hợp cho từng vùng, hoặc nhóm các Website. Có 4 vùng (zone) như sau: Internet, Intranet cục bộ, các site tin cậy và các site bị giới hạn. Internet zone là bất cứ thứ gì không có trong máy tính của người dùng, không có trên Intranet, hoặc không được gán nhãn cho các vùng khác. Vùng Intranet cục bộ thường chứa các Website không yêu cầu máy chủ uỷ quyền, mạng nội bộ của hãng trong đó máy khách được kết nối tới, các site của Intranet cục bộ khác. Ta có thể tải các nội dung xuống một cách an toàn từ các site này mà không phải lo lắng bởi vì chúng hoàn toàn tin cậy. Vùng các site bị giới hạn có chứa các Website không tin cậy. Chúng là các site không cần thiết hoặc gây hại nhất thiết phải huỷ bỏ. Có thể gán mức an toàn theo các mức sau: Low (thấp), Medium-Low (trung bình thấp), Medium (trung bình), High (cao).
Kỹ thuật Authenticode rút ngắn gọn thành các quyết định có/không (yes/no) đối với người và những gì mà bạn tin cậy. Có thể tuỳ chỉnh các thiết lập an toàn, nhưng bảo vệ vẫn là sự chọn lựa nên hay không nên chạy chương trình động. Authenticode giám sát liên tục chương trình khi nó đang chạy. Vì vậy, chương trình mà Authenticode cho phép vào máy tính của bạn vẫn có thể gặp sự cố (hoặc do lỗi chương trình hoặc hành động chủ tâm). Nói cách khác, một khi bạn không quan tâm đến tính tin cậy của một site, một vùng hay một nhà cung cấp, bạn gặp phải nhiều lỗ hổng về an toàn khi bạn tải nội dung về. Nguyên nhân của hầu hết các thiệt hại đối với các máy tính là do các lỗi chương trình, do không kiểm tra phần mềm cẩn thận.
c. Trình duyệt Internet của Microsoft (Microsoft Internet Explorer)
Internet Explorer cung cấp quyền bảo vệ phía máy khách trong các trình duyệt. Internet Explorer cũng đối phó lại các chương trình động dựa vào Java và ActiveX. Internet Explorer sử dụng kỹ thuật mã xác thực (Authenticode) của Microsoft để kiểm tra nhận dạng các chương trình động được tải xuống. Các chương trình Authenticode có thể kiểm tra đối với một ActiveX control được tải xuống như sau: ai là người đã ký chương trình, chương trình có bị sửa đổi sau khi ký hay không và nội dung có nguồn gốc đúng từ nhà phát hành tin cậy hay không. Đồng thời kiểm tra xem chương trình có chứng chỉ hợp lệ hay không. Tuy nhiên, Authenticode không thể ngăn chặn được việc tải xuống một chương trình gây hại và chạy trên máy tính của người dùng. Có nghĩa là, kỹ thuật Authenticode chỉ có thể xác nhận đúng là công ty XYZ đã ký chương trình. Authenticode không thể đảm bảo Java hoặc ActiveX control của công ty XYZ có thực hiện đúng đắn hay không. Trách nhiệm này thuộc về người sử dụng, họ phải quyết định có nên tin cậy vào chương trình động từ các công ty hay không.
d. Netscape Navigator
Trình duyệt Netscape Navigator cho phép kiểm soát việc tải các chương trình động xuống máy tính của người dùng. Netscape Navigator tải xuống chương trình động, giúp ta có thể xem chữ ký gắn kèm với Java và JavaScript control (ActiveX control không thực hiện với Netscape Navigator).
Nếu chương trình động viết bằng Java và JavaScript, ta sẽ thường xuyên nhận được một thông báo từ Netscape Navigator. Thông báo cho biết chương trình động đã được ký hay chưa, cho phép ta xem chứng chỉ đi kèm để xác định nên chấp nhận hay từ chối tải xuống các chương trình động.
e. Đối phó với các cookie
Cookie được lưu giữ trong máy trạm, hoặc được tạo ra, sử dụng và huỷ bỏ trong một lần duyệt Web. Ta có thể cho phép đặt ra thời gian tồn tại từ 10, 20 hoặc 30 ngày. Một cookie có chứa nhiều thông tin, chẳng hạn như tên của Website phát hành nó, các trang mà ta đã truy cập vào, tên người sử dụng và mật khẩu, các thông tin về thẻ tín dụng và địa chỉ. Chỉ có site tạo ra các cookie mới có thể lấy lại các cookie này, các cookie thu thập và lưu giữ các thông tin không nhìn thấy được. Chính vì thế ta không phải nhập lại tên người sử dụng, mật khẩu cho lần truy cập tiếp theo. Các phiên bản trình duyệt ban đầu cho phép các site lưu giữ các cookie không có chú thích. Ngày nay, các trình duyệt cho phép lưu giữ các cookie mà không cần sự cho phép, hoặc cảnh báo cho biết một cookie chuẩn bị được lưu giữ, hoặc không cho phép vô điều kiện tất cả các cookie. Internet Explorer 5 có các tuỳ chọn để thiết lập sự kiểm soát các cookie.
f. Sử dụng phần mềm chống virus
Không một máy khách nào có thể phòng thủ tốt nếu thiếu phần mềm chống virus. Các phần mềm chống virus bảo vệ máy tính khỏi bị các virus đã được tải xuống tấn công. Vì vậy, chống virus là một chiến lược phòng thủ. Nó chỉ hiệu quả khi tiếp tục lưu giữ các file dữ liệu chống virus hiện hành. Các file chứa thông tin nhận dạng virus được sử dụng để phát hiện các virus trên máy tính. Do các virus mới được sinh ra rất nhiều, cần đề phòng và cập nhật các file dữ liệu chống virus một cách định kỳ, mới có thể phát hiện và loại trừ các virus mới nhất.
4.3.2. Giải pháp mã hoá bảo vệ thông tin trên đường truyền
4.3.2.1. Mã hoá
Mã hoá là quá trình biến đổi các thông tin, bằng cách sử dụng một phương pháp toán học và một khoá bí mật để sinh ra một chuỗi các ký tự khó hiểu. Thực chất là việc che dấu các thông báo, chỉ người gửi và người nhận có thể đọc nó. Khoa học nghiên cứu mã hoá được gọi là mật mã.
Mật mã không liên quan đến ngụy trang ký. Nguỵ trang ký làm cho mắt thường không nhìn thấy văn bản. Mật mã không cố gắng che giấu văn bản, nó chuyển đổi văn bản sang dạng chuỗi ký tự, chúng ta có thể nhìn được nhưng không hiểu nghĩa của nó. Một chuỗi ký tự khó hiểu được sinh ra bằng cách kết hợp các bit, tương ứng với các ký tự trong bảng chữ cái hoặc số, tạo thành một thông báo có vẻ như được lắp ráp ngẫu nhiên.
Một chương trình chuyển đổi văn bản rõ sang văn bản mã (sự lắp ráp ngẫu nhiên các bit) được gọi là chương trình mã hoá. Các thông báo được mã hoá trước khi chúng được gửi lên mạng hoặc Internet. Khi tới đích hợp lệ, thông báo được giải mã nhờ chương trình giải mã. Chương trình mã hóa và logic sau chúng, gọi là thuật toán mã hoá, được coi là yếu tố cực kỳ quan trọng. Biết được tầm quan trọng của một số thuật toán, chính phủ Mỹ đã ngăn cấm việc công bố rộng rãi và chi tiết các thuật toán mã hoá. Một thuộc tính hấp dẫn và cần thiết của các thuật toán hoặc các chương trình mã hoá là một người có thể biết chi tiết chương trình mã hoá nhưng vẫn không có khả năng giải mã thông báo nếu không biết khoá được sử dụng trong quá trình mã hoá. Độ dài tối thiểu của một khoá là 40 bit, nó có thể dài hơn, chẳng hạn 128 bit, sẽ đảm bảo an toàn hơn nhiều do khó bị phát hiện.
Kiểu của khoá và chương trình mã hoá được sử dụng để "giữ bí mật" một thông báo. Các phép mã được chia thành 3 loại:
-
Mã hàm băm
-
Mã hoá đối xứng
-
Mã hoá không đối xứng
a) Mã hàm băm là một quá trình sử dụng thuật toán băm để tính toán một số, được gọi là giá trị băm, từ một thông báo có độ dài bất kỳ. Hàm băm là hàm của thông báo, nó chính là dấu vân tay cho một thông báo vì nó gần như duy nhất đối với mỗi thông báo. Do sinh ra các thuật toán băm chất lượng tốt, khả năng xảy ra tình trạng hai thông báo khác nhau có cùng kết quả băm là vô cùng nhỏ. Mã hoá băm là một cách thích hợp để phát hiện nếu thông báo bị sửa đổi trong quá trình chuyển tiếp, bởi vì người nhận sẽ tính toán giá trị băm của thông báo nhận được và so sánh với giá trị băm của thông báo gốc để phát hiện ra thông báo có bị sửa hay không.
b) Mã đối xứng (còn gọi là mã khoá riêng) sử dụng một khoá chung cho cả mã hoá và giải mã. Do sử dụng chung một khoá, cả người gửi lẫn người nhận thông báo đều phải biết khoá. Việc mã hoá và giải mã thông báo sử dụng mã hoá đối xứng rất nhanh và hiệu quả. Tuy nhiên, khoá dễ bị lộ và quá trình phân phối khoá cho các thành viên rất khó khăn do không thích hợp trong các môi trường lớn, chẳng hạn như Internet. Vì phải có một khoá riêng cho mỗi cặp người sử dông nên cần phải có số lượng lớn sự kết hợp các cặp khoá. Để cho 12 người có thể liên lạc an toàn với nhau đã cần tới 66 cặp khoá riêng. Nói chung, với N máy khách cá nhân, cần N(N-1)/2 cặp khoá.
c) Mã không đối xứng (mã hoá khoá công khai) mã hoá các thông báo bằng cách sử dụng hai khoá. Mã hoá công khai do Ronald Rivert, Adi Shamir và Leonard Adleman phát minh ra vào năm 1977. Họ lấy các chữ cái đầu tên của các tác giả đặt tên cho thuật toán nên thuật toán có tên là RSA.
Trong hệ thống này, người ta sử dụng một cặp khoá, nếu dùng khoá này để mã thì phải dùng khoá kia để mở. Do vậy chỉ cần giữ bí mật một khoá là đủ. Khoá giữ bí mật gọi là khoá riêng, khoá kia gọi là khoá công khai. Thông thường người ta dùng khoá công khai để mã hoá thông báo và dùng khoá riêng để mở. Tuy nhiên để tăng độ an toàn, người ta có thể dùng cả khoá công khai và khoá riêng để mã và để mở.
Các hệ thống khoá công khai mang lại một số thuận lợi, so với các giải pháp mã hoá khoá riêng.Thứ nhất, việc kết hợp các khoá (được yêu cầu cung cấp cho các thông báo bí mật giữa một số lượng người khổng lồ) là nhỏ. Nếu có N người muốn chia sẻ thông tin với người khác một cách bí mật thì chỉ cần duy nhất N cặp khoá công khai, ít hơn rất nhiều so với hệ thống khoá riêng tương đương. Thứ hai, việc phân phối khoá không phải là một vấn đề. Khoá công khai của mỗi người có thể được gửi đi theo đường bí mật nếu cần thiết và không yêu cầu bất kỳ sự kiểm soát đặc biệt nào khi phân phối. Thứ ba, các hệ thống khoá công khai có khả năng thực thi chữ ký số. Điều này có nghĩa là một tài liệu điện tử có thể được ký và gửi cho người nhận bất kỳ, cùng với chống chối bỏ. Có nghĩa là, với kỹ thuật khoá công khai, khó có thể tồn tại một người nào khác ngoài người ký - sinh ra chữ ký điện tử; Thêm vào đó, người ký không thể chối bỏ việc ký tài liệu sau khi đã ký. Các hệ thống khoá công khai có một số khó khăn. Một trong các khó khăn đó là quá trình mã hoá và giải mã khá chậm so với các hệ thống khoá riêng. Khoảng thời gian chênh lệch này sẽ tăng lên một cách nhanh chóng nếu bạn và các khách hàng của bạn tiến hành thương mại trên Internet. Người ta không có ý định thay thế các hệ thống khoá riêng bằng các hệ thống khoá công khai mà sử dụng kết hợp để bổ sung cho nhau. Các hệ thống khoá công khai được sử dụng để truyền các khoá riêng cho các thành viên.
4.3.2.2. Các chuẩn và thuật toán mã hoá
Hiện nay có một số thuật toán mã hoá và giải mã được sử dụng với các máy chủ thương mại an toàn. Chính phủ Mỹ đã phê chuẩn cho phép sử dụng một số thuật toán này trong phạm vi nước Mỹ, còn một số thuật toán yếu hơn được sử dụng bên ngoài nước Mỹ. Hiện có rất nhiều thuật toán thuộc các kiểu khoá riêng và khoá công khai như: Blowfish, DES, ECC, IDEA, LUC, MD2, MD4, MD5, RC2, RC4, RC5, RC6, RSA, SHA1, Skipjack, Triple DES.
Một máy chủ hoặc trình duyệt an toàn sử dụng một hoặc nhiều thuật toán này khi mã hoá thông tin. Sở dĩ có điều đó là do các thuật toán có độ mạnh khác nhau, một số thuật toán đã cũ và khả năng xử lý của CPU cũng thay đổi. Các thuật toán kiểu Digest (Hash) gồm có MD2, MD4 và MD5. Các thuật toán Digest không mã hoá các thông tin. Thay vào đó, chúng tính toán một số có độ dài định sẵn từ một thông báo. Số có độ dài định sẵn, thường dài 128 bit, là một chữ ký (tóm lược nội dung của thông báo). Chúng là chữ ký của thông báo. Các chữ ký này đảm bảo (với những người nhận thông báo) rằng thông báo không bị sửa đổi nếu thông báo nhận được có cùng tóm lược với thông báo gốc. Nếu không, người nhận biết rằng thông báo gốc đã bị sửa đổi.
4.3.2.3. Giao thức Secure Socket Layer (SSL)
Giao thức SSL của Netscape và giao thức truyền siêu văn bản an toàn (S-HTTP) của CommerceNet là hai giao thức cho phép truyền thông tin an toàn qua Internet. SSL và S-HTTP cho phép các máy khách và máy chủ quản lý các hoạt động mã hoá và giải mã trong một phiên Web an toàn.
SSL và S-HTTP có các mục tiêu khác nhau. Trong khi SSL đảm bảo kết nối giữa hai máy tính, S-HTTP gửi các thông báo riêng lẻ an toàn. Việc mã hoá các thông báo gửi đi và giải mã các thông báo nhận diễn ra tự động và trong suốt đối với cả SSL và S-HTTP. SSL làm việc ở tầng vận tải, còn S-HTTP làm việc ở tầng ứng dụng.
SSL cung cấp một bắt tay (thoả thuận ban đầu, còn gọi là thủ tục handshake) an toàn, trong đó các máy khách và máy chủ trao đổi một khối dữ liệu ngắn gọn các thông báo. Trong các thông báo này, máy khách và máy chủ thoả thuận mức an toàn được sử dụng để trao đổi các chứng chỉ số. Mỗi máy luôn luôn phải nhận dạng được máy kia. Các máy khách và máy chủ phải có chứng chỉ hợp lệ khi tiến hành giao dịch. Sau khi nhận dạng, SSL mã hoá và giải mã luồng thông tin giữa hai máy. Điều này có nghĩa là thông tin trong yêu cầu HTTP và đáp ứng HTTP đều được mã hoá. Thông tin được mã hoá bao gồm URL (địa chỉ IP của trang Web) mà máy khách đang yêu cầu, các hình thái bất kỳ chứa thông tin (do người sử dụng tạo ra), nó có thể bao gồm cả số thẻ tín dụng và dữ liệu liên quan đến quyền truy nhập HTTP (chẳng hạn như tên người sử dụng và mật khẩu). Tóm lại, tất cả truyền thông (giữa các máy khách và các máy chủ sử dụng SSL) được mã hoá. Khi SSL mã hoá tất cả dòng thông tin giữa máy khách và máy chủ, đối tượng nghe trộm chỉ có thể nhận được các thông tin không thể hiểu được.
Do SSL nằm ở đỉnh tầng TCP/IP của giao thức Internet, SSL có thể đảm bảo các kiểu truyền thông khác nhau giữa các máy tính, bổ sung thêm cho HTTP. Ví dụ, SSL có thể đảm bảo các phiên FTP, cho phép đưa lên hoặc tải xuống một cách riêng lẻ các tài liệu nhạy cảm, các bảng tính và các dữ liệu điện tử khác. SSL có thể đảm bảo các phiên Telnet an toàn, trong đó người sử dụng máy tính từ xa có thể đăng nhập vào các máy host của công ty hoặc gửi đi mật khẩu và tên người sử dụng. Giao thức thực hiện SSL là một phiên bản an toàn của HTTP, được gọi là HTTPS. Bằng cách đặt tên giao thức HTTPS trước URL, để báo hiệu rằng muốn thiết lập một kết nối an toàn với máy chủ từ xa. Ví dụ, nếu gõ vào giao thức và URL như sau https://www.amazon.com, lập tức ta thiết lập được một liên kết an toàn với Amazon.com.
SSL có hai độ dài là 40 bit và 128 bit. Chúng chỉ ra độ dài của khoá phiên riêng, được sinh ra cho mọi giao dịch có mã hoá. Thuật toán mã hoá sử dụng khoá phiên để tạo mã hoá văn bản trong một phiên giao dịch an toàn. Khoá dài hơn có khả năng chống lại tấn công hiệu quả hơn. Chính phủ Mỹ chỉ cho xuất khẩu khoá phiên 40 bit và cấm xuất khẩu khoá 128 bit. Khi phiên giao dịch kết thúc, các khoá phiên bị loại bỏ hoàn toàn, không tái sử dụng cho các phiên giao dịch tiếp theo.
Sau đây, chúng ta có thể xem xét cách SSL làm việc (cuộc trao đổi giữa bên máy khách và máy chủ) như thế nào? Nên nhớ rằng, SSL phải xác thực site thương mại (tối thiểu) và mã hoá mọi cuộc truyền giữa 2 máy tính. Khi trình duyệt của một máy khách đến một Website bí mật của một máy chủ, máy chủ gửi một lời chào tới trình duyệt. Trình duyệt đáp lại bằng một lời chào. Việc tiến hành trao đổi lời chào, hoặc bắt tay cho phép 2 máy tính quyết định các chuẩn mã hoá và nén (mà chúng cùng hỗ trợ).
Tiếp theo, trình duyệt (bên máy khách) yêu cầu máy chủ đưa ra một chứng chỉ số, giống như việc yêu cầu nhận dạng ảnh: "Chứng minh cho tôi biết anh có phải là www.gateway.com hay không?". Đáp lại, máy chủ gửi cho trình duyệt một chứng chỉ. Một CA (được công nhận) đã ký chứng chỉ này. Trình duyệt kiểm tra chữ ký số có trên chứng chỉ của máy chủ, dựa vào khoá công khai của CA, khoá này được lưu giữ trong trình duyệt. Hoạt động này xác thực máy chủ thương mại.
Máy khách và máy chủ thoả thuận rằng mọi trao đổi phải được giữ bí mật, bởi vì những thông tin được truyền đi trên Internet bao gồm số thẻ tín dụng, số hoá đơn và các mã kiểm tra. Để thực hiện bí mật, SSL sử dụng mã hoá khoá công khai (không đối xứng) và mã hoá khoá riêng (đối xứng). Thoạt đầu, trình duyệt sinh ra một khoá riêng dùng chung cho cả hai. Sau đó, trình duyệt mã hoá khoá riêng bằng khoá công khai của máy chủ. Khoá công khai của máy chủ được lưu giữ trong chứng chỉ số, máy chủ gửi chứng chỉ này cho trình duyệt trong quá trình xác thực. Một khi khoá được mã hoá, trình duyệt gửi nó cho máy chủ. Ngược lại, máy chủ giải mã thông báo bằng khoá riêng của nó và tìm ra khoá riêng dùng chung. Tất cả các thông báo giữa máy khách và máy chủ được mã hoá bằng khoá riêng dùng chung (cũng được biết đến như là một khoá phiên).
Sau khi kết thúc phiên giao dịch, khoá phiên bị huỷ bỏ. Một kết nối mới (giữa một máy khách và một máy chủ bí mật) lại bắt đầu tương tự. Tuỳ thuộc vào những gì đã thoả thuận, máy khách và máy chủ có thể sử dụng mã 40 bit hoặc 128 bit. Thuật toán mã hoá có thể là DES, hoặc RSA.
4.3.2.4. Giao thức S-HTTP
S-HTTP là một mở rộng của HTTP, cung cấp một số đặc tính an toàn, trong đó có xác thực máy khách và máy chủ, mã hoá và chống chối bỏ yêu cầu/đáp ứng. Giao thức này được CommerceNet Consortium phát triển, hoạt động ở tầng ứng dụng. Nó cung cấp mã hoá đối xứng để thiết lập xác thực máy khách/máy chủ và các tóm lược thông báo nhằm đảm bảo tính toàn vẹn dữ liệu. Máy khách và máy chủ có thể sử dụng các kỹ thuật S-HTTP một cách riêng lẻ. Điều này có nghĩa là trình duyệt của máy khách có thể yêu cầu an toàn bằng cách sử dụng một khoá riêng (khoá đối xứng), trong khi đó máy chủ có thể yêu cầu xác thực máy khách bằng cách sử dụng các kỹ thuật khoá công khai.
Các chi tiết về S-HTTP được máy khách và máy chủ thoả thuận trong phiên giao dịch đầu. Máy khách hoặc máy chủ có thể định rõ - một đặc tính an toàn riêng là Required (yêu cầu), Optional (tuỳ chọn) hoặc Refused (từ chối). Khi một thành viên quy định rằng đặc tính an toàn riêng là Required, nó sẽ chỉ tiếp tục kết nối nếu thành viên khác (máy khách hoặc máy chủ) đồng ý tuân theo đặc tính an toàn đã được định trước. Nếu không, sẽ không có kết nối an toàn nào được thiết lập.
Giả thiết, trình duyệt của máy khách định rõ yêu cầu mã hoá để đảm bảo an toàn tất cả các cuộc truyền thông. Điều này có nghĩa là các giao dịch yêu cầu đặt hàng cần được duy trì bí mật. Những đối thủ cạnh tranh có thể nghe trộm nhưng không thể đoán biết được nội dung giao dịch. Người bán muốn được đảm bảo rằng, người mua đúng là người anh ta nói, chứ không phải là đối tượng lừa đảo. Đồng thời yêu cầu chống chối bỏ để người mua không phủ nhận được việc anh ta đã đặt hàng. Trong thực tế, người ta sử dụng chữ ký số bí mật.
S-HTTP có cách thiết lập một phiên giao dịch an toàn khác với SSL. Trong khi SSL tiến hành bắt tay máy khách/máy chủ để thiết lập một cuộc truyền thông an toàn, S-HTTP thiết lập các chi tiết an toàn thông qua header (phần đầu trong gói tin) của gói đặc biệt. Header định nghĩa kiểu kỹ thuật an toàn, cụ thể là mã khoá riêng, xác thực máy chủ, xác thực máy khách và đảm bảo tính toàn vẹn thông báo. Header cũng quy định thuật toán nào được hỗ trợ, máy khách hay máy chủ (hoặc cả hai) hỗ trợ thuật toán đó, kỹ thuật an toàn nào được yêu cầu, đặc tính an toàn riêng là tuỳ chọn hay từ chối. Một khi máy khách và máy chủ thoả thuận được các thiết lập an toàn bắt buộc giữa chúng, tất cả các thông báo trong phiên giao dịch sau này được đóng gói an toàn trong một phong bì an toàn (secure envelope). Đây là một tiện ích an toàn đóng gói thông báo và đảm bảo tính bí mật, toàn vẹn và xác thực máy khách/máy chủ. Nhờ đó, mọi thông báo chuyển tiếp trên mạng hoặc Internet được mã hoá, không ai có thể đọc trộm. Mọi sửa đổi trên thông báo đều bị phát hiện, nhờ vào kỹ thuật toàn vẹn. Nó cung cấp một mã phát hiện thông báo bị sửa đổi. Người ta sử dụng các chứng chỉ số do một CA (được công nhận) phát hành để xác thực các máy khách và máy chủ. Phong bì an toàn bao gồm tất cả các đặc tính an toàn trên.
4.3.2.5. Đảm bảo tính toàn vẹn giao dịch
Tham gia thương mại điện tử có:
-
Máy khách có trình duyệt: gửi các thông tin thanh toán, đặt hàng và các chỉ dẫn thanh toán cho máy chủ thương mại.
-
Máy chủ thương mại: đáp ứng thông tin từ phía máy khách, bằng cách gửi xác nhận điện tử đối với các chi tiết đặt hàng.
Nếu một đối tượng xâm nhập trên Internet có thể sửa đổi các thông tin đặt hàng trong quá trình chuyển tiếp (ví dụ anh ta có thể sửa đổi địa chỉ gửi hàng hay số lượng hàng), hậu quả của nó rất nghiêm trọng, khó lường trước. Đây là một ví dụ về tấn công toàn vẹn. Để ngăn chặn phải làm cho đối tượng nếu xâm nhập được sẽ gặp khó khăn rất lớn và rất tốn kém trong sửa đổi thông tin. Hiện đã có các kỹ thuật an toàn cho phép người nhận phát hiện mọi sửa đổi trên thông báo.
Cần kết hợp các kỹ thuật để tạo ra thông báo có khả năng chống trộm cắp và xác thực. Để chống lại việc gian lận và lạm dụng khi thông báo bị sửa đổi, người ta áp dụng hai thuật toán riêng cho một thông báo. Các thuật toán băm là các hàm một chiều, có nghĩa là, không có cách nào để chuyển đổi từ giá trị băm ngược trở lại thông báo ban đầu. Điều này thực sự có lợi, bởi vì chúng ta có thể so sánh giá trị băm này với giá trị băm khác để tìm ra sự trùng khớp giữa chúng. MD5 là một ví dụ về thuật toán băm, nó được sử dụng rộng rãi trong thương mại điện tử an toàn. Một thuật toán băm có các đặc điểm như sau: nó sử dụng khoá không bí mật, tóm lược thông báo mà nó tạo ra không thể chuyển ngược lại thông tin ban đầu, thuật toán và các thông tin (về việc nó làm việc như thế nào) có hiệu lực công khai và các xung đột hầu như không xảy ra.
Giả thiết rằng, thông báo gửi đi là một đơn đặt hàng có chứa địa chỉ và thông tin thanh toán của khách hàng. Khi thương gia nhận được đơn đặt hàng và tóm lược thông báo đi kèm, anh ta tính toán tóm lược thông báo nhận được, so sánh nó với tóm lược thông báo đi kèm và biết được thông báo có bị sửa đổi hay không.
Tuy nhiên, ở đây cũng nảy sinh một vấn đề khác. Do th«ng b¸o được biết rộng rãi và công khai, bất kỳ ai cũng có thể chặn lấy một đơn đặt hàng, sửa đổi địa chỉ gửi hàng và số lượng hàng yêu cầu, tạo ra một tóm lược mới, gửi thông báo (đã bị sửa đổi) cùng với tóm lược mới cho một thương gia. Thương gia tính toán tóm lược thông báo nhận được, so sánh tóm lược này với tóm lược đính kèm và thấy chúng trùng khớp. Thương gia tin rằng thông báo nhận được chính là thông báo ban đầu. Để ngăn chặn kiểu gian lận này, người gửi mã hoá tóm lược thông báo bằng khoá riêng của mình.
Chữ ký số là tóm lược thông báo được mã hoá. Đơn đặt hàng có đi kèm chữ ký số cung cấp nhận dạng xác thực người gửi và đảm bảo thông báo không bị sửa đổi. Một chữ ký cung cấp tính toàn vẹn thông báo và xác thực máy khách như thế nào? Khi tóm lược thông báo được mã hoá nhờ dùng các kỹ thuật khoá công khai, có nghĩa là chỉ người chủ sở hữu của cặp khoá công khai/khoá riêng mới có thể mã hoá tóm lược thông báo. Vì vậy, khi thương gia giải chữ ký số bằng khoá công khai, tính toán tóm lược thông báo nhận được, sự trùng khớp của các tóm lược thông báo là kết quả chứng minh tính đích thực của người gửi. Điều này giải quyết vấn đề làm giả (spoofing). Nếu cần, cả hai thành viên có thể thoả thuận giữ bí mật giao dịch, bổ sung thêm vào tính toàn vẹn và xác thực mà chữ ký số đã cung cấp. Đơn giản chỉ cần mã hoá toàn bộ chuỗi (cả chữ ký số và thông báo) nhằm đảm bảo tính bí mật thông báo. Việc kết hợp sử dụng mã hoá khoá công khai, tóm lược thông báo và chữ ký số đảm bảo an toàn chất lượng cho các cuộc giao dịch trên Internet.
4.3.2.6. Đảm bảo chuyển giao giao dịch
Tấn công chối bỏ hoặc làm trễ dịch vụ có thể loại bỏ hoặc sử dụng nhiều nguồn tài nguyên. Trong tấn công này, các chương trình Java có thể tải xuống với một trang Web và dần dần làm cho bộ xử lý của bạn không hoạt động được. Loại tấn công này cũng xảy ra trên các kênh thương mại, một mạng hoặc Internet. Một cách từ chối dịch vụ là làm tràn ngập Internet bằng một số lượng lớn các gói, nhằm phá hoại máy chủ hoặc giảm các mức an toàn của nó xuống mức khó có thể chấp nhận được đối với người muốn tiến hành kinh doanh. Một số tấn công là nguyên nhân phá hoại hệ điều hành. Các tấn công từ chối cũng có thể loại bỏ các gói Internet, làm cho chúng biến mất. Nếu điều này xảy ra thường xuyên đối với một site thương mại, những người mua hàng sẽ bắt đầu tránh xa site này.
Mã hoá hoặc các chữ ký số có thể bảo vệ các gói thông tin, tránh bị trộm cắp hoặc làm trễ. Tuy nhiên, TCP có trách nhiệm kiểm soát các gói tại các nút cuối. Tại đích, khi lắp ráp các gói theo đúng trật tự ban đầu, nó phát hiện được ngay các gói bị mất. Trách nhiệm lúc này của TCP là yêu cầu máy phía máy khách gửi lại dữ liệu. Điều này có nghĩa là không có giao thức an toàn máy tính đặc biệt nào (ngoại trừ TCP/IP) được sử dụng như là một biện pháp đối phó, chống lại các tấn công từ chối. Giao thức TCP/IP tiến hành kiểm tra dữ liệu, vì vậy nó có thể phát hiện các gói dữ liệu bị sửa đổi hoặc không hợp lệ.
4.3.3. Bảo vệ máy chủ thương mại
Các cách bảo đảm an toàn được trình bày trong các mục trên chủ yếu tập trung vào việc bảo vệ máy phía máy khách và các giao dịch thương mại trên Internet hoặc kênh thương mại. Trong phần này chúng ta đi sâu xem xét việc bảo vệ máy chủ thương mại, đây chính là trọng tâm của thương mại điện tử. Máy chủ thương mại, song song với máy chủ Web, đáp ứng các yêu cầu từ trình duyệt Web thông qua giao thức HTTP và CGI script. Phần mềm máy chủ thương mại bao gồm máy chủ FTP, máy chủ thư tín, máy chủ đăng nhập từ xa và hệ điều hành trên các máy host.
4.3.3.1. Kiểm soát truy nhập và xác thực
Kiểm soát truy nhập và xác thực nhằm kiểm soát ai và cái gì truy nhập vào máy chủ thương mại. Xác thực là kiểm tra nhận dạng thực thể muốn truy nhập vào máy tính thông qua các chứng chỉ số. Khi máy chủ yêu cầu nhận dạng rõ ràng một máy khách và người sử dụng của nó, máy chủ yêu cầu máy khách gửi cho nó một chứng chỉ. Máy chủ có thể xác thực người sử dụng theo nhiều cách. Thứ nhất, nếu máy chủ không thể giải mã chữ ký số (có trong chứng chỉ) bằng cách sử dụng khoá công khai, điều này chứng tỏ rằng chứng chỉ không có nguồn gốc từ người sở hữu tin cậy. Thủ tục này ngăn chặn, không cho phép các chứng chỉ gian lận chui vào một máy chủ an toàn. Thứ hai, máy chủ kiểm tra tem thời gian (có trên chứng chỉ) để đảm bảo rằng chứng chỉ chưa quá hạn. Máy chủ sẽ loại bỏ các chứng chỉ đã hết hạn và không cung cấp thêm dịch vụ. Thứ ba, máy chủ có thể sử dụng một hệ thống gọi lại, trong đó địa chỉ máy khách và tên người sử dụng được kiểm tra, dựa vào danh sách tên người dùng và địa chỉ máy khách được gán trước.
Tên người sử dụng và mật khẩu là một yếu tố bảo vệ cho các máy chủ. Bạn sử dụng mật khẩu hàng ngày khi muốn truy nhập vào máy chủ lưu giữ hộp thư điện tử của bạn, truy nhập vào mạng của một trường đại học hoặc một công ty, đăng nhập vào các dịch vụ thuê bao, chẳng hạn như E*Trade, trên Internet. Để xác thực người dùng bằng sử dụng tên và mật khẩu, máy chủ phải lưu giữ một cơ sở dữ liệu (có chứa các thông tin liên quan đến người sử dụng hợp pháp, gồm tên người sử dụng và mật khẩu). Hệ thống cho phép người sử dụng bổ sung, xoá, thay đổi mật khẩu. Các hệ thống hiện đại nhất giúp người sử dụng nhớ lại mật khẩu trong trường hợp họ quên. Bạn có thể lấy lại một mật khẩu đã quên bằng cách gửi yêu cầu cho máy chủ thư tín.
Nhiều hệ thống máy chủ Web lưu giữ tên người sử dụng và mật khẩu trong một file. Không quan tâm đến việc thông tin đăng nhập được lưu giữ ở đâu, cách nhanh nhất và phổ biến nhất để lưu giữ các mật khẩu (một biện pháp được sử dụng trong các hệ thống UNIX) là lưu giữ tên người sử dụng ở dạng rõ và mã hoá mật khẩu. Khi bạn hoặc một hệ thống tạo ra một tên mới, mật khẩu được mã hoá nhờ thuật toán mã hoá một chiều. Do tên người sử dụng được lưu ở dạng rõ, hệ thống có thể phê chuẩn những người sử dụng khi họ đăng nhập, bằng cách kiểm tra tên của anh ta qua danh sách tên (được lưu giữ trong cơ sở dữ liệu). Sau đó mã hoá mật khẩu mà người sử dụng gõ vào khi đăng nhập hệ thống và so sánh nó với mật khẩu trong cơ sở dữ liệu (mật khẩu này được mã hoá, trước khi lưu vào cơ sở dữ liệu). Nếu trùng khớp, đăng nhập được chấp nhận.
Thông thường, máy chủ Web đưa ra danh sách kiểm soát truy nhập an toàn. ACL là một danh sách hoặc cơ sở dữ liệu, các nguồn tài nguyên, tên của người có thể truy nhập vào các file hoặc các nguồn tài nguyên khác. Mỗi file có một danh sách kiểm soát truy nhập riêng. Bất cứ khi nào, máy phía máy khách yêu cầu máy chủ Web truy nhập vào một file hoặc một tài liệu (có định trước cấu hình yêu cầu kiểm tra truy nhập), máy chủ Web sẽ kiểm tra ACL của nguồn tài nguyên và sẽ quyết định người sử dụng có được phép truy nhập hay không.
4.3.3.2. Các kiểm soát của hệ điều hành
Hầu hết các hệ điều hành (trừ các hệ điều hành chạy trên các máy tính nhỏ) sử dụng tên người dùng và mật khẩu cho hệ thống xác thực. Hệ thống này cung cấp một cơ sở hạ tầng an toàn cho máy chủ Web (chạy trên máy tính host). Hiện nay, hệ điều hành UNIX (và các biến thể của nó) là hệ điều hành nền chủ đạo cho các máy chủ Web. UNIX có một số cơ chế bảo vệ nhằm ngăn chặn khám phá trái phép và đảm bảo tính toàn vẹn dữ liệu.
4.3.3.3. Các bức tường lửa
Bức tường lửa được sử dụng như một hàng rào giữa một mạng (cần được bảo vệ) và Internet hoặc mạng khác (có khả năng gây ra mối đe doạ). Mạng và các máy tính cần được bảo vệ nằm bên trong bức tường lửa, các mạng khác nằm ở bên ngoài. Các bức tường lửa có các đặc điểm sau đây:
Tất cả các luồng thông tin từ trong ra ngoài, từ ngoài vào trong đều phải chịu sự quản lý của nó.
-
Chỉ có các luồng thông tin được phép (do chính sách an toàn cục bộ xác định) đi qua nó.
-
Bức tường lửa tự bảo vệ mình.
Các mạng bên trong bức tường lửa được gọi là các mạng tin cậy, các mạng bên ngoài được gọi là các mạng không tin cậy. Đóng vai trò như một bộ lọc, bức tường lửa cho phép các thông báo (có chọn lọc) đi vào, hoặc ra khỏi các mạng được bảo vệ. Ví dụ, một chính sách an toàn cho phép tất cả các luồng thông tin HTTP (Web) vào ra, nhưng không cho phép các yêu cầu FTP hoặc Telnet vào, hoặc ra khỏi các mạng được bảo vệ. Bức tường lửa ngăn chặn, không cho phép truy nhập trái phép vào các mạng bên trong bức tường lửa.
Các bức tường lửa hoạt động ở tầng ứng dụng. Chúng cũng có thể hoạt động ở tầng mạng và tầng vận tải. Các site của các công ty khác nhau phải có một bức tường lửa cho mỗi kết nối ngoài với Internet. Đảm bảo một phạm vi an toàn không thể phá vỡ. Ngoài ra, mỗi bức tường lửa trong công ty phải tuân theo chính sách an toàn.
Bức tường lửa nên loại ra các phần mềm không cần thiết. Giả sử rằng, một công ty nhỏ mua một máy tính chạy hệ điều hành UNIX, tất cả các phần mềm đi kèm với máy tính phải được kiểm tra và loại bỏ nếu chúng không phục vụ cho mục đích mà hệ điều hành hỗ trợ. Do các máy tính được sử dụng làm bức tường lửa không phải là một máy tính toán phục vụ cho mục đích chung, nên chỉ có các phần mềm hệ điều hành cần thiết và phần mềm bảo vệ được duy trì trên máy.
Các bức tường lửa được chia thành 3 loại, bao gồm:
-
Packet filter firewall (Loại lọc gói) để kiểm tra tất cả các luồng dữ liệu vào ra, giữa mạng tin cậy và Internet. Nó kiểm tra các địa chỉ nguồn và đích, các cổng, từ chối hoặc cho phép các gói vào khi thoả mãn tập các quy tắc được lập trình trước.
-
Gateway server firewall được sử dụng để lọc các luồng thông tin, tuỳ thuộc vào ứng dụng mà chúng yêu cầu. Gateway server firewall hạn chế truy nhập vào các ứng dụng xác định, chẳng hạn như Telnet, FTP và HTTP. Khác với loại bức tường lửa đã trình bày ở trên, bức tường lửa mức ứng dụng lọc và ghi nhật ký tất cả các yêu cầu. Gateway server firewall cung cấp một điểm trung tâm, tất cả các yêu cầu được phân loại, ghi lại và phân tích tại điểm này.
-
Proxy server firewall (Loại dùng máy uỷ quyền) thay mặt cho mạng riêng, truyền thông với Internet. Khi bạn định cấu hình cho một trình duyệt sử dụng uỷ quyền, bức tường lửa chuyển yêu cầu của trình duyệt lên Internet. Khi Internet gửi đáp ứng ngược trở lại, máy chủ uỷ quyền chuyển tiếp đáp ứng này cho trình duyệt. Các máy chủ uỷ quyền cũng được sử dụng như là một cache lớn (vùng nhớ tốc độ cao, được sử dụng để lưu giữ các trang Web).