2.3.1 Kỹ thuật mở rộng câu truy vấn
Thông tin quan trọng nhất trong câu truy vấn đƣợc gửi từ ngƣời sử dụng dịch vụ LBS đến nhà cung cấp dịch vụ là thông tin vị trí của ngƣời sử dụng. Do đó, kỹ thuật mở rộng câu truy vấn (query enlargement techniques) chính là kỹ thuật mở rộng giá trị thông tin vị trí.
Ý tƣởng của kỹ thuật này là làm rối, làm nhập nhằng thông tin vị trí chính xác của ngƣời sử dụng dịch vụ LBS bằng cách làm giảm độ phân giải không gian (spatial resolution) của dữ liệu vị trí. Với phƣơng pháp này, vị trí chính xác của ngƣời sử dụng sẽ đƣợc “mở rộng” thành thông tin một vùng rộng hơn trƣớc khi gửi thông tin vị trí này cho nhà cung cấp dịch vụ LBS.
2.3.1.1 Mở rộng vị trí tọa độ thành vị trí vùng
Nhóm tác giả Reynold Cheng [14] đã đề xuất một hệ thống bảo vệ tính riêng tƣ về vị trí cho ngƣời sử dụng LBS (gọi là Cloaking Agent) có hỗ trợ mức độ riêng tƣ của ngƣời sử dụng. Quá trình hoạt động của Cloaking Agent đƣợc mô tả chi tiết nhƣ sau:
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 2-4: Quy trình hoạt động của hệ thống Cloaking Agent [14]
Khi ngƣời sử dụng gửi thông tin truy vấn đến hệ thống Cloaking Agent thì hệ thống áp dụng kỹ thuật mở rộng câu truy vấn để mở rộng thông tin vị trí của ngƣời dùng. Cụ thể là thành phần Policy Translator sẽ biến đổi thông tin vị trí chính xác (precise location) thành thông tin vị trí bị che giấu (cloaked location).
Khái niệm về vị trí bị che giấu (cloaked location) hay vùng không chắc chắn (uncertain region) đƣợc đề cập trong bài báo [3], đó là một vùng có chứa vị trí chính xác của ngƣời sử dụng.
Hình 2-5: Vị trí thật và vị trí bị che giấu
2.3.1.2 Mở rộng vị trí vùng thành vị trí vùng khác
Đối với một số LBS cần cung cấp thông tin vị trí dƣới dạng vùng thay vì dƣới dạng điểm tọa độ địa lý để thực hiện việc truy vấn dữ liệu cho dịch vụ, thì
t x y 0 Vị trí thực tế Vùng không chắc chắn Ngƣời dùng Vị trí chính xác Yêu cầu dịch vụ Yêu cầu sự riêng tƣ
Nhà cung cấp Vị trí đã bị che giấu Yêu cầu dịch vụ không chính xác Kết quả không chính xác Điểm chất lƣợng Cloaking Agent Bộ dịch chính sách (Policy Translator) Bộ dịch dịch vụ (Service Translator) Bộ dịch kết quả (Result Translator) Dịch vụ (có chất lƣợng) CSDL Xử lý dịch vụ Yêu cầu sự riêng 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/
cần một độ đo vị trí khác. Định nghĩa về độ đo vị trí vùng đƣợc phát biểu trong công trình nghiên cứu [5] nhƣ sau:
Định nghĩa: Một độ đo vị trí của một ngƣời sử dụng u là diện tích một hình tròn, kí hiệu Area(r, xc, yc) có tâm là tọa độ địa lý (xc, yc) và bán kính r, sao cho xác suất P((xu, yu)) để tọa độ thực của ngƣời sử dụng (xu, yu) thuộc diện tích trên là 1.
Với loại vị trí cho LBS theo vùng, có 3 phƣơng pháp mở rộng câu truy vấn:
• Mở rộng bán kính r thành r’ với . (Hình 2-6 a)
• Dịch chuyển tâm (xc, yc) đi một khoảng d với góc quay θ. (Hình 2-6 b) • Thu hẹp bán kính r thành r’ với . (Hình 2-6 c)
Hình 2-6: Mở rộng vị trí từ vùng sang vùng [5]
2.3.1.3 Các dịch vụ về vị trí gần nhau
Dịch vụ về vị trí gần nhau (Proximity-based Services) là loại dịch vụ dựa vào vị trí và thông tin so sánh giữa một ngƣỡng định trƣớc với khoảng cách giữa ngƣời sử dụng dịch vụ với các thực thể (di chuyển) khác [15]. Dịch vụ Friend-Finder là một loại dịch vụ thuộc nhóm dịch vụ này. Với loại dịch vụ nhƣ
r r’ r’ r d θ a ) b ) c )
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/
vậy, ngoài việc cần bảo vệ tính riêng tƣ của ngƣời sử dụng dịch vụ khỏi kẻ tấn công, nhà cung cấp dịch vụ, mà còn chống lại cả đối tƣợng mà mình cần so sánh vị trí.
Để dịch vụ về vị trí gần nhau cung cấp đƣợc dịch vụ cho khách hàng thì ngƣời sử dụng dịch vụ phải cung cấp vị trí của mình cho nhà cung cấp LBS. Nhƣ vậy, các hệ thống bảo vệ tính riêng tƣ cho loại dịch vụ này phải đảm bảo đáp ứng đƣợc yêu cầu tối thiểu về tính riêng tƣ cho ngƣời sử dụng và hạn chế việc tiết lộ vị trí của ngƣời dùng càng ít càng tốt. Hƣớng tiếp cận của bài báo [15] đƣa ra một hƣớng giải quyết cho bài toán bảo vệ tính riêng tƣ của ngƣời sử dụng dịch vụ về vị trí gần nhau; ngƣời sử dụng dịch vụ vẫn có thể xác định vị trí của các đối tƣợng gần mình mà vẫn đảm bảo tính riêng tƣ.
Hình 2-7: Xác định điểm lân cận của A [15]
Trong hƣớng tiếp cận [15], mỗi ngƣời sử dụng A sẽ có một ngƣỡng lân cận A để xác định các đối tƣợng lân cận mình. Nếu khoảng cách Eulic của 2 điểm A và B nhỏ hơn A thì điểm B gọi là lận cận của A [15].
A B
d LA (i)
LB(j) A
a) Điểm B gần với điểm A
c) Điểm B có thể gần với điểm A
A
B LB (j)
LA (i) A
b) Điểm B không gần với điểm A
A B LB (j) A D LA (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/
Để đảm bảo tính riêng tƣ về vị trí của ngƣời sử dụng, thay vì phải sử dụng tọa độ vị trí địa lý thực của ngƣời A, ngƣời B thì từng tọa độ chính xác A, B sẽ đƣợc mở rộng thành vùng LA(i) và LB(j). Trong Hình 2-7, mô tả phƣơng pháp xác định xem điểm B có là vùng lân cận của điểm A không thông qua 2 vùng mở rộng LA(i) và LB(j).
• Hình 2-7 (a): Nếu khoảng cách xa nhất D của 2 vùng mở rộng LA(i) và
LB(j) nhỏ hơn ngƣỡng lân cận A của A thì điểm B sẽ là lân cận của A.
• Hình 2-7 (b): Nếu khoảng cách ngắn nhất d của 2 vùng mở rộng LA(i) và LB(j) vẫn còn lớn hơn ngƣỡng lân cận A của A thì điểm B sẽ không là lân cận của A.
• Hình 2-7 (c): Ngƣợc lại cả hai trƣờng hợp (a) và (b), nhà cung cấp dịch vụ LBS không thể xác định chính xác là điểm B có gọi là lân cận của A không, vì vậy, nhà cung cấp dịch vụ LBS chỉ khẳng định là điểm B có thể là lân cận của A.
2.3.2 Kỹ thuật che giấu không gian
2.3.2.1 Nhóm giải pháp k-anonymity
Kỹ thuật che giấu không gian (Spatial Cloaking) của ngƣời sử dụng dịch vụ LBS trong công trình [10] đã đề nghị sử dụng thông tin vị trí của k-nặc danh
(k-anonymous Location Information).
Định nghĩa 1: Tính nặc danh (anonymity) trong vấn đề bảo vệ tính riêng tƣ là trạng thái không thể nào nhận biết đƣợc bên trong một tập các đối tƣợng bị theo dõi (anonymity set).
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/
Định nghĩa 2: Một đối tƣợng đƣợc xem là k-anonymous đối với thông tin về vị trí khi và chỉ khi thông tin vị trí đại diện cho đối tƣợng đó không thể nào phân biệt đƣợc với thông tin vị trí của ít nhất k-1 đối tƣợng khác.
Theo đề xuất của công trình [10], thay vì mỗi lần giao dịch với nhà cung cấp LBS, ngƣời sử dụng phải gửi thông tin vị trí chính xác của mình (x0, y0) thì thông tin không gian của ngƣời sử dụng sẽ bị che giấu, cụ thể là thông tin không gian sẽ là ([x1, x2], [y1, y2], [t1, t2]); trong đó, [x1, x2] và [y1, y2] mô tả một vùng 2 chiều có chứa (x0, y0), [t1, t2] là khoảng thời gian mà ngƣời dùng vẫn còn nằm trong vùng 2 chiều trên. Nhƣ vậy, một vị trí cho một đối tƣợng đƣợc xem là k- anonymous khi vị trí này không chỉ mô tả vị trí của đối tƣợng cần quan sát mà còn mô tả cả vị trí của k-1 đối tƣợng khác. Nói cách khác, tại cùng 1 thời điểm xem xét vị trí của ngƣời sử dụng thì vị trí đó đƣợc mở rộng ra một vùng có chứa
k-1 ngƣời sử dụng khác.
Hình 2-8: k-anonymity (k=10)
Với k = 10 thì vị trí chính xác của ngƣời sử dụng sẽ đƣợc mở rộng ra thành phạm vi sao cho có chứa 10 ngƣời sử dụng dịch vụ tại cùng thời điểm. Vậy vị trí chính xác của ngƣời sử dụng dịch vụ đƣợc che giấu trong phạm vi vị trí của 9 ngƣời khác cùng sử dụng dịch vụ. Nếu k càng lớn thì tập các đối tƣợng theo dõi sẽ càng lớn, vùng mở rộng cho một vị trí càng rộng, do đó tính che giấu thông tin vị trí càng cao.
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ính vùng diện tích cho giải pháp k-anonymity có nhiều thuật toán đã đƣợc đề xuất, trong đó có 3 thuật toán chính là Grid, Interval Cloaking, và nnASR
2.3.2.2 Thuật toán Grid
Ý tƣởng: sắp xếp các ngƣời dùng (user) dựa trên vị trí của họ theo một chiều không gian, rồi phân chia thành các tập user bằng nhau. Sau đó, lại sắp xếp phân chia tập user chứa user gửi yêu cầu dịch vụ cần đƣợc bảo vệ (isuser), theo một chiều không gian khác. Tập user nhận đƣợc sau cùng chứa ít nhất k
user sẽ đƣợc sử dụng để tìm vùng bao nhỏ nhất để trả về.
Thực hiện: Giải thuật chia tập user thành các tập con qua hai bƣớc.
- Bước 1: các user đƣợc sắp xếp dựa trên vị trí của họ theo các trục x, rồi đến trục y, và theo ID nếu vẫn còn trùng nhau. Tập các user có thứ tự này sẽ đƣợc chia thành các block gồm các user liên tiếp nhau, mỗi block có cùng số user, ngoại trừ block cuối cùng có thể chứa nhiều user hơn những block trƣớc nó. Chỉ các user cùng block với isuser mới đƣợc xem xét ở bƣớc thứ hai.
- Bước 2: các user đƣợc sắp xếp dựa trên vị trí của họ theo trục y, rồi trục
x, cuối cùng là ID. Sau khi sắp xếp xong, các user lại đƣợc chia ra tƣơng tự nhƣ bƣớc 1. Sau cùng, tập user cùng block với isuser đƣợc trả về.
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 2-9: Minh họa giải thuật Grid
Giả sử i là ngƣời phát ra query, yêu cầu k = 2. Tập AS sẽ chứa định danh của tất cả các ngƣời dùng (20 phần tử). Đầu tiên các phần tử trong AS sẽ đƣợc sắp xếp theo giá trị tọa độ x của các phần tử.
Số block đƣợc chia ra sẽ là = 3, số ngƣời dùng trong mỗi block là 20/3 = 6. Ngƣời dùng i sẽ thuộc block 1. Với block 1 gồm 6 phần tử, giải thuật lại tiếp tục sắp xếp các phần tử trong đó theo giá trị tọa độ y của các phần tử. Sau đó chia block 1 thành 3 block dựa trên thứ tự sắp xếp có đƣợc. Ngƣời dùng i sẽ thuộc block 1. Và block này sẽ đƣợc sử dụng để trả về.
Algorithm: Grid
Input: một request gốc, một số nguyên dương k
Output: tập các người dùng chứa ít nhất k phần tử và có chứa
người phát ra request r.
Method:
1. Mảng AS được khởi tạo với ID của tất cả tập user (I). 2. nob≔ {Tính số block}
3. if (nob ≤ 1) return block chứa tất cả các ID của tập user (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/ 4. for (dim ∈ {x, y}) do
5. if (dim = x) then
6. Sắp xếp mảng AS theo trục x, sau đó đến trục y, cuối cùng là ID của user
7. else
8. Sắp xếp mảng AS theo trục y, sau đó đến trục x, cuối cùng là ID của user
9. endif
10. issuerIndex ≔chỉ số của AS[issuerIndex] = issuer(r) 11. upb ≔ {số user trên mỗi block}
12. ibi ≔ {vị trí của block chứa isuser} 13. if (|AS| mod nob = 0 OR ibi < nob – 1) then
14. start ≔ ibi.upb
15. end ≔ start + upb – 1 16. else
17. start ≔ (nob – 1) . upb 18. end ≔ |AS| – 1
19. endif
20. AS ≔ AS[start]…AS[end] 21. endfor
22. if (|AS| ≥ k) then
23. returntập ID của user trong mảng AS 24. else
25. return null 26. end if
2.3.2.3 Thuật toán Interval Cloaking
Ý tƣởng: mục tiêu là tổng quát hóa yêu cầu dịch vụ theo chiều không gian hoặc thời gian. Đối với chiều không gian, lặp lại việc chia nhỏ vùng bao toàn bộ không gian vị trí. Tại mỗi bƣớc lặp, vùng hiện thời qprev đƣợc chia thành bốn vùng bằng nhau. Nếu có ít hơn k user nằm trong vùng q mà chứa issuer thì
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/
với chiều thời gian, đầu tiên tổng quát vị trí không gian (theo ý tƣởng trên) đến mức mong muốn thỏa giá trị độ phân giải (resolution) đƣợc truyền vào. Sau đó, chờ đến khi có đủ k user đi vào vùng không gian đƣợc tổng quát, trả về vùng này cùng với khoảng thời gian [t1, t2].
Thực hiện: Dƣới đây là phƣơng pháp tính vùng diện tích với chiều không gian cho k-anonymity với giải thuật Interval Cloaking[10]:
Hình 2-10: Quy trình chọn ra vùng 5-anonymity cho điểm tô đỏ
Với phƣơng pháp này, đầu tiên tính vùng không gian chứa tất cả ngƣời đang sử dụng dịch vụ, sau đó chia làm bốn vùng không gian này và chọn vùng không gian nhỏ hơn, có chứa vị trí chính xác của ngƣời sử dụng. Tiếp tục chia nhỏ vùng không gian đã chọn cho đến khi vùng không gian cuối cùng có chứa k
ngƣời sử dụng dịch vụ.
Algorithm: Interval Cloaking
1. Khởi tạo các vùng không gian q và qprev
2. Khởi tạo vùng không gian qcurrent là phần tư của vùng không gian q có chứa isuser (người yêu cầu dịch vụ cần được bảo vệ)
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/
4. Nếu số lượng user nằm trong qcurrent<kmin thì trả về vùng qprev là vùng trước khi chia nhỏ lần cuối cùng
5. Chia vùng không gian q thành 4 góc phần tư bằng nhau 6. qprev := q
7. q := phần tư chứa p
8. Xóa các user nằm ngoài q trong qcurrent 9. Lặp lại từ bước 2
Nhận xét: Hƣớng tiếp cận [10] đã đƣa ra giải pháp che giấu không gian vị trí của ngƣời sử dụng dịch vụ dựa trên vị trí của k-1 ngƣời sử dụng dịch vụ xung quanh tại cùng thời điểm. Tuy nhiên, vùng không gian mở rộng cho vị trí của ngƣời sử dụng sẽ rất nhỏ nếu nhƣ vị trí của ngƣời dùng nằm trong một vùng có mật độ ngƣời sử dụng quá cao (quảng trƣờng, sân vận động,…). Ngƣợc lại, trong vùng có mật độ ngƣời sử dụng quá thấp (sa mạc, khu vực thƣa dân cƣ, …) thì vùng không gian mở rộng sẽ cực kỳ lớn để đảm bảo tính riêng tƣ cho vị trí thực của ngƣời dùng, đồng thời, sẽ làm tăng số lƣợng kết quả truy vấn dịch vụ lên rất lớn tƣơng ứng với vùng không gian truy vấn lớn.
Bên cạnh đó, mặc dù kẻ tấn công không thể xác định đƣợc vị trí chính xác của ngƣời dùng nhƣng nếu kẻ tấn công theo dõi quá trình truy vấn dữ liệu nhiều lần liên tục thì sẽ biết đƣợc lộ trình di chuyển của ngƣời sử dụng dịch vụ [8].
Hình 2-11: Theo dõi quá trình truy vấn dữ liệu
Vùng xám chính là vùng mở rộng cho vị trí chính xác của ngƣời sử dụng, nhƣng quá trình thay đổi vị trí chính xác của ngƣời dùng thì không làm thay đổi nhiều về vùng mở rộng.
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/
2.3.2.4 Thuật toán nearest neighbor ASR (nnASR)
Ý tƣởng: tạo ra vùng bao chứa ngƣời tạo ra yêu cầu dịch vụ (isuser) có kích thƣớc nhỏ nhất có thể, bằng cách sửa lại phƣơng pháp làm mờ đơn giản nhất (naïve method - tìm k ngƣời dùng gần nhất).
Thực hiện: với ngƣời dùng u cho trƣớc, đầu tiên xác định tập S chứa u và
k – 1 ngƣời dùng gần u nhất. Từ S, chọn ngẫu nhiên ngƣời dùng u’. Vì vậy, xác suất để chọn đúng ngƣời dùng u ban đầu là 1/k. Sau đó tính toán tập S’ chứa u’
và k – 1 ngƣời dùng gần u’ nhất. Kế tiếp, tìm tập S’’ = S’⋃ {u}. Cuối cùng, tìm vùng bao hình chữ nhật hoặc hình tròn chứa hết vị trí các ngƣời dùng trong tập
S’’ trên, rồi trả về kết quả.
Hình 2-12: Minh họa giải thuật nnASR
Giả sử U1 phát ra request với k = 3. Đầu tiên, hai ngƣời dùng gần nhất với