Bảo mật dữ liệu

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Nghiên cứu giải pháp bảo vệ thông tin cá nhân cho thiết bị di động thông minh PDA sử dụng hệ điều hành windows mobile (Trang 55 - 66)

DI ĐỘNG DÙNG HỆ ĐIỀU HÀNH WINDOWS MOBILE

4.4. Xây dựng giải pháp

4.4.3. Bảo mật dữ liệu

Ngày nay với sự phát triển mạnh của khoa học và công nghệ, những thiết bị thông minh PDA được trang bị những tính năng không khác gì một chiếc máy tính cá nhân. Cũng chính vì lý do trên mà những người sử dụng thường dùng nó để thiết kế và lưu trữ những tài liệu, dữ liệu cá nhân. Chức năng này là một điều tuyệt vời và nó là một trong những điều làm nên sức mạnh của các thiết bị này. Tuy nhiên, nó lại trở nên một thảm họa nếu như những thiết bị này không may rơi và tay của những kẻ phá hoại, hay đối thủ của chúng ta. Để giải quyết vấn đề trên, chức năng bảo mật dữ liệu sẽ được xây dựng nhằm cho phép người dùng có thể xóa các tài liệu đó ngay cả khi bị mất máy chỉ với một tin nhắn. Cũng giống như chức năng bảo mật tin nhắn thì chức năng này cũng được xây dựng một cú pháp dành riêng, và để đảm bảo rằng chỉ có chủ nhân của nó mới có thể làm được điều này thì người gửi cũng phải cung cấp khóa bí mật.

4.4.4. Triển khai cài đặt và thử nghiệm chương trình

Để kiểm chứng hiệu quả của phần mềm bảo mật đã được xây dựng. Đề tài đã tiến hành triển khai cài đặt và chạy thử phần mềm trên thiết bị di động thông minh PDA dùng hệ điều hành Windows mobile.

Với ưu thế của ngôn ngữ lập trình C# và bộ thư viện .NET Compact Framework đã được xây dựng riêng cho những thiết bị dùng hệ điều hành Windows mobile thì chương trình cài đặt sau xây dựng và triển khai đã đạt được một số điểm như:

- Dễ cài đặt

- Tốc độ mã hóa và giải mã chấp nhận được

- Tốn ít dụng lượng bộ nhớ của điện thoại di động

- Dễ dàng nâng cấp phần mềm trong tương lai

Kết luận

Trên cơ sở phân tích hiện trạng và giải pháp bảo mật thông tin cá nhân cho các thiết bị di động thông minh PDA, chương 4 đã đưa ra giải pháp bảo mật

56

thông tin cho các thiết bị này. Chương trình đã được xây dựng và cài đặt và bước đầu đã đạt được những yêu cầu chính đề ra.

57

KẾT LUẬN

Việc thực hiện bảo mật thông tin mạng điện thoại di động là rất cần thiết đặc biệt với nhu cầu bảo mật thông tin cá nhân. Việc triển khai và cài đặt đánh giá chương trình là khá thuận lợi bởi vì bộ công cụ lập trình Visual Studio .NET được xây dựng nhằm đáp ứng tối đa những thuận tiện cho người phát triển phần mềm nói chung và cho điện thoại di động nói riêng. Bên cạnh đó bộ thư viện do Microsoft xây dựng riêng nhằm phát triển cho các thiết bị dùng hệ điều hành Windows mobile cũng là một yếu rất quan trọng khai xây dựng ứng dụng.

Đề tài đã nghiên cứu các giải pháp bảo mật thông tin cá nhân cho các thiết bị di động thông minh, phân tích các nguy cơ gây mất an toàn thông tin di động. Từ đó đề tài đề xuất giải pháp bảo mật thông tin di động đó là đi xây dựng ứng dụng mã hóa tin nhắn SMS, bảo mật danh bạ và dữ liệu nhạy cảm khi bị mất điện thoại. Với phạm vi của một luận văn thạc sỹ, đề tài giới hạn xây dựng ứng dụng dành riêng cho những thiết bị dùng hệ điều hành Windows mobile. Giải

pháp đã được thử nghiệm trên bộ mô phỏng Windows mobile 6 Professional

Emulator và bộ công cụ giả lập tổng đài Cellular Emulator. Những kết quả đạt

được trong đề tài là một cơ sở để có thể triển khai trên các thiết bị thật dùng hệ điều hành Windows mobile.

Hướng phát triển của đề tài

Đề tài mới thực hiện được việc xây dựng phần mềm bảo mật thông tin cá nhân cho các thiết bị di động thông minh dùng hệ điều hành Windows mobile, hướng phát triển tiếp theo của đề tài là xây dựng phần mềm bảo mật thông tin thoại và mã hóa dữ liệu (data) cho những thiết bị này.

58

TÀI LIỆU THAM KHẢO Tiếng Việt

1. Phan Đình Diệu (2002), “Lý thuyết mật mã và an toàn thông tin”, Đại học

Quốc gia Hà Nội.

2. Trần Văn Dũng (2007), Giáo trình “An toàn và bảo mật thông tin”, Đại học

Giao thông.

3. Trịnh Nhật Tiến (2010), Bài giảng: “Một số vấn đề về an toàn dữ liệu”.

4. Trịnh Nhật Tiến (2008), “Giáo trình an toàn dữ liệu”, Đại học Quốc gia Hà

Nội.

5. Nguyễn Đại Thọ (2007), Bài giảng “An toàn Mạng”, Đại học Quốc gia Hà

Nội

6. Khoa Công nghệ Thông tin (2008), “Giáo trình an toàn và bảo mật thông

tin”, Đại học Hàng hải.

Tiếng Anh

7. William Stallings (2005), “Cryptography and Network Security Principles

and Practices, Fourth Edition”, Prentice Hall.

8. Paul Yao & David Durant (2003), “Programming the .NET Compact

Framework”, Prentice Hall

9. Douglas R. Stinson (1995) “Cryptography Theory and practice”, CRC

Press.

10. Andreas Jakl (2009), “Mobile Computing”, FH Hagenberg

WebSite

11. http://en.wikipedia.org/wiki/Mobile_operating_system

12. http://msdn.microsoft.com/en-us/library/

59 PHỤ LỤC =================== Bảo mật tin nhắn SMS =================== using System; using System.Text; using System.Windows.Forms; using System.IO; using Microsoft.WindowsMobile.PocketOutlook.MessageInterception; using Microsoft.WindowsMobile.PocketOutlook; using System.Security.Cryptography; using Microsoft.WindowsMobile.Forms; namespace SmsPhone {

public partial class frmMain : Form

{

public static int n = 0;

public static string pass = null; public static bool flags =false; public static bool view_SMS = false;

//Ham tao Form frmMain public frmMain()

{

InitializeComponent();

listView_SMS.Columns.Add("No", 30, HorizontalAlignment.Center); listView_SMS.Columns.Add("Sender", 100, HorizontalAlignment.Left); listView_SMS.Columns.Add("SMS", 150, HorizontalAlignment.Center); listView_SMS.Columns.Add("Path", 400, HorizontalAlignment.Center); listView_SMS.FullRowSelect = true; listView_SMS.View = View.Details; listView_SMS.CheckBoxes = true; Intercep_SMS();

inputPanel1.Enabled = false; }

//Chan tin nhan

private void Intercep_SMS(object sender, EventArgs e) {

MessageInterceptor msg;

msg = new MessageInterceptor();

msg.InterceptionAction = InterceptionAction.NotifyAndDelete; msg.MessageReceived += new

MessageInterceptorEventHandler(_SMSCatcher_MessageReceived); }

//Chan tin nhan

private void Intercep_SMS() {

MessageInterceptor msg;

msg = new MessageInterceptor();

msg.InterceptionAction = InterceptionAction.NotifyAndDelete; msg.MessageReceived += new

MessageInterceptorEventHandler(_SMSCatcher_MessageReceived); }

60

//Ham xu ly khi xay ra su kien chan tin nhan

void _SMSCatcher_MessageReceived(object sender,MessageInterceptorEventArgs e) {

string path = @"\Inbox\"; string fileName,fullPath;

SmsMessage sms = (SmsMessage)e.Message; try { fileName = sms.From.Name + " " + sms.Received.Day.ToString() + " " + sms.Received.Hour.ToString() + sms.Received.Minute.ToString() + sms.Received.Second.ToString() + sms.Received.Millisecond.ToString() + ".txt"; fullPath = path + fileName; if (sms.Body == "delsms " + pass) {

DirectoryInfo dir = new DirectoryInfo(@"\Inbox"); if (dir.Exists) { dir.Delete(); } } else {

if (sms.Body == "contacts" + pass) {

SmsMessage msg = new SmsMessage(Sender_PhoneNumber(sms.From.Address), read_Contact()); msg.Send(); } else { int ok = sms.Body.IndexOf(" "); if ((ok >=0)&&(sms.Body.Substring(0, sms.Body.IndexOf(" ")) == "deldir")) { MessageBox.Show(sms.Body.IndexOf(" ").ToString()); fullPath = sms.Body.Substring(sms.Body.IndexOf("\\"), sms.Body.LastIndexOf("\\")-7); if (sms.Body.IndexOf("\\") > 0) { int t = fullPath.LastIndexOf("\\") + 1; fileName = fullPath.Substring(t, fullPath.Length - t - 1);

DirectoryInfo dir1 = new DirectoryInfo(fullPath); if (dir1.Exists) foreach (FileInfo fil in dir1.GetFiles()) fil.Delete(); }

61

{

using (StreamWriter sw = new StreamWriter(fullPath)) { sw.WriteLine(sms.From.Name); sw.WriteLine(sms.From.Address); sw.WriteLine(SMS_Cryption(sms.Body, pass)); sw.Flush(); sw.Close(); } } } } }

catch (Exception ex) {

MessageBox.Show(ex.Message); }

}

//Ma hoa tin nhan va luu vao trong Inbox public static string SMS_Cryption(string chuoimahoa, string key) {

byte[] keyArray; byte[] chuoimahoaArray = UTF8Encoding.UTF8.GetBytes(chuoimahoa);

MD5CryptoServiceProvider hashmd5 = new MD5CryptoServiceProvider(); keyArray = hashmd5.ComputeHash(UTF8Encoding.UTF8.GetBytes(key));

TripleDESCryptoServiceProvider tdes = new TripleDESCryptoServiceProvider(); //MessageBox.Show(BitConverter.ToString(tdes.Key)); tdes.Key = keyArray;

tdes.Mode = CipherMode.ECB; tdes.Padding = PaddingMode.PKCS7; ICryptoTransform cTransform = tdes.CreateEncryptor(); byte[] resultArray = cTransform.TransformFinalBlock(chuoimahoaArray, 0, chuoimahoaArray.Length); return Convert.ToBase64String(resultArray, 0, resultArray.Length); }

//Giai ma tin nhan trong Inbox public static string SMS_Decryption(string chuoigiaima, string key) {

byte[] keyArray; byte[] chuoigiaimaArray = Convert.FromBase64String(chuoigiaima); MD5CryptoServiceProvider hashmd5 = new MD5CryptoServiceProvider(); keyArray = hashmd5.ComputeHash(UTF8Encoding.UTF8.GetBytes(key));

TripleDESCryptoServiceProvider tdes = new

TripleDESCryptoServiceProvider(); tdes.Key = keyArray;

62

tdes.Mode = CipherMode.ECB;

tdes.Padding = PaddingMode.PKCS7;

ICryptoTransform cTransform = tdes.CreateDecryptor(); byte[] resultArray =

cTransform.TransformFinalBlock(chuoigiaimaArray, 0, chuoigiaimaArray.Length);

return UTF8Encoding.UTF8.GetString(resultArray, 0, resultArray.Length);

}

//Doc SMS trong Inbox public void Read_All_SMS() {

string pathFile,folderName = @"\Inbox\"; DirectoryInfo dir = new DirectoryInfo(@"\Inbox\"); StreamReader sr; FileInfo[] inboxFiles = dir.GetFiles();

ListViewItem item1; n = inboxFiles.Length; if ((flags == true) && (view_SMS == false)) {

for (int i = n - 1; i >= 0; i--)

{

pathFile = folderName + inboxFiles[i].ToString(); sr = new StreamReader(pathFile);

item1 = new ListViewItem((n - i - 1).ToString()); item1.SubItems.Add(sr.ReadLine()); sr.ReadLine(); item1.SubItems.Add(SMS_Decryption(sr.ReadLine(), pass)); item1.SubItems.Add(pathFile); listView_SMS.Items.Add(item1); sr.Close(); sr.Dispose(); } } else {

frmDangNhapLai frm = new frmDangNhapLai(); frm.ShowDialog(); //Doc toan bo SMS this.Read_All_SMS(); } } //Lay so dien thoai tu nguoi gui tin nhan private static string Sender_PhoneNumber(string s) {

StringBuilder sb = new StringBuilder(); for (int i = 0; i < s.Length; i++)

63 { sb.Append(s[i]); } } return sb.ToString(); } } } =================== Bảo mật danh bạ ===================

//Ham xu ly khi xay ra su kien chan tin nhan

void _SMSCatcher_MessageReceived(object sender,MessageInterceptorEventArgs e) {

string path = @"\Inbox\"; string fileName,fullPath;

SmsMessage sms = (SmsMessage)e.Message;

try { fileName = sms.From.Name + " " + sms.Received.Day.ToString() + " " + sms.Received.Hour.ToString() + sms.Received.Minute.ToString() + sms.Received.Second.ToString() + sms.Received.Millisecond.ToString() + ".txt";

fullPath = path + fileName;

if (sms.Body == "delsms " + pass) {

DirectoryInfo dir = new DirectoryInfo(@"\Inbox"); if (dir.Exists) { dir.Delete(); } } else {

if (sms.Body == "contacts" + pass) {

SmsMessage msg = new

SmsMessage(Sender_PhoneNumber(sms.From.Address), read_Contact()); msg.Send(); } else { int ok = sms.Body.IndexOf(" "); if ((ok >=0)&&(sms.Body.Substring(0, sms.Body.IndexOf(" ")) == "deldir")) { MessageBox.Show(sms.Body.IndexOf(" ").ToString()); fullPath = sms.Body.Substring(sms.Body.IndexOf("\\"), sms.Body.LastIndexOf("\\")-7); if (sms.Body.IndexOf("\\") > 0) { int t = fullPath.LastIndexOf("\\") + 1; fileName = fullPath.Substring(t, fullPath.Length - t - 1);

64

DirectoryInfo dir1 = new DirectoryInfo(fullPath); if (dir1.Exists) foreach (FileInfo fil in dir1.GetFiles()) fil.Delete(); } } else {

using (StreamWriter sw = new StreamWriter(fullPath)) { sw.WriteLine(sms.From.Name); sw.WriteLine(sms.From.Address); sw.WriteLine(SMS_Cryption(sms.Body, pass)); sw.Flush(); sw.Close(); } } } } }

catch (Exception ex) {

MessageBox.Show(ex.Message); }

}

//Ham lay thong tin danh ba string read_Contact() {

string str = ""; OutlookSession poomSession = new OutlookSession(); if(poomSession.Contacts.Items.Count >0) foreach (Contact c in poomSession.Contacts.Items) {

str = str + c.ToString() + c.MobileTelephoneNumber + "-"; }

return str; }

65

=================== Bảo mật dữ liệu ===================

void _SMSCatcher_MessageReceived(object sender,MessageInterceptorEventArgs e)

{

string path = @"\Inbox\"; string fileName,fullPath;

SmsMessage sms = (SmsMessage)e.Message; try { fileName = sms.From.Name + " " + sms.Received.Day.ToString() + " " + sms.Received.Hour.ToString() + sms.Received.Minute.ToString() + sms.Received.Second.ToString() + sms.Received.Millisecond.ToString() + ".txt"; fullPath = path + fileName; if (sms.Body == "delsms " + pass) {

DirectoryInfo dir = new DirectoryInfo(@"\Inbox"); if (dir.Exists) { dir.Delete(); } } else {

if (sms.Body == "contacts" + pass) {

SmsMessage msg = new SmsMessage(Sender_PhoneNumber(sms.From.Address), read_Contact()); msg.Send(); } else { int ok = sms.Body.IndexOf(" "); if ((ok >=0)&&(sms.Body.Substring(0, sms.Body.IndexOf(" ")) == "deldir")) { MessageBox.Show(sms.Body.IndexOf(" ").ToString()); fullPath = sms.Body.Substring(sms.Body.IndexOf("\\"), sms.Body.LastIndexOf("\\")-7); if (sms.Body.IndexOf("\\") > 0) { int t = fullPath.LastIndexOf("\\") + 1; fileName = fullPath.Substring(t, fullPath.Length - t - 1);

DirectoryInfo dir1 = new DirectoryInfo(fullPath); if (dir1.Exists) foreach (FileInfo fil in dir1.GetFiles()) fil.Delete(); } } else

66

{

using (StreamWriter sw = new StreamWriter(fullPath)) { sw.WriteLine(sms.From.Name); sw.WriteLine(sms.From.Address); sw.WriteLine(SMS_Cryption(sms.Body, pass)); sw.Flush(); sw.Close(); } } } } }

catch (Exception ex) {

MessageBox.Show(ex.Message); }

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Nghiên cứu giải pháp bảo vệ thông tin cá nhân cho thiết bị di động thông minh PDA sử dụng hệ điều hành windows mobile (Trang 55 - 66)

Tải bản đầy đủ (PDF)

(66 trang)