Kịch bản thử nghiệm

Một phần của tài liệu Nghiên cứu vấn đề chất lượng dịch vụ và an toàn bảo mật trong mạng WIMAX luận văn ths công nghệ thông tin 60 48 15 pd (Trang 61)

Ở đây kịch bản thử nghiệm gồm có 3 tiến trình đó là tiến trình trên BS, AS và SS, do không đủ thiết bị nên tôi thử nghiệm cả 3 tiến trình này trên cùng một máy và kịch bản thử nghiệm như sau:

BS và AS biết về nhau từ khi chúng bắt đầu thực hiện tiến trình. Một AS chỉ cho phép có một BS hợp pháp và không có yếu tố nào khác đáng lo ngại, SS nhận biết được BS và AS có thể xác minh các BS từ AS. Hình 4.1 cho ta thấy sơ đồ tổng thể các thông báo của một truyền xác thực thành công giữa một BS và SS mà cả hai đều được sự giúp đỡ từ bên đáng tin cậy thứ ba AS (Authentication Server). Tất cả các thông điệp được mô tả dưới đây trong sơ đồ trao đối thông điệp.

Hình 4.1: Quá trình truyền thông tổng thể Thông điệp 1: SS giao tiếp với BS.

Thông điệp 2: SS bắt đầu truyền thông bằng cách gửi chứng chỉ của riêng của nó và các thông tin khác như tên mật, khả năng hồ trợ, nhãn thời gian để tránh những kẻ trộm làm tràn các BS.

Thông điệp 3: BS gửi ID riêng của mình và các văn bản khác bằng cách mã hóa khóa công khai của SS.

Thông điệp 4: BS cũng sẽ gửi các thông tin bí mật của SS tới AS. Tuy nhiên, các BS và AS đều được thành lập từ nhà sản xuất nên là thiết bị tin tưởng lẫn nhau.

Thông điệp 5: SS gửi các thông tin bí mật mà nó nhận được từ BS tới AS sử dụng khóa riêng của nó.

Thông điệp 6: AS biết khóa công khai của SS từ BS và gửi lại thông báo xác nhận sau khi quan sát các thông điệp.

Thông điệp 7: Phiên thông tin liên lạc an toàn có thể bắt đầu giữa SS và BS. 4.3. Mô phỏng kết quả

Để mô phỏng giải pháp sử dụng một máy chủ xác thực (Authentication Server _ AS) xác thực BS hợp lệ, tôi xây dựng mô hình gồm một mối quan hệ TCP client – server: SS hoạt động như client, các BS và AS tương ứng làm việc như máy chủ server. Thuật toán này có điều kiện tiên quyết là BS và AS phải được tin cậy với nhau từ trước đó và việc mã hóa phải được sử dụng để mã hóa các thông điệp. Chi tiết thuật toán được hiển thị trong các hình dưới đây.

+ BS đang chờ đợi để nhận được yêu cầu của SS nào đó. BS đang chạy ở cổng 2008 và IP cục bộ là 192.168.1.2

+ AS đang chờ để một SS nào đó gửi thông tin xác thực BS tại cổng 2009 và địa chỉ IP của AS là 192.168.1.3

+ SS đã kết nối đến BS với cổng 2008 và Local end point là 192.168.1.2. SS đang gửi ID của mình và tất cả thông tin cần thiết đến BS.

+ BS nhận thành công các thông tin SS. BS mã hóa các thông tin của nó và gửi đến SS.

+ SS gửi thông tin đó đến AS để xác minh BS.

+ AS đang chạy tại cổng 2009 với Local end point là 192.168.1.3. Nó nhận được thông tin của BS mà SS gửi tới, xác thực và trả lời SS.

+ SS nhận được trả lời từ AS. Nếu thông tin của BS là đúng thì phiên truyền thông được bắt đầu.

` + Nếu thông tin của BS không đúng thì ngắt kết nối tại đây.

KẾT LUẬN

Luận văn này tập trung vào nghiên cứu về tổng quan mạng không dây Wimax, các chuẩn IEE 802.16 sử dụng trong Wimax. Qui trình bảo mật trong mạng Wimax. Các cơ chế tấn công khác nhau được phân tích đối với kiến trúc bảo mật của mạng Wimax. Luận văn chỉ ra các nhược điểm về an ninh của mạng Wimax, những kiểu tấn công trong Wimax và cách thức phòng chống các kiểu tấn công đó. Việc xác thực lẫn nhau giữa trạm BS và SS được demo để tăng cường bảo mật cho thuê bao để tránh trạm cơ sở giả mạo. Các thuật toán trong luận văn cho thấy cách thức để thiết lập quy trình xác thực lẫn nhau.

Hướng nghiên cứu và phát triển của luận văn

Nghiên cứu và xây dựng chương trình xác thực, mã hóa hoàn thiện để đảm bảo an ninh, bảo mật trong mạng Wimax.

TÀI LIỆU THAM KHẢO

Tiếng Việt

1. Đỗ Ngọc Anh, biên dịch “Wimax di động: Tổng quan kỹ thuật- đánh giá hoạt động” http://vi.scribd.com/doc/83302487/WiMAX-Di-Dong-Phan-1-

031106#scribd

2. Nguyễn Quốc Khương, Nguyễn Văn Đức, Nguyễn Trung Kiên, Nguyễn Thi Hà, “WiMax – Công nghệ truy nhập mạng không dây băng rộng”

3. Nguyễn Việt Hùng, “Công nghệ truy cập mạng NGN” – Tổng công ty Bưu chính viễn thông Việt Nam – Học viện công nghệ bưu chính viễn thông – Trung tâm đào tạo bưu chính viễn thông I.

4. “WiMax – Công nghệ truy nhập mạng không dây băng rộng”, ThS. Nguyễn Quốc Khương, TS. Nguyễn Văn Đức, ThS. Nguyễn Trung Kiên, KS. Nguyễn Thu Hà

5. “Wimax di động: Tổng quan kỹ thuật đánh giá hoạt động”, Đỗ Ngọc Anh 6. “Tổng quan về mạng truy nhập băng thông rộng-WiMax” (adsbygoogle = window.adsbygoogle || []).push({});

http://timtailieu.vn/tai-lieu/tong-quan-ve-mang-truy-nhap-bang-rong-wimax- 37488/

Tiếng Anh

5. IEEE Standards 802.16a – 2003 6. IEEE Standards 802.16 REVd – 2004 7. IEEE 802.16 WiMax

8. “Wimax/802.16 Threat Analysis” Michel Barbeau, School of Computer Science, Carleton University, Canada, October

9. “Security ISSues of IEEE 802.16 (WiMAX)”,

JamshedHasanSchoolofComputerandInformationScience, EdithCowanUniversity, Australia

Thai Computer Emergency Response Team (ThaiCERT) National Electronics and Computer Technology Center Thailand

11. “IEEE 802.16 WiMaxSecurity” Dr. Kitti Wongthavarawat

WireleSS Security R&D, ThaiCERT, NECTEC, Presents at NAC 2005 March 28, 2005

12. “ADVANCED ENCRYPTION STANDARD (AES)” Federal Information ProceSSing Standards Publication 197, November 26, 2001

13. “ADVANCEDENCRYPTIONSTANDARD”

InSight:RIVIERACADEMICJOURNAL,VOLUME6,NUMBER2,FALL2010 14. WiMAX: Technology for Broadband WireleSS AcceSS Loutfi Nuaymi © 2007 John Wiley & Sons, Ltd. ISBN: 0-470-02808-4

15. Overview of IEEE 802.16 Security David Johnston & JeSSe Walker

16. “WiMAX: Standards and Security”, 2008 by Taylor & Francis Group, LLC 17. “DENIAL OF SERVICE VULNERABILITIES IN IEEE 802.16

WIRELESS NETWORKS ” by Derrick D. Boom, September 2004

18. “Analysis and ASSeSSment the Security ISSues of IEEE 802.16/WiMax Network” by Mohammad HoSSain

19. WiMAX Handbook Building 802.16 WireleSS Networks Frank Ohrtman, McGraw-Hill

Phụ lục 1: Lập trình mã cho các BS (Base Station) using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; //Thư viện socket

using System.Net;

using System.Net.Sockets;

using System.Security.Cryptography; using System.Threading;

namespace BS_DTTU //Tên ứng dụng (Project) {

public partial class Form1 : Form {

public Form1() {

InitializeComponent(); }

//Khai báo biến toàn cục public static IPEndPoint iep; public static Socket server; public static Socket client; public static string s1;

private void btnStart_Click(object sender, EventArgs e)//Sự kiện Click { try { if (btnStart.Text == "Bắt đầu") { btnStart.Enabled = false; Application.DoEvents();

Thread A = new Thread(new ParameterizedThreadStart(Listen)); A.Start(Int32.Parse(txtPort.Text));

A.Join();

lstMsg.Items.Add("BS đang chạy tại cổng: " + txtPort.Text);//+ port.ToString()); (adsbygoogle = window.adsbygoogle || []).push({});

lstMsg.Items.Add("Địa chỉ IP cục bộ của BS: " + iep.ToString()); lstMsg.Items.Add("Đang chờ kết nối... ");

Thread B = new Thread(new ThreadStart(KetNoi)); B.Start();

B.Join();

lstMsg.Items.Add("Chấp nhận kết nối từ địa chỉ: " + client.RemoteEndPoint.ToString());

Thread MaHoaID = new Thread(new ParameterizedThreadStart(maHoaID));

MaHoaID.Start(txtBSID.Text); MaHoaID.Join();

lstMsg.Items.Add("Đang gửi BS Code cho SS..."); btnStart.Enabled = true;

btnStart.Text = "Kết thúc";

Thread rev = new Thread(new ThreadStart(recev)); rev.Start(); rev.Join(); lstMsg.Items.Add("SS gửi: " + s1); txtMsg.Enabled = true; btnRecei.Enabled = true; } else { client.Close(); server.Close(); Application.Exit(); } }

catch (Exception ex) {

MessageBox.Show("Lỗi: " + ex); }

}

private void Listen(object port)//Thread Listen {

iep = new IPEndPoint(IPAddress.Parse("127.0.0.1"), cong);

server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//Tạo socket Server

server.Bind(iep);//Gắn kết với địa chỉ IP

server.Listen(10);//Lắng nghe kết nối từ Client }

static void KetNoi()//Thread chấp nhận Kết nối {

client = server.Accept(); }

static void maHoaID(object bsID)//Thread Mã hóa thông tin của BS {

string id = (string)bsID;

Sec_AES mahoa = new Sec_AES();//Mã hóa string s = mahoa.Encrypt(id, "1", 128); //Chuyen chuoi s thanh byte

byte[] databs = new byte[1024];

databs = Encoding.ASCII.GetBytes(s); //Gui nhan du lieu theo giao thuc da thiet ke

client.Send(databs, databs.Length, SocketFlags.None); }

static void recev()//Nhận thông điệp từ SS {

try {

byte[] databs2 = new byte[1024]; int recvbs = client.Receive(databs2); if (recvbs == 0) { client.Close(); server.Close(); Application.Exit(); } else {

//Chuyen mang byte data thành chuoi va in ra man hinh s1 = Encoding.ASCII.GetString(databs2, 0, recvbs); //Neu nhan duoc chuoi quit thi thoat

if (s1.ToUpper().Equals("QUIT")) { (adsbygoogle = window.adsbygoogle || []).push({});

client.Close(); server.Close();

Application.Exit(); } } } catch {

//MessageBox.Show("Lỗi truyền dữ liệu từ SS"); client.Close();

server.Close(); Application.Exit(); }

}

private void btnRecei_Click(object sender, EventArgs e)//Sự kiện Click Trả lời SS

{

Thread tl = new Thread(new ParameterizedThreadStart(traloi)); tl.Start(txtMsg.Text);

tl.Join();

Thread rev = new Thread(new ThreadStart(recev)); rev.Start();

rev.Join();

lstMsg.Items.Add("SS gửi: " + s1); }

static void traloi(object msg)//Trả lời SS {

string input = (string)msg;

if (input.ToUpper().Equals("QUIT")) { client.Close(); server.Close(); Application.Exit(); }

//chuyen input thanh mang byte gui len cho SS else

{

byte[] databs2 = new byte[1024];

databs2 = Encoding.ASCII.GetBytes(input);

client.Send(databs2, databs2.Length, SocketFlags.None); }

}

private void Form1_Load(object sender, EventArgs e) {

} }

Phụ lục 2: Lập trình mã cho các SS (Subscriber Station)

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Net; using System.Net.Sockets; using System.Threading; namespace SS_DTTU {

public partial class Form1 : Form {

public Form1() {

InitializeComponent(); }

public static IPEndPoint iep; public static Socket client; public static string s; public static string ss; Sec_AES gma;

public static string giaima; (adsbygoogle = window.adsbygoogle || []).push({});

static void Connect(object port)//Kết nối với BS {

try {

int cong = (int)port;

iep = new IPEndPoint(IPAddress.Parse("127.0.0.1"), cong); client = new Socket(AddressFamily.InterNetwork,

SocketType.Stream, ProtocolType.Tcp); client.Connect(iep);

catch { MessageBox.Show("Không tìm thấy BS"); client.Close(); Application.Exit(); } }

static void sendIDBS()//Phương thức nhận BS {

try {

byte[] data = new byte[1024]; int recv = client.Receive(data);

s = Encoding.ASCII.GetString(data, 0, recv); } catch { client.Close(); Application.Exit(); } }

public static IPEndPoint iep2; public static Socket client2; public static string s2;

static void sendIDAS(object port)//Thread Kết nối với AS {

try {

int p = (int)port;

iep2 = new IPEndPoint(IPAddress.Parse("127.0.0.2"), p); client2 = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

client2.Connect(iep2);

byte[] dataas = new byte[1024];

dataas = Encoding.ASCII.GetBytes(giaima);

client2.Send(dataas, dataas.Length, SocketFlags.None); byte[] data2 = new byte[1024];

int recv2 = client2.Receive(data2);

s2 = Encoding.ASCII.GetString(data2, 0, recv2); } catch { client.Close(); client2.Close();

Application.Exit(); }

}

private void btnConnect_Click(object sender, EventArgs e)//Sự kiện click nút kết nối

{

btnConnect.Enabled = false;

Thread conn = new Thread(new ParameterizedThreadStart(Connect)); conn.Start(Int32.Parse(txtPortBS.Text));

conn.Join();

lstMessage.Items.Add("SS đang kết nối với BS...");

Thread sendID = new Thread(new ThreadStart(sendIDBS)); sendID.Start(); (adsbygoogle = window.adsbygoogle || []).push({});

sendID.Join();

lstMessage.Items.Add("BS Code là: " + s); gma = new Sec_AES();

if (s!=null) {

giaima = gma.Decrypt(s, "1", 128); }

lstMessage.Items.Add("Giải mã BS Code: " + giaima);

lstMessage.Items.Add("Gui BS Code = " + giaima + " sang AS để xác thực:");

Thread sendAS = new Thread(new ParameterizedThreadStart(sendIDAS)); sendAS.Start(Int32.Parse(txtAS.Text)); sendAS.Join(); lstMessage.Items.Add("Đang gửi...."); lstMessage.Items.Add("Kết quả xác thực là: " + s2); if (s2 == "true") {

MessageBox.Show("Kết quả xác thực BS Code là true \nGiao dịch an toàn \nNhập nội dung vào TextBox để gửi thông điệp cho BS");

txtMSG.Enabled = true; btnSend.Enabled = true; }

else {

MessageBox.Show("Giao dịch không an toàn - nhấn OK để thoát"); client.Close();

client2.Close(); Application.Exit();

} }

private void btnSend_Click(object sender, EventArgs e)//sự kiện click vào nút gửi

{

string input = txtMSG.Text;

if (input.ToUpper().Equals("QUIT")) {

client.Close(); Application.Exit(); }

//chuyen input thanh mang byte gui len cho server else

{

byte[] datass = new byte[1024];

datass = Encoding.ASCII.GetBytes(input);

client.Send(datass, datass.Length, SocketFlags.None); }

Thread nhan = new Thread(new ThreadStart(nhanDL)); nhan.Start(); nhan.Join(); lstMessage.Items.Add("BS gửi: " + ss); }

static void nhanDL() {

try {

byte[] databs = new byte[1024]; int recvbs = client.Receive(databs);

ss = Encoding.ASCII.GetString(databs, 0, recvbs); } catch { MessageBox.Show("Ngắt kết nối"); client.Close(); Application.Exit(); } }

} } (adsbygoogle = window.adsbygoogle || []).push({});

Phụ lục 3: Lập trình mã cho các AS (Authentication Station)

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Net; using System.Net.Sockets; using System.Threading; namespace AS_DTTU {

public partial class Form1 : Form {

public Form1() {

InitializeComponent(); }

public static IPEndPoint iep2; public static Socket server; public static Socket client2; static void ListenSS(object port) {

int p = (int)port;

iep2 = new IPEndPoint(IPAddress.Parse("127.0.0.2"), p);

server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

server.Bind(iep2); server.Listen(10); }

static void AcceptSS() {

}

private void btnStart_Click(object sender, EventArgs e) { try { if (btnStart.Text == "Bắt đầu") { btnStart.Enabled=false;

Thread Connect = new Thread(new ParameterizedThreadStart(ListenSS));

Connect.Start(Int32.Parse(txtPort.Text)); Connect.Join();

lstMessage.Items.Add("Authentication Server (AS) đang chạy tại cổng: " + txtPort.Text);

lstMessage.Items.Add("Địa chỉ cục bộ của AS: " + iep2.ToString());

lstMessage.Items.Add("AS đang chờ xác nhận thông tin của BS Code");

Thread AccepSS = new Thread(new ThreadStart(AcceptSS)); AccepSS.Start();

AccepSS.Join();

lstMessage.Items.Add("Kiểm tra BS Code tu SS gui");

byte[] dataas = new byte[1024];//Khai báo mảng byte nhận BS Code

int recv2 = client2.Receive(dataas);

//Chuyen mang byte data thành chuoi va in ra man hinh string s2 = Encoding.ASCII.GetString(dataas, 0, recv2); lstMessage.Items.Add("SS gửi BS Code lên AS là: " + s2); lstMessage.Items.Add("AS đang trả lời SS...");

btnStart.Text = "Kết thúc"; btnStart.Enabled = true;

byte[] dataas2 = new byte[1024];

if (s2.Equals("0011"))// || s2.Equals("0012"))//Kiểm tra BS Code {

s2 = "true";

dataas2 = Encoding.ASCII.GetBytes(s2);

client2.Send(dataas2, dataas2.Length, SocketFlags.None); } (adsbygoogle = window.adsbygoogle || []).push({});

else {

s2 = "false";

dataas2 = Encoding.ASCII.GetBytes(s2);

client2.Send(dataas2, dataas2.Length, SocketFlags.None); } } else { client2.Close(); server.Close(); Application.Exit(); } } catch { MessageBox.Show("Lỗi kết nối"); client2.Close(); server.Close(); Application.Exit(); } }

private void Form1_Load(object sender, EventArgs e) {

} } }

Một phần của tài liệu Nghiên cứu vấn đề chất lượng dịch vụ và an toàn bảo mật trong mạng WIMAX luận văn ths công nghệ thông tin 60 48 15 pd (Trang 61)