Trong hệ thống Windows NT 4.0 và Windows 2000 hiện nay đều hỗ trợ đầy đủ cỏc cơ chế ghi log với cỏc mức độ khỏc nhau. Ngƣời quản trị hệ thống tựy thuộc vào mức độ an toàn của dịch vụ và cỏc thụng tin sử dụng cú thể lựa chọn cỏc mức độ ghi log khỏc nhau. Ngoài ra, trờn hệ thống Windows NT cũn hỗ trợ cỏc cơ chế ghi logfile trực tiếp vào cỏc database để tạo bỏo cỏo; giỳp ngƣời quản trị phõn tớch và kiểm tra hệ thống nhanh chúng và thuận tiện. Sử dụng tiện ớch event view để xem cỏc thụng tin logfile trờn hệ thống với cỏc mức độ nhƣ Application log; Security log; System log. Cỏc hỡnh dƣới đõy sẽ minh hoạ một số hoạt động ghi logfile trờn hệ thống Windows:
Vớ dụ: Để ghi lại hoạt động đọc, viết, truy nhập.... đối với một file/thƣ mục là thành cụng hay khụng thành cụng ngƣời quản trị cú thể cấu hỡnh nhƣ sau:
Chọn File Manager - User Manager - Security - Auditing. Vớ dụ hỡnh sau minh họa cỏc hoạt động cú thể đƣợc ghi log trong Windows 2000:
Sử dụng tiện ớch Event View cho phộp xem những thụng tin logfile nhƣ sau:
Hỡnh 18 - Cụng cụ Event View của Windows 2000
Thụng bỏo này cho biết nguyờn nhõn, thời điểm xảy ra lỗi cũng nhƣ nhiều thụng tin quan trọng khỏc.
Cú thể cấu hỡnh Event Service để thực hiện một action khi cú một thụng bỏo lỗi xảy ra nhƣ sau:
Hỡnh 20 - Cấu hỡnh dịchvụ ghi logs trong Windows 2000
Ngoài ra, cũng giống nhƣ trờn UNIX, trong Windows NT cũng cú cỏc cụng cụ theo dừi logfile của một số dịch vụ thụng dụng nhƣ FTP, Web; Tựy thuộc vào loại server sử dụng cú cỏc phƣơng phỏp cấu hỡnh khỏc nhau.
3.2. CÁC BIỆN PHÁP TẠO KẾT NỐI AN TOÀN
3.2.1. Giới thiệu chung:
Bảo mật của dịch vụ Web núi chung và của cỏc dịch vụ khỏc (nhƣ mail, FTP) đều dựa trờn nền một giao thức căn bản là SSL (Secure Socket Layer)
Trong mụ hỡnh kiến trỳc mạng TCP/IP, SSL nằm giữa tầng ứng dụng và tầng mạng. Hỡnh sau mụ tả vị trớ của SSL trong kiến trỳc TCP/IP nhƣ sau:
Giao thức SSL nằm trờn tầng TCP/UDP và nằm dƣới cỏc giao thức ở tầng ứng dụng nhƣ HTTP, IMAP, SMTP, POP3... Đối với dịch vụ Web núi riờng giao thức SSL đảm bảo thực hiện quỏ trỡnh kiểm tra tớnh xỏc thực giữa Server và Client , sau đú thực hiện một kết nối bảo mật giữa Client và Server
Để đảm bảo cho Server và Client làm việc đƣợc với nhau (vỡ chỳng cú thể sử dụng cỏc thuật toỏn mó hoỏ (Cipher) khỏc nhau), do vậy SSL đảm bảo tớnh tƣơng thớch giữa Cipher của Client và Server.
Giao thức SSL hỗ trợ nhiều Cipher khỏc nhau; Cỏc cipher đƣợc sử dụng trong cỏc quỏ trỡnh kiểm tra tớnh xỏc thực của Serves va Client; truyền Certificate, tạo secret keys của một phiờn làm việc. Thực tế là Client và Server sẽ sử dụng cỏc Cipher khỏc nhau, một tập hợp cỏc Cipher do đú cỏc phiờn bản SSL lần lƣợt ra đời hỗ trợ cỏc Cipher mới;
Một Cipher Suite hỗ trợ những thuật toỏn sau: DES DSA KEA MD5 RC2 và RC4 RSA MD5 RSA SHA-1
3.2.2. Cỏc hoạt động của giao thức SSL đối với dịch vụ
SSL Server Authentication (Kiểm tra tớnh xỏc thực của Server): Cho phộp ngƣời sử dụng kiểm tra tớnh đỳng đắn của một server mà nú giao tiếp; Phần mềm Client (cú hỗ trợ SSL) sẽ sử dụng cỏc chuẩn kỹ thuật của phƣơng thức mó húa khúa cụng khai kiểm tra cỏc thụng tin về Certificate của Server và public key của Server là hợp lệ hay khụng bằng việc hỏi một CA mà nú tin cậy. Kiểm tra tớnh xỏc thực một Server là quan trọng trong một giao tiếp Web yờu cầu cú tớnh bảo mật vớ dụ, trong trƣờng hợp ngƣời sử dụng cần gửi một thụng tin tới Web server là số Credit Card của mỡnh
SSL Client Authentication: Là quỏ trỡnh ngƣợc lại; kiểm tra tớnh xỏc thực của Client. Với cựng một phƣơng thức hoạt động nhƣ quỏ trỡnh kiểm tra tớnh xỏc thực của Server, Web Server (cú hỗ trợ SSL) sẽ kiểm tra tớnh đỳng đắn của public ID và Certificate của Client bằng việc hỏi CA mà nú tin cậy về tớnh hợp lệ của Client đú.
Thiết lập một kết nối SSL: Yờu cầu tất cả thụng tin trao đổi giữa Client và Server đƣợc mó húa bằng cỏc phần mềm gửi và phải giải mó đƣợc bằng phần mềm nhận; do vậy SSL là một giao thức đƣợc xõy dựng để hỗ trợ cỏc cơ chế bảo mật khỏc nhau. Ngoài ra tất cả cỏc dữ liệu đƣợc truyền qua một kết nối SSL đều đƣợc bảo vệ tớnh toàn vẹn dữ liệu và sẽ tự động phỏt hiện những thay đổi nội dung dữ liệu trờn đƣờng truyền.
Giao thức SSL bao gồm 2 giao thức con là SSL record protocol và SSL handshake Protocol. SSL record protocol sẽ định nghĩa dạng dữ liệu sử dụng để truyền trong một kết nối SSL. Giao thức SSL handshake sẽ sử dụng dữ liệu định dạng theo giao thức SSL record protocol để trao đổi message giữa SSL Server và SSL Client khi chỳng đầu tiờn thực hiện một kết nối SSL. Trao đổi một message đƣợc thiết kế cú những hoạt động chớnh nhƣ sau:
Kiểm tra tớnh xỏc thực của Server và Client
Cho phộp Client và Server lựa chọn cỏc phƣơng thức mó húa mà thực thể đú sử dụng (cipher) ; để đảm bảo chỳng làm việc đƣợcv ới nhau
Kiểm tra tớnh xỏc thực từ Client đến Server là một lựa chọn
Sử dụng kỹ thuật mó húa public key để tạo một secret key sử dụng trong kết nối SSL sau đú
Tạo một kết nối SSL
3.2.3. SSL Handshake
Giao thức SSL sử dụng kết hợp hai phƣơng thức mó húa dựng public-key và mó húa đối xứng (dựng secret key). Do ƣu điểm của phƣơng thức mó húa đối xứng là hoạt động nhanh hơn so với phƣơng thức mó húa phi đối xứng, nhƣng phƣơng thức mó húa phi đối xứng lại cú tớnh an toàn cao hơn. Do vậy giao thức SSL đó đƣợc thiết kế để tận dụng cỏc ƣu điểm của 2 phƣơng thức mó húa này.
Một phiờn làm việc SSL luụn bắt đầu bằng việc trao đổi một message gọi là SSL handshake. Handshake cho phộp thực hiện quỏ trỡnh Authentication Server và Authentication Client; sau khi đó xỏc thực tớnh đỳng đắn của Server và Client, SSL handshake thực hiện việc tạo một khúa đối xứng (secret key) sau đú mọi kết nối SSL đều đƣợc mó húa và giải mó bằng khúa này (để tăng tốc độ thực hiện việc mó húa và giải mó dữ liệu – dựng phƣơng thức mó húa đối xứng). Ngoài ra cũn cú một lựa chọn là SSL handshake cũn cho phộp kiểm tra tớnh xỏc thực phớa Client.
Quỏ trỡnh thực hiện của giao thức SSL handshake cú thể đƣợc mụ tả túm tắt nhƣ sau:
Client gửi tới Server số version của giao thức SSL mà nú hỗ trợ; và những thụng tin khỏc nhƣ cỏc thụng số cấu hỡnh của cỏc cipher, chiều dài khúa... để server cú thể thực hiện kết nối với Client sử dụng SSL
Sau đú Server cũng gửi cỏc tham số đú trở lại Client để Client cú thể thực hiện một kết nối với Server sử dụng SSL; đồng thời Server cũn gửi tới Client certificate của chớnh nú, và nếu ở phớa server cú cấu hỡnh là kiểm tra tớnh xỏc thực của client (Authentication Client) thỡ nú gửi một request tới Client về cung cấp certificate của Client tới Server.
Client sử dụng cỏc thụng tin từ Server gửi đến để kiểm tra tớnh xỏc thực của Server (bằng quỏ trỡnh Server Authentication - đƣợc mụ tả ở phần sau). Nếu certificate của server khụng hợp lệ, ngƣời sử dụng sẽ đƣợc cảnh bỏo và thụng bỏo rằng một phiờn làm việc cú bảo mật khụng đƣợc thiết lập. Nếu quỏ trỡnh xỏc thực thành cụng, quỏ trỡnh sẽ diễn ra nhƣ sau: Client sử dụng cỏc dữ liệu từ bƣớc 1 ( gồm cỏc thụng tin từ server nhƣ cipher mà server đú hỗ trợ) để tạo một khúa gọi là premaster cho phiờn làm việc đú; mó húa khúa này bằng public key của server (cú đƣợc vỡ nú đó cú certificate của server) và gửi khúa premaster tới server
Nếu server yờu cầu kiểm tra tớnh xỏc thực của Client (chỳ ý rằng đầy chủ là một option trong quỏ trỡnh handshake), Client cũn thực hiện việc ký vào phần thụng tin mà nú gửi đến server để đảm bảo rằng quỏ trỡnh handshake này là duy nhất (khụng thể bị giả mạo bởi một ngƣời nào khỏc). Do vậy trong trƣờng hợp này thụng tin gửi từ Client tới Server bao gồm:
Certificate của Client
Premaster key đó đƣợc mó húa bằng public key của Server
Nếu server yờu cầu kiểm tra tớnh xỏc thực của Client, server sẽ thực hiện việc xỏc thực Client (thụng qua quỏ trỡnh Authentication Client – sẽ đƣợc mụ tả ở phần sau). Nếu Client khụng hợp lệ, phiờn làm việc sẽ bị hủy bỏ. Nếu Client đƣợc kiểm tra là hợp lệ, server sẽ sử dụng private key của nú để mó giải mó khúa premaster, thực hiện cỏc bƣớc tiếp theo (kết hợp với quỏ trỡnh thực hiện phớa Client) để tạo khúa master.
Cả Client và Server sẽ đều sử dụng master key để tạo một session key; khúa session là một khúa đối xứng sử dụng để mó húa và giải mó trong cả phiờn làm việc SSL và để xỏc nhận tớnh toàn vẹn dữ liệu, kiểm tra dữ liệu cú bị thay đổi hay khụng giữa thời gian dữ liệu đó đƣợc gửi và thời gian nhận dữ liệu qua một kết nối SSL
Client gửi một message tới server thụng bỏo cỏc message mà nú sắp gửi từ client sẽ đƣợc mó húa bằng session key. Và sau nú Client gửi một thụng bỏo xỏc nhận rằng quỏ trỡnh handshake đó kết thỳc.
Server gửi một message tới server thụng bỏo cỏc message mà nú sắp gửi từ client sẽ đƣợc mó húa bằng session key. Và sau nú Server gửi một thụng bỏo xỏc nhận rằng quỏ trỡnh handshake đó kết thỳc.
Quỏ trỡnh handshake kết thỳc; phiờn làm việc SSL bắt đầu. Client và Server sử dụng session key để mó húa và giải mó dữ liệu và kiểm tra tớnh toàn vẹn của dữ liệu đú
Một chỳ ý quan trọng trong quỏ trỡnh handshake là việc kiểm tra tớnh xỏc thực của Client và Server đƣợc thực hiện thụng qua việc sử dụng một cặp khúa private- public key của một thực thể nhất định.
Trong trƣơng hợp xỏc thực phớa server, Client mó húa premaster secret bằng public key của server. Chỉ với một khúa private key tƣơng ứng mới cú thể giải mó đỳng đƣợc premaster key, do vậy client đảm bảo chắc chắn rằng public key của server gửi tới đỳng là của server mà nú đó kết nối tới. Trong trƣờng hợp server khụng thể giải mó premaster key và khụng tạo một key đối xứng tƣơng ứng cho phiờn làm việc đú, thỡ phiờn làm việc sẽ bị hủy bỏ.
đƣợc gửi tới Server (qua Certificate của Client) sẽ đỳng đắn nếu nhƣ nú cú thể giải mó đƣợc message đó đƣợc ký bằng private key tƣơng ứng.
3.2.4. Quỏ trỡnh kiểm tra tớnh xỏc thực của Server đƣợc mụ tả nhƣ sau:
Một quỏ trỡnh kiểm tra tớnh xỏc thực của một Server sẽ chỉ thành cụng nếu nhƣ Client nhận đƣợc 4 cõu trả lời "đỳng" nhƣ sau:
Hỡnh 22 - Quỏ trỡnh kiểm tra xỏc thực ở phớa Server
Quỏ trỡnh kiểm tra tớnh xỏc thực của Server cũn đảm bảo khụng thể cú hiện tƣợng giả mạo giữa Client và Server. Client sẽ thực hiện những cụng việc sau:
Certificate của Server cũn giỏ trị hay khụng? Client sẽ thực hiện việc kiểm tra tớnh hợp lệ về thời gian của Certificate gửi từ Server. Nếu thời gian đó hết hạn, phiờn làm việc sẽ bị kết thỳc.
Kiểm tra CA ký vào Certificate của Server cú phải là CA mà Client tin cậy hay khụng? Mỗi phần mềm hỗ trợ SSL cú một danh sỏch cỏc CA mà nú tin cậy. Vớ dụ nhƣ trong hỡnh trờn, Client tin cậy một CA nú gồm cỏc thụng tin: DN của CA, public key của CA và chữ ký của CA. Nếu trƣờng DN của Certificate Server trựng với trƣờng DN của của Certifcate của CA thỡ cõu trả là đỳng là CA mà nú tin cậy
đó tỡm ra ở bƣớc 2 để kiểm tra kiểm tra tớnh hợp lệ của chữ ký đó đƣợc ký trong Certificate Server. Nếu thụng tin trong Certificate Server bị thay đổi sau khi nú đƣợc ký bởi CA hay nếu public key của Certificate khụng đỏp ứng tƣơng ứng với private key đó sử dụng để ký vào certificate của Server. Nếu chữ ký của CA là hợp lệ, quỏ trỡnh sẽ tiếp tục diễn ra nhƣ sau
Kiểm tra domain name trong certificate server cú phự hợp với domain name của chớnh server đú hay khụng. Bƣớc này thực hiện việc kiểm server cú thật sự là cựng một địa chỉ mạng hay khụng đƣợc xỏc định bằng trƣờng domain name trong Certificate. Chỳ ý rằng bƣớc kiểm tra này khụng phải là một chuẩn của giao thức SSL, nú chỉ hỗ trợ việc bảo vệ trong những trƣờng hợp mà kẻ tấn cụng mạng đứng ở vị trớ giữa Server và Client (kẻ tấn cụng đú cú thể down server và thay thế cỏc Certificate của Server). Clients phải thực hiện bƣớc này và cú thể từ chối tiếp tục thực hiện kiểm tra tớnh hợp lệ của server nếu quỏ trỡnh này khụng thành cụng.
Server đó đƣợc xỏc thực. Client tiếp tục quỏ trỡnh thực hiện giao thức SSL. Nếu Client khụng đến đƣợc bƣớc 5 thỡ việc xỏc thực server bởi Certificate khụng đƣợc đỳng đắn, và Client sẽ đƣợc thụng bỏo là phiờn làm việc cú hỗ trợ bảo mật khụng đƣợc thực hiện. Nếu Server yờu cầu quỏ trỡnh kiểm tra tớnh xỏc thực Client, quỏ trỡnh thực hiện ở phớa Server sẽ diễn ra nhƣ sau:
3.2.5. Quỏ trỡnh kiểm tra tớnh xỏc thực ở phớa Client:
Khi một server đƣợc cấu hỡnh yờu cầu kiểm tra xỏc thực Client ; Client gửi tới Server gồm Certificate và dữ liệu riờng biệt đó đƣợc ký để kiểm tra tớnh xỏc thực của nú. Server sử dụng phần dữ liệu này để xỏc thực public key trong certificate và để xỏc thực rằng đối tƣợng đú sở hữu certificate đú
Giao thức SSL yờu cầu client tạo một chữ ký điện tử bằng việc dựng phƣơng phỏp mó húa hashing để tạo một message digest từ một dữ liệu ngẫu nhiờn mà chỉ cú Server và Client biết trong quỏ trỡnh thực hiện handshake. Thuật toỏn hash sẽ thực hiện tạo một message digest và mó húa message digest đú bằng private key của nú; private key này tƣơng ứng với public-key trong certificate từ client gửi đến server.
Để kiểm tra tớnh đỳng đắn của một Client, Server phải nhận đƣợc 4 cõu trả lời đỳng nhƣ sau:
Kiểm tra public key của ngƣời sử dụng cú hợp lệ với chữ ký của ngƣời đú hay khụng? Server kiểm tra chữ ký của ngƣời đú cú hợp lệ với public key trong certificate của client hay khụng. Nếu xỏc nhận đỳng, server sẽ xỏc nhận rằng certificate đú thuộc về ngƣời cú private key tƣơng ứng (private key này đƣợc dựng để ký vào dữ liệu ngẫu nhiờn và kiểm tra đƣợc tớnh toàn vẹn của dữ liệu khụng bị thay đổi). Tuy nhiờn ở bƣớc này, việc kết hợp giữa public key và trƣờng DN trong certificate chƣa đƣợc thực hiện. Quỏ trỡnh này đƣợc thực hiện ở bƣớc 3 và 4.
Kiểm tra Certificate của Client cú cũn giỏ trị hay khụng? Server kiểm tra xem Certificate đú cũn thời hạn hay khụng. Nếu thời gian hiện tại vƣợt quỏ thời gian trong certificate, quỏ trỡnh xỏc thực khụng đƣợc tiếp tục tiến hành. Nếu hợp lệ sẽ tiếp tục bƣớc 3
Certificate của Client cú đỳng là đƣợc cấp phỏt từ CA mà Server tin cậy hay khụng? Giống nhƣ quỏ trỡnh ở Client; trong mỗi phần mềm Server cú hỗ trợ SSL cú một danh sỏch cỏc CA mà Server tin cậy. Dựa vào danh sỏch Server sẽ kiểm tra certificate của Client cú đƣợc cấp phỏt từ CA mà nú tin cậy hay khụng. Nếu trƣờng DN của Certificate đú trựng với trƣờng DN của CA tin cậy, nếu trựng tiếp tục với bƣớc 4.
Kiểm tra public key của CA tƣơng ứng với chữ ký của CA cấp phỏt Certificate của Client. Server sử dụng public key từ certificate của CA để