CÔNG CỤ NGHIÊN CỨU CHÍNH NS-2

Một phần của tài liệu 28023_171220200196914NOIDUNGLUANVAN (Trang 27)

6. Bố cục luận văn

1.3.CÔNG CỤ NGHIÊN CỨU CHÍNH NS-2

1.3.1. Giới thiệu về NS-2

NS (phiên bản) là phần mềm mô phỏng mạng điều khiển sự kiện riêng rẽ hƣớng đối tƣợng, đƣợc phát triển tại UC Berkely, viết bằng ngôn ngữ C++ và OTcl. NS rất hữu ích cho việc mô phỏng mạng diện rộng (WAN) và mạng local (LAN). Bốn lợi ích lớn nhất của NS-2 phải kể đến đầu tiên là:

- Khả năng kiểm tra tính ổn định của các giao thức mạng đang tồn tại - Khả năng đánh giá các giao thức mạng mới trƣớc khi đƣa vào sử dụng - Khả năng thực thi những mô hình mạng lớn mà gần nhƣ ta không thể thực thi đƣợc trong thực tế

- Khả năng mô phỏng nhiều loại mạng khác nhau

1.3.2. Kiến trúc của NS-2

 OTcl Script Kịch bản OTcl

 Simulation Program Chƣơng trình Mô phòng

 OTcl Bộ biên dịch Tcl mở rộng hƣớng đối tƣợng

 NS Simulation Library Thƣ viện Mô phỏng NS

 Event Scheduler Objects Các đối tƣợng Bộ lập lịch Sự kiện

 Network Component Objects Các đối tƣợng Thành phần Mạng

 Network Setup Helping Modules Các mô đun Trợ giúp Thiết lập Mạng

 Plumbling Modules Các mô đun Plumbling

 Simulation Results Các kết quả Mô phỏng

 Analysis Phân tích

 NAM Network Animator Minh họa Mạng NAM

Trong hình trên, NS là Bộ biên dịch Tcl mở rộng hƣớng đối tƣợng; bao gồm các đối tƣợng Bộ lập lịch Sự kiện, các đối tƣợng Thành phần Mạng và các mô đun Trợ giúp Thiết lập Mạng (hay các mô đun Plumbing).

Để sử dụng NS-2, user lập trình bằng ngôn ngữ kịch bản OTcl. User có thể thêm các mã nguồn Otcl vào NS-2 bằng cách viết các lớp đối tƣợng mới trong OTcl. Những lớp này khi đó sẽ đƣợc biên dịch cùng với mã nguồn gốc. Kịch bản OTcl có thể thực hiện những việc sau:

- Khởi tạo Bộ lập lịch Sự kiện

- Thiết lập Mô hình mạng dùng các đối tƣợng Thành phần Mạng

- Báo cho nguồn traffic khi nào bắt đầu truyền và ngƣng truyền packet trong Bộ lập lịch Sự kiện

Phụ thuộc vào mục đích của ngƣời dùng đối với kịch bản mô phỏng OTcl mà kết quả mô phỏng có thể đƣợc lƣu trữ nhƣ file trace. Định dạng file trace sẽ đƣợc tải vào trong các ứng dụng khác để thực hiện phân tích:

- File nam trace (file.nam) đƣợc dùng cho công cụ Minh họa mạng NAM

- File Trace (file.tr) đƣợc dùng cho công cụ Lần vết và Giám sát Mô phỏng XGRAPH hay TRACEGRAPH

Hình 1.9. Luồng các sự kiện cho file Tcl chạy trong NS

 NAM Visual Simulation Mô phỏng ảo NAM

 Tracing and Monitoring Simulation Mô phỏng Lần vết và Giám sát

1.4. KẾT LUẬN

Ở chƣơng 1 đã nêu tổng quan các đặc điểm về MANET, các vấn đề an ninh trong MANET, bao gồm: Các thách thức khi xây dựng một giải pháp an ninh; Các mối đe dọa an ninh, trong đó tập trung chủ yếu vào việc phân tích các hình thức tấn công trong tầng mạng, cụ thể là các cuộc tấn công trong giao thức định tuyến; Chỉ ra một số giải pháp tăng cƣờng an ninh trong giao thức định tuyến MANET. Dựa trên việc phân tích, đánh giá các ƣu nhƣợc điểm của các giải pháp có sẵn, tác giả lựa chọn xây dựng một giải pháp tăng cƣờng an ninh cho giao thức định tuyến AODV, một giao thức hoạt động rất hiệu quả trong MANET. Chi tiết về giải pháp đƣợc trình bày chi tiết trong chƣơng 2 của luận văn.

CHƢƠNG 2

GIẢI PHÁP KỸ THUẬT NGĂN CHẶN TẤN CÔNG MANET (adsbygoogle = window.adsbygoogle || []).push({});

Đã có rất nhiều nghiên cứu nhằm bổ sung các cơ chế an ninh cho giao thức AODV để chống lại các kiểu tấn công. Có những giải pháp mang tính tổng quát chống lại đƣợc nhiều kiểu tấn công nhƣ SAODV, ARAN…, cũng có những giải pháp cải tiến để chống lại từng kiểu tấn công dựa trên đặc điểm của chúng.

Các giải pháp tổng thể nhƣ SAODV, ARAN…, chống đƣợc nhiều kiểu tấn công. Tuy nhiên:

Đối với SAODV: Do mỗi nút khi tham gia vào mạng, tự nó tạo ra cặp khóa bí mật, công khai có liên hệ với địa chỉ IP nên có thể bị tấn công theo kiểu tấn công giả mạo – impersonation attacks (Nút độc hại có thể tạo cho nó nhiều cặp khóa công khai bí mật, tƣơng ứng với nhiều địa chỉ IP để tham gia vào mạng). Ngoài ra chi phí cho việc sử dụng chữ ký số lớn dẫn đến việc dễ bị tấn công theo kiểu phát tràn gói tin RREQ, tiêu hủy hiệu năng của mạng do SAODV không có cơ chế phát hiện, chống lại kiểu tấn công này.

Đỗi với ARAN: Yêu cầu có một trung tâm chứng thực T, mỗi nút khi tham gia vào mạng thì phải gửi yêu cầu để đƣợc cấp chứng chỉ, nhƣợc điểm là phải có thêm cơ sở hạ tầng cho việc triển khai trung tâm chứng thực riêng. Hơn nữa, trong quá trình định tuyến, mỗi nút đều thực hiện quá trình xác thực và ký dẫn tới chi phí cực lớn, gây trễ lớn. Trong ARAN cũng không có cơ chế theo dõi lƣợng gói tin RREQ gửi bởi một nút nên cũng có khả năng bị tấn công phát tràn RREQ.

Các giải pháp cải tiến giao thức dựa trên đặc điểm của từng loại tấn công, không sử dụng xác thực nên dễ bị tấn công theo kiểu giả mạo, hoặc bị kẻ tấn công nghiên cứu lại hoạt động của giao thức để vƣợt qua.

Việc nghiên cứu một giải pháp toàn diện đòi hỏi đáp ứng cả vấn đề an ninh lẫn phù hợp với điều kiện thực tế, đáp ứng hiệu năng trong MANET thực sự là một thách thức lớn hiện nay. Trong khuôn khổ luận văn, tôi có đƣa ra một số cải tiến nhỏ, tạm gọi là giao thức AODVNEW nhƣ sau:

Các cuộc tấn công worm có thể đánh cắp gói tin tại lớp ứng dụng đánh cắp gói tin thông qua việc sử dụng các bộ truyền dẫn công suất cao, và đánh cắp gói tin thông qua một hạ tầng có dây ngoại vi. Trong bài này tôi tiến hành nghiên cứu trƣờng hợp.

Tôi đã lợi dụng lý thuyết an ten có hƣớng nhằm ngăn cản các cuộc tấn công worm, trong khi đó đề xuất một giao thức hoàn toàn mới có tên là lập với các giao thức định tuyến đƣợc sử dụng. Giao thức Delphi tập trung vào độ trễ gây ra bởi các đƣờng định tuyến khác nhau đến đầu thu. Tôi sử dụng thông tin kết nối để kiểm tra các node tấn công trong mô hình mạng nhằm phát hiện ra một cuộc tấn công worm.

Tôi đề xuất một lý thuyết gọi là dây xích gói tin. Phƣơng pháp này giúp phát hiện và ngăn chặn các cuộc tấn công worm. Hơn nữa, họ phân loại các dây xích gói tin này theo tiêu chí địa lý và thời gian. Phƣơng pháp này tƣơng tự với cách tiếp cận của chúng tôi, ngoại trừ một khác biệt lớn, đó là tất cả các node cần phải đƣợc đồng bộ thời gian một cách chặt chẽ, thông qua việc sử dụng phần cứng thích hợp. Một khác biệt khác chính là việc chúng tôi dựa vào bộ phát để phát hiện tấn công, trong khi sử dụng bộ thu.

2.1. TỔNG QUAN CHUẨN MÃ DỮ LIỆU AES.

2.1.1. Giới thiệu về chuẩn mã dữ liệu tiên tiến AES.

Chuẩn mã hóa dữ liệu tiên tiến AES (Advanced Encryption Standard) là một hệ mã khóa bí mật có tên là Rijdael (do hai nhà mật mã học ngƣời Bỉ là Joan Daemen và Vincent Rijmen đƣa ra và trở thành chuẩn từ năm 2002) cho phép xử lý các khối dữ liệu input có kích thƣớc 128 bit sử dụng các khóa có độ

dài 128, 192 hoặc 256 bit. Hệ mã Rijdael đƣợc thiết kế để có thể làm việc với các khóa và các khối dữ liệu có độ dài lớn hơn tuy nhiên khi đƣợc chọn là một chuẩn do Ủy ban tiêu chuẩn của Hoa Kỳ đƣa ra năm 2001, nó đƣợc qui định chỉ làm việc với các khối dữ liệu 128 bit và các khóa có độ dài 128, 192 hoặc 256 bit (do đó còn đặt cho các tên AES-128, AES-192, AES-256 tƣơng ứng với độ dài khóa sử dụng).

Cơ sở toán học của AES Trong AES các phép toán cộng và nhân đƣợc thực hiện trên các byte trong trƣờng hữu hạn

Phép cộng Phép nhân

2.1.2. Quy trình mã hóa AES.

Quy trình mã hóa sử dụng bốn phép biến đổi chính:

1. AddRoundKey: Cộng mã khóa của chu kỳ vào trạng thái hiện hành. Độ dài của mã khóa của chu kỳ bằng với kích thƣớc của trạng thái.

2. SubBytes: Thay thế phi tuyến mỗi byte trong trạng thái hiện hành thông qua bảng thay thế (S-box).

3. MixColumns: Trộn thông tin của từng cột trong trạng thái hiện hành. Mỗi cột đƣợc xử lý độc lập.

4. ShiftRows: Dịch chuyển xoay vòng từng dòng của trạng thái hiện hành với di số khác nhau.

Quy trình mã hóa đƣợc tóm tắt lại nhƣ sau:

1. Thực hiện thao tác AddRoundKey đầu tiên trƣớc khi thực hiện các chu kỳ mã hóa.

2. Nr – 1 chu kỳ mã hóa bình thƣờng, mỗi chu kỳ bao gồm bốn bƣớc biến đổi liên tiếp nhau: SubBytes, ShiftRows, MixColumns và AddRoundKey.

3. Thực hiện chu kỳ mã hóa cuối cùng: Trong chu kỳ này thao tác MixColumns đƣợc bỏ qua.

Hình 2.1. Quy trình mã hóa và giải mã AES

2.1.3. Phép biến đổi SubBytes

Các byte đƣợc thế thông qua bảng tra S-box. Đây chính là quá trình phi tuyến của thuật toán. Hộp S-box này đƣợc tạo ra từ một phép biến đổi khả nghịch trong trƣờng hữu hạn GF (28) có tính chất phi tuyến. Để chống lại các tấn công dựa trên các đặc tính đại số, hộp S-box này đƣợc tạo nên bằng cách kết hợp phép nghịch đảo với một phép biến đổi affine khả nghịch. Hộp S-box này cũng đƣợc chọn để tránh các điểm bất động (fixed point).

Hình 2.2. Thao tác SubBytes tác động trên từng byte của trạng thái

2.1.4 Phép biến đổi ShiftRows (adsbygoogle = window.adsbygoogle || []).push({});

Các hàng đƣợc dịch vòng một số bƣớc nhất định. Đối với AES, hàng đầu đƣợc giữ nguyên. Mỗi byte của hàng thứ 2 đƣợc dịch vòng trái một vị trí. Tƣơng tự, các hàng thứ 3 và 4 đƣợc dịch vòng 2 và 3 vị trí. Do vậy, mỗi cột khối đầu ra của bƣớc này sẽ bao gồm các byte ở đủ 4 cột khối đầu vào. Đối với Rijndael với độ dài khối khác nhau thì số vị trí dịch chuyển cũng khác nhau.

2.1.5 Quy trình giải mã

Quy trình giải mã đƣợc thực hiện qua các giai đoạn sau:

1. Thực hiện thao tác AddRoundKey đầu tiên trƣớc khi thực hiện các chu kỳ giải mã

2. Nr − 1 chu kỳ giải mã bình thƣờng: Mỗi chu kỳ bao gồm bốn biến đổi liên tiếp nhau: InvShiftRows, InvSubBtes, AddRoundKey, InvMixColumns.

3. Thực hiện chu kỳ giải mã cuối cùng. Trong chu kỳ này, thao tác InvMixColumns đƣợc bỏ qua.

Đoạn mã cho thuật toán giải mã nhƣ sau:

--- InvCipher(byte in[4*Nb], byte out[4*Nb], word w[Nb*(Nr+1)])

begin

byte state[4,Nb] state = in

AddRoundKey(state, w[Nr*Nb, (Nr+1)*Nb-1]) for round = Nr-1 step -1 down to 1

InvShiftRows(state) InvSubBytes(state)

AddRoundKey(state, w[round*Nb, (round+1)*Nb-1]) InvMixColumns(state) end for InvShiftRows(state) InvSubBytes(state) AddRoundKey(state, w[0, Nb-1]) out = state end. ---

2.1.6. Ý nghĩa

Phạm vi chính thức của một chuẩn FIPS là tƣơng đối hạn chế: FIPS chỉ áp dụng cho hành chính liên bang. Hơn thế nữa, AES mới chỉ đƣợc sử dụng cho các tài liệu chứa thông tin nhạy cảm nhƣng không mật. AES từ khi đƣợc chấp nhận đã đƣợc sử dụng nhƣ một chuẩn mật mã ngầm định trên toàn thếgiới. Việc chấp nhận Rijndael nhƣ một chuẩn chính phủ đã đem đến cho nó một bố sự chứng thực về chất lƣợng

Các nhân tố chính làm cho sự chấp nhận nhanh chóng đối với Rijndael là sự kiện nó không có bản quyền, nó có thể đƣợc cài đặt một cách dễ dàng

2.1.7. Ứng dụng của AES

- Hiện nay, AES đƣợc sử dụng phổ biến trên toàn thế giới để bảo vệ dữ liệu ở các tổ chức ngân hàng, tài chính, chính phủ, thƣơng mại điện tử, chữ ký điện tử….

- Mã hóa AES đƣợc ứng dụng nhanh đối với cả phần cứng và phần mềm, và chỉ yêu cầu một không gian lƣu trữ nhỏ, lý tƣởng để sử dụng cho việc mã hóa những thiết bị cầm tay nhỏ nhƣ ổ USB flash, ổ đĩa CD.…

- Sử dụng nhƣ một hàm băm

- Xây dựng các hàm băm. Hàm băm Whilrpool là một ví dụ điển hình.

2.2. GIAO THỨC THỎA THUẬN KHÓA DIFFIE HELLMAN (DH)

Đây là một phƣơng pháp hoàn toàn mới về cách thức phân phối các khóa mật mã. Là hệ thống đầu tiên sử dụng "public-key" hoặc các khóa mật mã "không đối xứng", và nó đƣợc gọi là trao đổi khóa Diffie-Hellman (Diffie- Hellman key exchange). Bài viết còn kích thích sự phát triển gần nhất tức thời của một lớp các thuật toán mật mã hóa mới, các thuật toán chìa khóa bất đối xứng (asymmetric key algorithms).

Trƣớc đây hầu hết các thuật toán mật mã hóa hiện đại đều là những thuật toán khó đối xứng (symmetric key gorithms), trong đó cả ngƣời gửi và ngƣời

nhận phải dùng chung một khóa, tức khóa dùng trong thuật toán mật mã, và cả hai ngƣời đều phải giữ bí mật về khóa này. Tất cả các máy điện cơ dùng trong thế chiến II, kể cả mã Caesar và mã Atbash, và về bản chất mà nói, kể cả hầu hết các hệ thống mã đƣợc dùng trong suốt quá trình lịch sử nữa đều thuộc về loại này. Đƣơng nhiên, khóa của một mã chính là sách mã (codebook), và là cái cũng phải đƣợc phân phối và giữ gìn một cách bí mật tƣơng tự.

Do nhu cầu an ninh, khóa cho mỗi một hệ thống nhƣ vậy nhất thiết phải đựợc trao đổi giữa các bên giao thông liên lạc bằng một phƣơng thức an toàn nào đấy, trƣớc khi họ sử dụng hệ thống (thuật ngữ thƣờng đƣợc dùng là 'thông qua một kênh an toàn'), ví dụ nhƣ bằng việc sử dụng một ngƣời đƣa thƣ đáng tin cậy với một cặp tài liệu đƣợc khóa vào cổ tay bằng một cặp khóa tay, hoặc bằng cuộc gặp gỡ mặt đối mặt, hay bằng một con chim bồ câu đƣa thƣ trung thành.… Vấn đề này chƣa bao giờ đƣợc xem là dễ thực hiện, và nó nhanh chóng trở nên một việc gần nhƣ không thể quản lý đƣợc khi số lƣợng ngƣời tham gia tăng lên, hay khi ngƣời ta không còn các kênh an toàn để trao đổi khóa nữa, hoặc lúc họ phải liên tục thay đổi các chìa khóa-một thói quen nên thực hiện trong khi làm việc với mật mã. Cụ thể là mỗi một cặp truyền thông cần phải có một khóa riêng nếu, theo nhƣ thiết kế của hệ thống mật mã, không một ngƣời thứ ba nào, kể cả khi ngƣời ấy là một ngƣời dùng, đƣợc phép giải mã các thông điệp. Một hệ thống thuộc loại này đƣợc gọi là một hệ thống dùng chìa khóa mật, hoặc một hệ thống mật mã hóa dùng khóa đối xứng. Hệ thống trao đổi khóa Diffie-Hellman (cùng những phiên bản đƣợc nâng cấp kế tiếp hay các biến thể của nó) tạo điều kiện cho các hoạt động này trong các hệ thống trở nên dễ dàng hơn rất nhiều, đồng thời cũng an toàn hơn, hơn tất cả những gì có thể làm trƣớc đây.

Mặc dù, bản thân thuật toán là một giao thức chọn khóa nặc danh (không cần thông qua xác thực) nhƣng nó đã cung cấp ra một cơ sở cho các giao thức

Một phần của tài liệu 28023_171220200196914NOIDUNGLUANVAN (Trang 27)