Trong phiên truyền dẫn, một SS sẽ khởi đầu phiên. Nó gửi các định danh, các khả năng và các yêu cầu khác của mình đến BS. Sau khi kiểm tra các tài liệu đó, BS gửi trả lời cấp phép cho SS. Thông tin trả lời này phải được kiểm tra cho dù đó là từ các BS hợp pháp hoặc BS giả mạo. Nếu SS không có khả năng để kiểm tra, nó có thể nhận được sự giúp đỡ của một bên thứ ba đáng tin cậy. Bên thứ ba đáng tin cậy này chính là một Authentication Server (AS). AS và BS biết nhau khi chúng được sản xuất bởi nhà sản xuất. Do đó, AS biết được BS_code hợp pháp. Sau khi nhận được trả lời xác thực từ BS, SS sẽ gửi nó vào máy chủ xác thực (AS). BS cũng sẽ chuyển tiếp thông tin riêng của mình và các thông tin về SS cho AS. AS sẽ xem xét cả thông tin nhận được từ BS và từ SS và trả lại xác nhận đến SS. Trong thông báo này, nếu SS thấy BS là hợp pháp, nó sẽ tiếp tục phiên truyền thông của nó. Nếu không, nó sẽ kết thúc việc truyền thông ở đây. Các bước của thuật toán được hiển thị ở trong hình dưới đây. Bước 1: Bước 2: Bước 3: Bước 4: Bước 5:
Hình 4.1. Quá trình xác thực lẫn nhau để tránh BS giả mạo tấn công
Hình 4.1 cho thấy giao thức xác thực mới để tránh giả mạo BS. Ở đây BS gửi lại thông điệp trả lời xác thực cho SS hợp lệ, bao gồm BS_code của nó mà SS sẽ gửi cho Authentication Server (AS). Nếu một BS của kẻ tấn công nào đó cố gắng để kết nối đến mạng, nó sẽ bị phát hiện bởi Authentication Server. Cho dù BS muốn hay không muốn, nhưng SS hợp pháp sẽ kiểm tra BS_code của nó và các thông tin khác. Việc mã hóa được sử dụng trong tất cả các trường hợp sử dụng khóa riêng cũng như khóa công khai.
SS BS AS
SS BS AS
SS AS
SS AS
57
3.3. Chi tiết truyền thông với máy chủ xác thực
BS và AS nhận biết nhau từ khi chúng được sản xuất. Một AS chỉ cho phép một BS hợp pháp hoạt động và không có các phần tử đáng lo ngại khác. SS biết BS và AS, vì thế nó có thể xác minh BS từ AS đáng tin cậy. Hình 4.2 cho thấy sơ đồ thông điệp tổng thể của một phiên truyền thông xác thực thành công giữa một SS và BS, nơi mà cả hai có được sự giúp đỡ từ bên thứ ba đáng tin cậy là AS (Authentication Server). Tất cả các thông điệp được mô tả trong sơ đồ trao đổi thông điệp dưới đây.
Hình 4.2. Quy trình truyền thông tổng thể.
Message 1: SS bắt đầu phiên truyền thông xuất trình chứng nhận và các thông tin của nó có đánh dấu thời gian (time stamp) cho BS
Message 2: BS mã hóa các thông tin riêng của mình bằng khóa công khai của SS rồi gửi lại cho SS.
Message 3: BS cũng gửi các thông tin của SS cho AS. Tuy nhiên, các BS và AS đều được thiết lập bởi các nhà sản xuất và chúng biết nhau như những thiết bị tin cậy.
Message 4: SS gửi các thông tin mà nó nhận được từ BS được mã hóa với khóa riêng của nó cho AS.
Message 5: AS biết khóa công khai của SS từ BS và sẽ gửi lại thông điệp xác nhận sau khi xem xét các thông điệp.
Message 6: Phiên truyền thông an toàn của SS được bắt đầu.
3.4. Phòng chống tấn công Replay, tấn công Man in Middle Attack và Denial of Service
* Phòng chống tấn công Replay
Khi SS gửi ID và các thông tin ban đầu của nó cho BS, kẻ tấn công có thể có được các thông tin này và sau đó liên tục gửi đến BS. BS xem xét tính hợp pháp của SS, phát hiện ra sự giả dối và từ chối. Khi SS hợp pháp cố gắng để kết nối sau đó, các BS có thể chặn nó vĩnh viễn. Đây là cuộc tấn công replay trong đó kẻ tấn công mặc dù
Message 1: SS BS: Cert (SS) (Auth Req message) | Capabilities | SSID | TS Message 2: BS SS: KUSS (AK) | SeqNo | Lifetime | SAIDList | BSID | BS_Code Message 3: BS AS: BSID | SSID | KUSS
Message 4: SS AS: E (KRSS, [SSID | BSID | BS_Code]) Message 5: AS SS: E (KUSS, [Xác nhận thông điệp]) Message 6: SS BS: (Tiếp tục truyền thông)
58
không thể đọc dữ liệu của SS hợp pháp nhưng có thể khiến cho SS bị vô hiệu. Một dấu thời gian (time stamp) được sử dụng ở đây là rất cần thiết cho nó. Time stamp chỉ đơn giản là xác định thời điểm hành động, khi thông điệp hoặc truyền tải diễn ra. Time stamp thường có chiều dài khoảng thời gian cố định. Một chữ ký trên một số dữ liệu (trong chứng nhận hay thông điệp) bao gồm một thời hạn (chiều dài có thể là trong mili giây), được gọi là một dấu thời gian time stramp. Bất kỳ một sự chuyển giao hay truyền thông sau khoảng thời gian này hệ thống sẽ không cho hoạt động, và điều này làm cho hệ thống an toàn đối với các cuộc tấn công từ bên ngoài vì những kẻ tấn công sẽ cố gắng để đạt được mục đích khi thời gian đã hết hạn (chẳng hạn như kẻ tấn công cần có thời gian để xử lý và truyền lại).
Điều này sẽ thông báo cho BS về thời gian và một kẻ tấn công sẽ không thu được thành công trong động cơ xấu của mình. Thủ tục này có thể được hiển thị trong hình 4.4. Trong hình này, nó cho thấy một SS liên lạc với BS bằng cách sử dụng một time stamp.
Hình 4.3. Phòng chống tấn công phát lại bằng cách sử dụng Timestamp
* Phòng chống tấn công Man in Middle Attack và Denial of Service
Với kịch bản trên, cả hai cuộc tấn công này đều được phòng tránh. Chúng ta có thể xem lại các cuộc tấn công có thể xảy ra như thế nào cho các thuê bao. Khi kẻ tấn công có được các dữ liệu ban đầu mà một thuê bao gửi đến BS lần đầu tiên, kẻ tấn công có thể có được một bản sao của nó và cố gắng để gửi dữ liệu đó đến BS nhiều lần. BS sau đó xem xét SS ban đầu như là một một SS giả mạo và từ chối dịch vụ. Tuy nhiên, trong kịch bản đề xuất này, những kẻ tấn công không thể gửi dữ liệu đó đến BS có sử dụng một dấu thời gian (time stamp). Vì sử dụng time stamp, các BS sẽ không cho phép bất kỳ dữ liệu không được mã hóa nào gửi đến nó. BS biết khóa công khai của SS, BS sẽ chấp nhận các dữ liệu được mã hóa từ SS đó. Và kẻ tấn công sẽ không dễ để giải quyết vấn đề dấu thời gian. Vì vậy, cuộc tấn công man in middle attack và từ chối dịch vụ có thể dễ dàng được phòng tránh.
Message 1: SS BS: Cert (SS) (Auth Req message) | Capabilities | SSID | TS Message 2: BS SS: KUSS (AK) | SeqNo | Lifetime | SAIDList | BSID | BS_Code
59
DEMO XÁC THỰC BS
Để 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
60
+ 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.
61
+ SS nhận được thông điệp từ BS, nó giải mã lấy thông tin riêng của BS
62
+ 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.
63
`
64
Kết luận chương
Khuyến nghị trên đây tập trung vào sự an toàn của IEEE 802.16 mạng Wimax. Các cuộc tấn công khác nhau được phân tích đối với các kiến trúc an ninh mạng. Vấn đề xác thực lẫn nhau được chỉ ra để nâng cao tính bảo mật của thuê bao nhằm tránh các trạm gốc giả mạo. Các thuật toán đề xuất cho thấy cách thức để thiết lập xác thực lẫn nhau. Vấn đề được trình bày nhằm khuyến nghị các kiến trúc an ninh cho các nhà nghiên cứu. Đây là các trường hợp giả định, tuy nhiên các cuộc tấn công là không dễ dàng như vậy trong thế giới thực. Ngay cả khi các lỗ hổng bảo mật tồn tại, kẻ tấn công cũng phải cần có chuyên môn rất cao để có thể thâm nhập. Các nhà nghiên cứu và các nhà sản xuất cần kết hợp làm việc có trách nhiệm để làm cho vấn đề xác thực thuận lợi hơn và có tính năng bảo mật mạnh mẽ. Đây chính là điều mấu chốt trong khuyến nghị của tôi để nâng cao độ an toàn cho mạng không dây di động băng thông rộng.
65
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Với tốc độ phát triển nhanh chóng của công nghệ mạng không dây, cũng như ngành học cần tới sự tiên phong tìm hiểu công nghệ mới, tôi đã lựa chọn tìm hiểu và làm luận văn tốt nghiệp về vấn đề phân tích, đánh giá một số giải pháp an toàn bảo mật cho mạng không dây di động băng thông rộng này.
Đề tài đã đề cập đến những khái niệm cơ bản về mạng di động không dây băng thông rộng, về công nghệ WIMAX và LTE là hai công nghệ chủ yếu trong mạng này, cũng như đã nêu ra được một số nhược điểm về bảo mật và đưa ra khuyến nghị giải pháp khắc phục. Trong các giải pháp đó, đề tài cũng tìm hiểu, đánh giá một số kỹ thuật, công nghệ để đảm bảo an ninh cho mạng di động băng rộng, đồng thời chọn demo minh họa một giải pháp tiêu biểu.
Hướng phát triển trong tương lai, đề tài tiếp tục đi sâu tìm hiểu các yếu tố ảnh hưởng đến chất lượng dịch vụ (QOS) của mạng di động không dây băng thông rộng và nghiên cứu đề xuất giải pháp ứng dụng nhằm nâng cao chất lượng dịch vụ cho mạng này.
Do sự công nghệ khá mới mẻ đang được nghiên cứu và phát triển cùng với sự giới hạn về kiến thức nên luận văn còn nhiều thiếu sót. Tôi chưa đề cập được đầy đủ các vấn đề cần nêu. Do đó rất mong thầy cô và các đồng nghiệp đánh giá, giúp đỡ cũng như tạo điều kiện cho tôi tìm hiểu thêm về đề tài này trong thời gian tới, nhằm phần nào giúp cho việc đảm bảo an ninh mạng di động băng thông rộng ngày một tốt hơn.
66
TÀI LIỆU THAM KHẢO
1. TS. Nguyễn Phạm Anh Dũng, An ninh trong thông tin di động, NXB Bưu điện, 2006.
2. Bùi Phi Long, Nghiên cứu vấn đề an ninh mạng Internet không dây và ứng dụng, Đại học Thái Nguyên, năm 2009.
3. Nguyễn Đình Chiến, Nghiên cứu ứng dụng công nghệ 4G cho mạng di động Viettel mobile, Bộ quốc phòng tổng công ty viễn thông quân đội, pp.18-42, 2006.
4. Huỳnh Văn Phương, Võ Tấn Giàu, Hồ Thanh Phong, Huỳnh Thanh Lâm, Tìm hiểu về mạng di động 4G, Đại học An Giang, năm 2010.
5. Nguyễn Chấn Hùng, Lê Nhật Thăng, Biện pháp tăng cường bảo mật cho mạng Wimax, Tạp chí Thông tin KHKT & Kinh tế Bưu điện, năm 2009.
6. Jeffrey G. Andrews, Arunabha Ghosh, Rias Muhamed, Fundamentals of WIMAX, Prentice Hall Communications Engineering and Emerging Technologies Series, năm 2007.
7. Tejas Bhandre, LTE and WiMAX Comparison, Santa Clara University, December 2008.
8. Jonathan Morgan, Evolution Options from CDMA to LTE: The Benefits of Ehrpd, TMCnet 2008.
9. Mohammad Hossain, Analysis and Assessment the Security Issues of IEEE 802.16/WiMax Network
10. Towards Global Mobile Broadband: Standardising the future of mobile communications with LTE (Long Term Evolution), White Paper, UMTS Forum 2008 11. Các Website: http://vntelecom.org http://tapchibcvt.gov.vn http://4tech.com.vn http://thuvientructuyen.vn
67
PHỤ LỤC
1. Mã nguồn chương trình 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_LTHung //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());
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;
68
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 {
int cong = (int)port;
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);
69
//Neu nhan duoc chuoi quit thi thoat if (s1.ToUpper().Equals("QUIT")) { 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); } } } } Mã nguồn Sec_AES(): using System; using System.Collections.Generic; using System.Text; using System.Security.Cryptography; using System.IO; namespace BS_LTHung { class Sec_AES { public Sec_AES()
70
{ }
//private string aeskey192 = "Nht2007";
// Encrypt a byte array into a byte array using a key and an IV private byte[] Encrypt(byte[] clearData, byte[] Key, byte[] IV) {
// Create a MemoryStream that is going to accept the encrypted bytes
MemoryStream ms = new MemoryStream(); Rijndael alg = Rijndael.Create(); alg.Key = Key;
alg.IV = IV;
CryptoStream cs = new CryptoStream(ms, alg.CreateEncryptor(), CryptoStreamMode.Write);
cs.Write(clearData, 0, clearData.Length); cs.Close();
byte[] encryptedData = ms.ToArray(); return encryptedData;
}
public string Encrypt(string Data,string Password , int Bits) {
//string Password = aeskey192; byte[] clearBytes =
System.Text.Encoding.Unicode.GetBytes(Data);
PasswordDeriveBytes pdb = new PasswordDeriveBytes(Password, new byte[] { 0x00, 0x01, 0x02, 0x1C, 0x1D, 0x1E, 0x03, 0x04, 0x05, 0x0F, 0x20, 0x21, 0xAD, 0xAF, 0xA4 });
if (Bits == 128) {
byte[] encryptedData = Encrypt(clearBytes, pdb.GetBytes(16), pdb.GetBytes(16));
return Convert.ToBase64String(encryptedData); }
else if (Bits == 192) {
byte[] encryptedData = Encrypt(clearBytes, pdb.GetBytes(24), pdb.GetBytes(16));