1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu kỹ thuật phát hiện và ngăn chặn xâm nhập mạng

80 0 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Nghiên Cứu Kỹ Thuật Phát Hiện Và Ngăn Chặn Xâm Nhập Mạng
Định dạng
Số trang 80
Dung lượng 1,12 MB

Cấu trúc

  • Chơng 1: Những vấn đề cơ sở của bảo mật mạng (0)
    • 1.1 Căn bản về mạng máy tính (4)
      • 1.1.1 Khái niệm chung (4)
      • 1.1.2 Mạng Internet và giao thức TCP/IP (6)
    • 1.2 Các vấn đề chung về bảo mật mạng (10)
      • 1.2.1 Một số khái niệm về bảo mật (10)
      • 1.2.2 Sự xuất hiện của các Virus (12)
      • 1.2.3 Một số hình thức tấn công mạng (12)
      • 1.2.4 Các mức bảo vệ an toàn mạng (13)
    • 1.3 Lỗ hổng và khai thác lỗ hổng (14)
      • 1.3.1 Các lỗ hổng (14)
      • 1.3.2 ảnh hởng của các lỗ hổng bảo mật trên mạng Internet (25)
    • 1.4 Một số phơng pháp tấn công xâm nhập mạng phổ biÕn (26)
      • 1.4.1 Scanner (26)
      • 1.4.2 Password Cracker (28)
      • 1.4.3 Trojans (31)
      • 1.4.4 Sniffer (33)
    • 1.5 Các biện pháp thủ công phát hiện tấn công (35)
  • Chơng 2: Hệ thống phát hiện xâm nhập (ids) (0)
    • 2.1 Cơ bản về hệ thống phát hiện xâm nhập (36)
      • 2.1.1 Hệ thống phát hiện xâm nhập là gì (36)
      • 2.1.2 Lịch sử (37)
      • 2.1.3 Chức năng của hệ thống phát hiện xâm nhập (38)
      • 2.1.4 Phân loại (38)
    • 2.2 Cấu trúc hệ thống phát hiện xâm nhập (40)
      • 2.2.1 Module phân tích luồng dữ liệu (40)
      • 2.2.2 Module phát hiện tấn công (0)
    • 2.3 Phơng pháp phát hiện tấn công (41)
      • 2.3.1 Phơng pháp dò sự lạm dụng (41)
      • 2.3.2 Phơng pháp dò sự không bình thờng (46)
    • 2.4 Những giới hạn chung của các hệ thống IDS (47)
    • 3.1 Một số hệ mật cổ điển (47)
      • 3.1.1 Mã dịch vòng (48)
      • 3.1.2 Mã thay thế (49)
      • 3.1.3 Mã Affine (50)
      • 3.1.4 Mã Vigenère (50)
      • 3.1.5 Mật mã Hill (51)
      • 3.1.6 Mã hoán vị (52)
    • 3.2 Chuẩn mã hóa dữ liệu (DES) (0)
      • 3.2.1 Mô tả DES (53)
      • 3.2.2 Độ an toàn của DES (59)
    • 3.3 Hệ mật khóa công khai và các thuật toán băm (0)
      • 3.3.1 Giới thiệu chung về hệ mật khoá công khai (60)
      • 3.3.2 Hệ mật RSA (61)
      • 3.3.3 Các thuật toán băm (63)
    • 3.4 chơng trình ứng dụng (74)

Nội dung

Những vấn đề cơ sở của bảo mật mạng

Căn bản về mạng máy tính

1.1.1.1 Các thành phần của mạng máy tính Định nghĩa mạng máy tính: Mạng máy tính là một tập hợp các máy tính đ- ợc nối với nhau bởi các đờng truyền vật lý theo một kiến trúc nào đó Hai thành phần cơ bản của mạng máy tính đó là đờng truyền vật lý và kiến trúc mạng. Đờng truyền vật lý: Đờng truyền vật lý dùng để chuyển các tín hiệu điện tử giữa các máy tính Các tín hiệu điện tử đó biểu thị các giá trị dữ liệu dới dạng các xung nhị phân (on-off) và đợc truyền giữa các máy tính dới dạng sóng điện từ, trải từ các tần số radio tới sóng cực ngắn (Viba) và tia hồng ngoại Tuỳ theo tần số của sóng điện từ có thể dùng các đờng truyền vật lý khác nhau để truyền các tín hiệu. Khi xem xét lựa chọn đờng truyền vật lý ta cần chú ý tới các đặc trng cơ bản của chúng là: Dải thông (bandwidth), Độ suy hao và Độ nhiễu điện từ Dải thông của một đờng truyền là phạm vi tần số mà nó có thể đáp ứng đợc Độ suy hao là độ đo sự yếu đi trên đờng truyền Độ nhiễu điện từ gây ra bởi tiếng ồn điện từ bên ngoài làm ảnh hởng đến tín hiệu trên đờng truyền Lu ý rằng dải thông của cáp truyền phụ thuộc vào độ dải cáp Cáp ngắn nói chung có dải thông lớn hơn so với cáp dài Bởi vậy khi thiết kế cáp cho mạng phải chỉ rõ độ dài cáp tối đa vì ngoài giới hạn đó chất lợng đờng truyền không còn đợc bảo đảm.

Kiến trúc mạng: Kiến trúc mạng thể hiện cách nối các máy tính với nhau ra sao và tập hợp các quy tắc, quy ớc mà tất cả các thực thể tham gia truyền thông trên mạng phải tuân theo để đảm bảo cho mạng hoạt động tốt Các cách nối các máy tính đợc gọi là hình trạng mạng (topology) Tập hợp các quy tắc, quy ớc truyền thông đ- ợc gọi là giao thức (protocol) của mạng.

1.1.1.2 Phân loại mạng máy tính

Phân loại theo khoảng cách địa lý: Phân loại theo khoảng cách địa lý là cách phổ biến và thông dụng nhất Theo cách phân loại này ta có các loại mạng sau:

Mạng cục bộ (LAN): Là mạng đợc cài đặt trong một phạm vi nhỏ (trong một toà nhà, một trờng học), khoảng cách tối đa giữa các máy tính chỉ vài chục km trở lại.

Mạng đô thị (MAN): Là mạng đợc cài đặt trong phạm vi một đô thị hoặc một trung tâm kinh tế–xã hội, khoảng cách tối đa giữa các máy tính khoảng vài trăm km trở lại.

Mạng diện rộng (WAN, GAN): Phạm vi của mạng trải rộng trong phạm vi một quốc gia, hoặc giữa các quốc gia trên toàn thế giới Mạng Internet ngày nay là một ví dụ điển hình của mạng WAN, GAN.

1.1.1.3 Phân loại theo kiến trúc mạng sử dụng

Ngoài cách phân loại trên, ngời ta còn có thể phân loại mạng theo kiến trúc mạng (Topo mạng và giao thức sử dụng) Theo cách phân loại này, có các loại mạng nh :

Mạng ISO (theo kiến trúc chuẩn quốc tế).

Trong phạm vi của khoá luận, chúng ta quan tâm đến các vấn đề về bảo mật mạng Internet và các hệ thống xây dựng dựa trên nền bộ giao thức TCP/IP Vì vậy,

Transmision Control Protocol (TCP) Uer Data Program

Ethernet Token Bus Token Ring FDDI trong phần sau đây chúng ta sẽ tìm hiểu một số khái niệm thờng đợc sử dụng trên mạng Internet và bộ giao thức TCP/IP.

1.1.2 Mạng Internet và giao thức TCP/IP

Thuật ngữ “ Internet ” đợc xem nh là một “mạng của các mạng” hay một liên kết mạng có tính toàn cầu Công nghệ Internet ra đời cho phép ngời sử dụng trên toàn cầu có thể chia sẻ, trao đổi thông tin cho nhau trong nhiều lĩnh vực Hiện nay, các dịch vụ của mạng Internet có mặt trong hầu khắp các lĩnh vực của cuộc sèng.

Một số khái niệm thờng sử dụng

Có một số thuật ngữ thờng đợc sử dụng liên quan đến mạng Internet đó là: Site: Là một hệ thống mạng, máy tính và ngời dùng, trên đó có thiết lập và thi hành các quyết định riêng biệt

Host: Là một trạm làm việc trong một site.

Services: Là các dịch vụ cung cấp trên các site Ví dụ các dịch vụ nh: truyền file, th điện tử, nhóm tin, web.

Client/Server: Là một mô hình xử lý phân tán đối của cac services Trong đó hoạt động của dịch vụ dựa trên 2 đối tợng là các Server xử lý các yêu cầu gửi từ Client của một Host trên mạng Sau khi nhận đợc đáp ứng từ Server, Client xử lý thông tin đó để hiển thị cho ngời sử dụng.

Adminstration: Là hoạt động quản trị đối với một site Ví dụ nh theo dõi, điều hành, quản lý hoạt động của hệ thống mạng và các dịch vụ, thiết lập các chính sách cần thiết đối với site đó.

1.1.2.2 Căn bản về giao thức TCP/IP

KiÕn tróc ph©n tÇng TCP/IP

Bộ giao thức TCP/IP đợc thiết kế theo kiến trúc phân tầng:

Hình 1-1: So sánh mô hình mạng TCP/IP và mô hình OSI

Xét về khía cạnh bảo mật, nhợc điểm của bộ giao thức TCP/IP là không hỗ trợ xây dựng các cơ chế bảo mật, dễ dàng đối với các hoạt động giải mã, nghe trộm Hình 1-2 mô tả cấu trúc của một đoạn dữ liệu của gói TCP.

Do hoạt động của các dịch vụ trong tầng ứng dụng dựa vào định danh các cổng dịch vụ trên hệ thống đó Có hai loại cổng:

Số cổng nguồn: Có giá trị tùy ý.

Số cổng đích: Có một số loại dịch vụ sử dụng các giá trị mặc định, dẫn đến nguy cơ dễ bị xâm nhập và phá hoại dựa vào các loại dịch vụ dùng các cổng mặc định.

Số hiệu cổng trạm nguồn Số hiệu cổng trạm đích

Số hiệu byte đầu tiên của segment

Số hiệu của segment tiếp theo( Trạm đích báo nhận )

Vị trí bắt đầu của vùng dữ liệu

Cấp phát credit để kiểm soát luồng dữ liệu

Các vấn đề chung về bảo mật mạng

Do đặc điểm của một hệ thống mạng là nhiều ngời sử dụng và phân tán về mặt địa lý nên việc bảo vệ các tài nguyên (mất mát, hoặc sử dụng không hợp lệ) trong môi trờng mạng phức tạp hơn nhiều so với môi trờng một máy tính đơn lẻ, hoặc một ngời sử dụng.

Có một thực tế là không một hệ thống mạng nào bảo đảm an toàn tuyệt đối, hệ thống bảo vệ chắc chắn đến đâu đi nữa rồi cũng có một lúc bị vô hiệu hoá bởi những kẻ phá hoại.

1.2.1 Một số khái niệm về bảo mật

Trớc khi tìm hiểu các các vấn đề liên quan đến phơng thức phá hoại và các biện pháp bảo vệ cũng nh thiết lập các chính sách về bảo mật, phần sau đây sẽ trình bày một số khái niệm liên quan đến bảo mật thông tin trên mạng Internet. Đối tợng tấn công mạng (Intruder)

Là những cá nhân hoặc các tổ chức sử dụng các kiến thức về mạng và các công cụ phá hoại (phần mềm hoặc phần cứng) để dò tìm các điểm yếu, lỗ hổng bảo mật trên hệ thống, thực hiện các hoạt động xâm nhập và chiếm đoạt tài nguyên mạng trái phép.

Một số đối tợng tấn công mạng

- Hacker: Là những kẻ xâm nhập vào mạng trái phép bằng cách sử dụng các công cụ phá mật khẩu hoặc khai thác các điểm yếu của các thành phần truy nhập trên hệ thống.

- Masquerader: Là những kẻ giả mạo thông tin trên mạng Một số hình thức giả mạo nh giả mạo địa chỉ IP, tên miền, định danh ngời dùng.

- Eavesdropping: Là những đối tợng nghe trộm thông tin trên mạng, sử dụng các công cụ sniffer, sau đó dùng các công cụ phân tích và debug để lấy đợc các thông tin có giá trị.

Những đối tợng tấn công mạng có thể nhằm nhiều mục đích khác nhau nh ăn cắp các không tin có giá trị kinh tế, phá hoại hệ thống mạng có chủ định, hoặc cũng có thể chỉ là những hành động vô ý thức, thử nghiệm các chơng trình không kiểm tra cÈn thËn.

Các lỗ hổng bảo mật

Các lỗ hổng bảo mật là những điểm yếu kém trên hệ thống hoặc điểm yếu kém ẩn chứa trong một dịch vụ mà dựa vào đó kẻ tấn công có thể xâm nhập trái phép để thực hiện các hành động chiếm đoạt tài nguyên bất hợp pháp Nguyên nhân gây ra những lỗ hổng bảo mật là khác nhau, có thể do lỗi của bản thân hệ thống, hoặc phần mềm cung cấp, hoặc do ngời quản trị yếu kém không hiểu sâu sắc các dịch vụ cung cấp Mức độ ảnh hởng của các lỗ hổng là khác nhau Có những lỗ hổng chỉ ảnh hởng tới chất lợng dịch vụ cung cấp, có những lỗ hổng ảnh hởng nghiêm trọng tới toàn bộ hệ thống.

Là tập hợp các quy tắc áp dụng cho mọi đối tợng có tham gia quản lý và sử dụng các tài nguyên và dịch vụ mạng Mục tiêu của chính sách bảo mật giúp ngời sử dụng biết đợc trách nhiệm của mình trong việc bảo vệ các tài nguyên thông tin trên mạng, đồng thời giúp các nhà quản trị thiết lập các biện pháp hữu hiệu trong quá trình trang bị, cấu hình, kiểm soát hoạt động của hệ thống và mạng Một chính sách bảo mật đợc coi là đầy đủ nếu nó xây dựng gồm các văn bản pháp qui đầy đủ về vấn

Máy tấn công Máy bị tấn công

Kích hoạt một script khác chạy dựa vào lỗ hổng của sendmail hay finger. Gửi một Shell Script

1.2.2 Sự xuất hiện của các Virus

Có một số sự kiện đánh dấu các hoạt động phá hoại trên mạng, từ đó nảy sinh các yêu cầu về bảo mật hệ thống nh sau:

- Năm 1988: Trên mạng Internet xuất hiện một chơng trình tự nhân phiên bản của chính nó lên tất cả các máy khác trên mạng Internet Các chơng trình này gọi là

“sâu” Tuy mức độ nguy hại của nó không lớn, nhng nó đặt ra các vấn đề đối với nhà quản trị về quyền truy nhập hệ thống, cũng nh các lỗi phần mềm

Hình 1-4 : Cơ chế hoạt động của sâu Internet

- Năm 1990: Các hình thức truyền Virus qua địa chỉ Email xuất hiện phổ biến trên mạng Internet.

- Năm 1991: Phát hiện các chơng trình trojans.

Cùng thời gian này sự phát triển của dịch vụ Web và các công nghệ liên quan nh

Java, Javascripts xuất hiện rất nhiều các thông báo lỗi về bảo mật nh các lỗ hổng cho phép đọc nội dung các file dữ liệu của ngời dùng, một số lỗ hổng cho phép tấn công làm ngng trệ dịch vụ.

- Năm 1998: Virus Melisa lan truyền trên mạng Internet thông qua các chơng trình gửi mail của Microsoft, gây những thiệt hại kinh tế không nhỏ.

- Năm 2000: Một loạt các WebSite lớn nh yahoo.com và ebay.com bị tê liệt, ngừng cung cấp dịch vụ trong nhiều giờ

1.2.3 Một số hình thức tấn công mạng

Có thể tấn công mạng theo một trong các hình thức sau đây:

- Dựa vào những lỗ hổng bảo mật trên mạng Những lỗ hổng này có thể là các điểm yếu của dịch vụ mà hệ thống đó cung cấp Ví dụ những kẻ tấn công lợi dụng các điểm yếu trong các dịch vụ mail, ftp, web để xâm nhập và phá hoại.

- Sử dụng các công cụ để phá hoại Ví dụ nh sử dụng các chơng trình phá khóa mật khẩu để truy nhập vào hệ thống bất hợp pháp, lan truyền virus trên hệ thống, cài đặt các đoạn mã bất hợp pháp vào một số chơng trình.

Kẻ tấn công giành đ ợc quyền root

Tấn công bằng bom th

Tấn công từ chối dịch vụ đơn giản

Ng ời dùng có đ ợc quyền đọc không hợp lệ

Ng ời dùng có quyền ghi không hợp lệ

Kẻ tấn công có đ ợc quyền login vào hệ thống

Kẻ tấn công có quyền đọc tệp không hợp lệ

Kẻ tấn công có quyền ghi tệp không hợp lệ

Hình 1-5: Các mức độ tấn công mạng

- Mức 1 : Tấn công vào một số dịch vụ mạng nh Web, Email, dẫn đến các nguy cơ lộ các thông tin về cấu hình mạng Các hình thức tấn công ở mức này có thể dùng DoS hoặc spam mail (th rác).

Lỗ hổng và khai thác lỗ hổng

Nh phần trên đã trình bày, các lỗ hổng bảo mật trên hệ thống là các điểm yếu có thể tạo ra sự ngng trệ của dịch vụ, thêm quyền đối với ngời sử dụng hoặc cho phép các truy nhập không hợp pháp vào hệ thống Các lỗ hổng cũng có thể nằm ngay các dịch vụ cung cấp nh web, ftp Ngoài ra các lỗ hổng còn tồn tại ngay chính tại hệ điều hành nh trong Windows NT, Windows 95, UNIX hoặc trong các ứng dụng mà ngời sử dụng thờng xuyên sử dụng nh Word processing, các hệ database. Phần sau đây sẽ trình bày các lỗ hổng bảo mật thờng gặp trên một số hệ thống.

1.3.1.1 Phân loại lỗ hổng bảo mật

Có nhiều tổ chức khác nhau tiến hành phân loại các dạng lỗ hổng đặc biệt.Theo cách phân loại của Bộ quốc phòng Mỹ, các loại lỗ hổng bảo mật trên một hệ thống đợc chia nh sau:

Lỗi cấu hình mặc định

Không giấu tệp tin mật

Lỗi có khả năng làm hệ thống h hỏng hoàn toàn

Lỗi cho phép ng ời dùng trong mạng thêm quyền truy cập

Lỗi cho phép ng ời dùng trong và ngoài mạng làm hệ thống bi treo

- Lỗ hổng loại C: Các lỗ hổng loại này cho phép thực hiện các phơng thức tấn công theo DoS (Denial of Services - từ chối dịch vụ ) Mức độ nguy hiểm thấp, chỉ ảnhhởng tới chất lợng dịch vụ, có thể làm ngng trệ, gián đoạn hệ thống nhng không làm phá hỏng dữ liệu hoặc đạt đợc quyền truy nhập bất hợp pháp.

- Lỗ hổng loại B: Các lỗ hổng cho phép ngời sử dụng có thêm các quyền trên hệ thống mà không cần thực hiện kiểm tra tính hợp lệ Mức độ nguy hiểm trung bình Những lỗ hổng này thờng có trong các ứng dụng trên hệ thống, có thể dẫn đến mất hoặc lộ thông tin yêu cầu bảo mật.

- Lỗ hổng loại A: Các lỗ hổng này cho phép ngời sử dụng ở ngoài có thể truy nhập vào hệ thống bất hợp pháp Lỗ hổng rất nguy hiểm, có thể làm phá huỷ toàn bộ hệ thống.

Hình 1- 7 : Một số lỗ hổng bảo mật và mức độ nguy hiểm

Sau đây ta sẽ phân tích kỹ hơn các lỗ hổng.

Các lỗ hổng loại này cho phép thực hiện các cuộc tấn công DoS.

DoS là hình thức tấn công sử dụng các giao thức ở tầng Internet trong bộ giao thức TCP / IP để làm hệ thống ngng trệ dẫn đến tình trạng từ chối ngời sử dụng hợp pháp truy nhập hay sử dụng hệ thống Một số lợng lớn các gói tin đợc gửi tới server trong khoảng thời gian liên tục làm cho hệ thống trở nên quá tải, kết quả là

Các dịch vụ có lỗ hổng cho phép các thực hiện các cuộc tấn công DoS có thể đợc nâng cấp hoặc sửa chữa bằng các phiên bản mới hơn của các nhà cung cấp dịch vụ Hiện nay, cha có một giải pháp toàn diện nào để khắc phục các lỗ hổng này vì bản thân việc thiết kế giao thức ở tầng Internet (IP) nói riêng và bộ giao thức TCP / IP đã chứa đựng những nguy cơ tiềm tàng của các lỗ hổng này Một số ví dụ điển hình của phơng thức tấn công DoS là vào một số Website lớn làm ngng trệ hoạt động của Website này nh : www.ebay.com và www.yahoo.com

Tuy nhiên, mức độ nguy hiểm của các lỗ hổng loại này đợc xếp loại C, ít nguy hiểm vì chúng chỉ làm gián đoạn cung cấp dịch vụ của hệ thống trong một thời gian mà không làm nguy hại đến dữ liệu và những kẻ tấn công cũng không đạt đợc quyền truy nhập bất hợp pháp vào hệ thống.

Một lỗ hổng loại C khác cũng thờng thấy đó là các điểm yếu của dịch vụ cho phép thực hiện tấn công làm ngng trệ hệ thống của ngời sử dụng cuối Chủ yếu với hình thức tấn công này là sử dụng dịch vụ Web Giả sử trên một Web Server có những trang Web trong đó có chứa các đoạn mã Java hoặc Javacripts, làm “treo” hệ thống của ngời sử dụng trình duyệt Web bằng các bớc sau:

- Viết các đoạn mã để nhận biết đợc Web Browsers

- Nếu sử dụng Netscape, sẽ tạo một vòng lặp vô thời hạn, sinh ra vô số các cửa sổ, trong mỗi cửa sổ đó nối đến các Webserver khác nhau.

Với một hình thức tấn công đơn giản này, có thể làm treo hệ thống trong khoảng thời gian 40 giây (đối với máy client có 64 MB RAM) Đây cùng là một hình thức tấn công kiểu DoS Ngời sử dụng trong trờng hợp này chỉ có thể khởi động lại hệ thống.

Một lỗ hổng loại C khác cũng thờng gặp đối với các hệ thống mail là cho phép thực hiện các hành động chuyển tiếp, một số hệ thống mail không có cách xác thực khi ngời dùng gửi th, dẫn đến tình trạng các đối tợng tấn công lợi dụng các máy chủ mail này để thực hiện Spam mail Spam mail là hành động nhằm tê liệt dịch vụ mail của hệ thống bằng cách gửi một số lợng lớn các messages tới một địa chỉ khác không xác định, vì máy chủ mail luôn phải tốn năng lực đi tìm những địa chỉ không thực dẫn đến tình trạng ngng trệ dịch vụ

Lỗ hổng loại này có mức độ nguy hiểm hơn lỗ hổng loại C, cho phép ngời sử dụng nội bộ có thể chiếm đợc quyền cao hơn hoặc truy nhập không hợp pháp Lỗ hổng loại B có thể có đối với hệ thống UNIX mà file /etc/passwd để ở dạng bản rõ, không sử dụng cơ chế che mật khẩu trong UNIX Những lỗ hổng loại này thờng xuất hiện trong các dịch vụ trên hệ thống Ngời sử dụng cục bộ đợc hiểu là ngời đã có quyền truy nhập vào hệ thống với một số quyền hạn nhất định Sau đây sẽ phân tích một số lỗ hổng loại B thờng xuất hiện trong các ứng dụng trên hệ thống UNIX.

Sendmail là một chơng trình đợc sử dụng rất phổ biến trên hệ thống UNIX để thực hiện gửi th điện tử cho những ngời sử dụng trong nội bộ mạng Thông thờng, sendmail là một chơng trình chạy ở chế độ nền đợc kích hoạt khi khởi động hệ thống Trong trạng thái hoạt động sendmail mở port 25 đợi một yêu cầu tới sẽ thực hiện gửi hoặc chuyển tiếp th Sendmail khi đợc kích hoạt sẽ chạy dới quyền root hoặc quyền tơng ứng (vì liên quan đến các hành động tạo file và ghi log file) Lợi dụng đặc điểm này và một số lỗ hổng trong các đoạn mã của sendmail mà các đối t- ợng tấn công có thể dùng sendmail để đạt đợc quyền root trên hệ thống

Ví dụ một lỗi của sendmail:

Trong ví dụ trên, ngời sử dụng thông thờng có thể đọc đợc nội dung của file / etc/passwd sau đó gửi mail đến địa chỉ zen@ecil.com Vì sendmail hoạt động dới quyền root nên nó có thể đọc đợc nội dung file /etc/passwd Mặt khác lợi dụng lỗ hổng bảo mật của sendmail vẫn bật chế độ debug cho phép mở một file handle /bin/ mail để gửi mail tới địa chỉ zen@ecil.com Để khắc phục lỗi của sendmail cần tham gia các nhóm tin về bảo mật, vì sendmail là một chơng trình có khá nhiều lỗi nhng cũng có nhiều ngời sử dụng nên các lỗ hổng bảo mật thờng đợc phát hiện và khắc phục nhanh chóng Khi phát hiện lỗ hổng trong sendmail cần nâng cấp, thay thế phiên bản sendmail đang sử dụng. Một loại vấn đề khác về quyền sử dụng chơng trình trên UNIX cũng thờng gây nên các lỗ hổng loại B Vì trên hệ thống UNIX, một chơng trình có thể đợc thực thi với 2 khả năng:

Ngời chủ sở hữu chơng trình đó kích hoạt chạy.

Ngời mang quyền của ngời sở hữu file đó.

Một số phơng pháp tấn công xâm nhập mạng phổ biÕn

Scanner là một chơng trình tự động rà soát và phát hiện những yếu điểm về bảo mật trên một trạm làm việc tại cục bộ hoặc trên một trạm ở xa Với chức năng này, một kẻ phá hoại sử dụng chơng trình Scanner có thể phát hiện ra những lỗ hổng về bảo mật trên một server ở xa.

1.4.1.2 Cơ chế hoạt động của các chơng trình Scaner

Các chơng trình scanner thờng có một cơ chế chung: soát, phát hiện những port TCP/UDP đợc sử dụng trên một hệ thống cần tấn công Từ đó phát hiện những dịch vụ sử dụng trên hệ thống đó, sau đó các chơng trình Scanner ghi lại những đáp ứng trên hệ thống ở xa tơng ứng với các dịch vụ mà nó phát hiện ra Dựa vào những thông tin này, những kẻ tấn công có thể tìm ra điểm yếu trên hệ thống

Những yếu tố để một chơng trình Scanner có thể hoạt động

- Yêu cầu về thiết bị hệ thống : Một chơng trình Scanner có thể hoạt động đợc nếu môi trờng đó có hỗ trợ TCP/IP (bất kể hệ thống là UNIX, máy tính tơng thích với IBM , hoặc dòng máy Macintosh)

- Hệ thống đó phải kết nối vào mạng Internet.

Tuy nhiên không phải đơn giản để xây dựng một chơng trình Scanner, những kẻ tấn công cần có kiến thức sâu về TCP/IP, những kiến thức về lập trình C, Perl và một số ngôn ngữ lập trình Shell Ngoài ra cũng cần có kiến thức là lập trình socket, hiểu biết các phơng thức hoạt động của các ứng dụngclient/server Hiện nay có nhiều ch- ơng trình Scanner (cả miễn phí và thơng phẩm) có giá trị trên thị trờng

1.4.1.3 ảnh hởng của chơng trình Scanner

Các chơng trình Scanner có vai trò quan trọng trong một hệ thống bảo mật. Chúng có khả năng phát hiện ra những điểm yếu trên một hệ thống mạng Đối với ngời quản trị mạng những thông tin này là hết sức hữu ích và cần thiết còn đối với những kẻ phá hoại thì những thông tin này lại hết sức nguy hiểm

1.4.1.4 Giới thiệu một số chơng trình Scanner thông dụng

Trên hệ thống Unix, có một số tiện ích đóng vai trò nh các chơng trình scanner.

- Sử dụng tiện ích này để chuyển đổi từ tên một host sang địa chỉ IP tơng ứng với host đó ( giống với tiện ích nslookup).Ví dụ:

Cho kết quả nh sau:

Found 1 addresses for BU EDU

Found 1 addresses for RSO.INTERNIC NET

Found 1 addresses for SOFTWARE BU EDU

Found 1 addresses for RS INTERNIC NET

Found 1 addresses for NSEGC BU EDU

Bu Edu 86400 IN SOA BU EDU HOSTMASTER BU EDU (

Bu edu 86400 IN NS SOFTWARE BU EDU

Bu edu 86400 IN NS RS INTERNIC NET

Bu edu 86400 IN NS NSEGC BU EDU

Bản thân những thông tin này không quan trọng vì chúng hoàn toàn có tính public (công cộng) Hầu hết các thông tin này có thể tìm thấy bằng lệnh WhoIs. Nhng nếu thông tin đa ra là:

Bu edu 86400 IN HINFO SUN – SPARCSTATION – 10/41 UNIX

PPP – 77 – 25 bu edu 86400 IN HINFO PPP – HOST PPP – SW

PPP – 77 – 25 bu edu 86400 IN HINFO PPP – HOST PPP – SW

ODIE bu edu 86400 IN MX 10 CS BU EDU

ODIE bu edu 86400 IN HINFO DEC – SLPHA – 3000/ 300LX OSF1

Từ thông tin này những kẻ tấn công có thể phát hiện ra một trạm đang chạy DEC – ALPHA–3000 sử dụng OSF1 Một chơng trình Scanner rất thông dụng và phổ biến khác là SATAN.

Một chơng trình bẻ khoá password là chơng trình có khả năng giải mã một mật khẩu đã đợc mã hoá hoặc có thể vô hiệu hoá chức năng bảo vệ mật khẩu của một hệ thống

1.4.2.2 Hoạt động của các chơng trình bẻ khoá Để hiểu cách thức hoạt động của các chơng trình bẻ khoá, chúng ta cần hiểu cách thức mã hoá để tạo mật khẩu Hầu hết việc mã hoá các mật khẩu đ ợc tạo ra từ một phơng thức mã hoá Các chơng trình mã hoá sử dụng các thuật toán mã hoá để mã hoá mật khẩu

Sử dụng một máy tính mạnh để mã hoá Kẻ tấn công chọn một danh sách các từ đ a vào một hàm mã hoá

Thời gian cần thiết để mã hoá chuỗi sẽ quyết định tốc độ giải mã Từ khoá (từ đ ợc mã hoá thành XmOrSikz) là một từ trong một danh sách các từ đuợc lựa chọn theo một số quy luật nhất định XmOrSik

FdBHnmaq (Mật khẩu đích đã đ ợc mã hoá)

Tõ XmOrSikz đ ợc so sánh với mật khẩu đã đ ợc mã hoá.

Hình 1-10: Hoạt động của chơng trình bẻ khoá

Yếu tố về thiết bị phần cứng: Trong hình trên máy tính thực hiện các chơng trình phá khoá là một máy PC cấu hình cao.Trong thực tế yêu cầu các thiết bị phần cứng rất mạnh đối với những kẻ phá khoá chuyên nghiệp Một phơng thức khác có thể thay thế là thực hiện việc phá khoá trên một hệ thống phần tán Do vậy giảm bớt đợc các yêu cầu về thiết bị so với phơng pháp làm tại một máy Nh trong hình đã chỉ ra, có một danh sách các từ đợc tạo ra và thực hiện mã hoá từng từ Sau mỗi lần mã hoá, sẽ so sánh với mật khẩu đã mã hoá cần phá Nếu không thấy trùng hợp , quá trình lại quay lại Phơng thức bẻ khoá này gọi là phơng pháp vét cạn.

Nguyên tắc của một số chơng trình phá khoá có thể khác nhau Một vài ch- ơng trình tạo một danh sách các từ theo một quy luật nhất định và theo các thuộc tính của ngời dùng, áp dụng một số thuật toán, từ kết quả so sánh với password đã mã hoá cần bẻ khoá để tạo ra một danh sách khác theo một lôgic của chơng trình.

3 0 khẩu ngời sử dụng cũng thờng tuân theo một số quy tắc để thuận tiện khi sử dụng. Đến giai đoạn cuối cùng, nếu thấy phù hợp với mật khẩu đã đợc mã hoá, kẻ phá khoá sẽ có đợc mật khẩu dạng text thông thờng đợc ghi vào một file. Để đánh giá khả năng thành công của các chơng trình bẻ khoá ngời ta đa công thức nh sau:

+ P: Là xác suất thành công

+ L: Thời gian sống của một mật khẩu

+ S: Không gian mật khẩu m (m là chiều dài mật khẩu )

Ví dụ, trên hệ thống UNIX ngời ta đã chứng minh đợc rằng nếu mật khẩu dài quá 8 ký tự thì xác suất phá khoá gần nh = 0 Cụ thể nh sau: nếu sử dụng khoảng 92 ký tự có thể đặt mật khẩu, không gian mật khẩu có thể có là S = 92 8

Với tốc độ thử là 1000 mật khẩu trong một giây có R = 1000/s Thời gian sống của môt mật khẩu là 1 năm.Ta có xác suất thành công là:

Nh vậy việc dò mật khẩu là không thể vì sẽ mất khoảng 100 năm mới tìm ra mật khẩu chính xác.

Thông thờng các chơng trình phá khóa thờng kết hợp một số thông tin khác trong quá trình dò mật khẩu nh:

+ Các thông tin trong tập tin / etc/passwd

+ Từ lặp và các từ liệt kê tuần tự, chuyển đổi cách phát âm của một từ.

1.4.2.3 Giới thiệu một số chơng trình phá khoá trên UNIX

Nguồn gốc các chơng trình phá khoá đã có từ lâu, thờng đợc áp dụng đối với các hệ thống UNIX Một số chơng trình Crack đã trở thành chuẩn công nghiệp để giúp ngời quản trị kiểm tra tính an toàn của hệ thống ví dụ nh chơng trình Crack của Alec Muffett Chơng trình này hoạt động đối với càc file/ etc/passwd của UNIX. Hoạt động của chơng trình này nh sau:

Pwc:Jan 30 19:26:49 Crack v4 1f: The password Cracker,

Pwc: jan 30 19:26:49 Loading Data, host=Samshack pid00

Pwc: jan 30 19:26:49 Loaded 2 password entries with 2

Pwc: jan 30 19:26:49 Loaded 240 rules from

Pwc: jan 30 19:26:49 Loaded 74 rules from ` Scripts/gecos.rules’.

Pwc: jan 30 19:26:49 Starting pass 1 – password information

Pwc: jan 30 19:26:49 Feedback: 0 users done, 2 users left to

Pwc: jan 30 19:26:49 Starting pass 2 – dictionary words

Pwc: jan 30 19:26:49 Applying rule `?A1’ to file

Pwc: jan 30 19:26:50 Rejected 12492 words on loading,

Pwc: jan 30 19:26:51 Sort discarede 947 words;

Pwc: jan 30 19:26:41 Guessed ROOT PASSWORD root

(/bin/bash (in my_password_file) [laura] EYFu7c842Bcus

Pwc: jan 30 19:26:41 closing feedback file.

Các biện pháp thủ công phát hiện tấn công

Không có một hệ thống nào có thể đảm bảo an toàn tuyệt đối vì bản thân mỗi dịch vụ đều có những lỗ hổng bảo mật tiềm tàng Đứng trên góc độ ngời quản trị hệ thống, ngoài việc tìm hiểu phát hiện những lỗ hổng bảo mật còn luôn phải thực hiện các biện pháp kiểm tra hệ thống xem có dấu hiệu tấn công hay không Các biện pháp đó là:

- Kiểm tra các dấu hiệu hệ thống bị tấn công : hệ thống thờng bị treo hoặc bị crash bằng những thông báo lỗi không rõ ràng Khó xác định nguyên nhân do thiếu thông tin liên quan.Trớc tiên, xác định các nguyên nhân về phần cứng hay không, nếu không phải phần cứng hãy nghĩ đến khả năng máy bị tấn công.

- Kiểm tra các tài khoản ngời dùng mới trên hệ thống: một số tài khoản lạ ,nhất là uid của tài khoản đó bằng 0

- Kiểm tra xuât hiện các tập tin lạ Thờng phát hiện thông qua cách đặt tên các tập tin, mỗi ngời quản trị hệ thống nên có thói quen đặt tên tập tin theo một mẫu

Hệ thống phát hiện xâm nhập (ids)

Cơ bản về hệ thống phát hiện xâm nhập

Trong phần cuối của chơng trớc chúng ta đã xem xét đến kỹ thuật sniffer dùng để ăn cắp các dữ liệu lu chuyển trên mạng, tuy nhiên để phát hiện đợc các xâm nhập trái phép thì ta cũng phải sử dụng kỹ thuật này để bắt giữ các gói tin trên mạng để phân tích từ đó để tìm ra các gói tin bất hợp pháp Để làm đ ợc điều này ta cần một hệ thống phát hiện xâm nhập.

2.1.1 Hệ thống phát hiện xâm nhập là gì

Một hệ thống phát hiện xâm nhập (IDS) có thể đợc định nghĩa nh những công cụ, những phơng pháp và những tài nguyên để giúp đỡ xác định, đánh giá và báo cáo những hoạt động không hợp pháp hoặc không đợc thừa nhận trên mạng Cái tên

“phát hiện xâm nhập” có thể chỉ là một sự khoa trơng hoặc một ớc muốn vì thực tế thì một IDS không thật sự phát hiện ra những xâm nhập – nó phát hiện ra hoạt động bất thờng trong giao thông trên mạng mà có thể hoặc có thể không là một xâm nhập Hệ thống phát hiện xâm nhập chỉ là hệ thống con của một hệ thống bảo mật đ- ợc cài đặt xung quanh một hệ thống hoặc thiết bị cần đợc bảo vệ Có thể so sánh một cách hình tợng rằng firewalls với cái cửa đợc khoá, hệ thống phát hiện xâm nhập là hệ thống báo động và hệ thống ngăn chặn xâm nhập là chó bảo vệ Nh bạn có thể thấy, khoá cửa, hệ thống báo động và con chó bảo vệ hoạt động riêng biệt nhng bổ xung vai trò cho nhau trong việc bảo vệ kho hàng Đây thật sự là những chức năng của Firewalls, IDS và IPS Đó là sự phối hợp làm việc của những công nghệ khác nhau để cảnh báo cho bạn và có thể ngăn chặn những xâm nhập vào mạng Cách thức triển khai hệ thống cũng làm cho hệ thống tăng cờng đợc sự an toàn Ví dụ, trong kho hàng, chiến lợc có hiệu quả nhất là sẽ đặt thêm những thiết bị cảnh báo về việc mở cửa cũng nh lắp thêm những bộ dò chuyển động ở bên trong kho hàng Bạn có thể cũng muốn có vài con chó ở bên trong khuôn viên cần bảo vệ để phát hiện kẻ xâm nhập Việc triển khai IDS và IPS là sự phối hợp các công nghệ khác nhau để giữ an toàn cho một hệ thống mạng mở Sự triển khai IDS và IPS chính là sử dụng phơng pháp phòng thủ nhiều lớp theo chiều sâu, mức độ rủi ro của mạng luôn phụ thuộc vào phần tử yếu nhất của mạng Do đó việc phòng thủ theo nhiều lớp sẽ tăng thêm mức độ an toàn cho mạng, sự an toàn của từng lớp sẽ bổ xung cho sự an toàn chung của cả mạng.

Ngăn chặn xâm nhập là một công nghệ còn khá mới và vẫn còn phát triển còn công nghệ phát hiện xâm nhập thì có một lịch sử lâu dài hơn Vào năm 1980, James Anderson viết một báo cáo kỹ thuật gọi là “Theo dõi và giám sát nguy cơ mất an toàn máy tính” gửi cho không quân Mỹ Báo cáo này chỉ ra rằng những bản ghi nhật ký có thể sử dụng để giúp đỡ xác định những nguy cơ cho hệ thống.

Vào năm 1985, Hải quân Mỹ đã tài trợ cho tổ chức quốc tế SRI để nghiên cứu phát triển hệ thống phát hiện xâm nhập Tiến sỹ Dorothy Denning đã dẫn dắt đội này phát triển một nguyên mẫu có khả năng phân tích những bản ghi nhật ký hoạt động ngời dùng hệ thống Họ đã đặt tên hệ thống này là hệ chuyên gia phát hiện xâm nhập (Intrusion Detection Expert System – IDES) Năm 1987, tiến sỹ Denning đã đăng tải một nghiên cứu gọi là Mô hình phát hiện xâm nhập (Intrusion Detection Expert System – IDES)

Năm 1989, Todd Heberlein, một sinh viên tại trờng đại học California, xây dựng một hệ thống IDS gọi là Network System Monitor (NSM) NSM khác với IDES là nó phân tích giao thông trên mạng hơn là nhật ký hệ thống mạng NSM, sau này đợc tích hợp vào hệ thống IDS thơng mại Stalker.

Trong những năm 1990, Không Quân Hoa kỳ uỷ nhiệm công ty ScienceApplications International Corporation (SAIC) phát triển Computer MisuseDetection System (CMDS) Trung tâm hỗ trợ Cryptologic thuộc không quân Hoa Kỳ

3 8 là IDS đầu tiên hợp nhất cả hai giải pháp trên phần mềm và phần cứng Vài ngời phát triển của ASIM hình thành Wheel Group và thơng mại hoá sản phẩm Wheel Group đợc Cisco mua lại vào 1998, việc này dẫn tới Cisco tích hợp các tính năng IDS vào trong các sản phẩm Router của họ

Sự phát triển của kỹ thuật ngăn chặn xâm nhập chỉ vừa mới bắt đầu.

2.1.3 Chức năng của hệ thống phát hiện xâm nhập

Phát hiện các thâm nhập đợc hình thành bằng một hay tập hợp các chơng trình có chức năng theo dõi việc lu thông trên mạng, phân tích các luồng dữ liệu, xác định các dữ liệu không hợp lệ và từ đó phát hiện các cuộc thâm nhập từ bên ngoài vào hoặc từ bên trong ra IDS có thể phát hiện ra những cuộc tấn công chống lại máy tính hoặc mạng của bạn Cụ thể:

- Phát hiện tấn công: Một IDS có thể cho bạn biết rằng một con sâu (Worm) đang tấn công mạng của bạn, hoặc một hệ máy tính đã bị xâm nhập.

- Phát hiện vi phạm quy định: IDS có thể theo dõi bên trong một mạng và phát hiện các hành vi vi phạm các quy định về an toàn mạng hoặc các chính sách sử dụng mạng và máy tính của công Ví dụ, phát hiện những ngời dùng đang tán gẫu (chat) bằng Yahoo Messenger hay AOL Instant Messenger, trong khi công ty bạn không cho phép các hành động nh vậy.

- Theo dõi tấn công: Một IDS có thể cung cấp các thông tin cụ thể về một cuộc tấn công Theo dõi xem kẻ tấn công đến từ đâu và anh ta đã làm đợc gì trên hệ thống của bạn.

- Quản lý các tài nguyên: Một IDS cung cấp các thông tin về hoạt động của các Firewall của bạn, hiệu quả hoạt động của các firewall này.

Có thể phân loại IDS theo chức năng: IDS trên nền máy chủ- Host base IDS (HIDS), IDS mạng – Network base IDS ( NIDS) và những IDS lai

Một hệ thống HIDS là phần mềm chạy trên hệ thống và có thể quét tất cả các tài nguyên mà máy chủ cho hoạt động, cũng có hệ thống chỉ quét syslog và các nhật ký sự kiện để phát hiện xâm nhập Nó sẽ ghi lại các hoạt động mạng nó khám phá đ - ợc vào một cơ sở dữ liệu và kiểm tra xem có sự kiện nào phù hợp với bất kỳ bản ghi các sự kiện nguy hiểm đã đợc liệt kê trong cơ sở tri thức.

Phân loại IDS theo chức năng

Phạm vi rộng (giám sát cả một mạng) Phạm vi hẹp (chỉ giám sát trên một máy chủ) Phát hiện các xâm nhập từ bên ngoài tốt hơn Phát hiện các xâm nhập từ bên trong tốt hơn Chi phí thực thi rẻ Chi phí thực thi đắt hơn

Phát hiện dựa trên những gì đợc ghi nhận trên toàn mạng Phát hiện dựa trên những gì máy chủ đó ghi lại Phân tích phần đầu gói tin Không phân tích phần đầu gói tin

Phản ứng ngay lập tức Chỉ phản ứng sau khi sự kiện nguy hiểm đợc ghi lại Không phụ thuộc hệ điều hành Phụ thuộc hệ điều hành

Cấu trúc hệ thống phát hiện xâm nhập

Kiến trúc chung của các hệ thống IDS, IPS

Một hệ thống IDS, IPS đợc xem là thành công nếu chúng hội tụ đợc các yếu tố: thực hiện nhanh, chính xác, đa ra thông báo hợp lý, phân tích đợc toàn bộ thông lợng, cảm biến tối đa, ngăn chặn thành công và chính sách quản lý mềm dẻo Hệ thống IDS gồm 3 modul chính: Modul phân tích luồng dữ liệu, modul phát hiện tấn công và modul phản ứng.

2.2.1 Module phân tích luồng dữ liệu

Modul này có nhiệm vụ lấy tất cả các gói tin đi đến mạng để phân tích. Thông thờng các gói tin có địa chỉ đích không phải của một card mạng thì sẽ bị card mạng đó huỷ bỏ nhng card mạng của IPS đợc đặt ở chế độ thu nhận tất cả. Tất cả các gói tin qua chúng đều đợc sao chụp, xử lý, phân tích đến từng trờng thông tin Bộ phân tích đọc thông tin từng trờng trong gói tin, xác định chúng thuộc kiểu gói tin nào, dịch vụ gì Các thông tin này đợc chuyển đến modul phát hiện tấn công.

2.2.2 Modul phát hiện tấn công Đây là modul quan trọng nhất trong hệ thống có nhiệm vụ phát hiện các cuộc tấn công Cách thức hoạt động của modul này sẽ đợc xem xét chi tiết ở phÇn kÕ tiÕp.

Máy chủ hoặc sniffer Tiền xử lý Phân tích hệ thống

Hình 2-1: Hệ thống IDS chuẩn

Phơng pháp phát hiện tấn công

Có hai phơng pháp để phát hiện các cuộc tấn công, xâm nhập là dò sự lạm dụng và dò sự không bình thờng.

2.3.1 Phơng pháp dò sự lạm dụng

Phơng pháp này phân tích các hoạt động của hệ thống, tìm kiếm các sự kiện giống với các mẫu tấn công đã biết trớc Các mẫu tấn công biết trớc này gọi là các dấu hiệu tấn công Do vậy phơng pháp này còn đợc gọi là phơng pháp dò dấu hiệu.

Kiểu phát hiện tấn công tấn công này có u điểm là phát hiện đợc các cuộc tấn công nhanh và chính xác không đa ra các cảnh báo sai làm giảm khả năng hoạt động của mạng và giúp ngời quản trị xác định đợc các lỗ hổng bảo mật trong hệ thống của mình Tuy nhiên phơng pháp này có nhợc điểm là không phát hiện đợc các cuộc tấn

4 2 công không có trong cơ sở dữ liệu, các kiểu tấn công mới, do vậy hệ thống luôn phải cập nhật các mẫu tấn công mới Phơng pháp dò dấu hiệu có các kiểu dò chủ yếu sau:

2.3.1.1 Phơng pháp so sánh mẫu

So sánh mẫu là phơng pháp phát hiện xâm nhập đơn giản nhất Mẫu dùng để so sánh là một chuỗi đợc xác định duy nhất trong gói tin đợc gửi đi từ máy tấn công đến máy bị tấn công Trong ví dụ về trờng hợp khai thác lỗ hổng tràn bộ đệm ánh xạ ida dới đây, chuỗi “ida? ” là đủ để phân biệt một cuộc tấn công thử để khai thác lỗ hổng tràn bộ đệm này với những cuộc tấn công khác, giả sử nh việc khai thác lỗ hổng tràn bộ đệm idq.

Phơng pháp so sánh mẫu có nghĩa là việc tìm kiếm những chuỗi đợc nhập vào trong th viện các mẫu đã đợc lu trữ Các hệ thống IDS hoặc IPS khác nhau có các cách tìm kiếm, so sánh khác nhau Phơng pháp đơn giản nhất là dùng hàm fgrep hoặc một lệnh tìm chuỗi tơng tự để so sánh các chuỗi vào nhận đợc từ bộ phận bắt giữ gói tin với danh sách các mẫu có sẵn Nếu tìm thấy mẫu khớp với chuỗi vào đó thì đó chính là dấu hiệu của một cuộc tấn công.

Ví dụ: Khai thác lỗ hổng tràn bộ đệm ida

Lỗ tràn bộ đệm Ida (Internet Data Administration) là lỗi đầu tiên trong danh sách

20 lỗi thờng gặp nhất trên các hệ thống Windows Lỗi này xuất hiện trong dịch vụ chỉ số hoá của IIS (Internet Information Services) Dịch vụ này có một bộ đệm không đợc kiểm soát khi giải mã các ký tự chiếm hai byte Lập trình viên không l- ờng đợc điều gì sẽ xảy ra nếu thủ tục này nhận đợc quá nhiều dữ liệu Lẽ ra th viện

Ida.dll phải không chấp nhận loại dữ liệu không hợp lệ này Kẻ tấn công có thể khai thác điểm yếu này của dịch vụ IIS cha đợc sửa lỗi bằng cách gửi chuỗi sau cho máy chủ dịch vụ:

Trong câu lệnh này, 240 ký tự N (có thể thay bằng ký tự khác) tràn qua bộ đệm, các ký tự còn lại sau ký tự N (các ký tự này đợc mã hoá ở dạng Unicode) sẽ đ- ợc ghi trên máy chủ dịch vụ Một lỗ hổng tơng tự cũng tồn tại trong dịch vụ Idq (Internet Data Query), những lỗ hổng này bị họ sâu Code Red khai thác để xâm nhập vào hệ thống. Để nâng cao hiệu quả, những phơng pháp so sánh mẫu phức tạp đợc phát triển Một số hệ thống phát hiện xâm nhập tạo ra những mẫu phù hợp trong một nhánh của cây sau khi các gói tin đã đợc xác định phù hợp với nhánh đó Phơng pháp này đã nâng hiệu quả tìm kiếm lên rất nhiều. Đánh giá phơng pháp so sánh mẫu

Phơng pháp so sánh mẫu không chỉ đơn giản mà còn rất trực quan Những ng- ời có hiểu biết về phát hiện xâm nhập có thể nhanh chóng xác định đợc sự tấn công nếu đợc cảnh báo bởi hệ thống IDS hoặc IPS

Vài giới hạn chính của phơng pháp so sánh mẫu

Thứ nhất là nhiều biến dạng của một hình thức tấn công thờng tồn tại, với cùng một mẫu Ví dụ, trong nhiều phiên bản của dịch FTP (File Transfer Protocol) của Trờng đại học Washington (WU-FTP), một lỗi trong khi thực hiện lệnh SITE EXEC khiến kẻ tấn công có thể lấy đợc quyền của ngời quản trị root trên máy chủ FTP Kẻ tấn công có thể bắt đầu một tấn công SITE EXEC bằng việc kết nối tới một WU-FTP server và nhập vào lệnh sau:

Quote site exec exec echo toor : : 0 :/ : / bin/ sh >> / etc/ passwd

Chuỗi kí tự trớc cấu thành một mẫu cho biên bản một tấn công SITE EXEC, nh vậy chỉ có mẫu này trong một hồ sơ hoặc cơ sở dữ liệu dẫn đến nhiều sự tấn công đợc ghi nhận nh là cùng một loại tấn công nếu nh những phơng pháp tấn công

SITE EXEC khác đợc sử dụng.

IDS sử dụng phơng pháp so sánh mẫu có khả năng nhận biết tốt Thêm một mẫu mới vào th viện mẫu của một IDS hoặc IPS sẽ giúp hệ thống có khả năng phát hiện ra các dạng tấn công mới Nếu không đợc cập nhật thờng xuyên IDS và IPS sử dụng phơng pháp so sánh mẫu sẽ bỏ qua những kiểu tấn công mới.

Việc quản lý các th viện mẫu là công việc khá vất vả Các mẫu cũ nhiều khi không còn cần thiết nhng vẫn phải đợc giữ lại trong th viện gây nên sự thừa thãi và làm giảm tốc độ hoạt động của hệ thống Tuy nhiên nếu việc loại bỏ mẫu không cẩn thận cũng sẽ dẫn đến việc hệ thống không có khả năng phát hiện đợc một số kiểu tấn công cũ nhng vẫn còn đợc sử dụng.

IDS và IPS sử dụng phơng pháp so sánh mẫu có khuynh hớng tạo ra nhiều báo động sai Lý do là vài kiểu mẫu đợc nhập vào nh.

Có thể đợc cảnh báo nh sự tấn công, nhng đôi khi đó cũng là một hành động hợp pháp (nh hành động của những quản trị hệ thống) Những mẫu đợc nhập vào thờng không thể hiện đợc các tình tiết dẫn đến nó Bất kỳ lúc nào khi phát hiện đợc sự tơng hợp, một IDS hoặc IPS sử dụng phơng pháp so sánh mẫu ngay lập tức phát ra cảnh báo.

IDS và IPS hoạt động trên quy luật, lu trữ một số lợng các khả năng rằng chúng là sự kết hợp của những tiêu chí có thể của sự tấn công.

Những giới hạn chung của các hệ thống IDS

Tình trạng thiếu tài nguyên có thể dẫn một hệ thống IDS có bộ nhớ, CPU, hoặc giới hạn băng thông, có thể bị treo cứng Để theo dõi những kết nối, IDS càn thiết lập một bản ghi kết nối cho mỗi kết nối tích cực Nếu số kết nối quá mức đ ợc làm, những tài nguyên (Bộ nhớ, CPU, Băng thông) có thể bị quá tải Hacker th ờng sử dụng kỹ thuật làm lụt SYN để tạo ra kiểu sự từ chối dịch vụ này.

Trong hệ thống mạng diện rộng sử dụng các Router hay các Switch, các IDS riêng lẻ thờng không thể kiểm soát hiệu quả đợc toàn bộ hệ thống mạng Việc triển khai nhiều hệ thống IDS sẽ làm cho công tác cập nhật các mẫu phức tạp hơn và công tác quản lý các cảnh báo cũng sẽ gặp nhiều khó khăn hơn.

Các hệ thống IDS thờng không thể phát hiện ra dạng xâm nhập mới Các xâm nhập sử dụng kết hợp nhiều kết nối bình thờng sẽ bị bỏ qua.

Chơng iii: ngăn chặn xâm nhập bằng mật mã học

Một số hệ mật cổ điển

Đối tợng cơ bản của mật mã là tạo ra khả năng liên lạc trên một kênh không mật cho hai ngời sử dụng (tạm gọi là Alice và Bob) sao cho đối phơng (Oscar) không thể hiểu đợc thông tin đợc truyền đi Kênh này có thể là một đờng dây điện thoại hoặc một mạng máy tính Thông tin mà Alice muốn gửi cho Bob (bản rõ) có

Nguồn khoá trúc tuỳ ý Alice sẽ mã hoá bản rõ bằng một khóa đã đợc xác định trớc và gửi bản mã kết quả lên kênh liên lạc Oscar có bản mã thu trộm đợc trên kênh song không thể xác định nội dung của bản rõ, nhng Bob (ngời đã biết khoá mã) có thể giải mã và thu đợc bản rõ.

Hình 3-1: Sơ đồ mã hoá cổ điển

Ta sẽ sử dụng MDV (với modulo 26) để mã hoá một văn bản tiếng Anh thông thờng bằng cách thiết lập sự tơng ứng giữa các kí tự và dãy các số tự nhiên theo modulo 26 nh sau:

Sau đây là một ví dụ nhỏ để minh hoạ:

Giả sử khoá cho MDV là K = 11 và bản rõ là: wewillmeetatmidnight

Trớc tiên biến đổi bản rõ thành dãy các số nguyên nhờ dùng phép tơng ứng trên:

0 19 12 8 3 13 8 6 7 19 sau đó cộng 11 vào mỗi giá trị rồi rút gọn tổng theo modulo 26

Cuối cùng biến đổi dãy số nguyên này thành các kí tự thu đợc bản mã sau:

HPHTWWXPPELEXTOYTRSE Để giải bản mã này, Bob sẽ biến đổi bản mã thành dãy các số nguyên rồi trừ đi 11, rút gọn theo modulo 26 và cuối cùng biến đổi lại dãy này thành các ký tự. Trong ví dụ trên, ta đã dùng các chữ in hoa cho bản mã, các chữ thờng cho bản rõ để tiện phân biệt Quy tắc này còn tiếp tục sử dụng sau này.

Nhận xét rằng, MDV (theo modulo 26) là không an toàn vì nó có thể bị thám theo phơng pháp vét cạn Do chỉ có 26 khoá nên dễ dàng thử mọi khoá dK có thể cho tới khi nhận đợc bản rõ có nghĩa

Một hệ mật nổi tiếng khác là hệ mã thay thế Hệ mật này đã đợc sử dụng hàng trăm năm với các trò chơi đố chữ trong các bài báo

Sau đây là một ví dụ về một hàm mã thay thế kí hiệu là ep chỉ cần sử dụng một phép hoán vị ngẫu nhiên p: a b c d e f g h i j k l m

Nh vậy, ep(a) = X, ep(b) = N Hàm giải mã là phép hoán vị ngợc Điều này đợc thực hiện bằng cách viết hàng thứ hai lên trớc rồi sắp xếp theo thứ tự chữ cái Ta nhận đợc:

Mỗĩ khoá của MTT là một phép hoán vị của 26 kí tự Số các hoán vị này là26!, lớn hơn 4 ´10 26 là một số rất lớn Bởi vậy, phép tìm khoá vét cạn không thể thực hiện đợc bằng các tính toán trên giấy thông thờng Tuy nhiên, sau này sẽ thấy rằng MTT có thể dễ dàng bị thám bằng các phơng pháp khác.

MDV là một trờng hợp đặc biệt của MTT chỉ gồm 26 trong số 26! các hoán vị có thể của 26 phần tử Một trờng hợp đặc biệt khác của MTT là mãAffine đợc mô tả dới đây trong mã Affine, ta giới hạn chỉ xét các hàm mã có dạng: e(x) = ax + b mod 26 trong đó a,b ẻ Z26 Các hàm này đợc gọi là các hàm Affine (chú ý rằng khi a = 1, ta cã MDV) XÐt mét vÝ dô nhá:

Giả sử K = (7,3) Nh đã nêu ở trên, ta tính 7 -1 mod 26 = 15 Hàm mã hoá là: eK(x) = 7x+3

Và hàm giải mã tơng ứng là: dK(x) = 15(y-3) = 15y -19 ở đây, tất cả các phép toán đều thực hiện trên Z26 Ta sẽ kiểm tra liệu dK(eK(x)) = x với mọi x ẻ Z26 không? Dùng các tính toán trên Z26, ta có: dK(eK(x)) =dK(7x+3)

= x +45 -19 = x Để minh hoạ, ta hãy mã hoá bản rõ "hot" Trớc tiên biến đổi các chữ h, o, t thành các thặng d theo modulo 26 Ta đợc các số tơng ứng là 7, 14 và 19 Bây giờ sẽ mã hoá:

Bởi vậy 3 ký hiệu của bản mã là 0, 23 và 6 tơng ứng với xâu ký tự AXG

Trong cả hai hệ MDV và MTT (một khi khoá đã đợc chọn) mỗi ký tự sẽ đợc ánh xạ vào một ký tự duy nhất Vì lý do đó, các hệ mật trên còn đợc gọi hệ thay thế đơn biểu Bây giờ ta sẽ trình bày một hệ mật đa biểu lấy tên của Blaise de Vigenère sống vào thế kỷ XVI.

Ta có thể gắn cho mỗi khoá K với một chuỗi kí tự có độ dài m đ ợc gọi là từ khoá Mật mã Vigenère sẽ mã hoá đồng thời m kí tự: mỗi phần tử của bản rõ tơng đ- ơng với m ký tự Xét một ví dụ nhỏ:

Giả sử m =6 và từ khoá là CIPHER Từ khoá này tơng ứng với dãy số K = (2,

8, 15, 4, 17) Giả sử bản rõ là xâu: thiscryptosystemisnotsecure Chúng ta biến đổi bản rõ thành các số, nhóm chúng thành từng nhóm 6 rồi cộng với từ khóa theo module 26:

Bởi vậy, dãy ký tự tơng ứng của xâu bản mã sẽ là:

V P X Z G I A X I V W P U B T T M J P W I Z I T W Z T Để giải mã ta có thể dùng cùng từ khoá nhng thay vì cộng ta trừ nó theo module 26 Ta thấy rằng các từ khoá với độ dài m trong phơng pháp mã hoá Vigenere là 26 m Bởi vậyvới các giá trị m khá nhỏ, phơng pháp tìm kiếm vét cạn cũng yêu cầu thời gian khá lớn Ví dụ, nếu m = 5 thì không gian khoá cũng có kích thớc lớn hơn 1,1 ´ 10 7

Nhận xét: Trong hệ mật Vigenère có từ khoá độ dài m, mỗi ký tự có thể đợc ánh xạ vào trong m ký tự có thể có (giả sử rằng từ khoá chứa m ký tự phân biệt). Một hệ mật nh vậy đợc gọi là hệ mật thay thế đa biểu Nói chung, việc thám mã hệ thay thế đa biểu sẽ khó khăn hơn so việc thám mã hệ đơn biểu.

Chuẩn mã hóa dữ liệu (DES)

3.2 chuẩn mã hoá dữ liệu (des)

DES (Data Encryption Standard) đợc IBM phát triển nh một cải biên của hệ mật LUCIPHER Ngày 17.3.1975, DES đợc công bố trong Hồ sơ Liên bang Hoa

Kỳ Sau nhiều cuộc tranh luận công khai, ngày 5.1.1977, DES đã đợc chấp nhận chọn làm chuẩn cho các ứng dụng không đợc coi là mật Kể từ đó cứ 5 năm một lần, DES lại đợc Uỷ ban Tiêu chuẩn Quốc gia Hoa Kỳ xem xét lại Lần đổi mới gàn đây nhất của DES là vào tháng 1.1994

DES mã hoá một xâu 64 bits x của bản rõ bằng một khoá cũng có độ dài 64 bits (54 bits làm khoá và 8 bits kiểm sai) Bản mã nhận đợc là một xâu 64 bit tơng ứng Trớc hết ta mô tả ở mức cao của hệ thống.

Thuật toán tiến hành theo 3 giai đoạn:

Với bản rõ cho trớc x, một xâu bít x0 sẽ đợc xây dựng bằng cách hoán vị các bít của x theo phép hoán vị cố định ban đầu IP Ta viết:x0= IP(X) = L0R0, trong đó L0 gồm 32 bít đầu và R0 là 32 bít cuối.

Sau đó tính toán 16 lần lặp theo một hàm f xác định Ta sẽ tính LiRi, 1 Ê i Ê16 theo quy tắc sau:

Ri = Li-1 Å f(Ri-1, Ki) trong đó Å là ký hiệu của phép hoặc_loại trừ của hai xâu bít (cộng theo modulo 2) f là một hàm mà ta sẽ mô tả ở sau, còn K1,K2, ,K16 là các xâu bít độ dài 48 đợc tính nh hàm của khoá K (mỗi Ki là một phép chọn hoán vị bít trong K) K1, , K16 sẽ tạo thành bảng khoá Một vòng của phép mã hoá đợc mô tả nh trên hình 3-2 Cuối cùng hoán vị ngợc IP -1 cho xâu bít R16L16, ta thu đợc bản mã y Tức là: y=IP -1 (R16L16) Hãy chú ý thứ tự đã đảo của L16 và R16.

Hình 3-2: Một vòng của DES

Chi tiết hơn nữa hàm f có hai biến vào: biến thứ nhất A là xâu 32bits, biến thứ hai J là một xâu 48 bits Đầu ra của f là một xâu 32 bits Các bớc sau đợc thực hiện:

- Biến thứ nhất A đuợc mở rộng thành một xâu bít độ dài 48 theo một hàm mở rộng cố định E E(A) gồm 32 bít của A (đợc hoán vị theo cách cố định) với 16 bits xuất hiện hai lần.

- Tính E(A) Å J và viết kết quả thành một chuỗi 8 xâu 6 bít

- Dùng 8 bảng S1, S2, ,S8 ( đợc gọi là các hộp S ) Với mỗi Si là một bảng 4 ´16 cố định có các hàng là các số nguyên từ 0 đến 15 Với xâu bít có độ dài 6 (kí hiệu Bi = b1b2b3b4b5b6), ta tính Sj(Bj) nh sau: Hai bit b1b6 xác định biểu diễn nhị phân của hàng r của Sj ( 0 Ê r Ê 3) và bốn bit (b2b3b4b5) xác định biểu diễn nhị phân của cột ccủa Sj ( 0 Ê c Ê 15 ) Khi đó Sj(Bj) sẽ xác định phần tử Sj(r,c); phần tử này viết dới dạng nhị phân là một xâu bits có độ dài 4

Bởi vậy, mỗi Sj có thể đợc coi là một hàm mã mà đầu vào là một xâu bít có độ dài 2 và một xâu bits có độ dài 4, còn đầu ra là một xâu bits có độ dài 4

Bằng cách tơng tự tính các Cj = Sj(Bj), 1 Ê j Ê 8.

Xâu bít C = C1C2 C8 có độ dài 32 đợc hoán vị theo phép hoán vị P Xâu kết quả là P(C) đợc xác định là f(A,J) Nh vậy chủ yếu f gồm một phép thế (sử dụng hộp S ), tiếp sau đó là phép hoán vị P

Ta sẽ mô tả các hàm cụ thể đợc dùng trong DES Phép hoán vị ban đầu IP nh sau:

Bảng này có nghĩa là bít thứ 58 của x là bít đầu tiên của IP(x); bít thứ 50 của x là bít thứ hai của IP(x), v.v

Phép hoán vi ngợc IP -1 là:

Hàm mở rộng E đợc xác định theo bảng sau:

Và phép hoán vị P có dạng:

Cuối cùng ta cần mô tả việc tính toán bảng khoá từ khoá K Trên thực tế, K là một xâu bits độ dài 64, trong đó 56 bits là khoá và 8 bít để kiểm tra tính chẵn lẻ nhằm phát hiện sai Các bít ở các vị trí 8,16, , 64 đợc xác định sao cho mỗi byte chứa một số lẻ các số "1".Các bít kiểm sai bị bỏ qua trong quá trình tính toán bảng khoá.

Ta sẽ đa ra bảng khoá kết quả Nh đã nói ở trên, mỗi vòng sử dụng một khoá 48 bít gồm 48 bít nằm trong K Các phần tử trong các bảng dới đây biểu thị các bít trong K trong 16 vòng khoá khác nhau.

Hình 3-4: 16 vòng khoá của DES

Phép giải mã đợc thực hiện nhờ dùng cùng thuật toán nh phép mã nhng đầu vào là y nhng dùng bảng khoá theo thứ tự ngợc lại K16, K1 Đầu ra của thuật toán sẽ là bản rõ x.

3.2.2 độ an toàn của DES

Khi DES đợc đề xuất nh một chuẩn mật mã, đã có rất nhiều ý kiến phê phán. Một lý do phản đối DES có liên quan đến các hộp S Mọi tính toán liên quan đến DES ngoại trừ các hộp S đều tuyến tính Các hộp S - chứa đựng thành phần phi tuyến của hệ mật là yếu tố quan trong nhất đối với độ mật của hệ thống (Các hệ mật tuyến tính - chẳng hạn nh mật mã Hill - có thể dễ dàng bị mã thám khi bị tấn công bằng bản rõ đã biết) Tuy nhiên tiêu chuẩn xây dựng các hộp S không đợc biết đầy đủ Một số ngời đã gợi ý là các hộp S phải chứa các "cửa sập" đợc dấu kín, cho phép Cục An ninh Quốc gia Mỹ (NSA) giải mã đợc các thông báo nhng vẫn giữ đợc mức độ an toàn của DES Dĩ nhiên ta không thể bác bỏ đợc khẳng định này, tuy nhiên không có một chứng cớ nào đợc đa ra để chứng tỏ rằng trong thực tế có các “cửa sËp” nh vËy.

Sự phản đối xác đáng nhất về DES chính là kích thớc của không gian khoá: 2 56 là quá nhỏ để đảm bảo an toàn thực sự Nhiều thiết bị chuyên dụng đã đợc đề xuất nhằm phục vụ cho việc tấn công với bản rõ đã biết Phép tấn công này chủ yếu thực hiện tìm khoá theo phơng pháp vét cạn Tức với bản rõ 64 bits x và bản mã y tơng ứng, mỗi khoá đều có thể đợc kiểm tra cho tới khi tìm đợc một khoá K thảo mãn eK(x) = y Cần chú ý là có thể có nhiều hơn một khoá K nh vậy.

Ngay từ năm 1977, Diffie và Hellman đã gợi ý rằng có thể xây dựng một chíp

Hệ mật khóa công khai và các thuật toán băm

có thể tìm toàn bộ không gian khoá trong khoảng 1 ngày Họ ớc tính chi phí để tạo một máy nh vậy khoảng 2.10 7 $.

Trong cuộc hội thảo tại hội nghị CRYPTO'93, Michael Wiener đã đ a ra một thiết kế rất cụ thể về máy tìm khoá Máy này xây dựng trên một chíp tìm khoá, có khả năng thực hiện đồng thời 16 phép mã và tốc độ tới 5´10 7 khoá/giây Với công nghệ hiện nay, chi phí chế tạo khoảng 10,5$/chíp Giá của một khung máy chứa

5760 chíp vào khoảng 100.000$ và nh vậy nó có khả năng tìm ra một khoá của

DES trong khoảng 1,5 ngày Một thiết bị dùng 10 khung máy nh vậy có giá chừng

10 6 $ sẽ giảm thời gian tìm kiếm khoá trung bình xuống còn 3,5 giờ

3.3 hệ mật khoá công khai và các thuật toán băm 3.3.1 Giới thiệu chung về hệ mật khoá công khai

Trong mô hình mật mã cổ điển Alice (ngời gửi) và Bob (ngời nhận) chọn một cách bí mật khoá K Sau đó dùng K để tạo luật mã hoá e k và luật giải mã d k Trong hệ mật này d k hoặc giống nh e k hoặc dễ dàng nhận đợc từ e k (ví dụ nh trong hệ DES quá trình giải mã hoàn toàn tơng tự nh quá trình mã nhng thủ tục khoá ngợc lại). Các hệ mật thuộc loại này đợc gọi là hệ mật khoá bí mật, nếu để lộ e k thì làm cho hệ thống hoàn toàn mất an toàn.

Nhợc điểm của hệ mật này là nó yêu cầu phải có thông tin trớc về khoá K giữa Alice và Bob qua một kênh an toàn trớc khi gửi một bản mã bất kỳ Trên thực tế điều này rất khó đảm bảo Chẳng hạn khi Alice và Bob ở cách xa nhau và họ chỉ có thể liên lạc với nhau bằng th điện tử (Email) Trong tình huống đó Alice và Bob không thể tạo một kênh bảo mật với giá phải chăng. ý tởng xây dựng một hệ mật khoá công khai (hay khoá dùng chung) là tìm một hệ mật không có khả năng tính toán về thời gian thực để xác định d k khi biết e k Nếu thực hiện đợc nh vậy thì quy tắc mã e k có thể đợc công khai bằng cách công bố nó trong một danh bạ (bởi vậy nên có thuật ngữ hệ mật khoá công khai) Ưu điểm của hệ mật khoá công khai là ở chỗ Alice (hoặc bất kì một ai) có thể gửi một bản tin đã mã cho Bob (mà không cần thông tin trớc về khoá mật) bằng cách dùng luật mã côngkhai e k Ngời nhận sẽ là ngời duy nhất có thể giải đợc bản mã này bằng cách sử dụng luật giải mã bí mật d k của mình. ý tởng về một hệ mật khoá công khai đã đợc Diffie và Hellman đa ra vào năm

1976 Còn việc hiện thực hoá nó thì do Rivest, Shamir và Adleman đa ra đầu tiên vào năm 1977, họ đã tạo nên hệ mật nổi tiếng RSA

Sau đây là một số hệ mật khoá công khai quan trọng :

+ Hệ mật RSA Độ bảo mật của hệ RSA dựa trên độ khó của việc phân tích ra thừa số nguyên tố các số nguyên lớn

+ Hệ mật xếp ba lô Merkle - Hellman

Hệ này và các hệ liên quan dựa trên tính khó giải của bài toán tổng các tập con (bài toán này là bài toán NP đầy đủ – là một lớp khá lớn các bài toán không có thuật giải trong thời gian đa thức) Tuy nhiên tất cả các hệ mật xếp ba lô khác nhau đều đã bị chứng tỏ là không mật (ngoại trừ hệ mật Chor – Rivest sẽ đợc nêu dới ®©y)

Hệ này dựa trên lý thuyết mã đại số và vẫn còn đợc coi là an toàn Hệ mật McEliece dựa trên bài toán giải mã cho các mã tuyến tính (cũng là một bài toán NP đầy đủ).

Hệ mật Elgamal dựa trên tính khó giải của bài toán logarithm rời rạc trên các trờng hữu hạn

Hệ mật Chor - Rivest cũng đuợc xem nh một loại hệ mật xếp ba lô Tuy nhiên nó vẫn đợc coi là an toàn.

+ Hệ mật trên các đờng cong Elliptic

Các hệ mật này là biến tớng của các hệ mật khác (chẳng hạn nh hệ mật

Elgamal), chúng làm việc trên các đờng cong Elliptic chứ không phải là trên các tr- ờng hữu hạn.Một chú ý quan trọng là một hệ mật khoá công khai không bao giờ có thể đảm bảo đợc độ mật tuyệt đối (an toàn vô điều kiện) Sở dĩ nh vậy vì đối phơng khi nghiên cứu một bản mã y có thể thử lần lợt các bản rõ bằng luật mã công khai e k cho tới khi anh ta tìm đợc bản rõ duy nhất x đảm bảo y = e k (x) Bản rõ này chính là kết quả giải mã của y Bởi vậy ta chỉ nghiên cứu độ mật về mặt tính toán của các hệ mật này

Một khái niệm có ích khi nghiên cứu hệ mật khoá công khai là khái niệm hàm cửa sập một chiều Các hàm một chiều đóng vai trò quan trọng trong mật mã học Chúng rất quan trọng trong các hệ mật khoá công khai và trong nhiều lĩnh vực khác Đáng tiếc là mặc dù có rất nhiều hàm đợc coi là hàm một chiều nhng cho tới nay vẫn không tồn tại một hàm nào có thể chứng minh đợc là hàm một chiều.

Trong khuôn khổ của khoá luận chúng ta sẽ nghiên cứu hệ mật RSA, một hệ mật có thể vừa dùng làm hệ mật khoá công khai vừa có thể áp dụng trong việc xây dựng sơ đồ chữ kí số.

Hệ mật này sử dụng các tính toán trong Zn, trong đó n là tích của 2 số nguyên tố phân biệt p và q Ta xét: f(n) = (p-1)(q-1).

Ta hãy kiểm tra xem các phép mã và giải mã có phải là các phép toán nghịch đảo của nhau hay không Vì: ab º 1 (mod f(n)) nên ta có ab = t f(n) + 1 với một số nguyên t ³ 1 nào đó Giả sử x ẻ Zn *; khi đó ta có:

(x b ) a º x t f (n)+1 (mod n) º (x f (n) ) t x (mod n) º 1 t x (mod n) º x (mod n) Để hiểu rõ hơn vấn đề này ta sẽ xem xét một ví dụ nhỏ (tất nhiên là không mật!!! ) về hệ mật RSA Ví dụ:

Giả sử Bob chọn p = 101 và q = 113 là hai số nguyên tố Khi đó n = 11413 và f(n) = 100´112 = 11200 Vì 11200 = 2 6 5 2 7, nên có thể dùng một số nguyên b nh một số mũ mã hoá khi và chỉ khi b không chia hết cho 2, 5 hoặc 7 (Vì thế trong thực tế Bob sẽ không phân tích f(n), anh ta sẽ kiểm tra điều kiện (Uớc số chung lớn nhất) (f(n),b) = 1 (bằng thuật toán Euclide) Giả sử Bob chọn b = 3533, khi đó theo thuật toán Euclide mở rộng Bob sẽ tính đợc a: a= b -1 = 6597 (mod 11200) (b -1 là số sao cho tích của nó với b là một số đồng d với 1 theo module 11200) Bởi vậy số mũ mật để giải mã của Bob là ae97.

Bob sẽ công bố n = 11413 và b = 3533 trong một danh bạ Bây giờ, giả sử Alice muốn gửi bản rõ 9726 tới Bob Alice sử dụng b và n mã hoá công khai:

9726 3533 mod 11413 = 5761 rồi gửi bản mã 5761 trên kênh Khi đó Bob nhận đợc bản mã 5761, anh ta sử dụng số mũ a mật chỉ Bob biết (do biết f(n)=(p-1)(q-1)):

Cho n = p.q trong đó p và q là các số nguyên tố

K = {(n,p,q,a,b): n = p.q, p,q là các số nguyên tố, ab º 1(mod f(n))} Víi K = (n,p,q,a,b) : e K (x) = x b mod n và d K (y) = y a mod n

(x,y) ẻ Z n Các giá trị n và b đợc công khai , các giá trị p, q, a đợc giữ bí mËt.

5761 6597 mod 11413 = 9726 Độ mật của hệ RSA đợc dựa trên giả thiết là hàm mã e k (x)= x b mod n là hàm một chiều Bởi vậy thám mã sẽ không có khả năng về mặt tính toán để giải mã một bản mã Cửa sập cho phép Bob giải mã đợc chính là thông tin về phép phân tích thừa số n (n = pq) Vì Bob biết phân tích này, anh ta có thể tính f(n) = (p-1)(q-1) và dễ dàng tính số mũ giải mã a.

Có nhiều khía cạnh cần thảo luận về hệ mật RSA bao gồm các chi tiết về việc thiết lập hệ mật, tính hiệu quả của phép mã và giải mã và độ mật của hệ.

Thiết lập hệ mật RSA

Cách tấn công dễ thấy nhất hệ mật này là thám mã cố gắng phân tích n ra các thừa số nguyên tố Nếu thực hiện việc này thì có thể tính đợc f(n) = (p-1)(q-1) rồi tÝnh sè mò a tõ b

Vì thế hệ mật RSA mật thì nhất thiết n = pq phải là một số đủ lớn để việc phân tích nó không có khả năng về mặt tính toán Các thuật toán phân tích hiện thời có khả năng phân tích các số có 130 chữ số thập phân Vì vậy để đảm bảo an toàn nên chọn các số p và q chừng 100 chữ số, khi đó n sẽ có tới 200 chữ số

chơng trình ứng dụng

3.4.2 Ngôn ngữ sử dụng: Visual C++ 6.0

3.4.3 Thuật toán sử dụng: Các thuật toán băm MD5, SHA, RIPEMD.

So sánh độ an toàn của các thuật toán

Chơng trình cho phép chúng ta chọn File cần mã hoá và chọn một trong các phơng thức mã hoá MD5, SHA, RIPEMD Sau khi thực hiện mã hoá sẽ đa ra xâu kết quả ở dạng cơ số 16 hay ở dạng chuỗi sẽ đợc lu vào tệp theo cách ghi của Visual C+ + 6.0 Chơng trình cũng cho phép kiểm tra tính nguyên bản của một file dữ liệu bằng các nút “Save as”, “Load” và cuối cùng là “Check”.

Chơng trình có ba lớp chính là CMD5, CRIPEMD, CSHA tơng ứng nằm trong ba file Header là MD5.h, RIPEMD.h và SHA.h Các lớp này đóng vai trò định nghĩa các hàm sẽ sử dụng trong từng thuật toán.Ví dụ nh với lớp CMD5 có chứa các hàm F1, F2, F3, F4 nh sau: inline unsigned int CMD5::F1(unsigned int x, unsigned int y, unsigned int z){ return (z ^ (x & (y ^ z))); //OR (x & y | ~x & z)

7 6 inline unsigned int CMD5::F2(unsigned int x, unsigned int y, unsigned int z) { return F1(z, x, y);

} inline unsigned int CMD5::F3(unsigned int x, unsigned int y, unsigned int z) { return x ^ y ^ z;

} inline unsigned int CMD5::F4(unsigned int x, unsigned int y, unsigned int z) { return (y ^ (x | ~z));

}3 dòng mã đầu tiên thể hiện F1( ) là hàm thành phần trên dòng của CMD5

Xây dựng 3 File chính của chơng trình là MD5.cpp, RIPEMD.cpp và SHA.cpp.

3 File này bao gồm (include) các File Header MD5.h, RIPEMD.h, SHA.h và các lệnh thực hiện các vòng lặp của từng phơng thức mã hoá Ví dụ với MD5:

//Hàm khởi tạo lại nhằm chuẩn bị cho việc mã hoá văn bản tiếp theo void CMD5::Reset()

//Khởi tạo lại các biến đệm m_auiBuf[0] = 0x67452301; m_auiBuf[1] = 0xefcdab89; m_auiBuf[2] = 0x98badcfe; m_auiBuf[3] = 0x10325476; m_auiBits[0] = 0; m_auiBits[1] = 0;

//Tắt sự kiện AddData m_bAddData = false;

//Phần thân của thuật toán

//Xử lý từng khối văn bản 512 bits.

//Thực hiện lặp 4 vòng, mỗi vòng 16 bớc void CMD5::Transform()

//Gán kiểu con trỏ cho biến mảng puiIn gồm 16 phần tử tơng ứng với 16 khối 32 bits đầu vào. unsigned int* puiIn = (unsigned int*)m_aucIn;

//Gán các giá trị khởi tạo cho các biến a, b, c, d register unsigned int a, b, c, d; a = m_auiBuf[0]; b = m_auiBuf[1]; c = m_auiBuf[2]; d = m_auiBuf[3];

MD5STEP(F1, a, b, c, d, puiIn[0] + 0xd76aa478, 7);

MD5STEP(F1, b, c, d, a, puiIn[3] + 0xc1bdceee, 22);

MD5STEP(F1, a, b, c, d, puiIn[4] + 0xf57c0faf, 7);

MD5STEP(F1, c, d, a, b, puiIn[10] + 0xffff5bb1, 17);

MD5STEP(F1, b, c, d, a, puiIn[11] + 0x895cd7be, 22);

MD5STEP(F2, b, c, d, a, puiIn[0] + 0xe9b6c7aa, 20);

MD5STEP(F2, b, c, d, a, puiIn[4] + 0xe7d3fbc8, 20);

MD5STEP(F3, a, b, c, d, puiIn[1] + 0xa4beea44, 4);

MD5STEP(F3, c, d, a, b, puiIn[7] + 0xf6bb4b60, 16);

MD5STEP(F3, d, a, b, c, puiIn[0] + 0xeaa127fa, 11);

MD5STEP(F3, c, d, a, b, puiIn[3] + 0xd4ef3085, 16);

MD5STEP(F3, d, a, b, c, puiIn[12] + 0xe6db99e5, 11);

MD5STEP(F3, c, d, a, b, puiIn[15] + 0x1fa27cf8, 16);

MD5STEP(F3, b, c, d, a, puiIn[2] + 0xc4ac5665, 23);

MD5STEP(F4, d, a, b, c, puiIn[15] + 0xfe2ce6e0, 10);

MD5STEP(F4, d, a, b, c, puiIn[11] + 0xbd3af235, 10);

MD5STEP(F4, c, d, a, b, puiIn[2] + 0x2ad7d2bb, 15);

//Kết thúc một vòng xử lý 1 khối 512 bits, gán kết quả vào các biến đệm m_auiBuf[0] += a; m_auiBuf[1] += b; m_auiBuf[2] += c; m_auiBuf[3] += d;

//Một bớc của MD5: inline void CMD5::MD5STEP(unsigned int (*f)(unsigned int x, unsigned int y, unsigned int z), unsigned int& w, unsigned int x, unsigned int y, unsigned int z, unsigned int data,unsigned int s)

Chơng trình còn bao gồm rất nhiều file hỗ trợ và còn nhiều sự kiện mà trong khuôn khổ khoá luận em không có điều kiện để trình bày hết

Notes: Chơng trình tạo ra file *.exe trong môi trờng MFC (không phải là Win32 Application) nên chỉ chạy đợc trên máy có cài đặt Visual C 6.0 ++.

Kết quả chính của khoá luận văn là đã có đợc những sự hiểu biết chung về lý thuyết bảo mật hệ thống, tìm hiểu các kỹ thuật tấn công mạng phổ biến và nghiên cứu các phơng pháp mã hóa dữ liệu để ngăn chặn các cuộc tấn công, xâm nhập. Khoá luận cũng đã đi sâu phân tích thiết kế và cài đặt các thuật toán băm – một ứng dụng bảo mật chứng thực tính nguyên bản của một tài liệu.

Tuy nhiên do khuôn khổ của khoá luận cũng nh sự giới hạn về thời gian thực hiện nên khoá luận không tránh khỏi những thiết sót và hạn chế Việc phát triển và mở rộng đề tài là cần thiết, em xin đơn cử một vài ý tởng liên quan đến lĩnh vực bảo mật mạng và các kỹ thuật khác:

- Nghiên cứu sâu thêm về bảo mật cơ sở dữ liệu

- Nghiên cứu thêm các kỹ thuật tấn công mới nhằm tìm ra cách thức bảo vệ an toàn mạng

Cuối cùng em xin đợc gửi lời cảm ơn chân thành đến các thầy cô đã hớng dẫn em tận tình trong suốt quá trình học tập và quá trình thực hiện đề tài này.

Ngày đăng: 25/07/2023, 16:58

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w