3.3.1 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ù 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 21. 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 21: Phòng chống tấn công phát lại bằng cách sử dụng Timestamp
3.3.2 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,
Message 1: SS BS: Cert (SS) (Auth Req message) | Capabilities | SSID | TS
Message 2: BS SS: KUSS (AK) | SeqNo | Lifetime | SAIDList | BSID | BS_Code
71 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.
72
KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN
Hiện nay, thế giới công nghệ nói chung, mạng máy tính có dây và mạng không dây nói riêng phát triển với tốc độ chóng mặt. Công nghệ mạng di động băng thông rộng còn khá mới mẻ đối với nƣớc ta, một đất nƣớc có nền công nghệ thông tin mới ở mức đang phát triển so với mặt bằng chung của thế giới trong thời điểm hiện tại. Nhƣng 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 đề tìm hiểu điểm yếu bảo mật và giải pháp đảm bảo an ninh cho mạng 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 băng thông rộng, công nghệ WIMAX là 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à đề xuất 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á và chọn kỹ thuật mã hóa RSA , cải tiến thuật toán để viết chƣơng trình mô phỏng minh họa.
Do sự công nghệ khá mới mẻ và đ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.
73
TÀI LIỆU THAM KHẢO
Tiếng Việt
[1]. PHẠM HUY ĐIỀN, HÀ HUY KHOÁI, Mã hoá thông tin cơ sở toán học và ứng dụng, Viện toán học,2004.
[2]. NGUYỄN NAM HẢI, PHẠM NGỌC THUÝ, ĐÀO THỊ HỒNG
VÂN, Chứng thực trong thương mại điện tử, Nhà xuất bản khoa học và kỹ thuật, 2004.
[3]. PHAN ĐÌNH DIỆU, Giáo trình lý thuyết mật mã và an toàn thông tin, Nhà xuất bản Đại học Quốc Gia Hà nội, 1999.
[4] Trần Duy Lai, "Mã hóa dựa trên định danh", Tạp chí An toàn thông tin số 4/2009 - ISSN 1859-1256
Tiếng Anh
[5]. A.MENEZES, P.VAN OORSCHOT, AND S. VANSTONE, Handbook of Applied Cryptography, CRC Press, 1996. See www.cacr.math.uwaterloo.ca/hac
[6]. CAY S.HORSTMANN GARY CORNELL, Core Java2Volume II, Advanced Features, The Sun Microsystem press Java Series, 1996
[7]. DOUGLAS R.STINSON, Cryptography theory and practice Second Edition, It was published in March, 1995, by CRC Press, inc
[8]. Website: CHILKAT SOFTWARE INC., http://www.chilkatsoft.com/
[9]. Jeffrey G. Andrews, Arunabha Ghosh, Rias Muhamed, Fundamentals of
WIMAX, Prentice Hall Communications Engineering and Emerging Technologies Series,
2007.
[10] Mohammad Hossain, Analysis and Assessment the Security Issues of IEEE 802.16/WiMax Network. School of Electrical Engineering Blekinge Institute of Technology SE – 371 79 Karlskrona, Sweden, 2011.
74
PHỤ LỤC MÃ NGUỒN CỦA CHƢƠNG TRÌNH Mã nguồn của máy SS:
<!DOCTYPE html> <html>
<head>
<title><%= title %></title> <!--Import materialize.css-->
<link type="text/css" rel="stylesheet" href="css/materialize.min.css" media="screen,projection" />
<!--Let browser know website is optimized for mobile-->
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> </head>
<body> <nav>
<div class="nav-wrapper">
<a href="/" class="brand-logo">Lê Đức Huy</a>
<ul id="nav-mobile" class="right hide-on-med-and-down"> <li><a href="/client">SS</a></li>
<li><a href="/server">BS</a></li> <li><a href="/keytool">Giải mã</a></li> <li><a href="/generate">Tạo Key</a></li> </ul>
</div> </nav>
<div class="container"> <div class="row"></div>
75 <div class="row"> <h4>SS (<%- computerName %>)</h4> </div> <form class="col s12"> <div class="row">
<div class="input-field col s4">
<input id="username" type="text" name="username" value="admin"> <label for="username">Username</label>
</div> </div>
<div class="row">
<div class="input-field col s4">
<input id="password" type="password" name="password" value="admin"> <label for="password">Password</label>
</div> </div>
<div class="row">
<button class="btn waves-effect waves-light" type="submit"> Gửi đến BS <i class="material-icons"></i>
</button> </div> </form>
<div class="row" id="client-message"> <h5>Dữ liệu đi</h5>
<!-- <p class="flow-text truncate"></p> --> <div class="input-field col s12">
76
<label for="sent">Dữ liệu đi</label> </div>
</div> <hr/>
<div class="row" id="server-message"> <h5>Dữ liệu đến</h5>
<!-- <p class="flow-text truncate"></p> --> <div class="input-field col s12">
<textarea id="received" class="materialize-textarea"></textarea> <label for="received">Dữ liệu đến</label>
</div> </div>
<div class="row" id="decrypt"> <h5>Dữ liệu đến (giải mã)</h5> <p class="flow-text truncate"></p> </div>
</div>
<!-- Modal Structure -->
<div id="notify" class="modal">
<div class="modal-content center-align"> <h4></h4>
</div> </div>
<!--Import jQuery before materialize.js-->
<script type="text/javascript" src="js/jquery.js"></script>
77
<script src="/socket.io/socket.io.js"></script> <script type="text/javascript">
var socket = io();
jQuery('form').bind('submit', function(e) { e.preventDefault(); jQuery.ajax('/encrypt', { type: "POST", data: jQuery(this).serialize(), success: function(response) {
Materialize.toast('Message sent to server', 4000); jQuery('#client-message #sent').text(response.encrypt); socket.emit('client2server', response.encrypt); } }); return false; }); socket.on('client', function(data) { jQuery('#server-message #received').text(data.serverMessage); jQuery('#decrypt > p').text(data.decrypt); jQuery('#notify h4').text(data.message); jQuery('#notify').openModal(); }); </script> </body> </html>
78
Mã nguồn máy BS:
<!DOCTYPE html> <html>
<head>
<title><%= title %></title> <!--Import materialize.css-->
<link type="text/css" rel="stylesheet" href="css/materialize.min.css" media="screen,projection" />
<!--Let browser know website is optimized for mobile-->
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> </head>
<body> <nav>
<div class="nav-wrapper">
<a href="/" class="brand-logo">Lê Đức Huy</a>
<ul id="nav-mobile" class="right hide-on-med-and-down"> <li><a href="/client">SS</a></li>
<li><a href="/server">BS</a></li> <li><a href="/keytool">Giải mã</a></li> <li><a href="/generate">Tạo Key</a></li> </ul> </div> </nav> <div class="container"> <div class="row"></div> <div class="row"> <h4>BS</h4>
79
</div>
<form class="col s12"> <div class="row">
<div class="input-field col s4">
<input id="ip" type="text" name="ip" value="http://168.200.210.2"> <label for="ip">IP</label>
</div> </div>
<div class="row">
<div class="input-field col s4">
<input id="port" type="text" name="port" value="6550"> <label for="port">Port</label>
</div> </div>
<div class="row">
<div class="input-field col s4">
<input id="series" type="text" name="series" value="user is ok"> <label for="series">Series</label>
</div> </div>
<div class="row">
<button class="btn waves-effect waves-light" type="submit"> Gửi đến SS <i class="material-icons"></i>
</button> </div> </form>
80
<div class="row" id="client-message"> <h5>Dữ liệu đến</h5>
<!-- <p class="flow-text truncate"></p> --> <div class="input-field col s12">
<textarea id="received" class="materialize-textarea"></textarea> <label for="received">Dữ liệu đến</label>
</div> </div>
<div class="row" id="decrypt"> <h5>Dữ liệu đến (giải mã)</h5> <p class="flow-text truncate"></p> </div>
<hr/>
<div class="row" id="server-message"> <h5>Dữ liệu đi</h5>
<!-- <p class="flow-text truncate"></p> --> <div class="input-field col s12">
<textarea id="sent" class="materialize-textarea"></textarea> <label for="sent">Dữ liệu đi</label>
</div> </div> <table class="bordered"> <thead> <tr> <th data-field="id">Username</th> <th data-field="name">Password</th> </tr>
81 </thead> <tbody> <tr> <td>admin</td> <td>admin</td> </tr> </tbody> </table> </div> <!-- Modal Structure -->
<div id="notify" class="modal">
<div class="modal-content center-align"> <h4></h4>
</div> </div>
<!--Import jQuery before materialize.js-->
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/materialize.min.js"></script> <script src="/socket.io/socket.io.js"></script>
<script type="text/javascript"> var socket = io();
jQuery('form').bind('submit', function(e) { e.preventDefault();
jQuery.ajax('/encrypt', { type: "POST",