forked from sharmapn/MapSafe.xyz
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsafeguarding-guide.html
292 lines (241 loc) · 14.4 KB
/
safeguarding-guide.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
<!DOCTYPE html>
<html lang="en">
<head>
<!-- Basic Page Needs
================================================== -->
<meta charset="utf-8">
<title>MapSafe | A Complete tool for Geospatial Data Sovereignty</title>
<!-- Mobile Specific Metas
================================================== -->
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="description" content="Creative Agency Bootstrap Template">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0">
<meta name="author" content="Themefisher">
<meta name="generator" content="Themefisher Airspace Template v1.0">
<!-- Favicon -->
<link rel="shortcut icon" type="image/x-icon" href="images/logo.png" />
<!-- bootstrap.min css -->
<link rel="stylesheet" href="plugins/bootstrap/bootstrap.min.css">
<!-- Ionic Icon Css -->
<link rel="stylesheet" href="plugins/Ionicons/css/ionicons.min.css">
<!-- animate.css -->
<link rel="stylesheet" href="plugins/animate-css/animate.css">
<!-- Magnify Popup -->
<link rel="stylesheet" href="plugins/magnific-popup/magnific-popup.css">
<!-- Slick CSS -->
<link rel="stylesheet" href="plugins/slick/slick.css">
<!-- Main Stylesheet -->
<link rel="stylesheet" href="assets/css/theme/style.css">
<!-- GIF Player -->
<!-- <script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js'></script> -->
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<link rel="stylesheet" href="assets/css/gifplayer.css" />
<script src="assets/js/jquery.gifplayer.js"></script>
<link href="https://vjs.zencdn.net/8.0.4/video-js.css" rel="stylesheet" />
<!-- Matomo analytics captured to improve our tool. No data is stored on the cloud, as they are stoed on the MapSafe server.
Need to know
- how much the tool is used,
- if users are primarily using computers or mobile,
- if sageguard and verification pages in their respective pages are used
-->
<script>
var _paq = window._paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//mapsafe.xyz/admin/matomo/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '1']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<!-- End Matomo Code -->
</head>
<body id="body">
<!-- Header Start -->
<header class="navigation">
<div class="container">
<div class="row">
<div class="col-lg-12">
<nav class="navbar navbar-expand-lg p-0">
<a class="navbar-brand" href="index.html">
<img src="images/logo_name.png" style="width:195px;height:50px;" alt="Logo">
</a>
<button class="navbar-toggler collapsed" type="button" data-toggle="collapse" data-target="#navbarsExample09" aria-controls="navbarsExample09" aria-expanded="false" aria-label="Toggle navigation">
<span class="ion-android-menu"></span>
</button>
<div class="collapse navbar-collapse ml-auto" id="navbarsExample09">
<ul class="navbar-nav ml-auto">
<li class="nav-item @@home">
<a class="nav-link" href="index.html">Home</a>
</li>
<li class="nav-item dropdown @@portfolio">
<a class="nav-link dropdown-toggle" href="#" id="dropdown03" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Guides <span class="ion-ios-arrow-down"></span></a>
<ul class="dropdown-menu" aria-labelledby="dropdown03">
<li><a class="dropdown-item @@portfolioFilter" href="safeguarding-guide.html">Safeguarding Guide</a></li>
<li><a class="dropdown-item @@portfolioSingle" href="verification-guide.html">Verification Guide</a></li>
</ul>
</li>
<li class="nav-item @@service"><a class="nav-link" href="safeguard.html">Safeguard</a></li>
<li class="nav-item @@service"><a class="nav-link" href="verification.html">Verification</a></li>
<li class="nav-item @@contact"><a class="nav-link" href="contact.html">Contact</a></li>
<li class="nav-item @@service"><a class="nav-link" href="disclaimer.html">Disclaimer</a></li>
</ul>
</div>
</nav>
</div>
</div>
</div>
</header><!-- header close -->
<section class="portfolio-single-page section-sm">
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="project-content mt-50">
<h2 class="mb-3">Safeguarding Guide</h2>
<p> Mapsafe uses geomasking, encryption, and notarisation to safeguard geospatial datasets.
Each of these techniques is explained below. </p>
<h3>How do I load data?</h3>
<p>First, make sure the data you want to mask is in a shapefile format. Mapsafe can only load zipped shapefiles. Once you have the zip file, just click the 'Choose File' button in Upload tab and select the zipped shapefile from your file system, as shown in the video at the end of this page.</p>
<h3 id="maskingguide">What is geographic masking?</h3>
<p>Geographic masks are a set of techniques that alter the location of points in a map to protect privacy without overly affecting any spatial patterns. In other words, <i>geographic masks allow researchers to publish useful maps of approximate locations, without exposing sensitive data or violating anyone's privacy</i>. Of course, this is a trade-off: with more masking comes more privacy, but this privacy comes as the cost of <i>information loss</i>. If we apply too much masking to our data, the end result may not resemble the original data whatsoever. While the balance between privacy and information loss can be tricky, its best to air on the side of privacy.</p>
<p> Mapsafe uses the <a href="https://maskmy.xyz/" target="_blank"<font color="blue">Maskmy.XYZ</font> </a> tool for masking. The tool performs donut masking, which is a funny term for a simple concept: moving each point randomly between a minimum and maximum distance.
A more comprehensive explanation about the masking feature can be found on this <a href="https://onlinelibrary.wiley.com/doi/10.1111/tgis.12606" target="_blank" <font color="blue">document.</font> </a> </p>
<img src="https://maskmy.xyz/images/donutmasking.PNG" alt="Donut masking" style="width:600px;height:290px;">
<br><br>
<h3 id="binningguide">What is hexagonal binning?</h3>
<p>Hexagonal binning (hexbinning) is the other option for anonymising geospatial datasets in MapSafe. Geographic
points are aggregated into hexagonal cells using Uber's <a href="https://github.com/uber/h3-js/" target="_blank"<font color="blue">h3-js library</font> </a>
Users can choose the spatial resolution (i.e., the Uber H3 spatial indexing level) along with the buffer radius for encoding.
The buffer radius (in KM) allows specification of how far the coverage of the binning should span. </p>
<p>Depending on
the area depicted in the dataset, a suitable spatial resolution level will need to be chosen to balance privacy and
utility. Large hexagons (lower resolution) would result in many distant locations shown in the same cell, while small
hexagons (higher resolutions) may present results that are too sparse to cover the entire area.
Therefore, a resolution size needs to be chosen that covers the entire area (i.e., dense representations) and contains
a small cell size (i.e., preserving location details) to better balance the trade-off between spatial coverage and
location details than other H3 indexing levels.</p>
<img src="https://mapsafe.xyz/images/binning_guide.png" alt="Hexagonal Binning" style="width:600px;height:290px;"> <br>
<p>(Image acquired from https://www.kontur.io/blog/why-we-use-h3/) </p>
<br><br>
<h3 id="encryption">What is encryption?</h3>
<p>Encryption uses a passphrase to transform the original data into a form unrecoverable by an adversary.
Mapsafe uses the encryption facility provided by the Web.Cryto toolkit whiich is in-built within the browser.
A 15 term passphrase is randomly generated and used to encrypt the masked dataset data which is later required to recover the original data.
The masked dataset is encrypted in the browser memory at three levels. </p>
<style>
ul.a { list-style-type: circle; }
ul.b { list-style-type: square; }
ol.c { list-style-type: upper-roman; }
ol.d { list-style-type: lower-alpha; }
.customIndent { margin-left: -15px; }
ul { padding-left: 30px; }
</style>
<ul class="a">
<li>The full 15 term passphrase is used to encrypt the original dataset,</li>
<li>10 terms of the full passphrase to encrypt the masked dataset, and </li>
<li>5 terms of the full passphrase to encrypt the `more' masked dataset.</li>
</ul>
<p>These passphrases are required to later decrypt to each of the three levels.</p>
<p>A detailed description of the encryption and decryption proceses are provided in this image. <br> <br>
<img src="https://mapsafe.xyz/images/EncDecFlow.png" alt="Encryption Decryption Flow" style="width:800px;height:350px;">
<br><br>
<!-- <a href="images/EncDecFlow.pdf" target="_blank">
<font color="blue">document</font> </a> -->
</p>
<br>
The obfuscation (masking and hexabinning) and encryption are carrried out at multipe levels: <br> <br>
<img src="images/encdeclevels.png" alt="Encryption decryption levels" style="width:900px;height:180px;">
<br><br><br>
<h3 id="notarisation" > What is notarisation?</h3>
<p> Notarisation create a digital fingerprint of the data. Usually this is done via a cryptographic hash function that generates a 64 character string. Even the slightest change in the data creates a completely different hash value.
Mapsafe mints (stores) the hash value of the encrypted file (containing the original and obfiscated geospatial datasets)
as a public record on a tamper-proof Ethereum Blockchain under the user's blockchain account.
Using the Metamask Wallet, a user can mint this hash under their Ethereum account.
Once the has value is minted, a url link to the Ethereum address where the data is stored as a public record is presented.</p>
<h7>Seting up for Notarisation</h4>
<p>All data should be notarised on the Ethereum mainnet. However, for testing one can use the public Ethereum testnet, such as Goerli.
To mint data on ether networks, you need to carry out these tasks.
<ul class="a">
<li>First, visit <a href="https://vanity-eth.tk/" target="_blank">Vanity-ETH </a> to generate an Ethereum vanity address and a private key.</li>
<li>Second, using your generated Ethereum address, request Ether from this <a href="https://goerlifaucet.com" target="_blank">Goerli Faucet</a></li>
<li>Third, install the <a href="https://metamask.io/" target="_blank">metamask wallet</a>, and connect it to the Goerli testnet or mainnet.</li>
<li>If using the testnet, you can check the Ether balance and all minted data on your address, at the
<a href="https://goerli.etherscan.io/" target="_blank">Goerli etherscan</a> </li>
</ul>
<br>
<h3>How do I use the mapsafe tool?</h3>
<p>Watch this video to learn how to safeguard your data, from start to finish!</p>
<video
id="my-video"
class="video-js"
controls
preload="auto"
width="828"
height="448"
data-setup="{}"
>
<source src="images/safeguard.mp4" type="video/mp4" />
<source src="MY_VIDEO.webm" type="video/webm" />
<p class="vjs-no-js">
To view this video please enable JavaScript, and consider upgrading to a
web browser that
<a href="https://videojs.com/html5-video-support/" target="_blank"
>supports HTML5 video</a
>
</p>
</video>
</div>
</div>
</div>
</div>
</section>
<!-- footer Start -->
<footer class="footer">
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="footer-manu">
<ul>
<!-- <li><a href="about.html">About Us</a></li> -->
<li><a href="contact.html">Contact us</a></li>
<!-- <li><a href="service.html">How it works</a></li> -->
<li><a href="faq.html">FAQ</a></li>
<li><a href="disclaimer.html">Disclaimer</a></li>
</ul>
</div>
<p class="copyright mb-0">Copyright <script>document.write(new Date().getFullYear())</script> © Designed & Developed by <a
href="http://www.themefisher.com">Themefisher</a>. All rights reserved.
<br> Get More <a href="https://themefisher.com/free-bootstrap-templates/">Free Bootstrap
Templates</a>
</p>
</div>
</div>
</div>
</footer>
<!--Scroll to top-->
<div id="scroll-to-top" class="scroll-to-top">
<span class="icon ion-ios-arrow-up"></span>
</div>
<!--
Essential Scripts
=====================================-->
<!-- Main jQuery -->
<script src="plugins/jquery/jquery.min.js"></script>
<!-- Bootstrap 3.1 -->
<script src="plugins/bootstrap/bootstrap.min.js"></script>
<!-- slick Carousel -->
<script src="plugins/slick/slick.min.js"></script>
<script src="plugins/magnific-popup/jquery.magnific-popup.min.js"></script>
<!-- filter -->
<script src="plugins/shuffle/shuffle.min.js"></script>
<script src="plugins/SyoTimer/jquery.syotimer.min.js"></script>
<!-- Google Map -->
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCcABaamniA6OL5YvYSpB3pFMNrXwXnLwU&libraries=places"></script>
<script src="plugins/google-map/map.js"></script>
<script src="assets/js/template_script.js"></script>
<script src="https://vjs.zencdn.net/8.0.4/video.min.js"></script>
</body>
</html>