Những kỹ thuật đơn giản, hiệu quả cho các điểm che giấu có sẵn?


14

Chúng tôi đang tạo một trang web sẽ thu thập thông tin vị trí (điểm) từ người dùng. Chúng tôi đang khám phá các kỹ thuật để bảo vệ quyền riêng tư của người dùng (ví dụ: thường người dùng sẽ chia sẻ địa chỉ nhà của họ, rất nhạy cảm). Một lựa chọn xuất hiện trong đầu là làm xáo trộn hoặc "băm" các điểm trước khi lưu trữ chúng trong cơ sở dữ liệu, loại bỏ nhu cầu lưu trữ những dữ liệu nhạy cảm này.

Yêu cầu cơ bản của chúng tôi là, tôi tin rằng:

  1. Với một điểm bị che khuất duy nhất, không thể lấy được điểm ban đầu trong phạm vi (giả sử) một km hoặc thậm chí, với tất cả các siêu dữ liệu liên quan đến điểm (nghĩa là toàn bộ cơ sở dữ liệu bị xâm phạm).

  2. Cho một tập hợp lớn các điểm bị che khuất tương ứng với cùng một điểm ban đầu, vẫn không thể lấy được điểm ban đầu. (Ví dụ, một kỹ thuật dễ dàng sẽ là thêm một vectơ ngẫu nhiên vào điểm ban đầu, nhưng nếu bạn làm điều này đủ thời gian, các điểm bị che khuất sẽ co cụm xung quanh điểm ban đầu.)

Sẽ thật tuyệt nếu các thuộc tính thống kê khác nhau được bảo tồn, mặc dù tôi không biết thuộc tính nào quan trọng ở giai đoạn này. Ví dụ, tôi muốn các điểm bị che khuất phân tán theo cách "tự nhiên" hơn là tích lũy vào lưới. Tuy nhiên, quyền riêng tư quan trọng hơn thế này.


Yêu cầu của bạn không đề cập đến loại chính xác nào bạn muốn duy trì, bạn chỉ tập trung vào yêu cầu che giấu. Thuật toán sau đây thỏa mãn một cách tầm thường các yêu cầu bạn đã liệt kê, nhưng khá vô dụng: ánh xạ mỗi điểm thành 0 ° N, 0 ° về phía đông. Có lẽ bạn cũng muốn đáp ứng một số tiêu chí, như điểm bị che khuất nằm trong khoảng x km so với điểm thực tế.
Llaves

Câu hỏi thứ hai: bạn đề cập đến siêu dữ liệu và có thể xây dựng lại điểm thực nếu toàn bộ cơ sở dữ liệu bị xâm phạm. Nếu siêu dữ liệu không cho phép bạn xác định các điểm bị xáo trộn liên quan đến cùng một "điểm thực", thì làm thế nào ai đó có thể tái tạo "điểm thực" từ các mẫu ngẫu nhiên lặp lại nếu bạn không thể liên kết chúng với nhau? Mặt khác, nếu siêu dữ liệu cho phép bạn liên kết các điểm, thì khi bạn được yêu cầu báo cáo lại vị trí của một số điểm đã bị che khuất, chỉ cần trả về cùng một giá trị bị che khuất được trả về tất cả các lần trước đó.
Llaves

Bạn có cần phải có khả năng tạo lại vị trí thực tế từ dữ liệu được băm hay nó sẽ chỉ được sử dụng để xác nhận một người là nơi họ nói họ đang ở? Nếu đó là cách thứ hai, hàm băm một chiều, băm một muối + WKT của hình học sẽ đủ. Nếu đó là trước đây, thì bạn sẽ phải có một số chức năng ở đâu đó để thực hiện chuyển đổi ngược lại cho hàm băm của bạn - hàm băm hai chiều.
MerseyViking

Các điểm sẽ được so sánh với dữ liệu người dùng khác / bộ dữ liệu khác như một phần của dịch vụ?
Matthew Snape

@Llaves, tôi thực sự: "trong vòng một km hoặc hơn". Nhưng tôi hy vọng mức độ obfuscation là một tham số cho thuật toán. Về nhận xét thứ hai của bạn, vâng, siêu dữ liệu cho phép liên kết các điểm (ví dụ: một người dùng có thể nhập cùng một điểm nhiều lần). Và một thuật toán dẫn đến cùng một điểm bị xáo trộn với cùng một điểm ban đầu là ổn; nhưng nếu thuật toán không làm được điều đó, tôi không thể khôi phục điểm ban đầu (đó là toàn bộ lý do của câu hỏi) để kiểm tra xem có nên sử dụng cùng một điểm bị che khuất đó không.
Reid

Câu trả lời:


6

Có một cái nhìn tại:

MP Armstrong, Rushton G, Zimmerman DL. Địa lý che giấu dữ liệu sức khỏe để giữ bí mật . Thống kê Med.1999; 18: 497 bóng525.

( trích dẫn , toàn văn )

Họ thảo luận về các 'mặt nạ địa lý' khác nhau cho dữ liệu điểm bao gồm chuyển vị, xoay, nhiễu loạn ngẫu nhiên và tổng hợp. Mặc dù họ không thảo luận về các giải pháp kỹ thuật cụ thể về cách triển khai nó, nhưng có những gợi ý hữu ích cho thông tin về những gì bạn đạt được / mất với mọi phương pháp.

Để xem xét lý thuyết nhiều hơn, hãy xem câu trả lời của tôi cho câu hỏi về chủ đề tương tự.


2
Tham khảo tốt đẹp, nó là một lĩnh vực hoạt động rất nhiều có sẵn. Tôi đã đề xuất một bài viết tổng quan ( Mathews & Harel, 2011 ) trong một câu hỏi khác . Thỉnh thoảng tôi cũng tin rằng Tạp chí Địa lý Y tế Quốc tế có bài báo về nó (xem thư viện citeulike của tôi với thẻ geomask ). Tôi đã không bắt gặp bất kỳ công cụ nào mặc dù để thực hiện công việc, có lẽ là một nỗ lực hữu ích.
Andy W

1
@AndyW Cảm ơn con trỏ Andy. Thật vậy - với số lượng ngày càng tăng của geodata độ phân giải cao được sử dụng trong dịch tễ học y tế công cộng / không gian, vấn đề ngày càng trở nên phù hợp. Tôi có cùng cảm giác rằng các giải pháp thực tế vẫn còn thua xa các giải pháp lý thuyết - chắc chắn là một nơi mà một số phát triển tốt đẹp có thể được thực hiện!
radek

1

Bạn có thể thử sử dụng tiếng ồn Perlin để thay đổi điểm của mình một lượng ngẫu nhiên, nhưng với lợi thế là các điểm gần nhau sẽ vẫn gần nhau, nhưng điểm tương đồng này rơi ra theo khoảng cách. Nếu hàm nhiễu tập trung vào khoảng 0, phân tích thống kê vẫn sẽ trả về dữ liệu tương tự như trên nguồn, vì nhiễu Perlin (đặc biệt là phiên bản 2002) là phân phối Gaussian.


Nếu tôi dịch chuyển nhiều bản sao của cùng một điểm, thì điểm gốc có thể được phục hồi bằng cách phân tích các điểm đã dịch chuyển không?
Reid

Theo cách tôi tưởng tượng, bạn sẽ sử dụng tọa độ của điểm như một tra cứu vào hàm nhiễu. Vì vậy, hai điểm giống nhau sẽ vẫn trùng khớp. Bạn có thể sử dụng giá trị thứ ba, giả sử ngày điểm được tạo như một tra cứu vào chức năng nhiễu 3D Perlin. Sau đó (và tôi không phải là người thống kê), việc tái cấu trúc dữ liệu nguồn là không thực tế trừ khi hạt giống ngẫu nhiên và quy mô của tiếng ồn bạn chọn đã được biết. Ngay cả sau đó tôi không chắc nó sẽ thực sự khả thi.
MerseyViking

Ah, vậy là bạn đang biến nó thành một hàm băm. Tuy nhiên, có thể không an toàn khi cho rằng hạt giống và quy mô ngẫu nhiên vẫn là bí mật; Tôi cho rằng máy chủ đã bị xâm nhập hoàn toàn.
Reid

Phù! Được rồi, tôi thích một thử thách :) Bây giờ bạn thực sự đang nói về bảo mật vật lý. Bạn có một máy ngoài trang web riêng biệt để tạo băm, gửi chúng qua kết nối an toàn với một cái gì đó như SSL. Bạn có thể thiết lập một cơ quan giám sát trên một hoặc cả hai máy chủ để nếu một máy bị hỏng hoặc bạn nhấn một nút lớn màu đỏ, máy chủ kia sẽ tự động tắt. Nếu bạn đã sử dụng các thể hiện của đám mây, thì sẽ không có cách nào thực tế để lấy bất cứ thứ gì từ cá thể kia, không xâm nhập vào trung tâm dữ liệu của Amazon ...
MerseyViking

Như một hệ quả tất yếu, bạn chỉ nên chi tiêu nhiều cho bảo mật dữ liệu vì dữ liệu có giá trị. Có nhiều lớp bạn có thể thêm vào mô hình bảo mật của mình, nhưng đến một lúc nào đó bạn phải nói đủ. Có lẽ đáng để đặt câu hỏi này cho một trong những trang SE khác.
MerseyViking

0

Điều này có lẽ phức tạp và liên quan nhiều hơn cần thiết, tuy nhiên nó có thể là một lộ trình:

Tạo một tập lệnh python đơn giản lấy các điểm đầu vào ban đầu của bạn, đệm chúng theo một khoảng cách che giấu chấp nhận được nhất định, tạo n số điểm ngẫu nhiên bằng cách sử dụng bộ đệm làm ràng buộc tính năng (ví dụ 100), sau đó chọn một trong các điểm bằng cách sử dụng một trình tạo số giả ngẫu nhiên để sử dụng làm điểm bị xáo trộn mới. Cũng cần phải tạo một số giả ngẫu nhiên mới cho mỗi lần xáo trộn.

Tùy thuộc vào kịch bản của bạn, điều này có thể được đóng gói trong Hộp công cụ và được truy cập dưới dạng Dịch vụ GPS với điểm cuối REST để quá trình che giấu xảy ra ở các vị trí bộ nhớ và chỉ điểm bị che khuất được đăng vào cơ sở dữ liệu vật lý của bạn.


1
Điều này giả định việc triển khai ArcGIS, nhưng không được đề cập trong OP. Tuy nhiên, một giải pháp thú vị!
blah238

3
Giải pháp tự nhiên này có một số sai sót tiềm năng khi kiểm tra: (1) một số điểm khác biệt có thể được ánh xạ tới cùng một điểm. (2) Thật dễ dàng để vạch mặt các điểm, như OP cho thấy. (3) Thông thường các điểm cần phải đứng trong một số mối quan hệ địa lý với các đặc điểm liên quan: ví dụ : vị trí nhà phải ở gần đường phố và không ở trong hồ hoặc trong sân đường sắt. Các vấn đề như vậy làm cho vấn đề thực sự khó khăn, thú vị và đáng để phân tích GIS (nếu không, người ta chỉ có thể xáo trộn các tọa độ ban đầu một cách ngẫu nhiên khi chúng lần đầu tiên được nhập vào cơ sở dữ liệu và được thực hiện với nó).
whuber

0

OK, vì vậy thuật toán chúng tôi đang xem xét như sau:

  1. Làm tròn điểm đến lưới 200 mét (để bù cho những điều mơ hồ trong mã hóa địa lý).
  2. Băm văn bản của tọa độ điểm bằng một số thuật toán băm mật mã (ví dụ: SHA2).
  3. Thay thế các bit bậc thấp hơn của tọa độ điểm (lên đến mức độ che khuất mong muốn là 1km) bằng các kết quả từ hàm băm.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.