ओफ़्स्कुसेटिंग पॉइंट्स के लिए क्या सरल, प्रभावी तकनीकें उपलब्ध हैं?


14

हम एक वेबसाइट बना रहे हैं जो उपयोगकर्ताओं से स्थान की जानकारी (अंक) एकत्र करेगी। हम उपयोगकर्ताओं के स्थान की गोपनीयता (जैसे, अक्सर उपयोगकर्ता अपने घर का पता, जो संवेदनशील है) को साझा करने के लिए तकनीक की खोज कर रहे हैं। एक विकल्प जो दिमाग में आया, उसे डेटाबेस में संग्रहीत करने से पहले बिंदुओं को बाधित या "हैश" करना है, जिससे इन संवेदनशील डेटा को स्टोर करने की आवश्यकता समाप्त हो जाएगी।

हमारी मूलभूत आवश्यकताएं हैं, मेरा मानना ​​है:

  1. किसी एकल बिंदु को देखते हुए, एक किलोमीटर या इसके भीतर मूल बिंदु को प्राप्त करना संभव नहीं है, इसलिए, यहां तक ​​कि बिंदु से जुड़े सभी मेटाडेटा को भी दिया जाता है (यानी, मानें कि पूरा डेटाबेस समझौता किया गया है)।

  2. एक ही मूल बिंदु के अनुरूप मोटे अंकों के एक बड़े सेट को देखते हुए, मूल बिंदु को प्राप्त करना अभी भी संभव नहीं है। (उदाहरण के लिए, एक आसान तकनीक मूल बिंदु के लिए एक यादृच्छिक वेक्टर जोड़ना होगा, लेकिन यदि आप इसे पर्याप्त बार करते हैं, तो मूल बिंदु के चारों ओर अव्यवस्थित बिंदु क्लस्टर होंगे।)

यह अच्छा होगा यदि विभिन्न सांख्यिकीय गुणों को संरक्षित किया गया था, हालांकि मुझे नहीं पता कि इस स्तर पर कौन से गुण महत्वपूर्ण हैं। उदाहरण के लिए, मैं चाहता हूं कि एक ग्रिड में जमा होने के बजाय "प्राकृतिक" तरीके से बाधित बिंदुओं को बाधित किया जाए। हालांकि, गोपनीयता इससे अधिक महत्वपूर्ण है।


आपकी आवश्यकताओं का उल्लेख नहीं है कि आप किस प्रकार की सटीकता को बनाए रखना चाहते हैं, आप केवल ओब्यूशन आवश्यकता पर ध्यान केंद्रित करते हैं। निम्नलिखित एल्गोरिथ्म आपके द्वारा सूचीबद्ध आवश्यकताओं को तुच्छ रूप से संतुष्ट करता है, बल्कि बेकार है: प्रत्येक बिंदु को 0 ° N, 0 ° पूर्व में इंगित करें। संभवत: आप भी कुछ कसौटी पर खरा उतरना चाहते हैं, जैसे कि ओब्सेस्ड पॉइंट वास्तविक बिंदु के x किमी के भीतर है।
लवलेव्स

एक दूसरा प्रश्न: आप मेटाडेटा का उल्लेख करते हैं और यदि संपूर्ण डेटाबेस से समझौता किया जाता है तो सही बिंदु को फिर से संगठित करने में सक्षम है। यदि मेटाडेटा आपको उसी "सही बिंदु" से जुड़े मोटे बिंदुओं की पहचान करने की अनुमति नहीं देता है, तो यदि आप उन्हें एक-दूसरे के साथ नहीं जोड़ सकते हैं तो कोई व्यक्ति बार-बार यादृच्छिक नमूनों से "सही बिंदु" को कैसे फिर से संगठित कर सकता है? दूसरी ओर, यदि मेटाडेटा आपको बिंदुओं को संबद्ध करने की अनुमति देता है, तो जब आपसे फिर से कुछ पहले से ही बाधित बिंदु के स्थान की रिपोर्ट करने के लिए कहा जाता है, तो बस वही ओब्जेक्टस मान वापस लौटाएं जो पिछले सभी समय में आया था।
लालेव्स

क्या आपको हैश किए गए डेटा से वास्तविक स्थान को फिर से बनाने में सक्षम होने की आवश्यकता है, या क्या इसका उपयोग किसी व्यक्ति की पुष्टि करने के लिए किया जाएगा, जहां वे कहते हैं कि वे हैं? यदि यह बाद वाला है, तो एक तरफा हैश, एक नमक हैशिंग + ज्यामिति का डब्ल्यूकेटी पर्याप्त होगा। यदि यह पूर्व है, तो आपको अपने हैश फ़ंक्शन के व्युत्क्रम परिवर्तन को करने के लिए कुछ कार्य करना होगा - दो-तरफ़ा हैश।
MerseyViking

क्या सेवा के एक हिस्से के रूप में अन्य उपयोगकर्ता डेटा / अन्य डेटासेट के साथ अंकों की तुलना की जाएगी?
मैथ्यू स्नेप

@ लवली, मैं वास्तव में करता हूं: "एक किलोमीटर या तो के भीतर"। लेकिन मुझे उम्मीद है कि ऑबफ्यूजन स्तर एल्गोरिदम का एक पैरामीटर है। आपकी दूसरी टिप्पणी के बारे में, हां, मेटाडेटा बिंदुओं के सहयोग की अनुमति देता है (उदाहरण के लिए, एक उपयोगकर्ता एक ही बिंदु पर कई बार प्रवेश कर सकता है)। और एक एल्गोरिथ्म जो एक ही मूल बिंदु को दिए गए एक ही ओब्जेक्टस पॉइंट में परिणत होता है, ठीक है; लेकिन अगर एल्गोरिथ्म ऐसा नहीं करता है, तो मैं मूल बिंदु को पुनर्प्राप्त नहीं कर सकता (यह सवाल का पूरा कारण है) यदि परीक्षण करने के लिए उसी obfuscated बिंदु का उपयोग किया जाना चाहिए।
रीड करें

जवाबों:


6

अच्छी तरह से देखिए:

एमपी आर्मस्ट्रांग, रशटन जी, जिमरमैन डीएल। भौगोलिक रूप से मास्किंग स्वास्थ्य डेटा गोपनीयता बनाए रखने के लिए । स्टेट मेड १ ९९९; 18: 497-525।

( उद्धरण , पूर्ण पाठ )

वे विस्थापन, रोटेशन, यादृच्छिक गड़बड़ी और एकत्रीकरण सहित बिंदु डेटा के लिए विभिन्न 'जियो-मास्क' पर चर्चा करते हैं। यद्यपि वे विशिष्ट तकनीकी समाधानों पर चर्चा नहीं करते हैं कि इसे कैसे लागू किया जाए, हर दृष्टिकोण के साथ आपके द्वारा प्राप्त / ढीले होने के बारे में जानकारी के लिए उपयोगी संकेत हैं।

अधिक सैद्धांतिक विचारों के लिए इसी तरह के विषय पर सवाल के मेरे जवाब पर एक नज़र है ।


2
अच्छा संदर्भ, यह एक सक्रिय क्षेत्र है तो कई उपलब्ध हैं। मैंने एक और प्रश्न में एक संक्षिप्त लेख ( मैथ्यूज और हरेल, 2011 ) की सिफारिश की है । मेरा यह भी मानना ​​है कि इंटरनेशनल जर्नल ऑफ हेल्थ जियोग्राफिक्स के पास समय-समय पर इसके कागजात होते हैं ( जियोमास्क टैग के साथ मेरी साइटुलिक लाइब्रेरी देखें )। मैं काम करने के लिए हालांकि किसी भी उपकरण से नहीं आया हूं, हालांकि, यह एक उपयोगी प्रयास है।
एंडी डब्ल्यू

1
@AndyW संकेत एंडी के लिए धन्यवाद। वास्तव में - सार्वजनिक स्वास्थ्य / स्थानिक महामारी विज्ञान में उपयोग किए जाने वाले उच्च रिज़ॉल्यूशन जियोडेटा की बढ़ती मात्रा के साथ समस्या अधिक से अधिक प्रासंगिक हो जाती है। मेरे पास एक ही भावना थी कि व्यावहारिक समाधान अभी भी सैद्धांतिक लोगों से बहुत पीछे हैं - निश्चित रूप से एक जगह है जहां कुछ अच्छे विकास किए जा सकते हैं!
राडेक

1

आप यादृच्छिक बिंदुओं द्वारा अपने बिंदुओं को स्थानांतरित करने के लिए पेरलिन के शोर का उपयोग करने का प्रयास कर सकते हैं , लेकिन एक दूसरे के करीब आने वाले लाभ के साथ एक दूसरे के करीब रहेंगे, लेकिन यह समानता दूरी के साथ बंद हो जाती है। यदि शोर फ़ंक्शन 0 के आसपास केंद्रित है, तो सांख्यिकीय विश्लेषण को अभी भी स्रोत पर समान डेटा वापस करना चाहिए, क्योंकि पेरलिन शोर (विशेष रूप से 2002 संस्करण) एक मोटे तौर पर गाऊसी वितरण है।


यदि मैं एक ही बिंदु की कई प्रतियों को स्थानांतरित करता हूं, तो मूल बिंदु को स्थानांतरित बिंदुओं का विश्लेषण करके पुनर्प्राप्त किया जा सकता है?
रीड

जिस तरह से मैंने इसकी कल्पना की थी, आप शोर समारोह में देखने के रूप में बिंदु के निर्देशांक का उपयोग करेंगे। तो दो समान बिंदु संयोग बने रहेंगे। आप एक तीसरे मान का उपयोग कर सकते हैं, कह सकते हैं कि वह बिंदु जिसे 3D पेरलिन शोर फ़ंक्शन में लुकअप के रूप में बनाया गया था। तब (और मैं कोई सांख्यिकीविद् नहीं हूं), यह स्रोत डेटा को फिर से संगठित करने के लिए अव्यवहारिक होगा जब तक कि यादृच्छिक बीज और आपके द्वारा चुने गए शोर के पैमाने का पता नहीं चल जाता। फिर भी मुझे यकीन नहीं है कि यह व्यावहारिक रूप से व्यावहारिक होगा।
मर्सीवैकिंग

आह, तो आप इसे एक हैश फ़ंक्शन में बना रहे हैं। यह मान लेना असुरक्षित हो सकता है कि यादृच्छिक बीज और स्केल गुप्त रहते हैं, हालांकि; मैं मान रहा हूं कि सर्वर पूरी तरह से समझौता कर लिया गया है।
रीड

ओह! ठीक है, मुझे एक चुनौती पसंद है :) अब आप वास्तव में भौतिक सुरक्षा के बारे में बात कर रहे हैं। आपके पास हैश जनरेट करने के लिए एक अलग ऑफ-साइट मशीन है, उन्हें SSL जैसे किसी सुरक्षित कनेक्शन पर भेजें। आप एक या दोनों सर्वर पर एक वॉचडॉग सेट कर सकते हैं जैसे कि यदि कोई नीचे जाता है, या आप एक बड़ा लाल बटन दबाते हैं, तो दूसरा स्वतः बंद हो जाता है। यदि आप क्लाउड इंस्टेंस का उपयोग करते हैं, तो अन्य उदाहरण से कुछ भी प्राप्त करने का कोई व्यावहारिक तरीका नहीं होगा, अमेज़ॅन के
डेटाचेरेन्स

एक कोरोलरी के रूप में, आपको केवल डेटा सुरक्षा पर उतना ही खर्च करना चाहिए जितना डेटा के लायक है। कई परतें हैं जिन्हें आप अपने सुरक्षा मॉडल में जोड़ सकते हैं, लेकिन कुछ बिंदु पर आपको पर्याप्त कहना होगा। यह शायद अन्य एसई साइटों में से एक के लिए इस सवाल का क्षेत्रीकरण लायक होगा।
MerseyViking

0

यह शायद जरूरत से ज्यादा जटिल और शामिल है, हालांकि यह लेने के लिए एक मार्ग हो सकता है:

एक साधारण अजगर लिपि बनाएं जो आपके मूल इनपुट बिंदुओं को लेती है, उन्हें एक निश्चित स्वीकार्य ऑब्सफैक्टिंग दूरी के अनुसार बफ़र करती है, बफ़र्स का उपयोग कर सुविधा अवरोध (100, उदाहरण के लिए) के रूप में यादृच्छिक संख्याओं की संख्या पैदा करती है, और फिर एक का उपयोग करके बिंदुओं में से एक का चयन करें छद्म यादृच्छिक संख्या जनरेटर नए obfuscated बिंदु के रूप में उपयोग करने के लिए। प्रत्येक आक्षेप के लिए एक नया छद्म यादृच्छिक संख्या बनाना भी आवश्यक होगा।

आपके परिदृश्य के आधार पर, इसे एक टूलबॉक्स में पैक किया जा सकता है और एक GPService के रूप में REST एंडपॉइंट के रूप में एक्सेस किया जा सकता है, इसलिए स्मृति स्थानों में अवरोध उत्पन्न होता है और आपके भौतिक डेटाबेस में केवल obfuscated बिंदु पोस्ट किया जाता है।


1
यह एक आर्कगिस कार्यान्वयन को मानता है, लेकिन ओपी में किसी का उल्लेख नहीं किया गया था। फिर भी, एक दिलचस्प समाधान!
blah238

3
इस प्राकृतिक समाधान में परीक्षा पर कुछ संभावित दोष हैं: (1) कई अलग-अलग बिंदुओं को एक ही बिंदु पर मैप किया जा सकता है। (2) ओपी के शो के अनुसार अंक को हटाना आसान है। (3) अक्सर अंक को संबंधित विशेषताओं के लिए कुछ भौगोलिक संबंधों में खड़े होने की आवश्यकता होती है: उदाहरण के लिए , घर के स्थानों को सड़कों के पास होना चाहिए और झीलों में या रेल यार्ड में नहीं। इस तरह के मुद्दे समस्या को वास्तविक रूप से कठिन, दिलचस्प और जीआईएस विश्लेषण के योग्य बनाते हैं (अन्यथा कोई भी मूल निर्देशांक को बेतरतीब ढंग से घिस सकता है जब उन्हें डेटाबेस में पहली बार दर्ज किया जाता है और इसके साथ किया जाता है)।
whuber

0

ठीक है, इसलिए हम जिस एल्गोरिथ्म पर विचार कर रहे हैं, वह इस प्रकार है:

  1. 200 मीटर ग्रिड (जियोकोडिंग में योनि की भरपाई के लिए) के लिए बिंदु को गोल करें।
  2. कुछ क्रिप्टोग्राफिक हैशिंग एल्गोरिथ्म (जैसे, SHA2) का उपयोग करके बिंदु के निर्देशांक के पाठ को हैश करें।
  3. हैश फ़ंक्शन के परिणामों के साथ बिंदु के निर्देशांक (1 किमी के वांछित मोटापे के स्तर तक) के निचले-क्रम के बिट्स को बदलें।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.