You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: index.html
+87-13Lines changed: 87 additions & 13 deletions
Original file line number
Diff line number
Diff line change
@@ -4352,17 +4352,16 @@ <h3>Parsing content</h3>
4352
4352
<section><h2id="security">Security and Privacy</h2>
4353
4353
<section><h3>Chain of trust</h3>
4354
4354
<p>
4355
-
Web sites and applications using Web NFC are not trusted.
4356
-
This means that the user needs to be made aware of what NFC functionality
4357
-
a web page intends to do. Implementations need to
4358
-
make sure that when the user authorizes a method of this API, only
4359
-
that action is run, without side effects, and exactly in the context and
4360
-
the number of times the user allows the execution of NFC related
4361
-
operations, according to the algorithmic steps detailed in this
4362
-
specification.
4355
+
Implementations need to make sure that when the user authorizes a method which is part of the Web NFC API, only that action is run, without side effects.
4363
4356
</p>
4364
4357
<p>
4365
-
Web NFC does not sign <a>NFC content</a>. In order to protect the
4358
+
By default, NDEF doesn't provide any way to make the content trusted
4359
+
beyond allowing tags to be made permanently read-only after writing
4360
+
data to them. This can even be done from a factory setting.
4361
+
</p>
4362
+
<p>
4363
+
Data written by the use of this API is not signed or encrypted automatically,
4364
+
which follows existing native NFC APIs. In order to protect the
4366
4365
integrity and authenticity of NDEF messages, the NFC Forum introduced
4367
4366
[[NDEF-SIGNATURE]]. Using <a>NDEF signature</a> and
4368
4367
key management is the responsibility of the application.
@@ -4381,6 +4380,81 @@ <h3>Parsing content</h3>
4381
4380
[[RFC2048]] and [[RFC2046]].
4382
4381
</p>
4383
4382
</section>
4383
+
<section><h3>Things that users should be made aware of when using NFC</h3>
4384
+
<p>
4385
+
This section details some of the things that users ought to be aware
4386
+
of when using NFC. It is recommendated that implementations help educate
4387
+
the users of given facts before or when related NFC actions are performed.
4388
+
</p>
4389
+
<h4>Data that is read is shared with site</h4>
4390
+
<p>
4391
+
When a site has access to read NFC content, then the data of the scanned
4392
+
tags is shared with the site, in a similar way to uploading files and images.
4393
+
As with any site, it is up to the user whether to trust that the site handles this data properly and in the
4394
+
intended manner.
4395
+
</p>
4396
+
<h4>A site may modify and overwrite data of tags that are not made read-only</h4>
4397
+
<p>
4398
+
Deployed NFC solutions, like tags in stores etc, should always be made
4399
+
read-only in order to ensure they are not modified by mistake or as part
4400
+
of a malicious act.
4401
+
</p>
4402
+
<p>
4403
+
Private tags and stickers are often unlocked (writable) from the factory
4404
+
and the user should be aware that such tags might be overwritten/modified
4405
+
by scanning them.
4406
+
</p>
4407
+
<h4>Reading a fixed (e.g. mounted) tag may expose reading location</h4>
4408
+
<p>
4409
+
A fixed tag may encode its ID or location in the data, meaning that reading
4410
+
it exposes that information to the site that knows the physical location of the tag, which then can deduct the location
4411
+
the read took place. That combined with being logged into a service, can
4412
+
share your location data with the site.
4413
+
</p>
4414
+
<p>
4415
+
Data written is readable by other apps and sites with granted read access
4416
+
Any NDEF data on a tag can be read by any app or web site with the proper
4417
+
access, so if that is not intended then the data should be encrypted in a
4418
+
secure manner that only who is supposed to read it can.
4419
+
</p>
4420
+
<h4>Multiple tags may be within the reading field at the same time</h4>
4421
+
<p>
4422
+
NFC can only read one tag at the time, but multiple tags can be detected
4423
+
and one of the tags can be selected as the tag to communicate with.
4424
+
</p>
4425
+
<p>
4426
+
Use cases for this could be having multiple smart cards (NFC based) in
4427
+
your wallet and not wanting to take the card out.
4428
+
</p>
4429
+
<p>
4430
+
This is mostly useful for payment cards and travel cards that are read
4431
+
by external hardware and thus not a use-case for Web NFC. For Web NFC,
4432
+
we do not allow reading when there are multiple tags available, preventing the following attack vector.
4433
+
</p>
4434
+
<p>
4435
+
There is an attack vector, where someone places another malicious NFC
4436
+
tag/sticker on top of a legitimate tag, in order to load the wrong
4437
+
app/site, or inject wrong data into the right app/site. They can
4438
+
do so by cloning the data of the original tag and modifying it -
4439
+
either by changing the URL to load a malicious app/site, or by
4440
+
changing the data to inject malicious data in the right app/site.
4441
+
Example: the tag is supposed to take you to <ahref="https://example.com">https://example.com</a> but is modified
4442
+
to take you to <ahref="https://exаmple.com">https://exаmple.com</a> (that is with a Cyrillic а) - it looks legitimate
4443
+
and you might now to giving sensitive data to a malicious site.
4444
+
</p>
4445
+
<p>
4446
+
Loading web sites from a tag is outside the scope of Web NFC, but it
4447
+
is recommended for user agents to not auto load URLs when multiple
4448
+
tags are available due to the above attack vector.
4449
+
</p>
4450
+
<p>
4451
+
By disallowing reading when there are multiple tags available, Web
4452
+
NFC protects well against injecting wrong/malicious data into a site
4453
+
as shielding the existing NFC tag is quite difficult as it requires
4454
+
ferrite shielding which is quite visible. Metal interferes with the
4455
+
magnetic field and makes tags not readable.
4456
+
</p>
4457
+
</section>
4384
4458
4385
4459
<sectionclass="informative"><h2>Assets</h2>
4386
4460
<div>
@@ -4429,17 +4503,17 @@ <h3>Parsing content</h3>
4429
4503
and attack vectors.
4430
4504
</li>
4431
4505
<li>
4432
-
<strong>Malicious NFC tag creator</strong>: same as malicious web page
4433
-
owner, but it has a possibility to create, delete or modify the NFC
4506
+
<strong>Malicious NFC tag creator</strong>: same as above, but with the
4507
+
additional possibility to create, delete or modify the NFC
4434
4508
tags locally.
4435
4509
As a result can compromise integrity of user device, cause data
4436
4510
injection, redirect to malicious web page, phishing user location,
4437
4511
causing side actions such as installing applications, trigger
4438
4512
automated dispatching or other actions.
4439
4513
</li>
4440
4514
<li>
4441
-
<strong>Malicious man-in-the-middle (MITM) user</strong>: any MITM
4442
-
style attack between Web NFC implementation and an <a>NFC adapter</a>
4515
+
<strong>Compromised device or user agent: man-in-the-middle (MITM) attack</strong>:
4516
+
any MITM style attack between Web NFC implementation and an <a>NFC adapter</a>
4443
4517
in a user device, including attempts to interact with a web site using
4444
4518
Web NFC by presenting modified or replayed NDEF records.
0 commit comments