3.2.2.1 Các loại hình tấn công
Để xét những vấn đề bảo mật liên quan đến truyền thông trên mạng, chúng ta hãy lấy một bối cảnh sau: có ba nhân vật trên là Hương, Lan và Nam, trong đó Hương và Lan thực hiện trao đổi thông tin với nhau, còn Nam là kẻ xấu, đặt thiết bị can thiệp vào kênh truyền tin giữa Hương và Lan. Sau đây là các loại hành động tấn công của Nam mà ảnh hưởng đến quá trình truyền tin giữa Hương và Lan:
a. Xem trộm thông tin (Release of Message Content)
Trong trường hợp này Nam chặn các thông điệp Hương gửi cho Lan, và xem được nội dung của thông điệp.
b. Thay đổi thông điệp (Modification of Message)
Nam chặn các thông điệp Hương gửi cho Lan và ngăn không cho các thông điệp này đến đích. Sau đó Nam thay đổi nội dung của thông điệp và gửi tiếp cho Lan. Lan nghĩ rằng nhận được thông điệp nguyên bản ban đầu của Hương mà không biết rằng chúng đã bị sửa đổi.
c. Mạo danh (Masquerade)
Trong trường hợp này Nam giả là Hương gửi thông điệp cho Lan. Lan không biết điều này và nghĩ rằng thông điệp là của Hương.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
d. Phát lại thông điệp (Replay)
Nam sao chép lại thông điệp Hương gửi cho Lan. Sau đó một thời gian Nam gửi bản sao chép này cho Lan. Lan tin rằng thông điệp thứ hai vẫn là từ Hương, nội dung hai thông điệp là giống nhau. Thoạt đầu có thể nghĩ rằng việc phát lại này là vô hại, tuy nhiên trong nhiều trường hợp cũng truy ra tác hại không kém so với việc giả mạo thông điệp.
Xét tình huống sau: giả sử Lan là ngân hàng còn Hương là một khách hàng. Hương gửi thông điệp đề nghị Lan chuyển cho Nam 1000$. Hương có áp dụng các biện pháp như chữ ký điện tử với mục đích không cho Nam mạo danh cũng như sửa thông điệp. Tuy nhiên nếu Nam sao chép và phát lại thông điệp thì các biện pháp bảo vệ này không có ý nghĩa. Lan tin rằng Hương gửi tiếp một thông điệp mới để chuyển thêm cho Nam 1000$ nữa.
3.2.2.2 Yêu cầu của một hệ truyền thông tin an toàn và bảo mật
Phần trên đã trình bày các hình thức tấn công, một hệ truyền tin được gọi là an toàn và bảo mật thì phải có khả năng chống lại được các hình thức tấn công trên. Như vậy hệ truyền tin phải có các đặt tính sau:
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Tính chứng thực (Authentication): Nhằm đảm bảo cho Lan rằng thông điệp
mà Lan nhận được thực sự được gửi đi từ Hương, và không bị thay đổi trong quá trình truyền tin. Như vậy tính chứng thực ngăn chặn các hình thức tấn công sửa thông điệp, mạo danh, và phát lại thông điệp.
Tính không từ chối (Nonrepudiation): Xét tình huống sau:
Giả sử Lan là nhân viên môi giới chứng khoán của Hương. Hương gởi thông điệp yêu cầu Lan mua cổ phiếu của công ty Z. Ngày hôm sau, giá cổ phiếu công ty này giảm hơn 50%. Thấy bị thiệt hại, Hương nói rằng Hương không gửi thông điệp nào cả và quy trách nhiệm cho Lan. Lan phải có cơ chế để xác định rằng chính Hương là người gởi mà Hương không thể từ chối trách nhiệm được. Khái niệm chữ ký trên giấy mà con người đang sử dụng ngày nay là một cơ chế để bảo đảm tính chứng thực và tính không từ chối. Trong lĩnh vực máy tính, người ta cũng thiết lập một cơ chế như vậy, cơ chế này được gọi là chữ ký điện tử.
Hình 3.5 Mô hình bảo mật truyền thông tin trên mạng
3.2.2.3 Vai trò của mật mã trong việc bảo mật thông tin trên mạng
Mật mã hay mã hóa dữ liệu (cryptography), là một công cụ cơ bản thiết yếu của bảo mật thông tin. Mật mã đáp ứng được các nhu cầu về tính bảo mật (confidentiality), tính chứng thực (authentication) và tính không từ chối (non- repudiation) của một hệ truyền tin.
3.2.2.4 Các giao thức (protocol) thực hiện bảo mật.
Sau khi tìm hiểu về mật mã, chúng ta sẽ tìm hiểu về cách ứng dụng chúng vào thực tế thông qua một số giao thức bảo mật phổ biến hiện nay là:
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Chuẩn chứng thực X509: dùng trong mã hóa khóa công khai.
Secure Socket Layer (SSL): là giao thức bảo mật Web, được sử dụng phổ biến trong Web và thương mại điện tử.
PGP và S/MIME: bảo mật thư điện tử email.
3.3 Bảo đảm hệ thống khỏi sự xâm nhập phá hoại từ bên ngoài
Ngày nay, khi mạng Internet đã kết nối các máy tính ở khắp nơi trên thế giới lại với nhau, thì vấn đề bảo đảm máy tính khỏi sự thâm nhập phá hoại từ bên ngoài là một điều cần thiết. Thông qua mạng Internet, các hacker có thể truy cập vào các máy tính trong một tổ chức, lấy trộm các dữ liệu quan trọng như mật khẩu, thẻ tín dụng, tài liệu… Hoặc đơn giản chỉ là phá hoại, gây trục trặc hệ thống mà tổ chức đó phải tốn nhiều chi phí để khôi phục lại tình trạng hoạt động bình thường.
Để thực hiện việc bảo đảm này, người ta dùng khái niệm “kiểm soát truy cập” (Access Control). Khái niệm kiểm soát truy cập này có hai yếu tố sau:
Chứng thực truy cập (Authentication): xác nhận rằng đối tượng (con người
hay chương trình máy tính) được cấp phép truy cập vào hệ thống. Ví dụ: để sử dụng máy tính thì trước tiên đối tượng phải logon vào máy tính bằng username và password. Ngoài ra, còn có các phương pháp chứng thực khác như sinh trắc học (dấu vân tay, mống mắt…) hay dùng thẻ (thẻ ATM…).
Phân quyền (Authorization): các hành động được phép thực hiện sau khi đã
truy cập vào hệ thống. Ví dụ: bạn được cấp username và password để logon vào hệ điều hành, tuy nhiên bạn chỉ được cấp quyền để đọc một file nào đó. Hoặc bạn chỉ có quyền đọc file mà không có quyền xóa file.
Với nguyên tắc như vậy thì một máy tính hoặc một mạng máy tính được bảo vệ khỏi sự thâm nhập của các đối tượng không được phép. Tuy nhiên thực tế chúng ta vẫn nghe nói đến các vụ tấn công phá hoại. Để thực hiện điều đó, kẻ phá hoại tìm cách phá bỏ cơ chế Authentication và Authorization bằng các cách thức sau:
Dùng các đoạn mã phá hoại (Malware): như virus, worm, trojan, backdoor…
những đoạn mã độc này phát tán lan truyền từ máy tính này qua máy tính khác dựa trên sự bất cẩn của người sử dụng, hay dựa trên các lỗi của phần mềm. Lợi dụng các quyền được cấp cho người sử dụng (chẳng hạn rất nhiều người login vào máy tính
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
với quyền administrator), các đoạn mã này thực hiện các lệnh phá hoại hoặc dò tìm password của quản trị hệ thống để gửi cho hacker, cài đặt các cổng hậu để hacker bên ngoài xâm nhập.
Thực hiện các hành vi xâm phạm (Intrusion): việc thiết kế các phần mềm có
nhiểu lỗ hổng, dẫn đến các hacker lợi dụng để thực hiện những lệnh phá hoại. Những lệnh này thường là không được phép đối với người bên ngoài, nhưng lỗ hổng của phần mềm dẫn đến được phép. Trong những trường hợp đặc biệt, lỗ hổng phần mềm cho phép thực hiện những lệnh phá hoại mà ngay cả người thiết kế chương trình không ngờ tới. Hoặc hacker có thể sử dụng các cổng hậu do các backdoor tạo ra để xâm nhập.
Để khắc phục các hành động phá hoại này, người ta dùng các chương trình có chức năng gác cổng, phòng chống. Những chương trình này dò tìm virus hoặc dò tìm các hành vi xâm phạm đển ngăn chặn chúng, không cho chúng thực hiện hoặc xâm nhập. Đó là các chương trình chống virus, chương trình firewall… Ngoài ra các nhà phát triển phần mềm cần có quy trình xây dựng và kiểm lỗi phần mềm nhằm hạn chế tối đa những lỗ hổng bảo mật có thể có.
Hình 3.6 Mô hình phòng chống xâm nhập và phá hoại hệ thống
Trong khuôn khổ của tài liệu này đề cập các nội dung về an toàn và bảo mật thông tin trên mạng, đó là một công cụ đang phát triển rất rộng rãi và áp dụng ngày càng nhiều đó là phương pháp chữ ký số.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
3.4 Giao thức bảo mật ứng dụng chữ ký số cho các văn bản pháp quy trên trang thông tin
3.4.1 Giao thức SSL
a) Giới thiệu giao thức SSL
Trong việc bảo mật thông tin là yếu tố quan trọng để giải quyết sự sống còn của một tổ chức, công ty hay doanh nghiệp. Với sự phát triển nhanh chóng về công nghệ thông tin đã mang lại nhiều tiện ích cho con người đồng thời cũng đặt ra một nhu cầu cần thiết về sự an toàn và bảo mật. Và SSL (Secure Socket Layer) chính là giải pháp tốt nhất hiện nay đáp ứng những nhu cầu đó và nó được coi là “Lá chắn cuối cùng” trong bảo mật.
Giao thức SSL ban đầu được phát triển bởi Netscape version 1.0 thì đã được công bố rộng rãi, version 2.0 được công bố tháng 2/1995 nhưng chứa nhiều lỗ hổng bảo mật và sau cùng đưa đến mô hình SSL version 3.0 được ban hành 1996.
SSL giải quyết vấn đề bằng cách cho phép 1 cách tùy chọn mỗi bên trao đổi và có thể chắc chắn về định danh của phía đối tác trong 1 quá trình gọi là uthentication (xác thực). Một khi các bên đã được xác thực SSL cung cấp 1 kết nối được mã hóa giữa 2 bên để truyền bảo mật các gói tin. Việc mã hóa trong quá trình trao đổi thông tin giữa 2 bên cung cấp sự riêng tư bí mật. Thuật toán mã hóa được sử dụng với SSL bao gồm hàm băm mã hóa, tương tự như 1 checksum. Nó đảm bảo rằng dữ liệu không bị thay đổi trong quá trình truyền dẫn. Hàm băm mã hóa giải quyết vấn đề toàn vẹn dữ liệu.
Trong khi SSL cung cấp tính xác thực, tính bảo mật và toàn vẹn dữ liệu, nó không cung cấp non-repudiation (tính không từ chối). Non-repudiation có nghĩa là khi 1 đối tượng gửi 1 gói tin, thì sau đó không thể phủ nhận việc mình đã gửi gói tin đó. Khi 1 chữ ký số tương đương được liên kết với 1 gói tin, việc trao đổi này sau đó có thể được chứng minh SSL 1 mình nó không cung cấp non-repudiation.
b) Tiến trình SSL
Việc trao đổi trên mạng sử dụng SSL với việc trao đổi thông tin qua lại giữa client và server. Sự trao đổi thông tin này gọi là SSL handshake.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Một phiên bản SSL bắt đầu với việc đàm phán giữa client và server xem cipher suite nào mà chúng sẽ sử dụng. Một cipher suite là 1 tập các thuật toán mã hóa và kích thước khóa mà máy tính có thể dùng để mã hóa dữ liệu. Một cipher suite bao gồm thông tin về các thuật toán trao đổi khóa công khai và các thuật toán thỏa thuận khóa và các hàm băm mã hóa. Client nói với server các cipher suite nào có sẵn và server lựa chọn cipher suite tốt nhất có thể chấp nhận.
+ Xác thực server
Trong SSL, bước xác thực là tùy chọn, việc xác thực server cho phép client chắc chắn rằng chính server này đại diện cho đối tượng mà client tin tưởng.
Để chứng minh server thuộc về tổ chức mà nó khẳng định là nó đại diện, server phải trình chứng chỉ khóa công khai của nó cho client. Nếu chứng chỉ này là hợp lệ, client có thể chắc chắn về định danh server.
+ Gửi dữ liệu đã mã hóa:
Giờ cả client và server có thể truy cập đến khóa bí mật chung. Với mỗi gói tin, chúng dùng đến hàm băm mã hóa, đã được chọn trong bước đầu của tiến trình, và chia sẻ thông tin bí mật để tính toán 1 HMAC nối thêm vào gói tin. Sau đó chúng dùng khóa bí mật và thuật toán khóa bí mật đã được đàm phán trước đó để mã hóa dữ liệu và HMAC an toàn. Client và server giờ có thể trao đổi thông tin với nhau một cách an toàn với các dữ liệu đã băm và mã hóa.
c) Giao thức SSL
Giao thức SSL handshake là sự trao đổi thông tin giữa client và server trước khi gửi các gói tin đã được mã hóa, phần này sẽ mô tả chi tiết chuỗi tuần tự các gói tin được trao đổi trong SSL handshake. Các gói tin mà chỉ được gửi trong một trường hợp nào đó được đánh dấu là tùy chọn
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Client Server
1. Client hello
2. Server hello
3. Certificate Options 4. Certificate request Options 5. Server key exchange Options 6. Server hello done
7. Certificate Options 8. Client key exchange
9. Certificate verify Options 10. Change cipher spec
11. Finish
12. Change cipher spec 13.Finished
14. Encrypted data 14. Encrypted data 15. Close Message 15. Close Message
Hình 3.7 Các gói tinh trong SSL
Mô tả các gói tin SSL được gửi theo thứ tự sau:
+ Client hello: client gửi đến server các thông tin bao gồm phiên bản SSL cao nhất và 1 danh sách các cipher suite mà nó hỗ trợ bao gồm các thuật toán mã hóa và kích thước khóa.
+ Server hello: server chọn ra phiên bản SSL cao nhất và cipher suite tốt nhất mà cả client và server hỗ trợ và gửi thông tin này về client.
+ Certificate: server gửi cho client 1 chứng chỉ hoặc 1 chuỗi chứng chỉ. Về cơ bản 1 chuỗi chứng chỉ bắt đầu bằng chứng chỉ khóa công khai của server và kết thúc bằng chứng chỉ gốc cảu một tổ chức có thẩm quyền chứng chỉ. Gói tin này là tùy chọn, nhưng nó được dùng bất cứ khi nào xác thực server là cần thiết
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
+ Certificate request: nếu server cần xác thực client, nó gửi cho client 1 yêu cầu xem chứng chỉ. Trong các ứng dụng internet, gói tin này hiếm khi được gửi đi.
+ Server key exchange: server gửi cho client 1 gói tin trao đổi khóa server trong khi khóa công khai được gửi.
+ Server hello done: server nói với client rằng nó hoàn thành các gói tin đàm phám ban đầu.
+ Certificate: nếu server cần chứng chỉ từ client trong gói tin 4, client gửi chuỗi chứng chỉ của nó, cũng giống như server làm trong gói tin 3.
+ Client key exchange: client sinh ra thông tin được dùng để tạo ra khóa trong mã hóa đối xứng. Với RSA, client mã hóa thông tin khóa này bằng khóa công khai của server rồi gửi đến server.
+ Certificate verify: gói tin này được gửi khi client trình ra chứng chỉ. Mục tiêu của nó là cho phép server hoàn thành tiến trình xác thực client. Khi gói tin này được dùng. Client gửi thông tin với chữ ký số tạo bằng hàm băm mã hóa. Khi server giải mã thông tin này bằng khóa công khai của client, server có thể xác thực client.
+ Change cipher spec: client gửi gói tin bảo server thay đổi kiểu mã hóa. + Finished: client nói với server rằng nó sẵn sàng để bắt đầu trao đổi dữ liệu an toàn.
+ Change cipher spec: server gửi gói tin bảo client thay đổi kiểu mã hóa. + Finished: server nói với client rằng nó sẵn sàng để bắt đầu trao đổi dữ liệu an toàn. Kết thúc SSL handshake.
+ Encrypted data: client và server trao đổi với nhau, sử dụng thuật toán mã hóa đối xứng và hàm băm mã hóa đã đàm phám ở 1 và 2 và dùng khóa bí mật mà client gửi cho server.
+ Closed gói tin: kết thúc 1 kết nối, mỗi bên gử 1 gói tin close-notify để thông báo đầu kia biết kết nối bị đóng.
3.4.2 Bảo mật hệ điều hành
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn