|
113 | 113 | <style>
|
114 | 114 | table.simple { border: 1px solid #000; }
|
115 | 115 | table.simple td { border-right: 1px solid #000; }
|
| 116 | + img { width: 100%; height: auto } |
116 | 117 | </style>
|
117 | 118 | </head>
|
118 | 119 |
|
@@ -4380,6 +4381,125 @@ <h3>Parsing content</h3>
|
4380 | 4381 | [[RFC2048]] and [[RFC2046]].
|
4381 | 4382 | </p>
|
4382 | 4383 | </section>
|
| 4384 | + <section> <h3>Privacy implications and implementation considerations</h3> |
| 4385 | + <p> |
| 4386 | + The comparison to barcodes or QR codes is appropriate because NFC tags |
| 4387 | + are another non-human-readable method of exchanging data and sharing |
| 4388 | + them can have unforeseen privacy and security implications. For a web |
| 4389 | + site to read a QR code, a piece of interruptive UI must be used (the |
| 4390 | + camera) which captures an image and makes it apparent that the contents |
| 4391 | + of this image (including the QR code) will be available to the web page, |
| 4392 | + making it clear to the user that scanning is being performed. |
| 4393 | + </p> |
| 4394 | + <p> |
| 4395 | + Scanning a tag with NFC requires the user to place the scanning device |
| 4396 | + (e.g. phone) in close proximity to the NFC tag. |
| 4397 | + </p> |
| 4398 | + <p> |
| 4399 | + Scanning a tag when a Web NFC scan is not active, triggers the host OS |
| 4400 | + handling. Thus launching URLs and apps from scanning a NFC tag is not |
| 4401 | + handled and supported by Web NFC itself. |
| 4402 | + </p> |
| 4403 | + <p> |
| 4404 | + Furthermore, Web NFC scanning needs to be activated from a user interaction, |
| 4405 | + and scanning is paused when the web site is not in focus or the device |
| 4406 | + screen turns off (i.e. is not unlocked). This is put in place so that |
| 4407 | + accidental scans do not happen. |
| 4408 | + </p> |
| 4409 | + <p> |
| 4410 | + Web NFC further recommends that the implementation makes it very clear |
| 4411 | + UX-wise to the user that data will be scanned when placing the scanning |
| 4412 | + device in close proximity to a NFC tag - basically mimicking the UX flow |
| 4413 | + of scanning a QR code. |
| 4414 | + </p> |
| 4415 | + <p> |
| 4416 | + There are many options for doing so, like playing back a sound or showing |
| 4417 | + some persistent UI while the scanning can happen, for instance a modal |
| 4418 | + dialog with the ability to cancel at any point. |
| 4419 | + </p> |
| 4420 | + <img src="images/scan.jpg"> |
| 4421 | + <p> |
| 4422 | + An implementation could also show the data that is about to be uploaded, |
| 4423 | + postpone sharing the read data until the user OK'd it and even show some |
| 4424 | + UI allowing the user to select which records to share. |
| 4425 | + </p> |
| 4426 | + <img src="images/approve.jpg"> |
| 4427 | + <section> <h4>Reading and writing during a scan</h4> |
| 4428 | + <p> |
| 4429 | + When the user scans a tag, at that point the web application has access |
| 4430 | + to read the data on the tag, and in case it is not read-only, also to |
| 4431 | + write data to the tag. Consumer stickers for private usage (e.g. in the |
| 4432 | + maker community) are often unlocked (read + write), whereas commercial |
| 4433 | + deployment of NFC are read-only. |
| 4434 | + </p> |
| 4435 | + <p class="note"> |
| 4436 | + An older protocol SNEP (Simple NDEF Exchange Protocol) allowed active |
| 4437 | + devices (e.g. a phone) to receive NDEF data from another active device, |
| 4438 | + but it is unsupported by Web NFC and it is currently being deprecated |
| 4439 | + on supported native platforms. |
| 4440 | + </p> |
| 4441 | + <p class="note"> |
| 4442 | + A newer protocol TNEP (Tag NDEF Exchange Protocol) allows bidirectional |
| 4443 | + communication between a scanner device (e.g. phone) and actively powered |
| 4444 | + device like an IOT device. It is currently unsupported by Web NFC, and |
| 4445 | + furthermore it has restrictions on what input to accept and the IOT device |
| 4446 | + must ensure that the accepted records are valid. |
| 4447 | + </p> |
| 4448 | + <p> |
| 4449 | + If the tag contains privacy sensitive data, such data will be shared with |
| 4450 | + the site. Potentially, not immediately if the UX requires the user to |
| 4451 | + confirm the data exchange before doing so. |
| 4452 | + </p> |
| 4453 | + <p> |
| 4454 | + In some cases it might be obvious that the tag/device contains privacy |
| 4455 | + sensitive data, say in case it is a glucose meter which can indicate |
| 4456 | + that you, or someone in the close family, are a diabetes patient. |
| 4457 | + </p> |
| 4458 | + <p> |
| 4459 | + In other cases it might not be obvious that that can happen, but a user |
| 4460 | + might have used an app or website to write data to a tag that unknowingly |
| 4461 | + to the user encoded a user id or the like, which can later be read back |
| 4462 | + by any other site. |
| 4463 | + </p> |
| 4464 | + <p> |
| 4465 | + Private and unexpected data can also be stored in files (e.g. word |
| 4466 | + pressing documents, PDFs or camera images) which are uploaded using |
| 4467 | + the file upload API. The mitigations associated with the Web NFC API |
| 4468 | + are stronger than those associated with file upload and the data less |
| 4469 | + likely to be personally identifiable. |
| 4470 | + </p> |
| 4471 | + </section> |
| 4472 | + <section> <h4>Reading and writing during a scan</h4> |
| 4473 | + <p> |
| 4474 | + A scan of a tag might also reveal user location if the website knows |
| 4475 | + how to identify the tag and know the tags location in the real world, |
| 4476 | + like if it is mounted inside a museum. It might also be able to deduct |
| 4477 | + it somewhat as for instance FeliCa NFC tags are mostly used in Japan, |
| 4478 | + but Web NFC doesn’t reveal what tag technology is used. |
| 4479 | + </p> |
| 4480 | + <p> |
| 4481 | + This does not bring the web advertising and tracking model into the |
| 4482 | + real world, because it requires an action by the user and it is |
| 4483 | + obvious when being used and cannot be triggered in the background. |
| 4484 | + </p> |
| 4485 | + </section> |
| 4486 | + <section> <h4>Overwriting existing data</h4> |
| 4487 | + <p> |
| 4488 | + There is also the fear that writing to a NFC tag can ruin it or |
| 4489 | + “brick it”. As NFC tags were designed to be read by multiple user |
| 4490 | + applications, NDEF tags have been designed with an easy way to make |
| 4491 | + devices permanently read-only and can even be configured that way |
| 4492 | + from a factory. |
| 4493 | + </p> |
| 4494 | + <p> |
| 4495 | + NDEF is a simple exchange format for reading and writing data and |
| 4496 | + not for bi-directional communication. NFC supports multiple |
| 4497 | + communications formats based on lower tech (thus not locked as |
| 4498 | + read-only as NDEF) and none of these are supported by Web NFC. |
| 4499 | + </p> |
| 4500 | + </section> |
| 4501 | + </section> |
| 4502 | + |
4383 | 4503 | <section> <h3>Things that users should be made aware of when using NFC</h3>
|
4384 | 4504 | <p>
|
4385 | 4505 | This section details some of the things that users ought to be aware
|
@@ -4861,8 +4981,8 @@ <h4>Multiple tags may be within the reading field at the same time</h4>
|
4861 | 4981 | The editors would like to thank Jeffrey Yasskin, Anne van Kesteren,
|
4862 | 4982 | Anssi Kostiainen, Domenic Denicola, Daniel Ehrenberg, Jonas Sicking,
|
4863 | 4983 | Don Coleman, Salvatore Iovene, Rijubrata Bhaumik, Wanming Lin, Han Leon,
|
4864 |
| - Ryan Sleevi, Balázs Engedy, Theodore Olsauskas-Warren and Reilly Grant |
4865 |
| - for their contributions to this document. |
| 4984 | + Ryan Sleevi, Balázs Engedy, Theodore Olsauskas-Warren, Reilly Grant, |
| 4985 | + Diego González and Daniel Appelquist for their contributions to this document. |
4866 | 4986 | </p>
|
4867 | 4987 | <p>
|
4868 | 4988 | Special thanks to Luc Yriarte and Samuel Ortiz for their initial
|
|
0 commit comments