Thuật toán m-InvariantCloak

Một phần của tài liệu một số thuật toán đảm bảo tính riêng tư trong hệ thống lbs (Trang 61)

r

2.4.3.3Thuật toán m-InvariantCloak

Thuật toán Query m-invariance[13]bao gồm cả đảm bảo location m- anonymity và query l-diversity. Nguyên lý cơ bản dựa trên ý tƣởng khả năng kẻ tấn công thành công, lấy đƣợc thông tin nhạy cảm từ câu truy vấn sẽ giảm nếu một user có thể đƣợc liên kết đến nhiều giá trị thuộc tính dịch vụ hơn.

Vì vậy nhiều giá trị sẽ đƣợc biểu diễn tại tất cả các thời điểm trong một session của user. Query m-invariance đảm bảo số lƣợng những giá trị đó không nhỏ hơn m.

Ví dụ: đây là một trƣờng hợp đảm bảo location 3-anonymity, query 2- diversity2-invariance. Kẻ tấn công có thể dùng Query tracking attack để tìm đƣợc mối liên hệ giữa user U và hai thuộc tính dịch vụ „a‟ và „b‟. Tuy nhiên user

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/

U chỉ thực sự quan tâm đến thuộc tính „a‟ nhƣ vậy xác suất kẻ tấn công có thể suy đƣợc thông tin nhạy cảm là ½.

Thuật toán:

Thuật toán bắt đầu với danh sách L của tất cả user đƣợc sắp xếp theo thứ tự chỉ mục Hilbert.

Với mỗi user U giải thuật yêu cầu thông tin về:

o Tập hợp các giá trị service attribute (U.invSet) luôn luôn xuất hiện trong mỗi cloaking region đƣợc sinh ra cho U trong session hiện tại.

o Chỉ số m cho thuật toán.

o Giá trị service attribute (U.S) đƣợc U sử dụng trong session. Kết quả giải thuật sẽ cho cloaked region đảm bảo m-invariance.

Algorithm: m-InvariantCloak

1. Procedure mInvariantCloak(User U)

2. L = tập user đã được sắp xếp theo thứ tự chỉ mục Hilbert 3. Dprev = ; D =

4. if (u.invSet = ) then

5. D= mDiverseCloak(L,U)

6. params = U.invSet = {u.S | u D} 7. else 8. repeat 9. Dprev = D; D = ; params = 10. Forall (l L in order) do 11. D = D {l} 12. Params = params {l.S} 13. If (|params U.invSet| = U.m) then

14. Break

15. Endif

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 17. L = L – D

18. Until (U D) 19. Endif

20. If (|params U.invSet| < U.m) then

21. If (Dprev = ) then 22. Returnnull 23. Else 24. D = Dprev D 25. Endif 26. Endif

27. U.invSet = U.invSet {u.S | u D} 28. Return PartitionSet(D)

29. Endprocedure

30. Procedure PartitionSet (Set L)

31. Sắp xếp đối tượng trong L theo thứ tự chỉ mục Hilbert 32. peerGroups =

33. Bucket =

34. Forall (l L in order) do

35. If (AreaMBR(bucket {l}) ≤ α or |bucket| < 2) then

36. Bucket = buket {l} 37. Else (adsbygoogle = window.adsbygoogle || []).push({});

38. peerGroups = peerGroups {bucket} 39. Bucket = {l} 40. Endif 41. Endfor 42. If (|bucket| < 2) then 43. Remove peerGroups.last 44. End if

45. peerGroups = peerGroups {bucket} 46. Return peerGroups

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/

CHƢƠNG III: CHƢƠNG TRÌNH MÔ PHỎNG 3.1 Các công nghệ đã sử dụng

3.1.1 Lập trình web

3.1.1.1 Sơ lược về .Net Framework

.NET Framework là một nền tảng lập trình, thực thi ứng dụng chủ yếu trên hệ điều hành Microsoft Windows đƣợc phát triển bởi Microsoft. Các chƣơng trình đƣợc viết trên nền .NET Framework sẽ đƣợc triển khai trong môi trƣờng Common Language Runtime (CLR). Môi trƣờng phần mềm này là một máy ảo trong đó cung cấp các dịch vụ nhƣ an ninh phần mềm (security), quản lý bộ nhớ (memory management), và các xử lý lỗi ngoại lệ (exception handling).

Các thành phần chính của .NET Framework: CLR, Framework class library, parallel, computing platform, and dynamic language runtime. .NET framework bao gồm tập các thƣ viện lập trình lớn, và những thƣ viện này hỗ trợ việc xây dựng các chƣơng trình phần mềm nhƣ lập trình giao diện; truy cập, kết nối cơ sở dữ liệu; ứng dụng web; các giải thuật, cấu trúc dữ liệu; giao tiếp mạng...

.NET framework đơn giản hóa việc viết ứng dụng bằng cách cung cấp nhiều thành phần đƣợc thiết kế sẵn, ngƣời lập trình chỉ cần học cách sử dụng và tùy theo sự sáng tạo mà gắn kết các thành phần đó lại với nhau.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/

Hình 3-1: Thành phần trong các phiên bản .NET Framework (2005 - 2010)

3.1.1.2 Giới thiệu về ASP.Net

ASP.NET (Active Server Pages . NET) là một nền tảng ứng dụng web đƣợc phát triển và cung cấp bởi Microsoft, cho phép lập trình viên tạo ra những trang web động, những ứng dụng và những dịch vụ web. ASP.NET đƣợc biên dịch dƣới dạng Common Language Runtime (CLR), cho phép những ngƣời lập trình viết mã ASP.NET với bất kỳ ngôn ngữ nào đƣợc hỗ trợ bởi.NET language.

Ƣu điểm của Asp.net:

- ASP.Net cho phép lựa chọn ngôn ngữ: Visual Basic.Net, J#, C#,…

- Thay vì phải đọc và thông dịch mỗi khi trang web đƣợc yêu cầu, ASP.Net biên dịch những trang web động thành những tập tin DLL mà Server có thể thi hành nhanh chóng và hiệu quả.

- ASP.Net hỗ trợ đầy đủ bộ thƣ viện phong phú và đa dạng của .Net Framework, Web Service, truy cập cơ sở dữ liệu qua ADO.Net, …

- ASPX và ASP có thể cùng hoạt động trong 1 ứng dụng. - ASP.Net sử dụng cấu trúc lập trình mới: Code behide - Kiến trúc lập trình giống ứng dụng trên Windows.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ - Hỗ trợ quản lý trạng thái của các control

- Tự động phát sinh mã HTML cho các điều khiển tƣơng ứng với từng loại trình duyệt

3.1.1.3 SQL và hệ quản trị cơ sở dữ liệu SQL Server

SQL (Structured Query Language - ngôn ngữ truy vấn mang tính cấu trúc) là một loại ngôn ngữ máy tính phổ biến để tạo, sửa và lấy dữ liệu từ một hệ quản trị cơ sở dữ liệu quan hệ.

SQL là một chuẩn của ANSI (American National Standards Institute - Viện tiêu chuẩn quốc gia Hoa kỳ) về truy xuất các hệ thống cơ sở dữ liệu. Các câu lệnh SQL đƣợc sử dụng để truy xuất và cập nhật dữ liệu trong một cơ sở dữ liệu.

SQL hoạt động với hầu hết các chƣơng trình CSDL nhƣ MS Access, DB2, Informix, MS SQL Server, Oracle, Sybase v.v...

SQL Server là một hệ thống quản lý cơ sở dữ liệu (Relational Database Management System (RDBMS) ) sử dụng Transact-SQL để trao đổi dữ liệu giữa Client và SQL Server. SQL Server đƣợc tối ƣu để có thể chạy trên môi trƣờng cơ sở dữ liệu rất lớn lên đến Tera-Byte và có thể phục vụ cùng lúc cho hàng ngàn user.

3.1.2 Google Maps API

Google Maps là một dịch vụ ứng dụng và công nghệ bản đồ trực tuyến trên web miễn phí đƣợc cung cấp bởi Google có hỗ trợ nhiều dịch vụ dựa vào bản đồ. Google Maps cho phép thấy bản đồ đƣờng sá, đƣờng đi cho xe đạp, cho ngƣời đi bộ và xe hơi, và những địa điểm kinh doanh trong khu vực cũng nhƣ khắp nơi trên thế giới.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/

3.1.2.1 Google Maps Javascript API v3

Maps API là một phƣơng thức cho phép một website B sử dụng dịch vụ bản đồ của site A và nhúng vào website của mình (site B). Site A ở đây là Google Map, site B là các website cá nhân hoặc tổ chức muốn sử dụng dịch vụ của Google (adsbygoogle = window.adsbygoogle || []).push({});

Với Google Maps API các ứng dụng xây dựng trên maps đƣợc nhúng vào trang web cá nhân thông qua các thẻ javascripts. Phiên bản mới nhất hiện tại là Google Maps Javascript APIv3. Phiên bản này hỗ trợ tốt cho các máy để bàn truyền thống và các thiết bị di động. Google Maps API v3 nhanh hơn và nhiều ứng dụng hơn.

Lập trình viên sử dụng các dịch vụ của Google Maps API hoàn toàn miễn phí với việc xây dựng các ứng dụng nhỏ và trả phí với các ứng dụng trong kinh doanh, doanh nghiệp.

3.1.2.2 Google Maps API Web Services

Ngoài việc cung cấp các API để lập trình viên có thể nhúng ứng dụng bản đồ vào website của mình, Google Map còn cung cấp cho ngƣời dùng một dịch vụ online trên nền web (web services). Lập trình viên có thể dùng các dịch vụ này trong ứng dụng của mình với việc truy vấn, xử lý dữ liệu trên tập dữ liệu của Google nằm trên máy chủ của Google.

Các dịch vụ đƣợc Google cung cấp trong API:

A.Các dịch vụ liên quan đến vị trí: cho phép truy vấn và tìm các thông tin trên bản đồ theo nhiều loại nhƣ: tìm nhà hàng, khách sạn, trƣờng học, các địa điểm du lịch,….Ngƣời dùng có thể tìm các địa điểm bằng những từ khóa thân thiện và gần gũi,kết quả trả về của quá trình tìm kiếm là 1 chỉ dẫn và giới thiệu ngắn gọn về địa điểm và chi tiết về địa điểm đó.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/

B.Distance Matrix Web API, Directions Services: cung cấp cho ngƣời sử dụng tính khoảng cách, thời gian đi lại và đƣờng đi cụ thể giữa điểm bắt đầu và điểm kết thúc.

C.Geocoding Service: cho phép chuyển đổi giữa các địa chỉ và các mô tả khác thành vĩ độ/kinh độ của bản đồ toạ độ hoặc tìm địa chỉ dựa vào kinh độ và vĩ độ của một địa điểm.

3.1.2.3 Google Maps Android API v2

Google Maps Android API hỗ trợ lập trình viên nhúng module bản đồ của google vào trong ứng dụng android đang xây dựng. Các hàm, các dịch vụ đƣợc cung cấp khá đầy đủ và tiện ích; Ngƣời dùng ứng dụng có thể thao tác với bản đồ giống nhƣ trên trình duyệt web. Ngoài ra Google Maps Android API còn hỗ trợ đầy đủ các hàm để lập trình viên có thể tối đa tùy biến, cá nhân hóa ứng dụng android của mình, cũng nhƣ đƣa đƣợc dữ liệu vị trí địa lý cá nhân lên trên bản đồ số để hiển thị cho ngƣời dùng.

3.1.3 Xây dựng ứng dụng trên di động

3.1.3.1 Ngôn ngữ lập trình Java

Java là một ngôn ngữ lập trình dạng lập trình hƣớng đối tƣợng (OOP). Khác với phần lớn ngôn ngữ lập trình thông thƣờng, thay vì biên dịch mã nguồn thành mã máy hoặc thông dịch mã nguồn khi chạy, Java đƣợc thiết kế để biên dịch mã nguồn thành bytecode, bytecode sau đó sẽ đƣợc môi trƣờng thực thi chạy.

Cú pháp Java giống với ngôn ngữ C và C++ nhƣng có cú pháp hƣớng đối tƣợng đơn giản hơn và ít tính năng xử lý cấp thấp hơn. Do đó việc viết một chƣơng trình bằng Java dễ hơn, đơn giản hơn, đỡ tốn công sửa lỗi hơn.

Đặc điểm nổi bật nhất của Java là không phụ thuộc vào hệ điều hành và bộ xử lý. Điều này cho phép một ứng dụng viết bằng Java có thể đƣợc thực hiện

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/

trên bất kỳ hệ điều hành và hệ xử lý nào có hỗ trợ Java. Do vậy, ngƣời lập trình chỉ cần viết ứng dụng bằng Java đúng một lần, sau đó có thể sử dụng ứng dụng này trên nhiều hệ điều hành khác nhau nhƣ theo phƣơng châm: "viết một lần, sử dụng ở bất kỳ đâu" ("Write Once, Run Anywhere" (WORA)).

Ngôn ngữ Java sử dụng trong Android không phải là toàn bộ thƣ viện J2EE mà những nhà phát triển ứng dụng Java thƣờng hay sử dụng, mà nó chỉ là một phần nhỏ đƣợc xem là máy ảo Dalvik. Do đó, chỉ những thƣ viện nào có thể dùng để phục vụ cho việc phát triển các ứng dụng di động mới đƣợc sử dụng.

3.1.3.2 Hệ điều hành Android

Android là một hệ điều hành dựa trên nền tảng Linux đƣợc thiết kế dành cho các thiết bị di động có màn hình cảm ứng nhƣ điện thoại thông minh và máy tính bảng. Ban đầu, Android đƣợc phát triển bởi Tổng công ty Android, với sự hỗ trợ tài chính từ Google và sau này đƣợc Google mua lại vào năm 2005.

Android là một nền tảng mã nguồn mở gồm hệ điều hành, middleware và các ứng dụng chủ chốt dành riêng cho các thiết bị di động. Mục tiêu của nó là để điều hành, quản lý phần cứng và các tài nguyên phần mềm trên thiết bị. Nó đóng vai trò trung gian trong việc giao tiếp giữa ngƣời sử dụng và phần cứng của máy, cung cấp một môi trƣờng cho phép ngƣời sử dụng phát triển và thực hiện các ứng dụng của họ một các dễ dàng.

Hệ điều hành Android có một số ƣu điểm nhƣ: an ninh tốt, chất lƣợng cao, tính tùy biến, chi phí thấp hoặc miễn phí.

Hệ thống Android có kiến trúc chia làm 5 tầng chính:

- Tầng lõi ARM Linux: là tầng thấp nhất đƣợc xây dựng từ 2 thành phần chính là Linux kernel và bộ vi xử lý ARM (Acorn RISC Machine). Bộ vi xử lý ARM hoạt động với hiệu suất cao nhƣng tiêu thị năng lƣợng rất ít.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/

- Tầng thƣ viện: chứa mã nguồn cấp thấp cho những chức năng cơ bản nhƣ: mã hóa và giải mã âm thanh, hình ảnh kỹ thuật số, trình bày các giao diện đồ họa, bảo mật lƣu lƣợng TCP/IP, …

- Tầng máy ảo Android: là phần mềm dùng để chạy các ứng dụng trên thiết bị Android, bao gồm tập các thƣ viện lõi. Mỗi ứng dụng Android đƣợc chạy trong 1 tiến trình riêng và 1 máy ảo Dalvik riêng.

- Tầng khung ứng dụng Android: định nghĩa Android API, cung cấp bộ công cụ ở mức cao

- Tầng ứng dụng lõi Android: bao gồm các ứng dụng cơ bản hỗ trợ thêm cho ngƣời lập trình. (adsbygoogle = window.adsbygoogle || []).push({});

3.2 Xây dựng mô hình thử nghiệm 3.2.1 Phân tích lựa chọn mô hình 3.2.1 Phân tích lựa chọn mô hình

Qua nghiên cứu các kỹ thuật và các thuật toán bảo vệ tính riêng tƣ trong LBS, trong giới hạn của luận văn, tác giả lựa chọn kỹ thuật làm rối thông tin vị trí (obfuscation technique) để cài đặt trong mô hình thử nghiệm.

Để đáp ứng đƣợc việc hiện thực hóa kỹ thuật, thuật toán, kết hợp với điều kiện thực tế các thiết bị di động thông minh (smartphone, tablet, …) đang khá phổ biến, mô hình thử nghiệm đƣợc triển khai trên nền dịch vụ Web, ngƣời dùng có thể sử dụng dịch vụ qua mạng Internet.

Máy khách: các loại điện thoại di động, máy tính bảng hay các PDA có khả năng định vị vị trí địa lývà kết nối Internet và một số yêu cầu về phần cứng.

Máy chủ: máy tính tiếp nhận và đáp ứng các yêu cầu dịch vụ từ phía máy khách. Máy chủ là nơi lƣu trữ các dữ liệu địa điểm, các thông tin dịch vụ. Phần mềm cung cấp dịch vụ tại máy chủ đảm nhận chức năng xử lý chính, kết quả cuối cùng gửi cho máy khách.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/

Môi trường truyền thông: mạng Internet.

Dịch vụ định vị: máy khách cần phải cung cấp vị trí địa lý của mình kèm theo yêu cầu đến máy chủ. Trên cơ sở đó máy chủ sẽ đáp ứng yêu cầu dựa trên vị trí địa lý của máy khách. Máy khách có thể khai thác dịch vụ định vị toàn cầu GPS hay dịch vụ định vị dựa trên cơ sở mạng di động.

3.2.2 Thiết kế hệ thống

Một số yêu cầu của hệ thống:

- Có cơ sở dữ liệu thông tin, vị trí địa lý riêng và có chức năng quản trị cơ sở dữ liệu đó.

- Chƣơng trình hoạt động tốt trên thiết bị di động thông minh (smart phones) sử dụng hệ điều hành Android phiên bản 4.0 (Ice Scream Sandwich) trở lên có công nghệ định vị GPS và có kết nối mạng (3G hoặc Wifi).

- Có khả năng chuyển đổi khoảng cách địa lý về khoảng cách hình học

3.2.2.1 Mô hình hệ thống

Hệ thống đƣợc chia làm 2 module chính là module phía Server và module phía Client, trong đó:

- Module Server: là website cung cấp các dịch vụ khai thác dữ liệu đƣợc

chạy trực tuyến trên Internet. Có các chức năng quản lý dữ liệu về các địa điểm địa lý và các thông tin khác:

Thêm mới, sửa, xóa nhóm địa điểm: tên nhóm địa điểm, mô tả, hình ảnh đại diện

Thêm mới, sửa xóa địa điểm: tên địa điểm, địa chỉ, mô tả, nhóm địa điểm, vị trí địa lý

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/

Một phần của tài liệu một số thuật toán đảm bảo tính riêng tư trong hệ thống lbs (Trang 61)