Chương 2 : Các phương pháp mã hoá và bảo mật thông tin
3.4 Bảo mật Internet
Tại sao chúng ta phải kết nối với Internet? Bởi vì chúng ta muốn trao đổi thư điện tử, chúng ta muốn tìm kiếm các file, chúng ta muốn liên kết với mọi người, chúng ta muốn duyệt web và còn rất nhiều lý do khác nữa. Internet có rất nhiều lợi ích nhưng cũng chứa đựng rất nhiều mối nguy hiểm. Internet có thể là nguồn gốc của các thông tin không lành mạnh, là nguồn phát tán virus và trên Internet có rất nhiều những kẻ phá hoại luôn tìm cách thâm nhập bất hợp pháp vào hệ thống, trộm cắp thông tin. Chính vì vậy bảo mật Internet cũng là phần rất quan trọng trong quá trình bảo mật thông tin. Người quản trị cần phải xác định sẽ sử dụng các dịch vụ gì, ngăn chặn các dịch vụ gì cũng như khoanh vùng các hệ thống được phép sử dụng dịch vụ ấy [5].
3.4.1 HTTP
TCP/IP là một bộ giao thức Internet và HTTP là một giao thức dùng cho dịch vụ web. HTTP nằm ở lớp trên cùng của giao thức TCP/IP. Khi người sử dụng nhắp chuột vào một liên kết trên trang web, trình duyệt web sẽ gửi một yêu cầu đến máy chủ có chứa trang web đó. Máy chủ web sẽ tìm kiếm file tương ứng với liên kết đó và gửi đến người sử dụng thông qua giao thức HTTP [6]. TCP đóng vai trò điều khiển quá trình kết nối và duy trì kết nối giữa người sử dụng với máy chủ, còn IP
làm nhiệm vụ đảm bảo định tuyến thông tin trên Internet giúp thông tin đi từ máy chủ đến được người sử dụng.
HTTP là một giao thức không có tính không bền vững, có nghĩa kết nối giữa máy trạm và máy chủ bị huỷ bỏ sau mỗi thao tác [6]. Khi người sử dụng yêu cầu truy nhập một trang web, máy chủ web tìm kiếm trang web đó, truyền đến cho người sử dụng rồi sau đó huỷ bỏ kết nối. Nếu người sử dụng muốn xem một trang web khác, một kết nối khác lại được thiết lập và sau khi máy chủ truyền trang web mới cho người sử dụng, kết nối đó lại được huỷ bỏ.
3.4.2 S-HTTP
S-HTTP là giao thức HTTP được bổ sung thêm tính năng bảo mật, nó được phát triển nhằm cung cấp khả năng bảo mật thông tin giữa máy chủ web và máy trạm. Cả máy chủ web và máy trạm đều chứa một danh sách các thuật toán mã hoá và thông tin về khoá mã. Khi máy trạm yêu cầu kết nối với máy chủ, máy chủ xác định đó là kênh liên lạc cần được mã hoá nên máy chủ sẽ trao đổi với máy trạm về phương thức mã hoá và cấu hình để thực hiện. Khi máy chủ và máy trạm đã thống nhất phương thức mã hoá, máy trạm gửi cho máy chủ khoá mã công khai của nó. Máy chủ sẽ tạo ra một khoá mã session từ khoá mã công khai nhận được rồi mã hoá khoá mã session đó bằng khoá mã công khai của máy trạm và gửi về cho máy trạm. Sau khi máy trạm giải mã được khoá mã session thì các thông điệp trao đổi giữa máy trạm và máy chủ sẽ được mã hoá bằng khóa mã session đó.
S-HTTP cũng cung cấp khả năng bảo vệ tính toàn vẹn của dữ liệu và khả năng xác thực nguồn gốc của dữ liệu. S-HTTP có thể tính toán để tạo ra một giá trị hash cho thông điệp gửi đi và gán chữ ký điện tử cho giá trị hash đó. Không giống như giao thức HTTP, các phiên giao dịch của giao thức S-HTTP có tính bền vững bởi vì nó có chứa các thông tin mào đầu về thuật toán mã hoá trong quá trình bắt tay giữa máy trạm và máy chủ. Nếu kết nối trong S-HTTP không có tính bền vững thì máy trạm và máy chủ sẽ liên tục phải thoả thuận thủ tục mã hoá. Giao thức S-HTTP không đòi hỏi máy trạm phải có chứng chỉ khoá mã công khai khi sử dụng khoá mã session, điều này làm cho kết nối không thực sự an toàn, nhưng giúp cho S-HTTP
có được tính linh hoạt cần thiết.
3.4.3 HTTPS
Có một điểm khác biệt giữa S-HTTP và HTTPS: S-HTTP là công nghệ cho phép bảo mật từng thông điệp được gửi đi giữa hai máy tính còn giao thức HTTPS cho phép bảo vệ kênh truyền giữa hai máy tính. Giao thức HTTPS sử dụng SSL và HTTP để bảo vệ kết nối giữa máy chủ và máy trạm. Do đó nếu cần mã hoá từng thông điệp gửi đi giữa máy chủ và máy trạm thì ta dùng giao thức S-HTTP, còn nếu muốn tất cả các thông tin truyền đi giữa hai máy đều được bảo vệ, ta dùng giao thức HTTPS có nghĩa là tạo một kênh kết nối SSL trên nền HTTP.
3.4.4 SSL
Giao thức SSL tương tự như S-HTTP nhưng nó được dùng để bảo vệ một kênh truyền thông (chứ không phải chỉ từng thông điệp) giữa hai máy tính. SSL sử dụng phương pháp mã hoá khoá công khai và cho phép mã hoá dữ liệu, xác thực máy chủ, bảo vệ tính toàn vẹn của dữ liệu và cho phép lựa chọn xác thực máy trạm. Khi máy trạm yêu cầu truy nhập một trang web được bảo vệ, máy chủ sẽ gửi về cho máy trạm yêu cầu cần phải khởi tạo một kênh giao dịch an toàn; máy trạm sẽ gửi khoá mã công khai của mình cùng với các tham số cần thiết cho máy chủ. Máy chủ sẽ kiểm tra các thông tin này cho đến khi hoàn toàn đáp ứng các yêu cầu - đây được gọi là gian đoạn bắt tay. Máy chủ xác thực bản thân bằng cách gửi cho máy trạm một chứng chỉ số, nếu máy trạm tin cậy, quá trình sẽ tiếp tục. Máy trạm nhận được chứng chỉ số, và liên lạc với CA trên chứng chỉ để kiểm tra các thông tin. Máy chủ cũng có thể yêu cầu máy trạm phải gửi chứng chỉ số cho mình để xác thực hai chiều, nhưng điều này ít khi được thực hiện. Khi máy trạm đã xác thực được các thông tin về máy chủ, máy chủ sẽ tạo một khoá mã session, mã hoá bằng khoá mã cá nhân của mình và gửi đến cho máy trạm. Máy trạm dùng khoá mã công khai của máy chủ để giải mã lấy khoá mã session rồi sử dụng khoá mã session này để mã hoá toàn bộ kênh truyền giữa hai máy tính.
cầu kết thúc (thường là khi người sử dụng đóng trình duyệt hoặc nhắp vào một URL khác).
Giao thức SSL yêu cầu máy chủ và trình duyệt phải hỗ trợ tính năng SSL. SSL cung cấp tính bảo mật cho đường truyền nhưng nó không cung cấp tính bảo mật cho dữ liệu khi đã đến địa chỉ nhận. Điều đó có nghĩa dữ liệu được mã hoá bảo mật trên đường truyền nhưng ngay khi nhận được bởi một máy tính nó không còn được mã hoá nữa. Do đó nếu người sử dụng gửi các thông tin tài khoản ngân hàng của mình đến một tổ chức tài chính thông qua kênh truyền được bảo vệ bằng SSL, kênh truyền đó sẽ được bảo vệ an toàn nhưng người sử dụng phải tin rằng tổ chức tài chính đó đã nhận được thông tin một cách an toàn vì nhiệm vụ của SSL đến đó là kết thúc.
Trong mô hình 7 lớp, SSL nằm bên dưới lớp ứng dụng và nằm bên trên lớp giao vận. Điều này cho phép SSL không bị hạn chể bởi một giao thức phần mềm nào và có khả năng sử dụng tất cả các tiêu chuẩn giao vận của Internet.
Người sử dụng có thể biết kênh truyền của mình đã được bảo vệ bằng cách nhìn vào URL và thấy chuỗi https:// hoặc thấy biểu tượng chiếc khoá trên góc của trình duyệt.
3.4.5 MIME
MIME là một công nghệ dùng để xác định cách thức các thông tin đa phương tiện (multimedia) được đính vào thư tín điện tử vào gửi đi. Internet có tiêu chuẩn e-mail để xác định định dạng của email, cách đóng gói, truyền đi và mở ra. Nếu một thông điệp hoặc tài liệu được gắn kèm một thông tin đa phương tiện, MIME sẽ xác định cách mà thông điệp quản lý thông tin multimedia đó [5].
Khi một người sử dụng yêu cầu máy chủ web cung cấp một file có chứa các đoạn nhạc, hình ảnh hoặc một đoạn phim, máy chủ sẽ gửi file đó đến máy trạm và kèm theo các thông tin mào đầu miêu tả file đính kèm. Ví dụ có thể mào đầu đó chỉ ra rằng MIME đó thuộc dạng hình ảnh, có đuôi là jpeg. Mặc dù có thể được chỉ ra trong MIME, nhưng phần lớn hệ điều hành thường sử dụng phần mở rộng của file
jpeg và kiểm tra xem danh sách các ứng dụng cần thiết để mở file này. Nếu trình duyệt web được gán nhiệm vụ mở file jpeg, trình duyệt web sẽ mở file này cho người sử dụng.
3.4.6 S/MIME
S/MIME là tiêu chuẩn để mã hoá và gán chữ ký điện tử cho các thư điện tử có file đính kèm. S/MIME là phần mở rộng của MIME để cho phép mã hoá thư điện tử và file đính kèm. S/MIME cung cấp khả năng bảo mật thông tin, xác thực nguồn gốc, chống phủ nhận và bảo vệ tính toàn vẹn bằng cách sử dụng các thuật toán hash, thuật toán mã hoá đối xứng, chứng chỉ khoá công khai X.509 và ký xác nhận thông tin bằng thuật toán mã hoá.
3.4.7 Bảo mật các thông tin giao dịch trực tuyến – SET [6]
SET (Secure Electronic Transactions) là một công nghệ bảo mật được đề xuất bởi hai tổ chức thẻ tín dụng Visa và MasterCard nhằm cung cấp khả năng bảo vệ các giao dịch bằng thẻ tín dụng trên mạng Internet.
SET là một giao thức mã hoá dùng để mã hoá thông tin thẻ tín dụng giao dịch trên Internet. Nó gồm ba phần: ví điện tử, phần mềm cài đặt trên máy chủ web của đại lý tiếp nhận thẻ, và phần mềm thanh toán nằm tại đại lý tiếp nhận thẻ.
Để sử dụng SET, người sử dụng phải khai báo thông tin về thẻ tín dụng vào phần mềm ví điện tử. Thông tin này sẽ được lưu lại trên ổ cứng và trên một thẻ thông minh. Phần mềm sau đó sẽ tạo các khoá mã cá nhân và khoá mã công khai để mã hoá thông tin giao dịch trước khi gửi đi. Phần mềm trên máy chủ web nhận được các thông tin giao dịch sẽ không giải mã mà chỉ ký xác nhận điện tử và chuyển đến cho phần mềm thanh toán tại đại lý tiếp nhận thẻ. Phần mềm thanh toán sẽ giải mã lấy thông tin về thẻ tín dụng, kiểm tra tính hợp lệ của thẻ tín dụng và tiến hành các nghiệp vụ ngân hàng khác.
Mặc dù SET là một cách an toàn, hiệu quả để truyền các thông tin về thẻ tín dụng qua mạng Internet nhưng các doanh nghiệp và người sử dụng không thực sự thích thú phương pháp này bởi vì nó đòi hỏi phải có sự hiệp lực của rất nhiều đối tác, cần
phải cài đặt và cấu hình lại phần mềm và hơn nữa lại mất nhiều công sức và chi phí hơn so với giao thức SSL đang được sử dụng rộng rãi. Do đó, phần lớn người sử dụng cũng như các doanh nghiệp đều không muốn sử dụng phương pháp này và tỏ ra khá hài lòng với các dịch vụ và SSL cung cấp.
3.4.8 Cookies
HTTP là một giao thức không có tính bền vững, có nghĩa là mỗi một phiên kết nối HTTP không có thông tin gì về phiên kết nối trước đó. Đây là lý do chính để sử dụng cookies. Cookies lưu lại thông tin của các phiên giao dịch HTTP trước đó bằng cách lưu vào máy trạm dưới dạng các file text. Có nhiều mục đích sử dụng cookies nhưng chủ yếu chúng được dùng cho mục đích quảng cáo và phân loại người sử dụng Internet [6].
Ví dụ khi một người sử dụng truy cập vào một trang web về thư viện sách trực tuyến, người đó điền thông tin rằng lĩnh vực mình quan tâm là “công nghệ” thì máy trạm mà người đó đang sử dụng sẽ lưu thông tin về loại sách người đó quan tâm – “công nghệ” dưới dạng một cookie và những lần sau khi người sử dụng lại truy nhập vào trang web này máy chủ sẽ đọc thông tin từ cookie và tự động đưa ra các thông tin về các loại sách liên quan đến lĩnh vực công nghệ mà người đó quan tâm. Cookies cũng có thể được sử dụng để đánh dấu mốc thời gian truy nhập và chặn người sử dụng. Ví dụ khi người sử dụng cố tính dò tìm mật khẩu để truy nhập vào một trang web giao dịch trực tuyến máy chủ web sẽ tạo một cookie đánh dấu thời gian và lưu lại trên máy trạm. Máy chủ sẽ kiểm tra cookie đó và không cho máy trạm đó truy nhập vào website của mình trong một khoảng thời gian nhất định. Một thông tin khác cũng có thể được lưu trên cookie là tân truy nhập và mật khẩu truy nhập vào một trang web nào đó. Do cookies được lưu dưới dạng plaintext nên mật khẩu truy nhập đó cũng có thể bị đánh cắp dễ dàng. Do đó, nếu không thưc sự cần thiết người sử dụng nên bỏ tính năng cho phép máy chủ lưu các cookies trên máy tính của mình để cho an toàn.
3.4.9 SSH
SSH là một chức năng làm việc dưới cơ chế đường hầm để cho phép các thiết bị dạng đầu cuối kết nối từ xa với máy tính một cách an toàn. SSH là một chương trình cho phép truy nhập từ xa vào một máy tính khác, chương trình có thể cho phép người sử dụng trên máy tính A truy nhập vào máy tính B và chạy các ứng dụng trên máy tính B, lấy các file từ máy tính B mà không cần phải có sự tiếp xúc về mặt vật lý. SSH cho phép khả năng xác thực và mã hoá thông tin trên đường truyền. SSH dùng để thay thế cho các công cụ telnet, rlogin, rexec hoặc rsh. SSH là một chương trình và là một tập hợp các giao thức kết hợp với nhau để cho phép tạo một đường hầm giữa hai máy tính. Hai máy tính có thể thông qua các thủ tục bắt tay để trao đổi khoá mã session và sử dụng nó để mã hoá bảo vệ các thông tin trao đổi giữa hai máy tính. Các bước để thực hiện một kết nối SSH được trình bày trong hình 3.9 [6].
Hình 3.9: các bước để thiết lập một kênh SSH
- Bước 1: máy trạm yêu cầu khởi tạo một kênh kết nối SSH
- Bước 2: máy trạm và máy chủ trao đổi thông tin để xác định phiên bản của giao thức đang sử dụng
- Bước 3: máy trạm và máy chủ thoả thuận thuật toán mã hoá sẽ sử dụng, các thông số cần thiết và tiến hành trao đổi khoá
- Bước 4: thiết lập kênh kết nối an toàn thông qua thuật toán mã hoá và khoá mã thu được trong bước 3
- Bước 5: máy trạm có thể chạy các chương trình ứng dụng từ xa trên máy chủ
3.4.10 IPSec
IPSec là một giao thức cho phép thiết lập một kênh truyền an toàn để bảo vệ dữ liệu trao đổi giữa hai thiết bị. Các thiết bị dùng trong kênh truyền này có thể là hai máy chủ, hai router, một máy trạm với một máy chủ, hoặc hai gateway kết nối hai mạng khác nhau. IPSec là một tiêu chuẩn được sử dụng rộng rãi để bảo vệ cho lớp mạng (lớp 3), nó linh hoạt hơn và ít tốn kém hơn so với phương pháp mã hoá ở tầng ứng dụng [6].
IPSec có các phương pháp xác thực và mã hoá rất mạnh thông qua các thuật toán mã hoá khoá công khai. Mặc dù có thể sử dụng để mã hoá kênh truyền thông giữa hai máy tính, IPSec thường sử dụng để tạo kênh kết nối riêng ảo (VPN) giữa hai mạng trên Internet.
IPSec không phải là một giao thức quy định chặt chẽ loại thuật toán mã hoá, loại khoá và phương pháp xác thực được sử dụng. IPSec có tính mở với cơ cấu modul để cho phép các công ty sử dụng linh hoạt các công nghệ. IPSec sử dụng hai giao thức bảo mật chính: xác thực mào đầu (AH) và đóng gói an toàn dữ liệu (ESP) [6].