Tải bản đầy đủ (.docx) (14 trang)

Giải pháp bảo mật tin nhắn SMS

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (389.1 KB, 14 trang )

MÃ HOÁ TIN NHẮN SMS SỬ DỤNG THUẬT TOÁN AES TRÊN MÔI TRƯỜNG
ANDROID.
TỔNG QUAN
.Giải pháp mã hoá là một trong những giải pháp quan trọng nhất để đảm bảo tính bí mật của dữ
liệu khi nó được truyền trên mạng. Có nhiều thuật toán mã khác nhau như AES, DES, RC4 …
được sử dụng để mã hoá dữ liệu khi nó được truyền trên mạng. Tuy nhiên trong các thuật toán
trên thì thuật toán AES được sử dụng nhiều nhất. Chúng ta phát triển ứng dụng trên nền Android
cho phép người dung mã hoá tin nhắn (messege) trước khi nó được truyền trên mạng. Chúng ta
sử dụng thuật toán AES cho việc mã hoá và giải mã tin nhắn khi chúng được truyền trên mạng.
Ứng dụng này có thể chạy trên bất kỳ thiết bị nào sử dụng hệ điều hành Android. Ứng dụng đảm
bảo an toàn cho tin nhắn truyền trên mạng, với tốc độ mã nhanh và độ an toàn cao. Thuật toán
mã này đủ mạnh để gây khó khăn cho hacker khi họ muốn khôi phục lại các tin nhắn được mã
hoá. Tin nhắn được mã hoá bởi thuật toán mã AES này cho phép chống lại tấn công dạng BruteForce và các dạng tấn công khác.
I. GIỚI THIỆU
Ứng dụng được phát triển nhằm đảm bảo an toàn cho tin nhắn (SMS) khi nó được truyền theo
phương thức điểm – điểm (end to end). Thuật toán được sử dụng ở đây là thuật toán mã khối
AES. Ứng dụng này được phát triển cho môi trường Android. Bài báo này sẽ đi sâu phân tích
cách thức làm việc của SMS, thuật toán mã khối AES và cách sử dụng thuật toán mã này vào
việc phát triển ứng dụng để mã hoá tin nhắn SMS nhằm đảm bảo an toàn cho tin nhắn SMS khi
nó được truyền trên mạng.
1.1. Sự cần thiết phải đảm bảo an toàn cho dữ liệu khi truyền trên mạng công cộng

An toàn thong tin có nghĩa là chúng ta phải bảo vệ thông tin và hệ thống thong tin khỏi các
truy cập trái phép, sử dụng, tiết lộ thông tin, làm gián đoạn thông tin, sửa đổi thông tin, kiểm
tra thông tin một cách bất hợp pháp, ghi âm lại thông tin khi truyền trên được truyền một
cách bất hợp pháp hoặc phá huỷ thông tin.
Đảm bảo tính riêng tư trong các tương tác cá nhân là mong muốn của tất cả người dùng trên
mạng.
Mã hoá là một giải pháp để đảm bảo tính riêng tư cho người dùng. Nó được sử dụng để đảm
bảo một số mục đích sau: [5] tin nhắn SMS hiện được sử dụng rộng rãi như một công cụ
trong kinh doanh: đảm bảo an toàn cho tin nhắn trở thành mối quan tâm lớn của các công ty


và khách hành của họ. Vị vậy nhu cầu mã hoá tin nhắn SMS để đảm bảo an toàn cho các
giao dịch trên mạng là vô cùng cần thiết.
1.2. Khảo sát
gần đây xu hướng đảm bảo an ninh cho thiết bị di động đang được đẩy mạnh trong các
doanh nghiệp cung cấp dịch vụ di động. Trong báo cáo của IDC trong năm 2010 lần đầu tiên
doanh số bán điện thoại thông minh đã vượt qua doanh số bán máy tính cá nhân. Đứng trước


xu thế này các tổ chức đang gia tăng việc áp dụng chính sách BYOD (bring - your -own
device) cho các thiết bị. Theo báo cáo của hãng nghiên cứu J.Gold Associetes khoảng 25%
dến 35% các doanh nghiệp đang áp dụng chính sách BYOD, và họ hy vọng việc áp dụng
chính sách này sẽ tăng lên thành 50% trong hai năm tới. Điều này sẽ mang đến lợi ích rất lớn
trong việc phát triển kinh doanh của doanh nghiệp.
Tuy nhiên lợi thế cạnh tranh và lợi ích do mạng di động mang lại có thể biến mất nếu điện
thoại thông minh và máy tính bảng không được bảo vệ đầy đủ để chống lại các nguy cơ an
ninh đe doạ đến vấn đề bảo mật cho thiết bị di động. Trong khi thị trường di động vẫn tiếp
tục phát triển một cách nhanh chóng, các tổ chức CNTT xác định vấn đề an inh là một trong
những mối quan tâm lớn nhất cảu họ đối với việc mở rộng tính năng của môi trường di động.
vị vậy. Các kỹ thuật mã hoá khác nhau đã được sử dụng.
Mã hoá đã được quân đội và các cơ quan chính phủ sử dụng từ lâu để đảm bảo an toàn cho
thông tin liên lạc. Hiện nay mã hoá đã được sử dụng trong việc bảo một thông tin ở các hệ
thống thông tin dân sự. Ví dụ, Trong báo cáo của Viện an toàn máy tính trong năm 2007,
71% các công ty được khảo sát sử dụng phương pháp mã hoá để bảo mật dữ liệu của họ khi
nó được truyền trên mạng và 53% sử dụng mã hoá để bảo mật sữ liệu được lưu trữ.
Mã hoá cũng được sử dụng để bảo vệ dữ liệu "ở phần còn lại". Ví dụ: các tệp dữ liệu trên
máy tính và các thiết bị lưu trữ khác (như thẻ nhớ USB). Trong những năm gần đây, nhiều
sữ liệu bí mật như dữ liệu cá nhân của khách hàng đã bị đánh cắp thông qua việc đánh mất
hoặc các máy tính cá nhân bị đánh cắp hoặc sao lưu dữ liệu. Mã hoá các tệp dữ liệu giúp bảo
vệ người dùng khi các giải pháp bảo vệ vật lý bị thất bại.
Năm 2010 6.1 nghìn tỷ tin nhắm đã được gửi: tính ra có tới 192,tin nhắn SMS được gửi đi

mỗi giây. SMS trở thành nghành công nghiệp thương mại có giá trị cực lớn, trị giá khoảng
81 triệu đô trên toàn cầu kể từ năm 2006. Giá trị bình quân của mỗi tin nhắn trên toàn cầu là
0.11 $, trong khi các mạng di động tính phí khi kết nối giữa các mạng di động khác nhau ít
nhất là 0.04$. Ngành công nghiệp tin nhắn phát triển nhanh như vậy và cũng dẽ dàng bị tấn
công đẻ khai thác các điểm yếu. Vì vậy vấn đề mã hoá tin nhắn SMS trước khi được gửi đi
ngày càng cấp bách.
Nhiều thuật toán mã và giãi mã khác nhau đã được đưa ra. Trong đó thuật toán mã AES
được xem là thuật toán tối ưu nhất.
AES yêu cầu không gian bộ nhớ RAM không quá lớn và có tốc độ mã hoá và giải mã nhanh.
Tốc độ xử lý yêu cầu trên bộ vi xử lý Pentium của thuật toán mã AES là 18 xung nhịp trên
một byte tương đương với tốc độ xử lý 11Mib/s cho bộ xử lý 200 MHz. Đây là lý do vì sao
chúng tôi chọn thuật toán AES cho việc mã hoá và giải mã tin
có rất ít ứng dụng mã hoá tin nhắn trên Google Play sử dụng thuật toán mã AES. Chúng tôi
xây dựng ứng dụng của mình dựa trên việc xem xét một cách cẩn trọng nhiều yếu tố khác
nhằm mục đích tạo ra nhiều lợi ích cho người sử dụng. Với dung lượng nhỏ hơn 200Kb giúp
cho ứng dụng hoạt động nhanh hơn. nó cũng cung cấp chức năng như conversation view,
Inbox, Draft, Backup and restore, tất cả các tính năng mà một ứng dụng tin nhắn SMS chuẩn
cần có. lợi thế lớn nhất của ứng dụng này là nó là một ứng dụng đơn giản, dễ hiểu, và dễ sử


dụng. Có giao diện người dùng đơn giản, kích thước nhỏ, chức năng mã hoá và giải mã hoạt
động hiệu quả.
II. DỊCH VỤ TIN NHẮN SMS
SMS là một dịch vụ tin nhắn, hiểu một cách đơn giản hơn nó là một phương pháp giao tiếp giữa
2 điện thoại hoặc giữa máy tính với một điện thoại hay một thiết bị kết nối mạng nào đó thông
qua một đoạn văn bản. “short” ở đây dùng để chỉ chỉ kích thước tối đa của tin nhắn. Tin nhắn chỉ
chứa tối đa 160 kí tự alphabet (kí tự, số, hoặc biểu tượng trong bảng kí tự alphabet) với các bảng
kí tự khác ví dụ tiếng trung kích thước tối đa của tin nhán là 70 kí tự.

Hình 1: Mô hình truyền tin nhắn SMS

2.1. Nguyên lý hoạt động của SMS
Mặc dù SMS là dịch vụ dành cho điện thoại di động nhưng nó có thể hoạt động với bất kì hệ
thống nào chấp nhận thẻ SIM. được gọi là thẻ thong minh ( smartcard) , nó có CPU, EEPROM
và các mạch điện
2.1.1. Trạm thu phát - BTS
BTS viết tắt cho Base transceiver station trạm thu phát BTS là một thiết bị truyền thông không
dây gửi thiết bị người dùng (UE) và mạng. UE là các thiết bị như điện thoại di đông, điện thoại
WLL, máy tính có kết nối không dây, thiết bị WIFi, WiMAX ...
2.1.2. Trung tâm chuyển mạch di động - MSC
MSC - Mobile switching center -Trung tâm chuyển mạch di đông MSC () là nút cung cấp dịch
vụ vận chuyển cho GSM/CDMA, chịu trách nhiệm định tuyến các cuộc gọi và SMS cũng như
các dịch vụ khác ( chẳng hạn cuọc họi hội nghị truyền hình, FAX, và chuyển mạch dữ liệu).


các MSC thiết lập và giải phóng các kết nối điểm - điểm (end to end), xử lý các yêu cầu giao tiếp
di động và điện thoại bàn trong suốt cuộc gọi và theo dõi các tài khoản thực hiện cuộc gọi theo
thời gian thực
2.1.3 Trung tâm tin nhắ SMS - SMSC
Khi tin nhắn SMS được truyền đi từ một điện thoại di động, tin nhắn sẽ được tiếp nhận bởi trung
tâm tin nhắn của nhà cung cấp dịch vụ SMS (SMSC), trung tâm này sẽ tìm địa chỉ đích để gửi tin
nhắn đến, và sau đó gửi tin nhắn này đến điện thoại đích.
SMSC là trung tâm tin nhắn và nó đã được cài đặt lên mạng lõi (core Networks) của nàh cung
cấp dịch vụ. bên cạnh việc chuyển tiếp tin nhắn, SMSC cũng hoạt động với vai trò của thiết bị
lưu trữ tạm thời các tin nhắn. vì vậy, nếu một điện thoại đích không hoạt động, SMS sẽ lưu lại tin
nhắn và sau đó sẽ gửi tin nhắn đi khi điện thoại hoạt động trởi lại. Ngoài ra SMSC cũng thông
báo cho người gửi là tin nhắn đã được gửi thành công hay không. Tuy nhiên SMSC không thể
lưu tin nhắn trong một thời gian dài do dung lượng bộ nhớ là có hạn. Trong khi gửi tin nhắn
SMS, người gửi tin nhắn và SMSC đâng kết nối. Vì vậy, nếu điện thoại cảu người nhận đang tắt
trở lại trạng thái hoạt động bình thường, SMSC sẽ thông báo đến người gửi rằng thông báo đã
được gửi thành công.

THIẾT KẾ MÔ HÌNH MÃ HOÁ
Lựa chọn ngôn ngữ lập trình cho điện thoại di động
Mã hoá tin nhắn SMS được xây dựng theo thuật toán mã hoá đối xứng AES. Ứng dụng được xây
dựng sử dụng ngôn ngữ lập trình Java của hãng Sun Microsystem. Hầu hết điện thoại di động
đều hỗ trợ ngôn ngữ lập trình này.
Mô hình thiết kế
Mô hình mã hoá SMS được thiết kế như là một thành phần trong hệ thống GSM. Bất kỳ một tin
nhắn nào khi được gửi qua trung tâm SMS (SMSC), sẽ không được chuyển trực tiếp tới nơi nhận
mà nó sẽ được lưu trên SMSC sau đó được chuyển qua MSC, MSC đóng vai trò quan trọng
trong việc định tuyến cho tin nhắn, dựa vào các thông tin được cung cấp bởi HLR và VLR.


Hình: Mô hình kiến trúc của hệ thống mã hoá tin nhắn SMS
Ứng dụng mã hoá tin nhắn SMS chỉ làm việc với tin nhắn, tin nhắn được mã hoá ngay bước đầu
tin, sau đó được ký sử dụng chữ kí điện tử ở bước thứ hai, và bước cuối cùng là gửi tin nhắn.

Hình : Mô hình mã hoá SMS
III. THUẬT TOÁN MÃ AES
AES là thuật toán mã hóa được Mỹ đánh giá là chuẩn TOP SECRET vào tháng 6
( Chuẩn cao nhất )

năm 2003

AES chỉ làm việc với các khối dữ liệu (đầu vào và đầu ra) 128 bít và khóa có độ dài 128, 192
hoặc 256 bít
Mỗi khối dữ liệu 128 bit đầu vào được chia thành 16 byte (mỗi byte 8 bit),có thể xếp thành 4 cột,
mỗi cột 4 phần tử hay là một ma trận 4x4 của các byte,nó được gọi là ma trận trạng thái, hay vắn


tắt là trạng thái. Trong quá trình thực hiện thuật toán các toán tử tác động để biến đổi ma trận

trạng thái này.

Hình 2: Ma trận trạng thái
Quá trình mã hóa gồm 4 bước sau:
3.1. Bước 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).
3.2. Bước ShiftRows
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.
3.3. Bước MixColumns
Bốn byte trong từng cột được kết hợp lại theo một phép biến đổi tuyến tính khả nghịch. Mỗi khối
4 byte đầu vào sẽ cho một khối 4 byte ở đầu ra với tính chất là mỗi byte ở đầu vào đều ảnh
hưởng tới cả 4 byte đầu ra. Cùng với bước ShiftRows, MixColumns đã tạo ra tính chất khuếch
tán cho thuật toán.. Vì thế, bước này có thể được xem là phép nhân ma trận trong trường hữu
hạn.
3.4. Bước AddRoundKey
Tại bước này, khóa con được kết hợp với các khối. Khóa con trong mỗi chu trình được tạo ra từ
khóa chính với quá trình tạo khóa con Rijndael; mỗi khóa con có độ dài giống như các khối. Quá
trình kết hợp được thực hiện bằng cách XOR từng bít của khóa con với khối dữ liệu.
3.4. Quá trình giải mã của thuật toán AES


Các phép biến đổi trong phép mã hóa có thể được đảo ngược và sau đó thực hiện theo chiều
ngược lại nhằm tạo ra phép giải mã trực tiếp của thuật toán AES. Các phép biến đổi sử dụng

trong phép giải mã gồm: InvShiftRows, InvSubBytes, InvMixColumns và AddRoundKey.
3.4.1. Bước InvSubBytes
Phép biến đổi InvSubBytes() là nghịch đảo của phép thay thế theo byte SubBytes(), trong đó sử
dụng một hộp-S nghịch đảo áp dụng cho mỗi byte của trạng thái.
3.4.2. Bước InvShiftRows
Phép biến đổi InvShiftRows là phép biến đổi ngược của ShiftRows. Các byte trong ba từ cuối
của trạng thái được dịch vòng theo số byte khác nhau. Ở hàng đầu tiên (r=0) không thực hiện
phép chuyển dịch, ba hàng dưới cùng được dịch vòng Nb-shift(r,Nb) byte.

3.4.3. Bước InvMixColumns
Phép biến đổi InvMixColumns() là phép biến đổi ngược của MixColumns(). Nó thao tác theo
từng cột của trạng thái, xem mỗi cột như một đa thức bốn hạng tử.
3.4.4. Biến đổi nghịch AddRoundKey
Phép biến đổi AddRoundKey là phép biến đổi thuận nghịch vì nó chỉ áp dụng một phép toán
XOR nên nó được thực hiện như nhau ở cả phép mã hóa và phép giải mã.
3.5. Ứng dụng thuật toán AES
Thuật toán AES có thể được viết bằng nhiều ngôn ngữ. Thuật toán này cũng được sử dụng trong
Việc xử lý ảnh. Trong bài báo này chúng tôi sử dụng ngôn ngữ Java để lập trình, Java cho phép
thực hiện trong mã nguồn mở và là một ngôn ngữ độc lập với platform. các mã nguồn cho các
phần của thuật toán được trình bầy dưới đây.
3.5.1. Bước Add Round Key
public byte[ ][ ] addRoundKey(byte[ ][ ] state,byte[ ][ ] roundkey)
{
for (int i=0;i<4;i++)
{
for (int j=0;j<4;j++)
{
state [i][j]=doExclusiveOR(state[i][j], roundkey[i][j]);
}



}
return state;
}
3.5.2. Bước Sub Bytes
public byte[ ][ ] subBytes(byte[][] state)
{
for (int i=0;i<4;i++)
{
for (int j=0;j<4;j++)
{
int row = getFirstFourBits(state[i][j]);
int column = getSecondFourBit(state[i][j]);
state[i][j] = sBoxSubstitution(row,column);
}
}
return state;
}
3.5.3. Bước MixColumns
public byte[ ][ ] mixColumns(byte[ ][ ] state)
{
for (int c=0;c<4;c++)
{
state [c]=matrixMultiplication(state[c], polynomial);
}
return state;
}
3.5.4. Bước ShiftRows
shiftRows(byte state[][])
{

for(int i=0;i<4;i++)
{
cyclicLeftShift(i);
}
}
3.5. Độ an toàn của thuật toán AES


Khoá mã đã được sử dụng trong thuật toán có độ dài 128 bit. vì vậy, để bẻ khoá attacker cần thực
hiện 2128 phép thử, vì vậy, việc bẻ khoá gần như không thể thực hiện thành công trong thực tế.
Do vậy, phương pháp tấn công vét cạn không thể thực hiện được trên thuật toán này. Các bước
của thuật toán rất chặt chẽ không cho phép chèn thêm các mẫu vào trong các bước của thuật
toán. các thành phần của thuật toán được đề xuất có độ khuếch tấn và xáo trộn lớn vì vậy việc sử
dụng kỹ thuật phân tích thông kê và dựa trên mẫu bản mã sẽ không thực hiện được. Ưu điểm lớn
nhất của thuật toán này là thuật toán sẽ không thể bị phá vỡ bởi phép vi phân (differential) hay
tấn công sử dụng lân cận kề (linear attacks).
IV. ỨNG DỤNG MÃ HOÁ TIN NHẮN – SMS – TRÊN MÔI TRƯỜNG ANDROID
Ứng dụng thực hiện theo bước sau :
1. Người sử dụng mở phần mềm rồi mở khóa
2. Người sử dụng có thể gõ tin nhắn mới hay trả lời tin nhắn
3. Ở tin nhắn mới có 2 chế độ : Chế độ tin nhắn thường và chế độ tin nhắn mã hóa .

Chế độ mã hóa sẽ yêu cầu người sử dụng nhập khóa hay tự động điền trước khi gửi
tin nhắn . Chế độ thường thì sử dụng như bình thường.
4. Nếu trả lời tin nhắn hiện tại đã được mã hóa. Người sử dụng sẽ phải nhấn và giữ tin
nhắn đó để giải mã. Phần mềm sẽ yêu cầu khóa khi người dùng trả lời tin nhắn hiện
tại
5. Khi nhập khóa m tin nhắn sẽ được gửi và hiển thị dưới dạng mã hóa cho người xem
4.1 Snapshot của Ứng dụng
4.1.1. Mở khoá ứng dụng


Hình 3: Mở khóa ứng dụng


Người dùng sẽ phải mở khóa ứng dụng , có thể thay đổi khóa khi mở ứng dụng thành công
Khi nhập 5 lần sai, ứng dụng sẽ tự động đóng
4.1.2. Tạo tin nhắn
Các thông tin liên quan đến tin nhắn gồm tên của người gửi, và các thong tin liên quan khác
được hiển thị thông qua menu khi người dùng nhập tên người nhận. Người sử dụng có thể lựa
chọn tên và số điện thoại thông qua menu. Ứng dụng cũng hỗ trợ chế độ tìm kiếm ví du: nếu
người dung gõ “qu” thì sẽ hiện ra tất cả các tên có kí tự “qu” (ví dụ : quang , quân,quyên) cùng
với số điện thoại. Người sử dụng có thể lưu tin nhắn như bản nháp (draff) hoặc gửi nó bằng cách
nhập khoá mã hoá. Người sử dụng có thể chọn liên lạc gần nhất từ danh sách nhật ký cuộc gọi
của mình bằng cách chọn mục "Recent".

Hình 4: Tạo tin nhắn mới
4.1.3. Hiển thị tin nhắn
Các tin nhắn trong trong phần inbox được thiết kế dưới dạng popup. Khi ấn vào một thuộc tính
sẽ cho phép hiển thị các tuỳ chọn xoá (delete) hoặc mở (open) thông tin liên lạc của tuỳ chọn
hoặc thực hiện cuộc gọi từ tuỳ chọn.


Hình 5: H p th ch a tin nh n
Các tin nhắn được hiển thị dưới dạng các chủ đề, hình dưới minh hoạ hai tin nhắn đầu tin ở dạng
được mã hoá và hai tin nhắn tiếp theo đã được giải mã sử dụng thuật toán AES.

Hình 6: Tin nh n

c mã hoá và giãi mã


4.2 Đặc tính ứng dụng
1. Tất cả tin nhắn được hiển thị dưới dạng mã hóa cả người gửi và nhận


2. Giữ và nhấn chủ đề sẽ xuất hiện hộp lựa chọn mà bạn có thể xóa, hiển thi chi tiết đối
3.
4.
5.
6.

tượng và gọi đối tượng
Giữ và nhắn bất kì tin nhắn sẽ xuất hiện hộp lựa chọn mà bạn có thể xóa, hiển thi chi tiết
đối tượng và gọi đối tượng
Khóa sẽ tự động điền nếu như người sử dụng không điền khóa
Một số thiết lập khác cho người dùng như thiết lập cảnh bảo, thiết lập về mã hoá, thiết lập
về âm thanh tin nhắn, thiết lập cá nhân..
Ứng dụng này được phát triển trên nên Android vì nó sử dụng Java và hơn 80% điện
thoại thông mình sử dụng nền tảng Android. Hệ điều hành Android hỗ trợ đa kết nối, tin
nhắn, ngôn ngữ, phương tiện truyền thông, blutooth.. Tính năng chính của android là mã
nguồn mở và hỗ trợ ngôn ngữ JAVA. Nó cũng hỗ trợ tính năng đa nhiệm, đa cảm ứng,
dịch vụ 3G, Wifi, và điều quan trọng là nó đảm bảo tính an toàn và tính riêng tư cho
người dung Android.
4.3 Mục tiêu của ứng dụng
Các mục tiêu chính của ứng dụng của chúng tôi là:
1. Xây dựng một ứng dụng mã hoá tin nhắn SMS đảm bảo an toàn cho người sử dụng.
2. Duy trì việc mã hoá thông tin được tin nhắn cho người nhận tin nhắn
3. Giải mã tin nhắn theo yêu cầu người sử dụng.
4. Bảo vệ chống lại việc lạm dụng thông tin của tin nhắn.
5. Năng cao tính bảo mật và cải thiện khả năng bảo mật cho Android
5.3 Mã giả lập ứng dụng


Vì mã nguồn không thể đưa ra ( vì một số lí do về bảo mật ) nên bài viết sẽ đưa ra một số mã
nguồn chính của ứng dụng.
4.5.1. Gửi tin nhắn
Trong Android, có một lớp gọi là SmsManager. Chúng tôi tạo ra đoạn mã trong lớp này gọi là
sendTextMessage() phương pháp này thuộc về lớp SmsManager
void sendSMS(String text,String number)
{
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(number,null,text,null,null);
PendingIntent
}
5.3.2 Nhận tin nhắn
Để nhận tin nhắn chúng tôi tạo BroadcastReciver. và ghi đè vào thư mục onReceive phương
pháp này sẽ được gọi bởi hệ thống khi một tin nhắn được nhận. Nhưng để làm được việc đó đầu
tin chúng ta phải đăng kí danh sách người nhận tin nhắn


public void onRecive(Context c, Intent i)
{
Bundle b=i.getExtras();
if(b!=null)
{
byte[] pdus=bundle.get(“pdus”);
SmsMessages[] msgs=new SmsMessages[pdus.length];
for(int j=0;j{
msgs[j]=SmsMessage.createFromPdu(pdus[j]);
method of SmsMessage class
}

}
}

5.3.3 Thông báo
sử dụng tính năng NotificationManager và các lớp Notification chúng ta có thể dễ dàng tạo vào
hiển thị các thông bào trên tin nhắn nhận được
public void createNotification(Context ctx)
{
NotificationManager notifManager =
(NotificationManager)getSystemService(NOTIFICATION_SERVICE);
Notification notification = new Notification();
PendingIntent
notification.setLatestEventInfo(ctx, “title”, “notification text”,null);
notifManager.notify(0,notification);
}
Kết luận
Do chương trình đáp ứng tốt các yêu cầu đòi hỏi về tốc dộ xử lý và không gian bộ nhớ đối với
chương trình như đã đề cập ở trên. Kích thước của chương trình là 50kB và nó có thể được cài
đặt trên điện thoại di động chạy hề điều hành Andorid. Người dùng sẽ không cảm thấy bị chậm
khi chương trình hoạt động, điều đó khẳng định rằng chương trình đáp ứng được yêu cầu về tốc
độ. Giao diện người dùng đơn giản và dễ sử dụng. Trong các ứng dụng, việc kiểm soát truy nhập
là rất quan trọng, ứng dụng này cho phép xác thực người gửi tin nhắn.


Ngoài ra nó có thể phát hiện, nếu tin nhắn bị phá hỏng hoặc giả mạo trong qúa trình truyền.
Quan trong hơn là tin nhắn chứa các thông tin nhạy cảm được lưu trữ một cách an toàn và
không bị tiến lộ ngay cả khi thiết bị truy cập bởi kẻ tấn công. Điều quan trọng nó đảm bảo an
toàn cho dữ liệu được mã hoá chống lại nhiều kiể tấn công khác nhau, như tấn công từ điển hay
tấn công sử dụng mẫu. ứng dụng này bảo vệ việc truyền dữ liệu điểm - điểm (end to end) mà
không cần phải phân mảnh dữ liệu trước khi truyền.

VI Tài liệu tham khảo
[1] J.Daemen and V.Rijmen, AES Proposal: Rijndael, NIST‟s AES home page,
http://www:nist:gov/aes.“Announcing the Advanced Encryption Standard (AES)”,Federal
Information Processing Standards Publication 197, November 2001.
[2] Priyanka Pimpale, Rohan Rayarikar and Sanket Upadhyay, “Modifications to AES Algorithm
for Complex Encryption”, IJCSNS International Journal of Computer Science and Network
Security, VOL.11 No.10, October 2011.
[3] Hassinen M.: SafeSMS 1.0 user manual. October 2004,Department of Computer Science,
University of Kuopio.
[4] en.pdf
[5] G. Racherla, D. Saha, “Security and Privacy Issues in Wireless and Mobile Computing”,
Proceedings of 2000 IEEE International Conference on Personal Wireless Communications, Dec
17-20, 2000, pp.509-513.



×