<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/rss-style.xsl" type="text/xsl"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	    xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	     xmlns:dc="http://purl.org/dc/elements/1.1/"
	   xmlns:atom="http://www.w3.org/2005/Atom"
	     xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	  xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>
<channel>
	<title>nfc &#8211; Terence Eden’s Blog</title>
	<atom:link href="https://shkspr.mobi/blog/tag/nfc/feed/" rel="self" type="application/rss+xml" />
	<link>https://shkspr.mobi/blog</link>
	<description>Regular nonsense about tech and its effects 🙃</description>
	<lastBuildDate>Fri, 09 Jan 2026 09:18:34 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://shkspr.mobi/blog/wp-content/uploads/2023/07/cropped-avatar-32x32.jpeg</url>
	<title>nfc &#8211; Terence Eden’s Blog</title>
	<link>https://shkspr.mobi/blog</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title><![CDATA[Why my NFC passport didn't work at Heathrow's eGates]]></title>
		<link>https://shkspr.mobi/blog/2026/01/why-my-nfc-passport-didnt-work-at-heathrows-egates/</link>
					<comments>https://shkspr.mobi/blog/2026/01/why-my-nfc-passport-didnt-work-at-heathrows-egates/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Sat, 10 Jan 2026 12:34:42 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[nfc]]></category>
		<category><![CDATA[travel]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=66898</guid>

					<description><![CDATA[I travel a fair bit. My passport is usually quickly scanned and I can enter or leave a country without delay. But every time I use the eGates at Heathrow Airport to get back in to the UK, my passport is rejected and I&#039;m told to seek assistance from Border Force. Today, I think I discovered why!  The border guards are usually polite and tell me there&#039;s nothing wrong with my passport (not that they …]]></description>
										<content:encoded><![CDATA[<p>I travel a fair bit. My passport is usually quickly scanned and I can enter or leave a country without delay. But every time I use the eGates at Heathrow Airport to get back in to the UK, my passport is rejected and I'm told to seek assistance from Border Force. Today, I think I discovered why!</p>

<p>The border guards are usually polite and tell me there's nothing wrong with my passport (not that they would tell me if I were on a watchlist). This only happens at Heathrow, all other machines read my passport fine. I can even <a href="https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/">read my passport's NFC chip on Linux</a>.</p>

<p>I was following the instructions to use the gates - specifically <em>this</em> one:</p>

<p><a href="https://www.youtube.com/watch?v=V00e8l--hso"><img src="https://shkspr.mobi/blog/wp-content/uploads/2026/01/egate.webp" alt="Hold the photo page of your passport firmly on the reader for a few seconds and keep it in the same position." width="1024" height="576" class="aligncenter size-full wp-image-66899"></a></p>

<p>After 3 failed attempts, it told me to seek assistance. As there were lots of free gates, I decided to test a theory.</p>

<p>I went to a different gate, inserted my passport, and held it down with my <em>left</em> hand.  The gate successfully read my passport and let me through.</p>

<p>What's the difference between my left and right hand? On my left, I wear my <a href="https://shkspr.mobi/blog/2008/08/selling-out/">wedding ring</a>, on my right, I wear an <a href="https://shkspr.mobi/blog/2024/02/giving-the-finger-to-mfa-a-review-of-the-z1-encrypter-ring-from-cybernetic/">NFC ring</a>!</p>

<p>As far as I can tell, the ePassport Gate is only expecting <em>one</em> NFC response to its query. That's pretty reasonable. I suspect it prevents people holding two different passports in the reader.   Most other eGates that I've used don't require the passport to be held down; they pull it in.</p>

<p>So, there you have it. If you wear an NFC ring, or have an NFC implant, be aware that it can cause "<a href="https://tfl.gov.uk/fares/refunds-and-replacements/card-clash">card clash</a>" which could confuse passport readers.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=66898&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2026/01/why-my-nfc-passport-didnt-work-at-heathrows-egates/feed/</wfw:commentRss>
			<slash:comments>17</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Contactless Payments with GrapheneOS]]></title>
		<link>https://shkspr.mobi/blog/2025/06/contactless-payments-with-grapheneos/</link>
					<comments>https://shkspr.mobi/blog/2025/06/contactless-payments-with-grapheneos/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Sun, 29 Jun 2025 11:34:57 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[GrapheneOS]]></category>
		<category><![CDATA[nfc]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=61636</guid>

					<description><![CDATA[Google&#039;s monopolistic stranglehold on Android results in poor experience for power-users, and artificially restricts choice for those who have older phones.  For example, Google Wallet is the de facto way to use NFC payments on Android. There&#039;s one problem though - it only works with Google&#039;s Android.  If you have the temerity to install a 3rd party Android OS - like the hyper-secure GrapheneOS - …]]></description>
										<content:encoded><![CDATA[<p>Google's monopolistic stranglehold on Android results in poor experience for power-users, and artificially restricts choice for those who have older phones.  For example, Google Wallet is the <i lang="la">de facto</i> way to use NFC payments on Android. There's one problem though - it only works with <em>Google's</em> Android.  If you have the temerity to install a 3rd party Android OS - like the hyper-secure <a href="https://grapheneos.org/">GrapheneOS</a> - you'll be locked out of it.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2025/06/GPay-fs8.png" alt="This device can't be set up to pay contactless. Your device doesn't meet pay contactless security standards. It may be rooted or running uncertified software." width="504" class="aligncenter size-full wp-image-61637">

<p>First of all, Google is lying. It <em>does</em> meet security standards and it is <em>not</em> rooted.  I get that <a href="https://shkspr.mobi/blog/2023/05/the-limits-of-general-purpose-computation/">I have no right to run someone else's software in an environment they don't like</a>, but this is just misinformation.  3rd party OSes are often <em>more</em> secure that a stock OS which has been left to rot by an unresponsive manufacturer.</p>

<p>Anyway, here's how you can use contactless payments on Graphene.</p>

<h2 id="prerequisites"><a href="https://shkspr.mobi/blog/2025/06/contactless-payments-with-grapheneos/#prerequisites">Prerequisites</a></h2>

<p>I'm going to tell you what I did. If you found another way, leave a comment or write your own blog post.</p>

<p>I'm using the latest version of Graphene (2025062000) with Play Services installed. The app is running in my main profile. None of the advanced app protection has been toggled for the app. NFC is on.</p>

<p>You will have to agree to <a href="https://www.curve.com/legal/privacy/">Curve's privacy policy</a>. And the privacy policy of your credit card. Look, if you're using Graphene, you're probably overly privacy sensitive. If you're concerned about The Man™ knowing that you used your card to buy a breakfast beer and then sharing that with 958 trusted partners, just use cash instead.</p>

<h2 id="install-curve"><a href="https://shkspr.mobi/blog/2025/06/contactless-payments-with-grapheneos/#install-curve">Install Curve</a></h2>

<p><a href="https://www.curve.com/join#D4MK9ZKN">Here's a referral link to install Curve</a> - join and you get £10.  Or, you can <a href="https://play.google.com/store/apps/details?id=com.imaginecurve.curve.prd">install directly from the Play Store</a>.</p>

<p>You'll need to create an account and pass KYC / AML checks. <a href="https://www.fca.org.uk/consumers/fca-firm-checker/firm-10456-925447">Curve are regulated by the FCA</a> so you should feel safe giving your details to them.</p>

<h2 id="add-a-card"><a href="https://shkspr.mobi/blog/2025/06/contactless-payments-with-grapheneos/#add-a-card">Add a card</a></h2>

<p>Curve is a <em>virtual</em> card provider. So add your existing Visa or MasterCard to the app (no Amex). When you spend on Curve, you're actually spending on the underlying card you've added. Curve promise cheaper foreign exchange fees and a few other perks. But what we're really interested in is NFC payments.</p>

<h2 id="set-up-curve-pay"><a href="https://shkspr.mobi/blog/2025/06/contactless-payments-with-grapheneos/#set-up-curve-pay">Set up Curve Pay</a></h2>

<p>On your app's dashboard, you should see a banner saying "Curve Pay is good to go!". If not, head into your account and set it up there.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2025/06/Good-to-go-fs8.png" alt="Curve dashboard." width="504" class="aligncenter size-full wp-image-61638">

<p>If it has all set up, you should see a welcome tutorial explaining how contactless works.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2025/06/Good-To-Go-fs8.png" alt="Animation showing how to hold your phone to an NFC payment terminal." width="504" class="aligncenter size-full wp-image-61639">

<h2 id="set-your-default-wallet"><a href="https://shkspr.mobi/blog/2025/06/contactless-payments-with-grapheneos/#set-your-default-wallet">Set your default wallet</a></h2>

<p>On your phone, go to Settings → Connected devices → Connection Preferences → NFC → Contactless Payments.</p>

<p>Or, search your settings for Pay.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2025/06/Pay-Location-fs8.png" alt="Settings search page." width="504" class="aligncenter size-full wp-image-61640">

<p>Select your default wallet app - in this case, Curve.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2025/06/Default-Wallet-App-fs8.png" alt="List of available wallet apps." width="504" class="aligncenter size-full wp-image-61641">

<h2 id="pay-for-something"><a href="https://shkspr.mobi/blog/2025/06/contactless-payments-with-grapheneos/#pay-for-something">Pay for something</a></h2>

<p>You need to make sure NFC is turned on before you can use NFC payments. I know that sounds obvious, but I forgot to do it the first time and got very confused.</p>

<p>Go to a local shop, pick up something, hand it to the merchant, wave your phone over the payment terminal like you are a technowizard from the future.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2025/06/Notification-fs8.png" alt="Notification showing I paid £3.95 for a sticky bun." width="504" class="aligncenter size-full wp-image-61642">

<p>Enjoy eating whatever you paid for!</p>

<h2 id="thats-it"><a href="https://shkspr.mobi/blog/2025/06/contactless-payments-with-grapheneos/#thats-it">That's it!</a></h2>

<p>Once you're done, you can turn of NFC if you're paranoid.</p>

<p>Apparently, <a href="https://justfollow.me.uk/@sborrill/114761774161342879">Curve also works with Garmin Smart Watches</a> - but I don't have one to test out.</p>

<p>If you've found this blog post useful, I'd be grateful if you signed up with <a href="https://www.curve.com/join#D4MK9ZKN">my referral link for Curve</a>.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=61636&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2025/06/contactless-payments-with-grapheneos/feed/</wfw:commentRss>
			<slash:comments>23</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Reading NFC Passport Chips in Linux]]></title>
		<link>https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/</link>
					<comments>https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Tue, 24 Jun 2025 11:34:49 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[CyberSecurity]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[nfc]]></category>
		<category><![CDATA[rfid]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=61546</guid>

					<description><![CDATA[For boring and totally not nefarious reasons, I want to read all the data contained in my passport&#039;s NFC chip using Linux. After a long and annoying search, I settled on roeften&#039;s pypassport.  I can now read all the passport information, including biometrics.  Table of ContentsBackgroundRecreating the MRZPython code to generate an MRZCan you read a cancelled passport?Cryptography and other…]]></description>
										<content:encoded><![CDATA[<p>For boring and totally not nefarious reasons, I want to read all the data contained in my passport's NFC chip using Linux. After a long and annoying search, I settled on <a href="https://github.com/roeften/pypassport">roeften's pypassport</a>.</p>

<p>I can now read all the passport information, including biometrics.</p>

<p></p><nav role="doc-toc"><menu><li><h2 id="table-of-contents"><a href="https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/#table-of-contents">Table of Contents</a></h2><menu><li><a href="https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/#background">Background</a><menu><li><a href="https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/#recreating-the-mrz">Recreating the MRZ</a><menu><li><a href="https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/#python-code-to-generate-an-mrz">Python code to generate an MRZ</a></li></menu></li></menu></li><li><a href="https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/#can-you-read-a-cancelled-passport">Can you read a cancelled passport?</a></li><li><a href="https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/#cryptography-and-other-security">Cryptography and other security</a></li><li><a href="https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/#can-you-brute-force-a-passport">Can you brute-force a passport?</a><menu><li><a href="https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/#is-it-worth-brute-forcing-a-password">Is it worth brute-forcing a password?</a></li></menu></li><li><a href="https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/#installing">Installing</a></li><li><a href="https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/#getting-structured-data">Getting structured data</a><menu><li><a href="https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/#saving-the-image">Saving the image</a></li></menu></li><li><a href="https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/#what-didnt-work">What didn't work</a><menu><li><a href="https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/#mrtdreader">mrtdreader</a></li><li><a href="https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/#jean-francois-houzards-and-olivier-rogers-pypassport">Jean-Francois Houzard's and Olivier Roger's pyPassport</a></li><li><a href="https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/#beaujeans-pypassport">beaujean's pyPassport</a></li><li><a href="https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/#d-logic">d-Logic</a></li><li><a href="https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/#android-reader">Android reader</a></li></menu></li><li><a href="https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/#is-it-worth-it">Is it worth it?</a></li></menu></li></menu></nav><p></p>

<h2 id="background"><a href="https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/#background">Background</a></h2>

<p>The NFC chip in a passport is protected by a password. The password is printed on the inside of the physical passport. As well as needing to be physically close to the passport for NFC to work<sup id="fnref:long"><a href="https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/#fn:long" class="footnote-ref" title="There are some commercially available long range readers - up to 15cm! I've no doubt some clever engineer has made a some high-powered radio device which can read things from a mile away using a…" role="doc-noteref">0</a></sup>, you also need to be able to see the password. The password is printed in the "Machine Readable Zone" (MRZ) - which is why some border guards will swipe your passport through a reader before scanning the chip; they need the password and don't want to type it in.</p>

<p>I had a small problem though.  I'm using my old passport<sup id="fnref:old"><a href="https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/#fn:old" class="footnote-ref" title="I'm not dumb enough to do this stuff on a live passport!" role="doc-noteref">1</a></sup> which <a href="https://www.gov.uk/government/publications/cancellation-of-passports/cancelling-british-passports-accessible#cancelling-epassport-version-2">has been cancelled</a>.  Cancelling isn't just about revoking the document. It is also physically altered:</p>

<blockquote><p>Cut off the bottom left hand corner of the personal details page, making sure you cut the MRZ on the corner opposite the photo.</p></blockquote>

<p>So a chunk of the MRZ is missing! Oh no! Whatever can we do!?</p>

<h3 id="recreating-the-mrz"><a href="https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/#recreating-the-mrz">Recreating the MRZ</a></h3>

<p>The password is made up of three pieces of data:</p>

<ol>
<li>Passport Number (Letters and Numbers)</li>
<li>Date of Birth (YYMMDD)</li>
<li>Expiry Date (YYMMDD)</li>
</ol>

<p>Each piece <em>also</em> has a checksum. This calculation is defined in Appendix A to <a href="https://www.icao.int/publications/Documents/9303_p3_cons_en.pdf">Part 3 of Document 9303</a>.</p>

<p>Oh, and there's a checksum for the entire string. It's this final checksum which is cut off when the passport cover is snipped.</p>

<p>The final password is: <code>Number Number-checksum DOB DOB-checksum Expiry Expiry-checkum checksum-of-previous-digits</code></p>

<h4 id="python-code-to-generate-an-mrz"><a href="https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/#python-code-to-generate-an-mrz">Python code to generate an MRZ</a></h4>

<p>If you know the passport number, date of birth, and expiry date, you can generate your own Machine Readable Zone - this acts as the password for the NFC chip.</p>

<pre><code class="language-python">def calculateChecksum( value ):
    weighting = [7,3,1]
    characterWeight = {
        '0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7,  
        '8': 8, '9': 9, '&lt;': 0, 'A':10, 'B':11, 'C':12, 'D':13, 'E':14, 
        'F':15, 'G':16, 'H':17, 'I':18, 'J':19, 'K':20, 'L':21, 'M':22, 
        'N':23, 'O':24, 'P':25, 'Q':26, 'R':27, 'S':28, 'T':29, 'U':30, 
        'V':31, 'W':32, 'X':33, 'Y':34, 'Z':35
    }
    counter = 0
    result = 0
    for x in value:
        result += characterWeight[str(x)] * weighting[counter%3]
        counter += 1
    return str(result%10)

def calculateMRZ( passportNumber, DOB, expiry ):
    """
    DOB and expiry are formatted as YYMMDD
    """
    passportCheck = calculateChecksum( passportNumber )
    DOBCheck      = calculateChecksum( DOB )
    expiryCheck   = calculateChecksum( expiry )
    mrzNumber  = passportNumber + passportCheck + DOB + DOBCheck + expiry + expiryCheck
    mrzCheck = calculateChecksum( mrzNumber ).zfill(2)
    mrz =  passportNumber + passportCheck + "XXX" + DOB + DOBCheck + "X" + expiry + expiryCheck + "&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;" + mrzCheck
    return mrz

print( calculateMRZ("123456789", "841213", "220229") )
</code></pre>

<h2 id="can-you-read-a-cancelled-passport"><a href="https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/#can-you-read-a-cancelled-passport">Can you read a cancelled passport?</a></h2>

<p>I would have thought that cutting the cover of the passport would destroy the antenna inside it. But, going back to <a href="https://www.gov.uk/government/publications/cancellation-of-passports/cancelling-british-passports-accessible#cancelling-epassport-version-2">the UK guidance</a>:</p>

<blockquote><p>You must not cut the back cover on the ePassport</p></blockquote>

<p>Ah! That's where the NFC chip is. I presume this is so that cancelled passports can still be verified for authenticity.</p>

<h2 id="cryptography-and-other-security"><a href="https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/#cryptography-and-other-security">Cryptography and other security</a></h2>

<p>The security is, thankfully, all fairly standard Public Key Cryptography - <a href="https://www.icao.int/publications/Documents/9303_p11_cons_en.pdf">9303 part 11</a> explains it in <em>excruciating</em> levels of detail.</p>

<p>One thing I found curious - because the chip has no timer, it cannot know how often it is being read. You could bombard it with thousands of password attempts and not get locked out.  Indeed, the specification says:</p>

<blockquote><p>the success probability of the attacker is given by the time the attacker has access to the IC, the duration of a single attempt to guess the password, and the entropy of the passport.</p></blockquote>

<h2 id="can-you-brute-force-a-passport"><a href="https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/#can-you-brute-force-a-passport">Can you brute-force a passport?</a></h2>

<p>Wellllll… maybeeeee…?</p>

<p>Passports are generally valid for only 10 years. So that's 36,525 possible expiry dates.</p>

<p>Passport holders are generally under 100 years old. So that's 3,652,500 possible dates of birth.</p>

<p>That's already 133,407,562,500 attempts - and we haven't even got on to the 1E24 possible passport numbers!</p>

<p>In my experiments, sending an incorrect but valid MRZ results in the chip returning "Security status not satisfied (0x6982)" in a very short space of time. Usually less than a second.</p>

<p>But sending that incorrect attempt seemed to introduce a delay in the next response - by a few seconds. Sending the correct MRZ seemed to reset this and let the chip be read instantly.</p>

<p>So, if you knew the target's passport number and birthday, brute forcing the expiry date would take a couple of days. Not instant, but not impossible.</p>

<p>Most <a href="https://www.nxp.com/docs/en/data-sheet/NTAG213_215_216.pdf">commercial NFC chips support 100,000 writes</a> with no limit for the number of reads. Some also have a 24 bit read counter which increments after every read attempt. After 16 million reads, the counter doesn't increment. It <em>could</em> be possible for a chip to self-destruct after a specific number of reads - but I've no evidence that passport chips do that.</p>

<h3 id="is-it-worth-brute-forcing-a-password"><a href="https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/#is-it-worth-brute-forcing-a-password">Is it <em>worth</em> brute-forcing a password?</a></h3>

<p>If you were to brute-force the MRZ, you would discover the passport-holder's date of birth.  You would also get:</p>

<ul>
<li>A digital copy of their photo,</li>
<li>Their full name,</li>
<li>Their sex<sup id="fnref:sex"><a href="https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/#fn:sex" class="footnote-ref" title="Sex is complicated. But ICAO allow for &quot;F for female, M for male, or X for unspecified&quot;." role="doc-noteref">2</a></sup>,</li>
<li>The country which issued their passport, and</li>
<li>Their nationality.</li>
</ul>

<p>All of that is something which you can see from looking at the passport. So there's little value in attempting to read it electronically.</p>

<h2 id="installing"><a href="https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/#installing">Installing</a></h2>

<p>As mentioned, I'm using <a href="https://github.com/roeften/pypassport">https://github.com/roeften/pypassport</a></p>

<p>The only library I needed to install was <a href="https://pypi.org/project/pyasn1/">pyasn1</a> using <code>pip3 install pyasn1</code> - your setup may vary.</p>

<p>Download PyPassport. In the same directory, you can create a test Python file to see if the passport can be read. Here's what it needs to contain:</p>

<pre><code class="language-python">from pypassport import epassport, reader

#   Replace this MRZ with the one from your passport
MRZ = "1234567897XXX8412139X2202299&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;04"

def trace(name, msg):
    if name == "EPassport":
        print(name + ": " + msg)

r = reader.ReaderManager().waitForCard()

ep = epassport.EPassport(r, MRZ)
ep.register(trace)
ep.readPassport()
</code></pre>

<p>Plug in your NFC reader, place your passport on it, run the above code.  If it works, it will spit out a lot of debug information, including all the data it can find on the passport.</p>

<h2 id="getting-structured-data"><a href="https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/#getting-structured-data">Getting structured data</a></h2>

<p>The structure of the passport data is a little convoluted.  <a href="https://www.icao.int/publications/Documents/9303_p10_cons_en.pdf">The specification</a> puts data into different "Data Groups" - each with its own ID.</p>

<p>By running:</p>

<pre><code class="language-python">ep.keys()
</code></pre>

<p>You can see which Data Groups are available. In my case, <code>['60', '61', '75', '77']</code></p>

<ul>
<li><code>60</code> is the common area which contains some metadata. Nothing interesting there.</li>
<li><code>61</code> is DG1 - the full MRZ. This contains the holder's name, sex, nationality, etc.</li>
<li><code>77</code> is the Document Security Object - this was empty for me.</li>
<li><code>75</code> is DG2 to DG4 Biometric Templates - this contains the image and other metadata.</li>
</ul>

<p>Dumping the biometrics - <code>print( ep["75"] )</code> - gives these interesting pieces of metadata:</p>

<pre><code class="language-_">'83': '20190311201345',
'meta': {   'Expression': 'Unspecified',
            'EyeColour' : 'Unspecified',
            'FaceImageBlockLength': 19286,
            'FaceImageType': 'Basic',
            'FeatureMask': '000000',
            'FeaturePoint': {0: {'FeaturePointCode': 'C1',
                                'FeatureType': '01',
                                'HorizontalPosition': 249,
                                'Reserved': '0000',
                                'VerticalPosition': 216},
                            1: {'FeaturePointCode': 'C2',
                                'FeatureType': '01',
                                'HorizontalPosition': 141,
                                'Reserved': '0000',
                                'VerticalPosition': 214}},
            'Features': {},
            'Gender': 'Unspecified',
            'HairColour': 'Unspecified',
            'ImageColourSpace': 'RGB24',
            'ImageDataType': 'JPEG',
            'ImageDeviceType': 0,
            'ImageHeight': 481,
            'ImageQuality': 'Unspecified',
            'ImageSourceType': 'Static Scan',
            'ImageWidth': 385,
            'LengthOfRecord': 19300,
            'NumberOfFacialImages': 1,
            'NumberOfFeaturePoint': 2,
            'PoseAngle': '0600B5',
            'PoseAngleUncertainty': '000000',
            'VersionNumber': b'010'
        }
</code></pre>

<p>If I understand <a href="https://www.icao.int/security/mrtd/siteassets/pages/technical-reports/tr%20-%20rf%20and%20protocol%20testing%20part%204%20v2.10.pdf">the testing document</a> - the "Feature Points" are the middle of the eyes.  Interesting to see that gender (not sex!) and hair colour are also able to be recorded. The "PoseAngle" represents the <a href="https://www.icao.int/Security/FAL/TRIP/Documents/TR%20-%20Portrait%20Quality%20v1.0.pdf">pitch, yaw, and roll</a> of the face.</p>

<h3 id="saving-the-image"><a href="https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/#saving-the-image">Saving the image</a></h3>

<p>Passport images are saved either with JPEG or with <a href="https://www.icao.int/Security/FAL/TRIP/Documents/TR%20-%20Portrait%20Quality%20v1.0.pdf">JPEG2000 encoding</a>. Given the extremely limited memory available photos are small and highly compressed. Mine was a mere 19KB.</p>

<p>To save the image, grab the bytes and plonk them onto disk:</p>

<pre><code class="language-python">photo = ep["75"]["A1"]["5F2E"]
with open( "photo.jpg", "wb" ) as f:
   f.write( photo )
</code></pre>

<p>As expected, the "FeaturePoints" co-ordinates corresponded roughly to the centre of my eyes. Nifty!</p>

<h2 id="what-didnt-work"><a href="https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/#what-didnt-work">What didn't work</a></h2>

<p>I tried a few different tools. Listed here so you don't make the same mistakes as me!</p>

<h3 id="mrtdreader"><a href="https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/#mrtdreader">mrtdreader</a></h3>

<p>The venerable <a href="https://github.com/rubund/mrtdreader">mrtdreader</a>. My NFC device beeped, then mrtdreader said "No NFC device found."</p>

<p>I think this is because <a href="https://github.com/nfc-tools/libnfc/issues/719">NFC Tools haven't been updated in ages</a>.</p>

<h3 id="jean-francois-houzards-and-olivier-rogers-pypassport"><a href="https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/#jean-francois-houzards-and-olivier-rogers-pypassport">Jean-Francois Houzard's and Olivier Roger's pyPassport</a></h3>

<p>I looked at <a href="https://code.google.com/archive/p/pypassport/">pyPassport</a> but it is only available for Python 2.</p>

<h3 id="beaujeans-pypassport"><a href="https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/#beaujeans-pypassport">beaujean's pyPassport</a></h3>

<p>This <a href="https://github.com/beaujeant/pypassport">pypassport</a> only checks if a passport is resistant to specific security vulnerabilities.</p>

<h3 id="d-logic"><a href="https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/#d-logic">d-Logic</a></h3>

<p><a href="https://www.d-logic.com/nfc-rfid-reader-sdk/software/epassport-reading/">Digital Logic's ePassport software</a> only works with their hardware readers.</p>

<h3 id="android-reader"><a href="https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/#android-reader">Android reader</a></h3>

<p><a href="https://github.com/tananaev/passport-reader">tananaev's passport-reader</a> - works perfectly on Android. So I knew my passport chip was readable - but the app won't run on Linux.</p>

<h2 id="is-it-worth-it"><a href="https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/#is-it-worth-it">Is it worth it?</a></h2>

<p>Yeah, I reckon so! Realistically, you aren't going to be able to crack the MRZ to read someone's passport. But if you need to gather personal information<sup id="fnref:gdpr"><a href="https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/#fn:gdpr" class="footnote-ref" title="Under the auspices of GDPR, of course!" role="doc-noteref">3</a></sup>, it's perfectly possible to do so quickly from a passport.</p>

<p>The MRZ is a <em>Machine Readable</em> Zone - so it is fairly simple to OCR the text and then pass that to your NFC reader.</p>

<p>And even if the MRZ is gone, you can reconstruct it from the data printed on the passport.</p>

<p>Of course, this won't be able to detect fraudulent passports. It doesn't check against a database to see if it has been revoked<sup id="fnref:interpol"><a href="https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/#fn:interpol" class="footnote-ref" title="Nor does it check if the holder is on some Interpol list." role="doc-noteref">4</a></sup>. I don't think it will detect any cryptographic anomalies.</p>

<p>But if you just want to see what's on your travel documents, it works perfectly.</p>

<div id="footnotes" role="doc-endnotes">
<hr aria-label="Footnotes">
<ol start="0">

<li id="fn:long">
<p>There are some <a href="https://www.shopnfc.com/en/nfc-readers-writers/300-nfc-xl-reader-long-range-hf-reader.html">commercially available long range readers</a> - up to 15cm! I've no doubt some clever engineer has made a some high-powered radio device which can read things from a mile away using a <a href="https://www.makeuseof.com/tag/how-to-make-a-wifi-antenna-out-of-a-pringles-can-nb/">Pringle's tube</a>. Of note, the <a href="https://www.icao.int/publications/Documents/9303_p11_cons_en.pdf">ICAO guidance</a> says:</p>

<blockquote><p>the unencrypted communication between a contactless IC and a reader can be eavesdropped within a distance of several metres.</p></blockquote>

<p><a href="https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/#fnref:long" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>

<li id="fn:old">
<p>I'm not dumb enough to do this stuff on a <em>live</em> passport!&nbsp;<a href="https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/#fnref:old" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>

<li id="fn:sex">
<p>Sex is complicated<sup id="fnref:giggle"><a href="https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/#fn:giggle" class="footnote-ref" title="Stop giggling at the back!" role="doc-noteref">5</a></sup>. But ICAO allow for "<a href="https://www.icao.int/publications/Documents/9303_p4_cons_en.pdf">F for female, M for male, or X for unspecified</a>".&nbsp;<a href="https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/#fnref:sex" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>

<li id="fn:gdpr">
<p>Under the auspices of GDPR, of course!&nbsp;<a href="https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/#fnref:gdpr" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>

<li id="fn:interpol">
<p>Nor does it check if the holder is on some Interpol list.&nbsp;<a href="https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/#fnref:interpol" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>

<li id="fn:giggle">
<p>Stop giggling at the back!&nbsp;<a href="https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/#fnref:giggle" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>

</ol>
</div>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=61546&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2025/06/reading-nfc-passport-chips-in-linux/feed/</wfw:commentRss>
			<slash:comments>9</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[More thoughts on adding NFC to the Framework Laptop]]></title>
		<link>https://shkspr.mobi/blog/2024/06/more-thoughts-on-adding-nfc-to-the-framework-laptop/</link>
					<comments>https://shkspr.mobi/blog/2024/06/more-thoughts-on-adding-nfc-to-the-framework-laptop/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Mon, 10 Jun 2024 11:34:52 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[FrameWork]]></category>
		<category><![CDATA[laptop]]></category>
		<category><![CDATA[nfc]]></category>
		<category><![CDATA[soldering]]></category>
		<category><![CDATA[usb-c]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=50784</guid>

					<description><![CDATA[I&#039;ve got a fancy new Framework laptop. It comes with little expansion sockets - which allow you to plug in USB devices, HDMI ports, Ethernet cables, and all sorts.    I want to add an NFC reader to it.  So, step one was to find an NFC circuit board which worked with the hardware and was relatively small.  Enter the ACM1252U-Z2. It works perfectly with Linux. It has a USB-Micro socket - but a…]]></description>
										<content:encoded><![CDATA[<p>I've got a fancy new Framework laptop. It comes with little expansion sockets - which allow you to plug in USB devices, HDMI ports, Ethernet cables, and all sorts.</p>

<p><img src="/blog/wp-content/uploads/2024/03/framework-expansion.webp" alt="Two small plastic units. Both have a USB-C plug on one end. One terminates in an HDMI connector, the other in an RJ45 connector." class="aligncenter"></p>

<p>I want to <a href="https://shkspr.mobi/blog/2024/03/thoughts-on-building-an-nfc-reader-for-the-framework-laptop/">add an NFC reader to it</a>.</p>

<p>So, step one was to find an NFC circuit board which worked with the hardware and was relatively small.</p>

<p>Enter the <a href="https://shkspr.mobi/blog/2024/04/review-acm1252u-z2-nfc-reader-board/">ACM1252U-Z2</a>. It works perfectly with Linux. It has a USB-Micro socket - but a USB-C OTG cable allowed it to work with the Framework.</p>

<p><img src="/blog/wp-content/uploads/2024/03/acm1252u-z2.jpg" alt="Small circuit board." class="aligncenter"></p>

<p>It is about as small as they come - but will it fit?</p>

<p>Thanks to <a href="https://fosstodon.org/@alphasixtyfive">Alexey</a> for sending me some 3D printed samples of the Framework expansion plugs, I was able to make a bit of progress.</p>

<p>The board is slim enough in height and width to fit into to the casing:</p>

<p><img src="/blog/wp-content/uploads/2024/06/Circuit-in-a-3D-printed-case.jpg" alt="Circuit in a 3D printed case." class="aligncenter"></p>

<p>But it will stick out rather alarmingly:</p>

<p><img src="/blog/wp-content/uploads/2024/06/antenna-protrouding.jpg" alt="antenna protruding from laptop." class="aligncenter"></p>

<p>It's useful to have the antenna that far out - but I'm worried about bumping it.</p>

<p>What about <em>under</em> the casing of the main laptop? There are two spacer units which can be removed, and there is access to the <em>internal</em> USB connectors under the numpad.</p>

<p><img src="/blog/wp-content/uploads/2024/06/Circuit-and-num-pad.jpg" alt="Numpad lifted to show USB headers." class="aligncenter"></p>

<p>Will it fit? The answer, again, is… oooh! Just about!</p>

<p><img src="/blog/wp-content/uploads/2024/06/Circuit-under-spacer.jpg" alt="Circuit board under spacer." class="aligncenter"></p>

<p>If the trackpad was moved left, there'd be plenty of room horizontally.</p>

<p><img src="/blog/wp-content/uploads/2024/06/Board-horizontal.jpg" alt="Circuit Board horizontal in laptop." class="aligncenter"></p>

<p>It will still need something sturdy covering it - and that will need to be transparent to RF.</p>

<p>So here are my next thoughts:</p>

<ol>
<li>Can I (or someone else) desolder the USB-Micro plug and solder on a USB-C OTG plug?</li>
<li>Is having a protruding expansion going to be annoying or dangerous?</li>
<li>How hard would it be to replace the spacer and wire directly into the vacant USB pins under the numpad?</li>
</ol>

<p>If you have answers to these questions - please drop a comment in the box.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=50784&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2024/06/more-thoughts-on-adding-nfc-to-the-framework-laptop/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Review: ACS ACR1251T-E2 USB Token NFC Reader II ★★★★☆]]></title>
		<link>https://shkspr.mobi/blog/2024/04/review-acs-acr1251t-e2-usb-token-nfc-reader-ii/</link>
					<comments>https://shkspr.mobi/blog/2024/04/review-acs-acr1251t-e2-usb-token-nfc-reader-ii/#respond</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Fri, 12 Apr 2024 11:34:45 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[gadget]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[nfc]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[USB]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=50158</guid>

					<description><![CDATA[Recap - I want to build an NFC reader expansion card for the FrameWork laptop. So I&#039;ve bought a couple of components.  This is the ACR1251T-E2 - it&#039;s a USB pen-drive sized NFC reader with a side-out USB-A plug.  Costs about £40.    There&#039;s a recessed green LED which flashes to let you know that it is working. It doesn&#039;t beep or vibrate when it detects an NFC token. It is a little bit tricky …]]></description>
										<content:encoded><![CDATA[<p>Recap - <a href="https://shkspr.mobi/blog/2024/03/thoughts-on-building-an-nfc-reader-for-the-framework-laptop/">I want to build an NFC reader expansion card for the FrameWork laptop</a>. So I've bought a couple of components.</p>

<p>This is the <a href="https://www.acs.com.hk/en/products/486/acr1251t-usb-tokens-nfc-reader-ii/">ACR1251T-E2</a> - it's a USB pen-drive sized NFC reader with a side-out USB-A plug.  Costs about £40.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2024/04/ACS-ACR1251T-E2-USB-Token-NFC-Reader-II.webp" alt="USB thumb drive plugged into a computer." width="1024" height="576" class="aligncenter size-full wp-image-50165">

<p>There's a recessed green LED which flashes to let you know that it is working. It doesn't beep or vibrate when it detects an NFC token. It is a little bit tricky finding the antenna as the internal circuitry slides down the plastic housing - <a href="https://fccid.io/V5MACR1251T/Internal-Photos/Int-Photos-3848090">as can be seen in these internal photos</a></p>

<p>There's a lanyard hole at the end, and a plastic clip so you can attach it to things.</p>

<p>Linux support is flawless. Running <code>lsusb</code> shows <code>072f:224f Advanced Card Systems, Ltd ACR1251 CL Reader PICC</code></p>

<p>And running <code>pcsc_scan</code> gives the same information: <code>0: ACS ACR1251 CL Reader [ACR1251 CL Reader PICC] 00 00</code></p>

<p>Sadly, <a href="https://github.com/nfc-tools/libnfc/issues/719">it wasn't detected by libnfc 1.8.0 ☹</a></p>

<p>Using the <a href="https://github.com/BryanJacobs/fido2-hid-bridge">FIDO2 HID Bridge</a> I was able to use <a href="https://shkspr.mobi/blog/2024/02/giving-the-finger-to-mfa-a-review-of-the-z1-encrypter-ring-from-cybernetic/">my NFC Ring</a> to log in to various websites.</p>

<p>It's a solid enough unit. The plastic housing is sturdy and not easily damaged. You can't get in to the shell without a spludger.</p>

<p>The only downsides are that it uses USB-A - we're in the C era now! - and that the sliding mechanism obscures the antenna position. But, if you want to carry a discreet USB stick with you for NFC purposes, there's nothing better.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=50158&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2024/04/review-acs-acr1251t-e2-usb-token-nfc-reader-ii/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Review: ACM1252U-Z2 NFC Reader Board ★★★★★]]></title>
		<link>https://shkspr.mobi/blog/2024/04/review-acm1252u-z2-nfc-reader-board/</link>
					<comments>https://shkspr.mobi/blog/2024/04/review-acm1252u-z2-nfc-reader-board/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Thu, 11 Apr 2024 11:34:11 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[gadget]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[nfc]]></category>
		<category><![CDATA[review]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=50160</guid>

					<description><![CDATA[Recap - I want to build an NFC reader expansion card for the FrameWork laptop. So I&#039;ve bought a couple of components.  This is the ACM1252U-Z2 and Oh! It is a dinky little component!    The only sign that it is working is a flashing green LED. There&#039;s no buzzer on the board. It really is a tiny thing. Side on it is almost invisible.    Does it work with Linux? Oh yes! It has a Micro-USB port, so…]]></description>
										<content:encoded><![CDATA[<p>Recap - <a href="https://shkspr.mobi/blog/2024/03/thoughts-on-building-an-nfc-reader-for-the-framework-laptop/">I want to build an NFC reader expansion card for the FrameWork laptop</a>. So I've bought a couple of components.</p>

<p>This is the <a href="https://www.acs.com.hk/en/products/412/acm1252u-z2-small-nfc-reader-module/">ACM1252U-Z2</a> and Oh! It is a dinky little component!</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2024/04/ACM1252U-Z2-Board.webp" alt="View of a circuit board with a lit green LED." width="768" height="576" class="aligncenter size-full wp-image-50162">

<p>The only sign that it is working is a flashing green LED. There's no buzzer on the board. It really is a tiny thing. Side on it is almost invisible.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2024/04/ACM1252U-Z2-Side.webp" alt="Side on view of a circuit board. Nothing much is protruding." width="767" height="670" class="aligncenter size-full wp-image-50161">

<p>Does it work with Linux? Oh yes! It has a Micro-USB port, so I got a USB-C OTG cable. I plugged it into my laptop and ran <code>lsusb</code> - which shows it as <code>072f:223e Advanced Card Systems, Ltd ACR1252 Reader</code></p>

<p>Running <code>pcsc_scan</code> gives pretty much the same information <code>0: ACS ACR1252 CL Reader [ACR1252 Reader PICC] 00 00</code></p>

<p>It wasn't detected by libnfc 1.8.0 ☹</p>

<p>Using the <a href="https://github.com/BryanJacobs/fido2-hid-bridge">FIDO2 HID Bridge</a> I was able to use <a href="https://shkspr.mobi/blog/2024/02/giving-the-finger-to-mfa-a-review-of-the-z1-encrypter-ring-from-cybernetic/">my NFC Ring</a> to log in to various websites.</p>

<p>The antenna seems pretty sensitive. It read my ring from about a centimetre away though a cardboard sleeve.  I <em>think</em> the debug port is the "J3 nRF USB" - but I can't find many details about wiring it up.</p>

<p>So, will it fit in the Framework laptop? Perhaps. If I could solder on a USB-C jack, it would still stick out 2.5cm - so a 3D printed protector would still be needed.</p>

<p>Alternatively, <a href="https://prattle.org.uk/@steve/112185044748746269">as suggested by Stephen Early</a> it <em>might</em> be possible to hook it in to the spare USB 2.0 ports. And, if the size is right, stowing it beside the touchpad.</p>

<p>But, first, I need to wait for my laptop to ship 😂</p>

<p>The board costs about £35</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=50160&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2024/04/review-acm1252u-z2-nfc-reader-board/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Thoughts on building an NFC reader for the Framework laptop]]></title>
		<link>https://shkspr.mobi/blog/2024/03/thoughts-on-building-an-nfc-reader-for-the-framework-laptop/</link>
					<comments>https://shkspr.mobi/blog/2024/03/thoughts-on-building-an-nfc-reader-for-the-framework-laptop/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Sat, 30 Mar 2024 12:34:14 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[FrameWork]]></category>
		<category><![CDATA[nfc]]></category>
		<category><![CDATA[USB]]></category>
		<category><![CDATA[usb-c]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=50016</guid>

					<description><![CDATA[The Framework laptop has several little slots which can be used be used to expand the functionality of the laptop. They convert the internal USB-C ports into a different sort of port.  For example, Framework sells an official HDMI card and Ethernet card:    But the community have built their own SD card expansion pack as well as 3D printed snack drawers:    Brilliant!  I have an NFC-only…]]></description>
										<content:encoded><![CDATA[<p>The Framework laptop has several little slots which can be used be used to expand the functionality of the laptop. They convert the internal USB-C ports into a different sort of port.</p>

<p>For example, Framework sells an official <a href="https://frame.work/gb/en/products/hdmi-expansion-card-3rd-gen">HDMI card</a> and <a href="https://frame.work/gb/en/products/ethernet-expansion-card">Ethernet card</a>:</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2024/03/framework-expansion.webp" alt="Two small plastic units. Both have a USB-C plug on one end. One terminates in an HDMI connector, the other in an RJ45 connector." width="1024" height="333" class="aligncenter size-full wp-image-50033">

<p>But the community have built their own <a href="https://www.reddit.com/r/framework/comments/qtxqa4/diy_fullsize_sd_card_expansion_card/">SD card expansion pack</a> as well as <a href="https://layers3d.square.site/">3D printed snack drawers</a>:</p>

<p><a href="https://community.frame.work/t/the-snack-drawer-store-now-made-with-real-snacks/43101"><img src="https://shkspr.mobi/blog/wp-content/uploads/2024/03/crackersAndPeanutButter.jpg" alt="A laptop with 3D printed plastic drawers. One is full of peanut butter, the other has some crackers." width="640" height="640" class="aligncenter size-full wp-image-50018"></a></p>

<p>Brilliant!</p>

<p>I have an <a href="https://shkspr.mobi/blog/2024/02/giving-the-finger-to-mfa-a-review-of-the-z1-encrypter-ring-from-cybernetic/">NFC-only authentication token</a> which I want to use when I log in with my laptop.  I currently have a <a href="https://shkspr.mobi/blog/2024/02/review-an-nfc-reader-writer-with-usb-c-acr1252u-mf/">USB-C NFC reader</a> which I <em>could</em> use, but it is a bit big and bulky.</p>

<p>Is it possible to fit an U2F capable NFC reader into a FrameWork expansion slot?</p>

<h2 id="size-of-expansion-cards"><a href="https://shkspr.mobi/blog/2024/03/thoughts-on-building-an-nfc-reader-for-the-framework-laptop/#size-of-expansion-cards">Size of expansion cards</a></h2>

<p>This was a bit tricky to find. <a href="https://github.com/FrameworkComputer/ExpansionCards/blob/main/Mechanical/Retrofit/2D/ExpansionCard_Retrofit.pdf">Based on this GitHub page</a>, I think the maximum internal dimensions of a circuit board are about 26mm x 29.7mm. Tight!</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2024/03/schematic-fs8.png" alt="A schematic of a circuit." width="277" height="245" class="aligncenter size-full wp-image-50019">

<p>According to <a href="https://www.youtube.com/watch?v=pt6ecSf60ms">this video from Framework about the cards</a> shows the maximum size of the physical cards.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2024/03/Framework-Expansion-port-dimension.webp" alt="Screenshot showing 38mm x 30mm x 7mm." width="694" height="368" class="aligncenter size-full wp-image-50039">

<p>All the cards use a USB-C connector which sits proud of the card itself.</p>

<h2 id="potential-hardware"><a href="https://shkspr.mobi/blog/2024/03/thoughts-on-building-an-nfc-reader-for-the-framework-laptop/#potential-hardware">Potential Hardware</a></h2>

<p>First up is this <a href="https://www.aliexpress.com/item/32992651180.html">tiny NFC reader</a>.
<img src="https://shkspr.mobi/blog/wp-content/uploads/2024/03/small-reader.webp" alt="A small plastic square with a USB jack on the top." width="640" height="481" class="aligncenter size-full wp-image-50017">
It is designed for phones, and costs about a fiver. The dimensions look like it would might fit if the plastic shell were removed. But the description says:</p>

<blockquote><p>Output 4/7 bytes of chip serial number, UID only</p></blockquote>

<p>So no good for doing U2F. But it does at least show that reading an NFC card ought to be possible in a small form factor.</p>

<p>There are <a href="https://www.alibaba.com/product-detail/GHE-MC-very-mall-USB-TYPE_1600501516202.html?spm=a2700.galleryofferlist.normal_offer.d_image.6f9f5643xrFv22&amp;selectedCarrierCode=SEMI_MANAGED_STANDARD@@STANDARD">component USB-C readers</a>
<img src="https://shkspr.mobi/blog/wp-content/uploads/2024/03/smaller-usb-c-reader.jpg" alt="A small circuit board with both USB-A and C connectors." width="485" height="414" class="aligncenter size-full wp-image-50036"></p>

<p>That one would easily fit - but the description says it is for reading only. So I don't think it can send the cryptographic challenges necessary.</p>

<p>Then there's the <a href="https://www.acs.com.hk/en/products/412/acm1252u-z2-small-nfc-reader-module/">ACM1252U-Z2 - Small NFC Reader Module</a> which costs about £60.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2024/03/acm1252u-z2.jpg" alt="Small circuit board." width="1024" height="465" class="aligncenter size-full wp-image-50021">

<p>It is a much more capable reader. It uses micro-USB rather than USB-C, which isn't insurmountable using <a href="https://www.aliexpress.com/item/32867604389.html">a flexible male-male cable</a>. What about the dimensions?</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2024/03/schematic-of-acu-fs8.png" alt="Schematic of a circuit board." width="771" height="407" class="aligncenter size-full wp-image-50022">

<p>Certainly thin enough! But about twice as long as we need. Could we chop off the end? What's on the other side of that empty space?</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2024/03/antenna.jpg" alt="Circuit board with large antenna." width="1024" height="382" class="aligncenter size-full wp-image-50023">

<p>Ah! A honking great antenna.  If it could be bent at 90°, it would "only" stick up 2.5cm. Which would be ugly, but not disastrous.</p>

<p>Then there is the <a href="https://www.acs.com.hk/en/products/109/acr122t-usb-tokens-nfc-reader/">ACR122T</a> which is in thumb-drive format.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2024/03/acr122t.jpg" alt="A thumb drive with a retractable USB-A jack and a bulbous end." width="1024" height="910" class="aligncenter size-full wp-image-50024">

<p>That <em>might</em> work. The antenna is probably in the bulbous end.  The official schematics don't give much clue.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2024/03/ACR122T-fs8.png" alt="Technical drawing showing the dimensions." width="1020" height="642" class="aligncenter size-full wp-image-50025">

<p>But if we look in the <a href="https://fccid.io/V5MACR122T/Internal-Photos/Internal-Photos-1143235">FCC Database there are some <em>internal</em> photos</a>!</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2024/03/ACR122T-length.jpg" alt="Circuit board laying next to a tape measure." width="866" height="496" class="aligncenter size-full wp-image-50026">

<img src="https://shkspr.mobi/blog/wp-content/uploads/2024/03/ACR122T-width.jpg" alt="Width of circuit board being measured." width="593" height="194" class="aligncenter size-full wp-image-50027">

<p>Ignoring the USB jack, the board is about 50mm long.  That would leave about 2cm sticking out of the side of the laptop. Which isn't <em>too</em> bad. The width is within what we need.  There's even an <a href="https://fccid.io/V5MACR1251T/Internal-Photos/Int-Photos-3848090">updated version with a slightly different spec</a>.</p>

<p>I could buy an <a href="https://amzn.to/3x3gNeX">A-to-C converter</a> which would add unwanted extra length. I wonder how hard it is to unsolder the connector and <a href="https://www.ebay.co.uk/itm/193636336581">mount a USB-C one</a>?
<img src="https://shkspr.mobi/blog/wp-content/uploads/2024/03/solder-usb-c.jpg" alt="A USB-C plug on a pre-populated breakout board." width="673" height="562" class="aligncenter size-full wp-image-50029"></p>

<p>This video makes it look <em>relatively</em> simple.</p>

<iframe title="Converting devices to USB Type-C" width="620" height="349" src="https://www.youtube.com/embed/V-vFtiDYiIw?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen=""></iframe>

<p>But, given the weirdness with resistors, it might be easier to <a href="https://thepihut.com/products/usb-c-otg-converter-shim">use an OTG Shim</a>.</p>

<p><a href="https://thepihut.com/products/usb-c-otg-converter-shim"><img src="https://shkspr.mobi/blog/wp-content/uploads/2024/03/usb-c-otg-converter-shim.webp" alt="A USB-C plug with bare contacts at the end." width="633" height="452" class="aligncenter size-full wp-image-50032"></a></p>

<p>I could rip that apart and solder it on to the board. Or perhaps just solder on a <a href="https://www.ebay.co.uk/itm/256454038081">USB-C OTG board</a>. Maybe?</p>

<p>I guess it is time to buy some components and try not to break them! If you have any advice or suggestions, please let me know!</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=50016&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2024/03/thoughts-on-building-an-nfc-reader-for-the-framework-laptop/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Review: An NFC reader/writer with USB-C - ACR1252U-MF ★★★★⯪]]></title>
		<link>https://shkspr.mobi/blog/2024/02/review-an-nfc-reader-writer-with-usb-c-acr1252u-mf/</link>
					<comments>https://shkspr.mobi/blog/2024/02/review-an-nfc-reader-writer-with-usb-c-acr1252u-mf/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Sat, 24 Feb 2024 12:34:04 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[gadget]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[MFA]]></category>
		<category><![CDATA[nfc]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[rfid]]></category>
		<category><![CDATA[usb-c]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=49611</guid>

					<description><![CDATA[I needed to read and write NFC cards on Linux. I only buy USB-C peripherals now, so I found the brilliantly named &#34;ACR1252U-MF&#34; which appears to be the only USB-C reader on the market. Total cost was about £35 on eBay.  It&#039;s a cheap and light plastic box with a short USB cord. When you plug it in, there&#039;s a flashing light which can&#039;t be disabled. When it is powered up, or it detects and NFC chip, …]]></description>
										<content:encoded><![CDATA[<p>I needed to read and write NFC cards on Linux. I only buy USB-<strong>C</strong> peripherals now, so I found the brilliantly named "<a href="https://www.acs.com.hk/en/products/342/acr1252u-usb-nfc-reader-iii-nfc-forum-certified-reader/">ACR1252U-MF</a>" which appears to be the only USB-C reader on the market. Total cost was about £35 on eBay.</p>

<p>It's a cheap and light plastic box with a short USB cord. When you plug it in, there's a flashing light which can't be disabled. When it is powered up, or it detects and NFC chip, it makes this weird and scratchy beep:</p>

<p></p><figure class="audio">
	<figcaption>🔊</figcaption>
	
	<audio controls="" loading="lazy" src="https://shkspr.mobi/blog/wp-content/uploads/2024/02/ACR1252u-MF-Beep.mp3">
		<p>💾 <a href="https://shkspr.mobi/blog/wp-content/uploads/2024/02/ACR1252u-MF-Beep.mp3">Download this audio file</a>.</p>
	</audio>
</figure><p></p>

<p>On Linux, it shows up as: <code>072f:223b Advanced Card Systems, Ltd ACR1252 Dual Reader</code></p>

<p>To get it working, install <a href="https://pcsc-tools.apdu.fr/">PCSC Tools</a> and the <a href="https://linux.die.net/man/8/pcscd">PCSC Daemon</a>:</p>

<p><code>sudo apt install pcsc-tools pcscd</code></p>

<p>To start the daemon:</p>

<p><code>service pcscd start</code></p>

<p>Running <code>pcsc_scan</code> detected the reader as <em>two</em> readers - PICC and SAM</p>

<pre><code class="language-terminal">Using reader plug&amp;#039;n play mechanism
Scanning present readers...
0: ACS ACR1252 1S CL Reader [ACR1252 Dual Reader PICC] 00 00
1: ACS ACR1252 1S CL Reader [ACR1252 Dual Reader SAM] 01 00
</code></pre>

<p>Putting tokens on and off the reader showed them being detected and removed.</p>

<p>Despite my best efforts, I was <a href="https://github.com/nfc-tools/libnfc/issues/658">unable to get this working with <code>libnfc</code></a>.</p>

<pre><code class="language-txt">nfc-list uses libnfc 1.8.0
No NFC device found.
</code></pre>

<p>For reading and writing basic NDEF tags, I used <a href="https://www.wakdev.com/en/apps/nfc-tools-pc-mac.html">Wakdev's NFC tools</a>, I was also able to use various Python scripts like <a href="https://github.com/Giraut/pcsc-ndef">PCSC NDEF</a></p>

<p>It also worked with a <a href="https://github.com/BryanJacobs/fido2-hid-bridge">FIDO2 / HID Bridge</a> so I could use an MFA token.</p>

<p>There's <a href="https://www.acs.com.hk/en/driver/342/acr1252u-usb-nfc-reader-iii-nfc-forum-certified-reader/">lots of documentation about the reader and its API</a> as well as some <a href="https://www.acs.com.hk/en/utility-tools/">official ACS Linux tools</a>. In theory it supports firmware update - although none have been released.</p>

<p>It's a cheap and cheerful device. It would be nice if there were a way to stop the flashing LED and crappy buzzer.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=49611&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2024/02/review-an-nfc-reader-writer-with-usb-c-acr1252u-mf/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Giving the finger to MFA - a review of the Z1 Encrypter Ring from Cybernetic ★★★★☆]]></title>
		<link>https://shkspr.mobi/blog/2024/02/giving-the-finger-to-mfa-a-review-of-the-z1-encrypter-ring-from-cybernetic/</link>
					<comments>https://shkspr.mobi/blog/2024/02/giving-the-finger-to-mfa-a-review-of-the-z1-encrypter-ring-from-cybernetic/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Fri, 23 Feb 2024 12:34:17 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[2fa]]></category>
		<category><![CDATA[fido]]></category>
		<category><![CDATA[gadget]]></category>
		<category><![CDATA[MFA]]></category>
		<category><![CDATA[nfc]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[rfid]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=49592</guid>

					<description><![CDATA[I have mixed feelings about Multi-Factor Authentication. I get why it is necessary to rely on something which isn&#039;t a password but - let&#039;s be honest here - it is a pain juggling between SMS, TOTP apps, proprietary apps, and magic links.  I&#039;m also not a fan of PassKeys. It feels weird to me that my computer is the password. I get the theoretical way it works - but it rubs me up the wrong way.  So, …]]></description>
										<content:encoded><![CDATA[<p>I have mixed feelings about Multi-Factor Authentication. I get why it is necessary to rely on something which isn't a password but - let's be honest here - it is a pain juggling between SMS, TOTP apps, proprietary apps, and magic links.</p>

<p>I'm also not a fan of PassKeys<sup id="fnref:terminology"><a href="https://shkspr.mobi/blog/2024/02/giving-the-finger-to-mfa-a-review-of-the-z1-encrypter-ring-from-cybernetic/#fn:terminology" class="footnote-ref" title="FIDO2? U2F? MFA? PassKeys? Some of these are technologies and some are marketing terms. In most cases it is transparent to the user. They type in their username and password, then they have to…" role="doc-noteref">0</a></sup>. It feels weird to me that my computer <em>is</em> the password. I get the theoretical way it works - but it rubs me up the wrong way.</p>

<p>So, Yubikeys? <a href="https://shkspr.mobi/blog/2017/11/a-grumpy-look-at-using-a-yubico-neo-nfc-on-ubuntu-android/">I find them an annoyance</a>. I never have my keys to hand - which sort of defeats the purpose of them.</p>

<p>A little while ago, I wondered "<a href="https://shkspr.mobi/blog/2022/02/where-are-the-u2f-rings/">Where are the U2F Rings?</a>" If I could have a <em>wearable</em> MFA token, that would solve many of my issues<sup id="fnref:issues"><a href="https://shkspr.mobi/blog/2024/02/giving-the-finger-to-mfa-a-review-of-the-z1-encrypter-ring-from-cybernetic/#fn:issues" class="footnote-ref" title="Technical issues. Obviously my many personal issues remain load-bearing." role="doc-noteref">1</a></sup>.</p>

<p>Enter the <a href="https://getcybernetic.com/product/ring/">Cybernetic Z1 Encrypter Ring</a>. It is a US$300 zirconia ring with a built-in range of JavaCard-based NFC apps - including the ability to unlock your Tesla<sup id="fnref:tesla"><a href="https://shkspr.mobi/blog/2024/02/giving-the-finger-to-mfa-a-review-of-the-z1-encrypter-ring-from-cybernetic/#fn:tesla" class="footnote-ref" title="I don't have a Tesla to test it on. And I'd rather keep it that way!" role="doc-noteref">2</a></sup>. It is powered by the <a href="https://vivokey.com/apex/">VivoKey Apex chip</a> (NXP JCOP 4 P71) which provides all the security and functionality. Your money also gets you an NFC reader/writer which connects to your computer via USB.  The team have sent me a demo version of the ring to review on the proviso that I give them feedback.</p>

<h2 id="demo"><a href="https://shkspr.mobi/blog/2024/02/giving-the-finger-to-mfa-a-review-of-the-z1-encrypter-ring-from-cybernetic/#demo">Demo</a></h2>

<p>Here's a quick video showing how it works:</p>

<iframe title="Review: Cybernetic's Z1 Encrypter Ring - FIDO2, U2F, PassKey" width="560" height="315" src="https://tube.tchncs.de/videos/embed/84a5f19d-fe75-4b6a-baaa-970c9767d8c3" frameborder="0" allowfullscreen="" sandbox="allow-same-origin allow-scripts allow-popups"></iframe>

<h2 id="the-good"><a href="https://shkspr.mobi/blog/2024/02/giving-the-finger-to-mfa-a-review-of-the-z1-encrypter-ring-from-cybernetic/#the-good">The Good</a></h2>

<p>It works! Seriously, in a world of vapourware and vaguely-worded Kickstarters, it is refreshing to have a product which actually delivers. I was able to enrol it on my BitWarden account and then use it to log in - all via my Android phone. Similarly, I tested it working with Amazon, BitWarden, CodeBerg, Discord, Gandi, GitLab, GoDaddy, Google, PorkBun, Proton, WordPress and a few others.</p>

<p>It's a good looking, plainly designed, unibody ring. It is waterproof and survived the daily abuse I give my hands.  It was washed with soap and blasted with a hand-dryer and it kept on chugging. No need to recharge it either - NFC runs off the power of radio waves like magic.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2024/02/cybernetic-black-gloss-side-b-1.webp" alt="A plain black ring. What secrets does it contain within?" width="512" height="512" class="aligncenter size-full wp-image-49594">

<p>It is completely smooth, no built in scanners or LEDs or power-ports. The antenna appears to be all the way around the ring - so you can use either side of your finger on a scanner.</p>

<p>There is an <a href="https://play.google.com/store/apps/details?id=com.vivokey.apexmanager.cybernetic">Android app</a> which you can use to send information to the ring. That's designed for being able to share contact details and has a generous 4KB of storage<sup id="fnref:4kb"><a href="https://shkspr.mobi/blog/2024/02/giving-the-finger-to-mfa-a-review-of-the-z1-encrypter-ring-from-cybernetic/#fn:4kb" class="footnote-ref" title="Not a typo. NFC is designed for low power and fairly low speed. Most commercial NFC tags have about 500 bytes of storage. The memory on this ring will let you share up to 32KB of data - if you remove…" role="doc-noteref">3</a></sup>.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2024/02/Android-app-fs8.png" alt="Android app with various options greyed out." width="540" height="966" class="aligncenter size-full wp-image-49602">

<p>But, the nice thing is, <strong>you don't <em>need</em> the app!</strong> By default the ring will work as a FIDO2 token suitable for logging in to a variety of services.</p>

<p>The code on the Ring is (somewhat) Open Source. You can write your own JavaCard applets and load them on to the ring.</p>

<h2 id="the-bad"><a href="https://shkspr.mobi/blog/2024/02/giving-the-finger-to-mfa-a-review-of-the-z1-encrypter-ring-from-cybernetic/#the-bad">The Bad</a></h2>

<p>It works well... until it doesn't. Mostly this is a criticism of FIDO2. I initially was unable to use the ring with GitHub:
<img src="https://shkspr.mobi/blog/wp-content/uploads/2024/02/Something-Went-Wrong-fs8.png" alt="Android pop up saying &quot;Something went wrong&quot;." width="540" height="951" class="aligncenter size-full wp-image-49600">
I tried both Firefox and Chrome but got the same error.  Similarly, CoinBase wouldn't register the key and didn't tell me why.</p>

<p>I contacted the Ring's manufacturer and they sent me details of a <a href="https://shkspr.mobi/blog/2024/02/giving-the-finger-to-mfa-a-review-of-the-z1-encrypter-ring-from-cybernetic/#updates">firmware update</a> which claimed to fixed the issue.</p>

<p>Google worked - but gave me this rather weird default name and icon:
<img src="https://shkspr.mobi/blog/wp-content/uploads/2024/02/Google-Account-fs8.png" alt="Google account page showing an Apple logo and the name iCloud keychain." width="540" height="674" class="aligncenter size-full wp-image-49601">
I was able to rename it, but the icon can't be changed.</p>

<p>Amazon had the same issue, but with no way to rename.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2024/02/Amazon-passkey-fs8.png" alt="Screenshot showing the Passkey has been added - but it is called iCloud Keychain." width="540" height="708" class="aligncenter size-full wp-image-49633">

<p>Both LinkedIn and WhatsApp would only let me create a phone-based PassKey. They didn't give me a prompt to scan my NFC ring.</p>

<p>NFC <em>only</em> is also a bit of a limitation. Until every laptop comes with built-in NFC, you'll need to use a dongle / reader if you want to use the ring.  For a phone or tablet with NFC, you're fine.  Well, as long as you know where your phone's NFC reader is!</p>

<p>The Android app isn't open source, which feels like a bit of a missed opportunity. It is pretty bare-bones, only providing the ability to add contact details and see how much free storage and RAM there is. In the future, the app promises to offer "Smart PGP" and a few other services.</p>

<p>The contact card stuff is a bit underwhelming. Rather than embed a VCARD, it takes users to a separate website which has your contact details on it.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2024/02/Social-Network-fs8.png" alt="Screenshot of a website with a pixelated image of my face and some contact details." width="540" height="592" class="aligncenter size-full wp-image-49603">

<p>Weirdly, it zips the content of your contact details and uses them to populate the website with data. Because there's only a limited amount of space available, contact images end up very pixellated.  The website also uses external JavaScript without using SRI - which isn't what I'd expect from a security focussed company.</p>

<p>If you use a 3rd party NFC app, you can change the NDEF share to be <em>any</em> URl you want.  I think that's probably a sensible thing to do.</p>

<p>Obviously, $300 is a chunk of change. You can <a href="https://amzn.to/49rsPMT">buy a basic U2F USB/NFC <strong>key</strong> for £20 - £50</a>. So, with this, you're paying a higher price for a small-run product with a niche form-factor.</p>

<h2 id="the-ugly"><a href="https://shkspr.mobi/blog/2024/02/giving-the-finger-to-mfa-a-review-of-the-z1-encrypter-ring-from-cybernetic/#the-ugly">The Ugly?</a></h2>

<p>Do you want to wear jewellery? The Z1 is plain black and unobtrusive - unlike the garish designs of some fashion rings - but perhaps a few different styles and colours would be nice?</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2024/02/Ring-height.jpg" alt="Photo of my fingers curled up so you can see the height of the ring." width="1024" height="1024" class="aligncenter size-full wp-image-49604">

<p>I already wear a wedding ring, so having another to wear wasn't too much of an adjustment.  The ring comes in a number of US ring sizes, so you may need to compensate if you're used to a different sizing system. However, it is a bit of a chunky beast. You will certainly notice it while wearing it.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2024/02/Ring-width.jpg" alt="Photo of my fingers stretched out so you can see the width of the ring." width="1024" height="1024" class="aligncenter size-full wp-image-49605">

<p>Would an attacker rip it off your finger or even chop your finger off? It is a niche risk - but if you're using this to digitally safeguard your billions of crypto-riches, worth thinking about.</p>

<h2 id="updates"><a href="https://shkspr.mobi/blog/2024/02/giving-the-finger-to-mfa-a-review-of-the-z1-encrypter-ring-from-cybernetic/#updates">Updates</a></h2>

<p>The Z1 Encrypter runs JavaCard applets so, in theory, you can load any compatible app onto it. By default, it runs <a href="https://github.com/BryanJacobs/FIDO2Applet">Bryan Jacobs' FIDO2Applet</a>.  It recently received <a href="https://github.com/BryanJacobs/FIDO2Applet/commit/1f406ec383f7b447c7752d4d35b2f3bbd3c079d3">an update</a> which should make it work with GitHub.</p>

<p>To install or update apps, you'll need the Fidesmo <a href="https://play.google.com/store/apps/details?id=com.fidesmo.sec.android">Android app</a> or <a href="https://apps.apple.com/us/app/fidesmo/id1504891446">iOS app</a>.</p>

<p><strong>WARNING!</strong> Before installing a new app, you have to destroy the old one. This will wipe <em>all</em> your previous registrations.</p>

<p>However, I just couldn't get this to work. I tried using the Fidesmo app to uninstall the Tesla applet - but it failed.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2024/02/service-failed-uninstalling-fs8.png" alt="Screenshot of the Fidesmo app saying &quot;Service Failed Uninstalling&quot;." width="540" height="731" class="aligncenter size-full wp-image-49657">

<p>Despite it asking me to uninstall again, there was no option to do so.</p>

<p>I find it a bit weird that the Ring relies on a 3rd party app to do this. I'd much rather see it built into the same app which controls the ring.</p>

<h2 id="security"><a href="https://shkspr.mobi/blog/2024/02/giving-the-finger-to-mfa-a-review-of-the-z1-encrypter-ring-from-cybernetic/#security">Security</a></h2>

<p>By default, the ring has no password set on its internal memory.  That means you can write whatever content you want to the NDEF share. Of course, this means someone sat next to you can <em>also</em> change your saved URl!  If you use the Fidesmo app, you can lock the contents of the share. Once locked it cannot be overwritten unless you destroy the applet.</p>

<p>So I was able to change the default URl to one I controlled, and I was able to lock it.</p>

<p>But <em>anyone</em> with the Fidesmo app can delete <em>any</em> applet on your ring. Simply open the app, tap the phone against the ring to read the data, select the app you want to delete, and hold the phone against the ring for a few seconds.</p>

<p>It isn't unobtrusive. You'd probably notice someone clutching your hand for a several seconds. But you probably wouldn't notice if you were asleep.</p>

<p>The only damage is rendering your PassKey inoperable. So you would have to revert back to using a different 2FA method. An attacker couldn't steal your data, but they could provide a denial of service attack on you.</p>

<p>It would be great if the ring came with a password. However, there is the risk that if you lost your own password, you'd be unable to write data to it.</p>

<p>I am unqualified to audit the hardware security. If an attacker had physical access to the Ring, could they crack it open and extract the keys from hardware? I don't know.</p>

<h2 id="linux-support-open-source"><a href="https://shkspr.mobi/blog/2024/02/giving-the-finger-to-mfa-a-review-of-the-z1-encrypter-ring-from-cybernetic/#linux-support-open-source">Linux Support &amp; Open Source</a></h2>

<p>The Cybernetic website says the Z1 supports "iOS, Android, Windows. MacOS coming June 2024."  But how well does it work with Linux?</p>

<p>There are <a href="https://github.com/VivoKey">several open source tools repositories available from VivoKey</a> - although none specifically related to the ring.</p>

<p>I took a look at a bunch of <a href="https://ccid.apdu.fr/ccid/section.html">compatible readers</a> and got the ACR1252u-MF (full review later). There are a couple of Linux utilities which claim to work as NFC U2F readers - but the only one I could get working was Bryan Jacob's <a href="https://github.com/BryanJacobs/fido2-hid-bridge">FIDO2 HID Bridge</a>.  Installing was a bit of a faff (yay various Python incompatibilities) and using it means invoking an obscure command on the terminal. But... it worked!</p>

<p>I registered the ring on a service using my Android device, then I was able to sign in to the same service using Firefox on Linux!</p>

<p>Even better - I was <em>finally</em> able to register the ring with GitHub! And, once I'd registered it using Linux, I could sign on with Android. HASHTAG INTEROPERABILITY!</p>

<h2 id="the-broken"><a href="https://shkspr.mobi/blog/2024/02/giving-the-finger-to-mfa-a-review-of-the-z1-encrypter-ring-from-cybernetic/#the-broken">The Broken</a></h2>

<p>And then I kinda broke it. Somehow, the Fidesmo app ended up <a href="https://forum.dangerousthings.com/t/cant-destroy-applets-with-fidesmo/21264/">locking the entire card</a>. Everything still worked - both NDEF and WebAuthN - but I couldn't update the firmware or applets. On the one hand, no one can wipe my OS! But on the other, I can't load new software or fix any bugs.</p>

<p>NFC is <em>fragile technology</em>. Send the wrong obscure command to the device and it will behave unpredictably.</p>

<h2 id="final-verdict"><a href="https://shkspr.mobi/blog/2024/02/giving-the-finger-to-mfa-a-review-of-the-z1-encrypter-ring-from-cybernetic/#final-verdict">Final Verdict</a></h2>

<p>For a certain type of nerd, this is awesome. It doesn't have aggressive "geek-chic" branding - it just quietly lets you augment your body with a useful bit of tech.  Now I don't need to search for my key-ring every time I want to log into a secure service.</p>

<p>The flaws with this product are mostly to do with the ecosystem. Mostly.</p>

<p>U2F / FIDO2 / Whatever is pretty nifty technology. When it works, it is just like magic. Wave your hand near your phone and you are authenticated.</p>

<p>When it doesn't work, you might get stuck in a loop trying to work out why things are going wrong.  It's terrifyingly easy to accidentally break something.</p>

<p>FIDO2 is still a pain. Do you know <a href="https://www.beyondidentity.com/developers/blog/fido2-vs-u2f-whats-difference">the difference between CTAP1 and U2F, or how they relate to WebAuthn</a>? Does your favourite service <a href="https://2fa.directory/gb/">support 2FA at all</a>?  Are you happy running a Python script on the CLI if you want to log in?</p>

<p>But that's not the ring's fault. It is early days for the tech and there are teething troubles.</p>

<p>The built-in contact-card portion of the ring is a bit daft. Pointing users to a 3rd party site doesn't seem like the right call for the type of people who'll buy this. I'm glad it could be pointed to a site that I control - albeit by using a different app to write the data.</p>

<p>I got used to wearing the ring after a few days, and it was the exact size that I requested. Although it is chunky, it is a subtle piece of jewellery and unlikely to draw unwanted attention.  There are no LEDs or batteries to worry about.</p>

<p>Despite the teething issues and the price, I'm rather keen on this. Waving my hand next to my phone to exchange cryptographic information makes me feel part-way to being a cyborg-wizard.  Is this the future of wearable technology? I don't know - but it is rather fun.  I'm happy to be an early-adopter and to bash out the bugs in the tech.</p>

<p>If you want, VivoKey will also sell you an <a href="https://vivokey.com/spark/">NFC Implant</a> which you can inject under your skin and use as an MFA token.  Personally, I think I'll stick with the ring!</p>

<p>You can <a href="https://getcybernetic.com/">buy the ring directly from Cybernetic</a>.</p>

<div id="footnotes" role="doc-endnotes">
<hr aria-label="Footnotes">
<ol start="0">

<li id="fn:terminology">
<p>FIDO2? U2F? MFA? PassKeys? Some of these are technologies and some are marketing terms. In most cases it is transparent to the user. They type in their username and password, then they have to present another credential. That could be a code sent by a text message, or generated by an app. In this case, they present their NFC token.  Technically, a PassKey is designed to replace usernames and password - present your key and that's the only credential you'll need. The reality is that various sites use these terms interchangeably.&nbsp;<a href="https://shkspr.mobi/blog/2024/02/giving-the-finger-to-mfa-a-review-of-the-z1-encrypter-ring-from-cybernetic/#fnref:terminology" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>

<li id="fn:issues">
<p>Technical issues. Obviously my many personal issues remain load-bearing.&nbsp;<a href="https://shkspr.mobi/blog/2024/02/giving-the-finger-to-mfa-a-review-of-the-z1-encrypter-ring-from-cybernetic/#fnref:issues" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>

<li id="fn:tesla">
<p>I don't have a Tesla to test it on. And I'd rather keep it that way!&nbsp;<a href="https://shkspr.mobi/blog/2024/02/giving-the-finger-to-mfa-a-review-of-the-z1-encrypter-ring-from-cybernetic/#fnref:tesla" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>

<li id="fn:4kb">
<p>Not a typo. NFC is designed for low power and fairly low speed. <a href="https://shkspr.mobi/blog/2020/06/gadget-review-ysshui-ntag215-nfc-tags/">Most commercial NFC tags have about 500 bytes of storage</a>. The memory on this ring will let you share up to 32KB of data - if you remove the other applets.&nbsp;<a href="https://shkspr.mobi/blog/2024/02/giving-the-finger-to-mfa-a-review-of-the-z1-encrypter-ring-from-cybernetic/#fnref:4kb" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>

</ol>
</div>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=49592&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2024/02/giving-the-finger-to-mfa-a-review-of-the-z1-encrypter-ring-from-cybernetic/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Where are the U2F Rings?]]></title>
		<link>https://shkspr.mobi/blog/2022/02/where-are-the-u2f-rings/</link>
					<comments>https://shkspr.mobi/blog/2022/02/where-are-the-u2f-rings/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Fri, 18 Feb 2022 12:34:34 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[nfc]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[WebAuthn]]></category>
		<category><![CDATA[yubikey]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=41991</guid>

					<description><![CDATA[The FIDO specification defines a form of Universal 2nd Factor (U2F) when users log in to a system. Rather than relying on one-time codes sent via SMS, or displayed on a phone screen, these are physical hardware tokens which are used to supplement passwords. When used with websites, this technology is also known as WebAuthn.  I use a USB thumb-drive sized hardware token and they&#039;re nifty - but a…]]></description>
										<content:encoded><![CDATA[<p>The <a href="https://fidoalliance.org/how-fido-works/">FIDO</a> specification defines a form of Universal 2nd Factor (U2F) when users log in to a system. Rather than relying on one-time codes sent via SMS, or displayed on a phone screen, these are physical hardware tokens which are used to supplement passwords. When used with websites, this technology is also known as <a href="https://webauthn.guide/">WebAuthn</a>.</p>

<p>I use a USB thumb-drive sized hardware token and they're nifty - but a little impractical.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2017/10/YubiKey-Neo-on-cardboard-backing.jpg" alt="YubiKey Neo - a thumb sized USB device - on cardboard backing" width="512" class="aligncenter size-full wp-image-28682">

<p>Since the great working from home experiment, I don't have my keys on me at all times. This means my <a href="https://shkspr.mobi/blog/2017/11/a-grumpy-look-at-using-a-yubico-neo-nfc-on-ubuntu-android/">Yubico Neo</a> sits on a keychain, in a pocket of a coat which is rarely worn. So every time I need to use U2F to authenticate with a service, I have to trek around the house trying to remember where I last saw my keyring.</p>

<p>Wouldn't it be great if I could <em>wear</em> my Yubikey?  Some high-tech jewellery would be fab!</p>

<p>To be clear, this <a href="https://www.reddit.com/r/yubikey/comments/naqlwv/why_no_jewelry/">isn't an original idea</a>:</p>

<style>.social-embed{all:unset;display:block;}.social-embed * {all:unset;display:revert;}.social-embed::after{all:unset;}.social-embed::before{all:unset;}blockquote:not(*){all:unset;}.social-embed a{cursor:pointer;}blockquote.social-embed{box-sizing:border-box;border:.5px solid;width:550px;max-width:100%;font-family:sans-serif;margin:auto;margin-bottom:.5em;padding:1em;border-radius:1em;background-color:#FFF;color:#000;display:block;}.social-embed-header{display:flex;justify-content:space-between;}.social-embed-user{display:flex;position:relative;align-items:center;text-decoration:none;color:inherit;}.social-embed-avatar{width:3em;height:3em;margin-right:.5em;}.social-embed-avatar-circle{border-radius:50%;}.social-embed-avatar-square{border-radius:5%;}.social-embed-user-names-name{display:flex;align-items:center;font-weight:bold;margin:0;}.social-embed-text{margin-top:.5em;}.social-embed-footer{display:flex;align-items:center;justify-content:space-between;}.social-embed-logo{width:3em;}.social-embed-hr{border:.1px solid;margin:.5em 0 .5em 0;}.social-embed-meta{text-decoration:none !important;color:unset !important;}.social-embed-reply{display:block;}.social-embed-text a, .social-embed-footer time{color:blue;text-decoration:underline;}.social-embed-media, .social-embed-video{border-radius:1em;max-width:100%;margin:auto;display:block;}.social-embed-reply{font-size:.75em;display:block;}.social-embed-meter{width:100%;background:#0005;}.social-embed-card{text-decoration:none !important;color:unset !important;border:.5px solid;display:block;font-size:.85em;padding:.5em;border-radius:1em;}</style>

<blockquote class="social-embed" id="social-embed-931264836629094400" lang="en"><header class="social-embed-header"><a href="https://twitter.com/rootkovska" class="social-embed-user"><img class="social-embed-avatar social-embed-avatar-circle" src="data:image/webp;base64,UklGRioCAABXRUJQVlA4IB4CAAAQCwCdASowADAAPrFKnkmnJKKhMdmaAOAWCUAXZnmJGC5/THVutUoFlZS4R8ae24RG6N90x1YY5goCpqdIgl/1x5V2V6axeZ5BHXmPhj8GBXEFYgj0AES7NLFLGX5OH6IAAP72MfLrhVQOYQlmc/z1eob/5OOB4Q72h9RHWWv45V0owKtjx0yADw7LIW/+MGfqvb+pfHAsHjaIMk1OR0sIPDYoBHf0OXEYfMn7kv2myYLG9hdc8Rv9xeJVQ12Hp5tnQ0cTqzM2VWwa12BSMHF+XlyIEmkCKTluawLAusSydcCMXidANeIciXLj9RcR5RUTphjLfcedZeMeCnyJChHYK2uUSLJSIP0dEaqvUssrEoUHczbjwJlRvsol98bIYNXnE2C/S3ql7tQixW34rE1WFCprtNWE+dDK9zq+UNLW7mD1PEyH8zQHXAJs/TnDQ+n7xMmAYE2zlAz17UpqVzMkHpTIppVyKQ8Z+aV1oPC6mjV1iSkTLvvlEPjAFqnJyqN7RKctZvlLP0oU7JK1ssCQK2KjyathBqM2tYAb6jybHLo8VvVY81p3N/Lt56jmQ3EzY6mTyPj85Mtw5xPEDHB099YUUx2GGCcVDPij9hB6USzkIzH77vqyQBfb5aa4dvINkRiV/psHu+WMf0dMBBL9x5EpCQn5FWabv4LEMyuBdOjQtVIPmSWVwzyUT5IG5YlNOg4vqeOcaW6OiIAAAA==" alt=""><div class="social-embed-user-names"><p class="social-embed-user-names-name">Joanna Rutkowska</p>@rootkovska</div></a><img class="social-embed-logo" alt="" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCmFyaWEtbGFiZWw9IlR3aXR0ZXIiIHJvbGU9ImltZyIKdmlld0JveD0iMCAwIDUxMiA1MTIiPjxwYXRoCmQ9Im0wIDBINTEyVjUxMkgwIgpmaWxsPSIjZmZmIi8+PHBhdGggZmlsbD0iIzFkOWJmMCIgZD0ibTQ1OCAxNDBxLTIzIDEwLTQ1IDEyIDI1LTE1IDM0LTQzLTI0IDE0LTUwIDE5YTc5IDc5IDAgMDAtMTM1IDcycS0xMDEtNy0xNjMtODNhODAgODAgMCAwMDI0IDEwNnEtMTcgMC0zNi0xMHMtMyA2MiA2NCA3OXEtMTkgNS0zNiAxczE1IDUzIDc0IDU1cS01MCA0MC0xMTcgMzNhMjI0IDIyNCAwIDAwMzQ2LTIwMHEyMy0xNiA0MC00MSIvPjwvc3ZnPg=="></header><section class="social-embed-text">Anyone could recommend a U2F-compatible NFC ring (as in: jewellery)?<br><br>(Additional requirements: not bulky, women sizes; silver, not gold pls :)</section><hr class="social-embed-hr"><footer class="social-embed-footer"><a href="https://twitter.com/rootkovska/status/931264836629094400" aria-label="34 likes" class="social-embed-meta">❤️ 34</a><a href="https://twitter.com/rootkovska/status/931264836629094400" aria-label="4 replies" class="social-embed-meta">💬 4</a><a href="https://twitter.com/rootkovska/status/931264836629094400" aria-label="0 retweets" class="social-embed-meta">♻️ 0</a><a href="https://twitter.com/rootkovska/status/931264836629094400"><time datetime="2017-11-16T20:56:53.000Z">20:56 - Thu 16 November 2017</time></a></footer></blockquote>

<p>And <a href="https://web.archive.org/web/20220210205006/https://twitter.com/_unlobito/status/1491875087708049408">some people <em>do</em> wear their keys as pendants</a>.</p>

<p>There are also Yubikey earrings:</p>

<blockquote class="social-embed" id="social-embed-937899444649054208" lang="en"><header class="social-embed-header"><a href="https://twitter.com/samantha_gold" class="social-embed-user"><img class="social-embed-avatar social-embed-avatar-circle" src="data:image/webp;base64,UklGRiACAABXRUJQVlA4IBQCAABQCwCdASowADAAPrVKnkonJCKhrjgMyOAWiWYAxyeNMH6zfFT/WNaOPl16Zhp9YUdm8uPcONEVrphSZAfoIHylhIZ/FlXdT1f59rDwanjfRPF83CRuLlPycJGe2kR6ZPq+uAAA/v5gxwB2E80F/7RARJ7pC+0DkgrBgj3mbXkZohRTTOBJK8GPZjRXt1S15rWAnQA+ZbDFNNUi8c7yrjIlxKNhiyh2Idbx1Dr+JYKWPDg8HBMjCNG5f32sITqmZG4iH7WMo1BKhCrFtqhTyB0G4BHaGom05NjCxzTTwY3ZhGh72nIclC3syYrcI7I5dE5GxzQgQt+QT++4EaRFUI95qq7ydlVNiRyzfet9FZUIT5LmxXpZB+P4EgL7NyNIwB4Y5bSsbXdDpg4Y8Eg/5D1n1oZemAQIyMGQXxGI/9L83Ic7z8YEiqcLxttZaZOo0OneMcyzChxeEYDR4XV4htrKZL0A+X9CgUR+YZvj+liD0bbiikWTAntKhG5Ndp5kNu0X96pRxZIDNsBSPrFYpKAEjYymtQwFXnfN6eEUp+LvSgIaeUD5HpbkyFJZ57x63qWptDy/B8SpyVFvhwgYIWL2GbO3ttFrdkQisAg1eAD1Y+iahlJEGJi6Mgh+/Rl0oDYtMxiKpp22K+P8ypK+hGnQAQr3EPu9PJ0cISjtC2fbzT4rSqGLTj5+fPHHIuW84RargAAA" alt=""><div class="social-embed-user-names"><p class="social-embed-user-names-name">*:･ﾟ✧ Samantha  ✧･ﾟ:*</p>@samantha_gold</div></a><img class="social-embed-logo" alt="" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCmFyaWEtbGFiZWw9IlR3aXR0ZXIiIHJvbGU9ImltZyIKdmlld0JveD0iMCAwIDUxMiA1MTIiPjxwYXRoCmQ9Im0wIDBINTEyVjUxMkgwIgpmaWxsPSIjZmZmIi8+PHBhdGggZmlsbD0iIzFkOWJmMCIgZD0ibTQ1OCAxNDBxLTIzIDEwLTQ1IDEyIDI1LTE1IDM0LTQzLTI0IDE0LTUwIDE5YTc5IDc5IDAgMDAtMTM1IDcycS0xMDEtNy0xNjMtODNhODAgODAgMCAwMDI0IDEwNnEtMTcgMC0zNi0xMHMtMyA2MiA2NCA3OXEtMTkgNS0zNiAxczE1IDUzIDc0IDU1cS01MCA0MC0xMTcgMzNhMjI0IDIyNCAwIDAwMzQ2LTIwMHEyMy0xNiA0MC00MSIvPjwvc3ZnPg=="></header><section class="social-embed-text">Working late in the labs on these yubikey earrings! eeee! <a href="https://twitter.com/samantha_gold/status/937899444649054208/video/1">pic.x.com/fdto5ksdwz</a><video class="social-embed-video" controls="" src="https://video.twimg.com/ext_tw_video/937899245578997760/pu/vid/640x360/uBqli8E4qUUmCSN_.mp4" poster="data:image/webp;base64,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" width="550"></video></section><hr class="social-embed-hr"><footer class="social-embed-footer"><a href="https://twitter.com/samantha_gold/status/937899444649054208" aria-label="685 likes" class="social-embed-meta">❤️ 685</a><a href="https://twitter.com/samantha_gold/status/937899444649054208" aria-label="31 replies" class="social-embed-meta">💬 31</a><a href="https://twitter.com/samantha_gold/status/937899444649054208" aria-label="0 retweets" class="social-embed-meta">♻️ 0</a><a href="https://twitter.com/samantha_gold/status/937899444649054208"><time datetime="2017-12-05T04:20:27.000Z">04:20 - Tue 05 December 2017</time></a></footer></blockquote>

<p>So why not a ring? A ring doesn't take up much space on the body, they're rarely taken off, and they're socially acceptable jewellery for most people.</p>

<p>A <a href="https://amzn.to/4gKe1fK">basic NFC ring costs less than two pounds</a>! But it doesn't have the necessary processing power for U2F.</p>

<p>The <a href="https://store.nfcring.com/products/omni?variant=30878229987373">OMNI ring is £70</a> and <em>looks like</em> it has the right hardware. But, sadly, they <a href="https://medium.com/@darconeous/authentication-rings-part-1-2fe85c5d9d1b">appear to be incompatible with the FIDO specification</a>.</p>

<p>The <a href="https://amzn.to/36qLzBb">cheapest FIDO2 U2F NFC key is about £30</a>. So it shouldn't be impossible to put the hardware into a more aesthetically pleasing form factor.</p>

<p>Token were planning to release a <a href="https://www.tokenring.com/">WebAuthn ring "soon"</a> - but with no price nor predicted availability. Their <a href="https://twitter.com/token/">social media hasn't been updated in two years</a>. Similarly, <a href="https://www.slashgear.com/motiv-ring-is-now-a-2fa-biometric-key-for-your-finger-23551020">Motiv were planing on releasing a WebAuthn ring</a> - but they got <a href="https://web.archive.org/web/20210729141609/https://www.proxy.com/blog/proxy-acquires-smart-ring-startup-motiv">bought by a company called Proxy</a> - who have since fallen into a Web3 hole never to be heard of again.</p>

<p>So - this is my version of <a href="https://meta.wikimedia.org/wiki/Cunningham%27s_Law">Cunningham's Law</a>. If I blog saying something doesn't exist - some smartarse will immediately post a link to some Shenzhen store selling them for a quid each!</p>

<p>There are no WebAuthn rings - or other jewellery-like form factors. And that sucks.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=41991&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2022/02/where-are-the-u2f-rings/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		<enclosure url="https://video.twimg.com/ext_tw_video/937899245578997760/pu/vid/640x360/uBqli8E4qUUmCSN_.mp4" length="544731" type="video/mp4" />

			</item>
		<item>
		<title><![CDATA[How can I launch a Spotify album from an NFC tag?]]></title>
		<link>https://shkspr.mobi/blog/2020/09/how-can-i-launch-a-spotify-album-from-an-nfc-tag/</link>
					<comments>https://shkspr.mobi/blog/2020/09/how-can-i-launch-a-spotify-album-from-an-nfc-tag/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Tue, 01 Sep 2020 11:41:24 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[nfc]]></category>
		<category><![CDATA[spotify]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=36440</guid>

					<description><![CDATA[This is annoying me. So I&#039;m posting in the hope someone can tell me what obvious thing I am missing.  I want to tap my phone against an NFC tag hidden in LP sleeve. Then I want my phone to automatically launch the Spotify app and for the app to display that album.  This should be simple, but I can&#039;t get it to work.  Get the album link  Spotify gives me an option to copy the album link, or Spotify …]]></description>
										<content:encoded><![CDATA[<p>This is annoying me. So I'm posting in the hope someone can tell me what obvious thing I am missing.</p>

<p>I want to tap my phone against an NFC tag hidden in LP sleeve. Then I want my phone to automatically launch the Spotify app and for the app to display that album.</p>

<p>This <em>should</em> be simple, but I can't get it to work.</p>

<h2 id="get-the-album-link"><a href="https://shkspr.mobi/blog/2020/09/how-can-i-launch-a-spotify-album-from-an-nfc-tag/#get-the-album-link">Get the album link</a></h2>

<p>Spotify gives me an option to copy the album link, or Spotify URI.
<img src="https://shkspr.mobi/blog/wp-content/uploads/2020/08/Spotify-options.png" alt="Spotify screen showing options." width="1324" height="607" class="aligncenter size-full wp-image-36441"></p>

<p>Either:</p>

<ul>
<li><code>https://open.spotify.com/album/6QaVfG1pHYl1z15ZxkvVDW</code></li>
<li><code>spotify</code><code>:album:6QaVfG1pHYl1z15ZxkvVDW</code></li>
</ul>

<p>So, I <em>should</em> be able to launch either of those and get my album, right? Wrong!</p>

<h2 id="thinking-of-linking"><a href="https://shkspr.mobi/blog/2020/09/how-can-i-launch-a-spotify-album-from-an-nfc-tag/#thinking-of-linking">Thinking of linking</a></h2>

<p>If I write the <code>https</code> link to an NFC chip, my Android phone opens it in the default browser.
There is no option to launch the app from the browser.
I've told Android that it should associate <code>open.spotify.com</code> links with the Spotify app, and to use the app to open them by default.</p>

<h2 id="uriah-heap"><a href="https://shkspr.mobi/blog/2020/09/how-can-i-launch-a-spotify-album-from-an-nfc-tag/#uriah-heap">URIah Heap</a></h2>

<p>If I write the <code>spotify:</code> link to an NFC chip, my Android phone opens the Spotify app! To the default Spotify page. It doesn't open the album.</p>

<h2 id="other-things-ive-tried"><a href="https://shkspr.mobi/blog/2020/09/how-can-i-launch-a-spotify-album-from-an-nfc-tag/#other-things-ive-tried">Other things I've tried</a></h2>

<ul>
<li><code>spotify://6QaVfG1pHYl1z15ZxkvVDW</code> opens default app page</li>
<li>Plain text records - displays the text, but no way to click on it.</li>
</ul>

<p>And every other bloody combination I can think of!</p>

<p>I've <a href="https://community.spotify.com/t5/Android/Spotify-URI-and-NFC-can-they-work-together/m-p/4994996">asked in the Spotify community</a> but no one has answered.  I also tried <a href="https://stackoverflow.com/questions/62851504/use-nfc-to-open-spotify-album">asking on StackOverflow</a> but no one knew the answer.</p>

<p>There is an <a href="https://www.instructables.com/id/Albums-With-NFC-Tags-to-Automatically-Play-Spotify/">Instructables project which gives some help</a> but concludes that you need a separate app to manage the task flow. Similarly, there are tutorials for <a href="https://tolkiana.com/to-the-core-of-core-nfc/">adding Spotify NDEF parsing to your own app</a>. But both of these assume I want to install something else onto my phone. I don't. I just want Android to open the correct app to the correct screen.</p>

<h2 id="whats-causing-this"><a href="https://shkspr.mobi/blog/2020/09/how-can-i-launch-a-spotify-album-from-an-nfc-tag/#whats-causing-this">What's causing this?</a></h2>

<p>Spotify's Android manifest says it supports NDEF, but just using the Spotify scheme. The NDEF doesn't have any paths defined, whereas the http version does.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2020/08/Android-manifest-fs8.png" alt="An XML tree of an Android Manifest." width="540" height="325" class="aligncenter size-full wp-image-36449">

<p>Maybe that means that Android doesn't pass the info?</p>

<p>If I click on an <code>open.spotify.com</code> link - in a browser or elsewhere - then the Spotify app opens to the correct page.</p>

<p>Perhaps that means that Android's NFC parser sees a URI and passes it directly to the browser, rather than via a system intent?</p>

<p>I dunno, I'm at the edges of my knowledge here.</p>

<p>Help?</p>

<p><ins datetime="2020-09-02T15:49:01+00:00">Update! Spotify engineers have confirmed that the manifest is at fault. No ETA for a fix.</ins></p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=36440&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2020/09/how-can-i-launch-a-spotify-album-from-an-nfc-tag/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[This Artwork is an amiibo]]></title>
		<link>https://shkspr.mobi/blog/2020/06/this-artwork-is-an-amiibo/</link>
					<comments>https://shkspr.mobi/blog/2020/06/this-artwork-is-an-amiibo/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Tue, 30 Jun 2020 11:23:18 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[art]]></category>
		<category><![CDATA[nfc]]></category>
		<category><![CDATA[nintendo]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=35521</guid>

					<description><![CDATA[A few weeks ago, I picked up 20 NFC tags. But what to do with them? I know, let&#039;s make something impractical!  I had this gorgeous Barret Biggers - Link Blot poster which had lain in a drawer for far too long. So I turned it into an Amiibo.    Nestled in the corner, sandwiched between the print and the glass, is an NTAG215 chip.    Using the open source TagMo app for Android, I&#039;ve written the…]]></description>
										<content:encoded><![CDATA[<p>A few weeks ago, I picked up <a href="https://shkspr.mobi/blog/2020/06/gadget-review-ysshui-ntag215-nfc-tags/">20 NFC tags</a>. But what to do with them? I know, let's make something <em>impractical!</em></p>

<p>I had this gorgeous <a href="https://barrett-biggers-artist.myshopify.com/products/link-blot-archival-fine-art-print?_pos=2&amp;_sid=5d996b972&amp;_ss=r">Barret Biggers - Link Blot poster</a> which had lain in a drawer for far too long. So I turned it into an Amiibo.</p>

<img class="aligncenter size-full wp-image-35522" src="https://shkspr.mobi/blog/wp-content/uploads/2020/06/Framed-print-of-an-artistic-Link-from-Zelda.jpg" alt="Framed print of an artistic Link from Zelda." width="596" height="773">

<p>Nestled in the corner, sandwiched between the print and the glass, is an <a href="https://amzn.to/2YfOe8G">NTAG215 chip</a>.</p>

<img class="aligncenter size-full wp-image-35523" src="https://shkspr.mobi/blog/wp-content/uploads/2020/06/A-circular-chip-behind-glass.jpg" alt="A circular chip behind glass." width="480" height="480">

<p>Using the open source <a href="https://github.com/HiddenRamblings/TagMo">TagMo app for Android</a>, I've written the data of one of my Nintendo amiibo to the chip. Now, in the middle of an <em>epic</em> battle on Breath of the Wild, I can run up to the artwork, awkwardly hold the JoyCon in <em>just</em> the right place, and get a much needed power up! Sweet!</p>

<p></p><div style="width: 620px;" class="wp-video"><video class="size-full" id="video-35521-2" width="620" height="349" preload="metadata" controls="controls"><source type="video/mp4" src="https://shkspr.mobi/blog/wp-content/uploads/2020/06/e3NhmRamQf0R1hA0.mp4?_=2"><a href="https://shkspr.mobi/blog/wp-content/uploads/2020/06/e3NhmRamQf0R1hA0.mp4">https://shkspr.mobi/blog/wp-content/uploads/2020/06/e3NhmRamQf0R1hA0.mp4</a></video></div><p></p>

<h2 id="whats-the-point"><a href="https://shkspr.mobi/blog/2020/06/this-artwork-is-an-amiibo/#whats-the-point">What's the point?</a></h2>

<p>YOU'RE NOT MY REAL DAD, JEFF! YOU CAN'T TELL ME WHAT TO DO WITH MY LIFE!</p>

<h2 id="geez-sport-i-was-only-askin-wanna-tell-me-whats-really-on-your-mind"><a href="https://shkspr.mobi/blog/2020/06/this-artwork-is-an-amiibo/#geez-sport-i-was-only-askin-wanna-tell-me-whats-really-on-your-mind">Geez sport, I was only askin'. Wanna tell me what's <em>really</em> on your mind?</a></h2>

<p><small><small>You wouldn't understand...</small></small></p>

<p>Try me...</p>

<h2 id="other-uses"><a href="https://shkspr.mobi/blog/2020/06/this-artwork-is-an-amiibo/#other-uses">Other uses</a></h2>

<p>My ridiculously talented cousin, the artist <a href="https://www.artbyjlm.com/">Judi Lapsley Miller</a> creates the most brain-bending bird-based artworks.</p>

<img class="aligncenter size-full wp-image-35526" src="https://shkspr.mobi/blog/wp-content/uploads/2020/06/A-painting-of-a-steampunk-bird.jpg" alt="A painting of a steampunk bird." width="512" height="512">

<p>Hidden in the corner is another NFC tag. Tap it, and it goes directly to <a href="https://www.artbyjlm.com/store/p60/a-quick-study.html">the artwork's homepage</a>.</p>

<h2 id="visibility"><a href="https://shkspr.mobi/blog/2020/06/this-artwork-is-an-amiibo/#visibility">Visibility</a></h2>

<p>NFC suffers from several problems - most of which can be solved by using a QR code.</p>

<ul>
<li>The tag needs to be visible. That white circle is a little incongruous. I could have hidden it behind the paper, but then no one would know it was there, and they wouldn't know where to place their phone.</li>
<li>Where is your phone's sensor? Do you know? If not, you'll be rubbing your phone all over the glass, attempting to find it.</li>
<li>Physical contact is damaging to artwork. NFC is "contactless" - but if you ever watch people pay for things with their phone, they often slam it down on the reader. Not what you want on your art.</li>
<li>NFC is expensive. Between 50p - £2 per chip, depending on model. QR just requires black ink and white paper.</li>
<li>Limited data. The NTAG215 holds 504 bytes. QR codes can hold 8x that amount.</li>
</ul>

<p>Basically, for anything other than an amiibo, QR codes still win.</p>

<p>So, there you go, I have created an impractical video game accessory. Where is my VC funding?</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=35521&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2020/06/this-artwork-is-an-amiibo/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Gadget Review - YSSHUI NTAG215 NFC Tags ★★⯪☆☆]]></title>
		<link>https://shkspr.mobi/blog/2020/06/gadget-review-ysshui-ntag215-nfc-tags/</link>
					<comments>https://shkspr.mobi/blog/2020/06/gadget-review-ysshui-ntag215-nfc-tags/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Sat, 13 Jun 2020 11:36:41 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[gadget]]></category>
		<category><![CDATA[nfc]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[rfid]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=35310</guid>

					<description><![CDATA[I&#039;ve spent most of the last decade ranting against NFC.  QR Codes are almost always superior to NFC. QR codes hold more data, are extremely cheap, and easy to spot.  NFC tags are limited in size, expensive, and have no universally recognised icon. Oh, and NFC doesn&#039;t work if it&#039;s stuck on a metal surface!  So, I&#039;ve been sent 20 NTAG 215s to review.    First thing&#039;s first, these cost a pound each! …]]></description>
										<content:encoded><![CDATA[<p>I've spent most of the last decade <a href="https://shkspr.mobi/blog/tag/nfc/">ranting against NFC</a>. 
QR Codes are <em>almost</em> always superior to NFC. QR codes hold more data, are extremely cheap, and easy to spot.  NFC tags are limited in size, expensive, and have no universally recognised icon. Oh, and NFC doesn't work if it's stuck on a metal surface!</p>

<p>So, I've been sent <a href="https://amzn.to/2YfOe8G">20 NTAG 215</a>s to review.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2020/06/15917180661850.jpg" alt="A bunch of white plastic circles in a bag." width="1280" height="938" class="aligncenter size-full wp-image-35326">

<p>First thing's first, these cost a pound each! The 215s are in a supply shortage at the moment, but even buying in bulk, you'll only get down to about 50p per tag.</p>

<p>A plain white sticker, printed with black ink for a QR code, is much cheaper. But there is an undeniable magic to NFC - hover your phone nearby and <em>something</em> happens!</p>

<h2 id="quick-review"><a href="https://shkspr.mobi/blog/2020/06/gadget-review-ysshui-ntag215-nfc-tags/#quick-review">Quick Review</a></h2>

<p>With an Android phone, you can quickly and easily write 504 bytes of data to a tag. There's no sticker, but they're light enough to stick to just about any surface with a dab of glue. Don't put them on metal though, or you won't be able to read the tag.</p>

<p>The tags can be password protected, which is handy if you want to keep the contents from being overwritten from someone without the 8 character password. You can also permanently write-lock the tags - this cannot be removed.</p>

<p>I tried them on a couple of Android phones and they worked quickly and easily.</p>

<p>They're 35mm in size, which makes them easy to spot when stuck to a surface and gives you a reasonable target size if you don't know where your phone's sensor is. They are plain white. But the surface is shiny plastic - so you can write on them with a soft pencil or a felt-tip pen.</p>

<p>The exact model number is <code>NT2H1511G0DUx</code> - which is widely compatible.</p>

<p>They're small enough and thin enough to hide in clothes, shoes, or anything that you might need to claim ownership of. The plastic feels pretty durable and will take some effort to break.</p>

<p><a href="https://amzn.to/2YfOe8G">The price is a little high</a> but included next-day delivery.</p>

<h2 id="tech-specs"><a href="https://shkspr.mobi/blog/2020/06/gadget-review-ysshui-ntag215-nfc-tags/#tech-specs">Tech Specs</a></h2>

<p>You can <a href="https://www.nxp.com/products/rfid-nfc/nfc-hf/ntag/ntag-for-tags-labels/ntag-213-215-216-nfc-forum-type-2-tag-compliant-ic-with-144-504-888-bytes-user-memory:NTAG213_215_216">read the whole specification on NXP's website</a>.</p>

<p>The main things you probably care about are:</p>

<ul>
<li>504 bytes of data.</li>
<li>Lockable.</li>
<li>Password Protected.</li>
<li>Read Counter.</li>
<li>Compatible with Amiibo.</li>
</ul>

<p>504 bytes is long enough for almost any URl. Obviously, you're not going to be flinging tonnes of data around with this, but it's a little disappointing that it's not long enough for, say, a PGP key.</p>

<p>The tags are optionally lockable. That means that once written to, they cannot be overwritten. Ever. Handy if you're going to put them out in public. You don't have to use that feature.</p>

<p>Password protection means that you can set a specific memory area of the chip to <em>require</em> a password to overwrite. You can also set an <code>AUTHLIM</code> number which limits the number of authentication attempts. If you go over it, the chip self-destructs. Well, it renders the memory portion unreadable. The password has a maximum length of 8 characters.</p>

<p>There's a 24 bit counter to tell you how often the chip has been read. This seems like overkill - 24 bits is capable of counting to ~16 million!  Still, it can be helpful to see which of your tags is most popular. If you're using a URl, you can set a counter on that as well - so it automagically appends <code>?ctr=000001</code> the first time it is scanned, <code>?ctr=000002</code> the second, etc.</p>

<p>Finally, the main reason people seem to buy this <em>specific</em> model is that it is compatible with <a href="https://www.nintendo.com/amiibo/what-is-amiibo/">Nintendo's Amiibo platform</a>. If you're unaware of Amiibo - they're figurines you can buy, shaped like a game character. They have an NFC tag in their base, and when you hold them against your games console, they give you an in-game upgrade.</p>

<p>There are a <a href="https://github.com/HiddenRamblings/TagMo">bunch of open source tools</a> to enable you to clone an Amiibo and write it to a fresh tag. How weird that we're now able to "pirate" physical products!</p>

<h2 id="using-them"><a href="https://shkspr.mobi/blog/2020/06/gadget-review-ysshui-ntag215-nfc-tags/#using-them">Using them</a></h2>

<p>According to <a href="https://github.com/nadam/nfc-reader">Adam Nybäck's open source NFC reader</a>, the chip supports the following standards:</p>

<ul>
<li>NfcA</li>
<li>MifareUltralight C</li>
<li>Ndef</li>
</ul>

<p>Luckily, NFC is an open protocol - so you can find lots of apps which will write data to the chips.</p>

<p>NXP are the manufacturer of most of the world's NFC tags, <a href="https://play.google.com/store/apps/details?id=com.nxp.nfc.tagwriter">their Android app</a> is pretty good.  With a couple of taps, you can set the payload and write it to the tag.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2019/01/NXP-Tag-Writer-Set-Up.png" alt="Series showing the NXP Tag Writer Set Up." width="1024" height="488" class="aligncenter size-full wp-image-31239">

<h2 id="usability"><a href="https://shkspr.mobi/blog/2020/06/gadget-review-ysshui-ntag215-nfc-tags/#usability">Usability</a></h2>

<p>Do you know where your phone's NFC sensor is? With a bit of trial and error you can easily find it.  But if you want to use your tags to share data with <em>other people's phones</em>, it is a bit more complicated.</p>

<p>You either have to slowly and sensuously stroke the back of the phone until it gives a little jolt of excitement, or laboriously hold your tag over likely spots for a few seconds.</p>

<p>Because the chip is small, and lots of phones have cases which attenuate the signal, placement needs to be quite precise.</p>

<h2 id="iphones"><a href="https://shkspr.mobi/blog/2020/06/gadget-review-ysshui-ntag215-nfc-tags/#iphones">iPhones</a></h2>

<p>Bloody Apple! They finally have NFC in their latest models, but you need to <a href="https://itunes.apple.com/us/app/nfc-launch/id1436166599">install an app to read tags</a>. Once done, it is quick to scan and open tags.</p>

<p>There is no way to write a tag using an iPhone.</p>

<h2 id="final-word"><a href="https://shkspr.mobi/blog/2020/06/gadget-review-ysshui-ntag215-nfc-tags/#final-word">Final Word</a></h2>

<p>These are basically fine. It would be nice if they had a sticker on one side. But they're thin and light. I still think QR codes are faster, better, and cheaper. But the ability to write-protect information, and the built in counters, are undeniably useful.</p>

<p>Perhaps next year is the year of <del>Linux on the desktop</del> NFC on the iPhone?</p>

<h2 id="buy-consume-enjoy"><a href="https://shkspr.mobi/blog/2020/06/gadget-review-ysshui-ntag215-nfc-tags/#buy-consume-enjoy">Buy! Consume! Enjoy!</a></h2>

<p><a href="https://amzn.to/2YfOe8G">Buy 20 NFC tags on Amazon for £20</a>. Or don't. I'm not in charge.</p>

<p>This review unit was supplied by NiceRebate.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=35310&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2020/06/gadget-review-ysshui-ntag215-nfc-tags/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Hidden Data in NFC Tags]]></title>
		<link>https://shkspr.mobi/blog/2019/01/hidden-data-in-nfc-tags/</link>
					<comments>https://shkspr.mobi/blog/2019/01/hidden-data-in-nfc-tags/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Tue, 29 Jan 2019 12:07:07 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[ndef]]></category>
		<category><![CDATA[nfc]]></category>
		<category><![CDATA[rfid]]></category>
		<category><![CDATA[security]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=31318</guid>

					<description><![CDATA[I&#039;ve just got a set of wearable NFC tags, and I&#039;ve discovered something interesting about the way data is stored on them.  tl;dr Overwriting a tag can leave old data intact, and still readable.  Here&#039;s the decoded memory layout of a tag with data written to it. In this case, a (failed) experiment at storing a JavaScript pop-up.  # NDEF message: [00] D1 01 7D 55 00 64 61 74 61 3A 74 65 78 74 2F 68 …]]></description>
										<content:encoded><![CDATA[<p>I've just got <a href="https://shkspr.mobi/blog/2019/01/augmenting-the-human-hand-smart-nails/">a set of wearable NFC tags</a>, and I've discovered something interesting about the way data is stored on them.</p>

<p>tl;dr Overwriting a tag can leave old data intact, and still readable.</p>

<p>Here's the decoded memory layout of a tag with data written to it. In this case, a (failed) experiment at storing a JavaScript pop-up.</p>

<pre><code class="language-_"># NDEF message:
[00] D1 01 7D 55 00 64 61 74 61 3A 74 65 78 74 2F 68 |.␁}U␀data:text/h|
[10] 74 6D 6C 3B 63 68 61 72 73 65 74 3D 75 74 66 2D |tml;charset=utf-|
[20] 38 2C 25 33 43 25 32 31 44 4F 43 54 59 50 45 25 |8,%3C%21DOCTYPE%|
[30] 32 30 68 74 6D 6C 25 33 45 25 33 43 62 6F 64 79 |20html%3E%3Cbody|
[40] 25 33 45 25 33 43 73 63 72 69 70 74 25 33 45 61 |%3E%3Cscript%3Ea|
[50] 6C 65 72 74 25 32 38 25 32 32 68 69 25 32 32 25 |lert%28%22hi%22%|
[60] 32 39 25 33 42 25 33 43 25 32 46 73 63 72 69 70 |29%3B%3C%2Fscrip|
[70] 74 25 33 45 25 33 43 25 32 46 62 6F 64 79 25 33 |t%3E%3C%2Fbody%3|
[80] 45                                              |E               |
</code></pre>

<p>As the experiment didn't work, I decided to rewrite the tag with some much shorter data.  Here's the new message.</p>

<pre><code class="language-_"># NDEF message:
[00] D1 02 36 53 70 91 01 12 55 00 68 74 74 70 73 3A |.␂6Sp.␁␒U␀https:|
[10] 2F 2F 65 64 65 6E 74 2E 74 65 6C 51 01 1C 54 02 |//edent.telQ␁␜T␂|
[20] 65 6E 54 65 72 65 6E 63 65 27 73 20 63 6F 6E 74 |enTerence's␠cont|
[30] 61 63 74 20 64 65 74 61 69 6C 73                |act␠details     |
</code></pre>

<p>But that's not the whole story! The above is the <a href="https://learn.adafruit.com/adafruit-pn532-rfid-nfc/ndef">NDEF</a> (NFC Data Exchange Format) message which has been decoded.  Let's look at the <em>full</em> memory layout:</p>

<pre><code class="language-_"># Memory content:
[00] *  04:01:2A A7 (UID0-UID2, BCC0)
[01] *  62:F4:48:81 (UID3-UID6)
[02] .  5F 48 00 00 (BCC1, INT, LOCK0-LOCK1)
[03] .  E1:10:12:00 (OTP0-OTP3)
[04] .  03 3B D1 02 |␃;.␂|
[05] .  36 53 70 91 |6Sp.|
[06] .  01 12 55 00 |␁␒U␀|
[07] .  68 74 74 70 |http|
[08] .  73 3A 2F 2F |s://|
[09] .  65 64 65 6E |eden|
[0A] .  74 2E 74 65 |t.te|
[0B] .  6C 51 01 1C |lQ␁␜|
[0C] .  54 02 65 6E |T␂en|
[0D] .  54 65 72 65 |Tere|
[0E] .  6E 63 65 27 |nce'|
[0F] .  73 20 63 6F |s␠co|
[10] .  6E 74 61 63 |ntac|
[11] .  74 20 64 65 |t␠de|
[12] .  74 61 69 6C |tail|
[13] .  73 FE 00 00 |s.␀␀|
[14] .  64 79 25 33 |dy%3|
[15] .  45 25 33 43 |E%3C|
[16] .  73 63 72 69 |scri|
[17] .  70 74 25 33 |pt%3|
[18] .  45 61 6C 65 |Eale|
[19] .  72 74 25 32 |rt%2|
[1A] .  38 25 32 32 |8%22|
[1B] .  68 69 25 32 |hi%2|
[1C] .  32 25 32 39 |2%29|
[1D] .  25 33 42 25 |%3B%|
[1E] .  33 43 25 32 |3C%2|
[1F] .  46 73 63 72 |Fscr|
[20] .  69 70 74 25 |ipt%|
[21] .  33 45 25 33 |3E%3|
[22] .  43 25 32 46 |C%2F|
[23] .  62 6F 64 79 |body|
[24] .  25 33 45 FE |%3E.|
[25] .  00 00 00 00 |␀␀␀␀|
[26] .  00 00 00 00 |␀␀␀␀|
[27] .  00 00 00 00 |␀␀␀␀|
[28] .  00 00 00 BD (LOCK2-LOCK4, CHK)
[29] .  04 00 00 FF (CFG, MIRROR, AUTH0)
[2A] .  00 05 -- -- (ACCESS)
[2B] +P FF FF FF FF (PWD0-PWD3)
[2C] +P 00 00 -- -- (PACK0-PACK1)
</code></pre>

<p>You can see the new data is at the start, then there is a gap, and then the remainder of the old data is present!</p>

<p>This is due to this line:</p>

<pre><code class="language-_">[05] .  36 53 70 91 |6Sp.|
</code></pre>

<p>The <code>36</code> is the <a href="https://www.oreilly.com/library/view/beginning-nfc/9781449324094/ch04.html">Payload Length</a> - in this case <code>0x36</code> bytes of data. In other words, the header says "This data is 54 bytes in length".</p>

<p>Most phones' built-in NFC readers grab the first part and correctly interpret it and stop there.</p>

<p>But using a reader like <a href="https://play.google.com/store/apps/details?id=com.nxp.taginfolite&amp;hl=en">NXP Tag Info</a> will allow you to see all of the data hidden in the tag.</p>

<p>So, go around scanning NFC tags (if you can find any), and see what leftover data is still present.</p>

<p>To ensure this doesn't happen to you, make sure to erase and format any tags before rewriting them.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=31318&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2019/01/hidden-data-in-nfc-tags/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Augmenting the human hand - smart nails]]></title>
		<link>https://shkspr.mobi/blog/2019/01/augmenting-the-human-hand-smart-nails/</link>
					<comments>https://shkspr.mobi/blog/2019/01/augmenting-the-human-hand-smart-nails/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Sun, 20 Jan 2019 09:32:33 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[biohacking]]></category>
		<category><![CDATA[nfc]]></category>
		<category><![CDATA[rfid]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=31224</guid>

					<description><![CDATA[My fingers are now Internet-enabled. Well... sort of!  My dexterous digits can now wirelessly broadcast URls and all sorts of other information.  Here&#039;s a video showing how!  Terence Eden is on Mastodon@edentReplying to @edentMy nails contain a URl! pic.x.com/MmOvnlqt0u❤️ 5💬 3🔁 019:20 - Fri 18 January 2019  I have a small NFC chip sandwiched between my finger and a fake nail. NFC - Near Field Comm…]]></description>
										<content:encoded><![CDATA[<p>My fingers are now Internet-enabled. Well... sort of!  My dexterous digits can now wirelessly broadcast URls and all sorts of other information.  Here's a video showing how!</p>

<blockquote class="social-embed" id="social-embed-1086342526506885120" lang="en" itemscope="" itemtype="https://schema.org/SocialMediaPosting"><header class="social-embed-header" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><a href="https://twitter.com/edent" class="social-embed-user" itemprop="url"><img class="social-embed-avatar social-embed-avatar-circle" src="data:image/webp;base64,UklGRkgBAABXRUJQVlA4IDwBAACQCACdASowADAAPrVQn0ynJCKiJyto4BaJaQAIIsx4Au9dhDqVA1i1RoRTO7nbdyy03nM5FhvV62goUj37tuxqpfpPeTBZvrJ78w0qAAD+/hVyFHvYXIrMCjny0z7wqsB9/QE08xls/AQdXJFX0adG9lISsm6kV96J5FINBFXzHwfzMCr4N6r3z5/Aa/wfEoVGX3H976she3jyS8RqJv7Jw7bOxoTSPlu4gNbfXYZ9TnbdQ0MNnMObyaRQLIu556jIj03zfJrVgqRM8GPwRoWb1M9AfzFe6Mtg13uEIqrTHmiuBpH+bTVB5EEQ3uby0C//XOAPJOFv4QV8RZDPQd517Khyba8Jlr97j2kIBJD9K3mbOHSHiQDasj6Y3forATbIg4QZHxWnCeqqMkVYfUAivuL0L/68mMnagAAA" alt="" itemprop="image"><div class="social-embed-user-names"><p class="social-embed-user-names-name" itemprop="name">Terence Eden is on Mastodon</p>@edent</div></a><img class="social-embed-logo" alt="Twitter" src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%0Aaria-label%3D%22Twitter%22%20role%3D%22img%22%0AviewBox%3D%220%200%20512%20512%22%3E%3Cpath%0Ad%3D%22m0%200H512V512H0%22%0Afill%3D%22%23fff%22%2F%3E%3Cpath%20fill%3D%22%231d9bf0%22%20d%3D%22m458%20140q-23%2010-45%2012%2025-15%2034-43-24%2014-50%2019a79%2079%200%2000-135%2072q-101-7-163-83a80%2080%200%200024%20106q-17%200-36-10s-3%2062%2064%2079q-19%205-36%201s15%2053%2074%2055q-50%2040-117%2033a224%20224%200%2000346-200q23-16%2040-41%22%2F%3E%3C%2Fsvg%3E"></header><section class="social-embed-text" itemprop="articleBody"><small class="social-embed-reply"><a href="https://twitter.com/edent/status/1086315143699619841">Replying to @edent</a></small>My nails contain a URl! <a href="https://x.com/edent/status/1086342526506885120/video/1">pic.x.com/MmOvnlqt0u</a><div class="social-embed-media-grid"><video class="social-embed-video" controls="" src="https://video.twimg.com/ext_tw_video/1086342411654217729/pu/vid/720x1280/7hJyDrT5GRriwx-I.mp4?tag=6" poster="data:image/webp;base64,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" width="550"></video></div></section><hr class="social-embed-hr"><footer class="social-embed-footer"><a href="https://twitter.com/edent/status/1086342526506885120"><span aria-label="5 likes" class="social-embed-meta">❤️ 5</span><span aria-label="3 replies" class="social-embed-meta">💬 3</span><span aria-label="0 reposts" class="social-embed-meta">🔁 0</span><time datetime="2019-01-18T19:20:16.000Z" itemprop="datePublished">19:20 - Fri 18 January 2019</time></a></footer></blockquote>

<p>I have a small NFC chip sandwiched between my finger and a fake nail. NFC - Near Field Communication - is the magic which makes your contactless credit card / Oyster card work.  The chip contains a tiny amount of data.  When it gets near an electromagnetic source - like a phone - it begins to broadcast the data.  When your phone receives the data, it does <em>something</em> with it.</p>

<p>It is important to note, that there is no special app running on my Android phone. Decoding the chip's data is built-in functionality.</p>

<p>The chips <a href="https://amzn.to/2ARvUI6">cost between £2 - £5 on Amazon</a> - that's a per-nail price.  There are bulk discounts available on eBay. You will also need to buy nail glue, polish (if you want a different colour), and removal fluid. The things we do for fashion, eh?</p>

<h2 id="tech-specs"><a href="https://shkspr.mobi/blog/2019/01/augmenting-the-human-hand-smart-nails/#tech-specs">Tech Specs</a></h2>

<p>The chip is made by NXP and is the <a href="https://www.nxp.com/docs/en/data-sheet/NTAG213_215_216.pdf">NTAG213 model</a>.  More specifically, the snappily named <a href="https://www.digikey.com/Site/Global/Layouts/DownloadPdf.ashx?pdfUrl=AB652B450D6B4352BB96BABC705BD4F3">NT2H1311G0DUx</a>.</p>

<p>According to <a href="https://github.com/nadam/nfc-reader">Adam Nybäck's open source NFC reader</a>, the chip supports the following standards:</p>

<ul>
<li><a href="https://developer.android.com/reference/android/nfc/tech/NfcA">NfcA</a></li>
<li><a href="https://learn.adafruit.com/adafruit-pn532-rfid-nfc/ndef">Ndef</a> - NFC Data Exchange Format</li>
<li><a href="https://www.nxp.com/docs/en/fact-sheet/MIFARE-ULTRALIGHT-C-FS.pdf">Mifare Ultralight type C</a></li>
</ul>

<p>The Ultralight C gives us 106kbps transmission speed - which may seem slow, but the chip is limited to 144 bytes of memory. Better make your URls small! The chip can be written to 10,000 times and has unlimited reads. It uses <a href="https://web.archive.org/web/20190124065025/http://nfc-tools.org/index.php/MIFARE_Ultralight_C">3DES for authentication</a> - which I don't fully understand. You can also write protect the chip once you've written data to it.</p>

<p>Finally, each chip also has a 7 byte unique serial number - so you can tell your phone to "do something when you see chip with ID <code>abcd567</code>".  For that, you will need a separate app on your phone.</p>

<h2 id="the-app"><a href="https://shkspr.mobi/blog/2019/01/augmenting-the-human-hand-smart-nails/#the-app">The app</a></h2>

<p>To program the nails, you'll need an app. Jakcom's nail-specific app doesn't appear on the Play Store. Based on the <a href="https://web.archive.org/web/20170530131737/https://play.google.com/store/apps/details?id=com.jakcom.timer">poor reviews for their other app</a>, you're not missing much!  You can <a href="http://www.jakcom.com/ins/n2/n2f.html">download it directly</a> - but it asks for ridiculous permissions, so best avoided.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2019/01/Jakcom-smart-nail-permissions-screen.png" alt="Jakcom smart nail permissions screen. It wants to make phone calls, draw over other apps, and send text messages." width="324" height="522" class="aligncenter size-full wp-image-31238">

<p>Luckily, NFC is an open protocol - so you can find lots of apps which will write data to the chips.</p>

<p>NXP are the manufacturer of most of the world's NFC tags, <a href="https://play.google.com/store/apps/details?id=com.nxp.nfc.tagwriter">their Android app</a> is pretty good.  With a couple of taps, you can set the payload and write it to the tag.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2019/01/NXP-Tag-Writer-Set-Up.png" alt="Series showing the NXP Tag Writer Set Up." width="1024" height="488" class="aligncenter size-full wp-image-31239">

<h2 id="stick-em-on"><a href="https://shkspr.mobi/blog/2019/01/augmenting-the-human-hand-smart-nails/#stick-em-on">Stick 'em on!</a></h2>

<p>If, like me, you're inexperienced with applying fake nails - there's a handy tutorial:</p>

<iframe title="Installation of N2 Smart Nail 2017" width="620" height="349" src="https://www.youtube.com/embed/MjXfv7UCr8o?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen=""></iframe>

<p>Because you're gluing the chip to the nail, and using acetone to remove it, don't expect these to be reusable. They are relatively fragile - so find a flat bit of your fingernail to stick them to.</p>

<p>The included fake nails were too small for my giant hands - hence why it is stuck to my little finger.</p>

<h2 id="what-can-it-do"><a href="https://shkspr.mobi/blog/2019/01/augmenting-the-human-hand-smart-nails/#what-can-it-do">What can it do?</a></h2>

<p>I've set mine to broadcast <a href="https://shkspr.mobi/blog/2017/04/how-i-built-a-responsive-semantic-contact-me-page-in-under-16kb/">my contact website</a>.</p>

<p>There are a whole lot more functions, as this video demonstrates:
<video src="https://cloud.video.taobao.com/play/u/2441521103/p/1/e/6/t/1/50000982980.mp4" width="512" controls=""></video></p>

<h2 id="security"><a href="https://shkspr.mobi/blog/2019/01/augmenting-the-human-hand-smart-nails/#security">Security</a></h2>

<p>There is a small security risk with some of the functions. You can tell the phone to call a number, send a text, or an email - but the user has to confirm the action.</p>

<p>Riskier is Bluetooth and WiFi pairing.  Long seen on <a href="https://phiaton.com/nfc-bluetooth-pairing-what-is-it-what-are-the-benefits/">Bluetooth headphones</a>, you can tell a phone to connect to a specific Bluetooth or WiFi device.  Again, the user should have to confirm the action - but that will depend on the phone.</p>

<p>Most phones only activate NFC when the screen is on and the device unlocked - so you should be aware that something is interacting with your device.</p>

<h2 id="different-models"><a href="https://shkspr.mobi/blog/2019/01/augmenting-the-human-hand-smart-nails/#different-models">Different models</a></h2>

<p>The manufactures, <a href="http://www.jakcom.com/N2_en.html">Jakcom</a>, have three different models.</p>

<p><video src="https://cloud.video.taobao.com/play/u/2441521103/p/1/e/6/t/1/50000976139.mp4" width="512" controls=""></video></p>

<ul>
<li>N2F - carries some "information". The phone can then use that to run an app, launch a browser, or similar. That's what I'm using.</li>
<li>N2L - a light-up chip. Once your finger gets close to a power source, it will light up. Cute!</li>
<li>N2M - this can, theoretically, hold any data that you can copy from an existing smartcard. So you could embed your work access pass into your thumb. The legality and practicality of this is something I've not explored.</li>
</ul>

<p>I would <em>love</em> a combined N2F/L chip. I like the idea of my nails flashing multiple colours as that transmit data through the æther.</p>

<h2 id="usability"><a href="https://shkspr.mobi/blog/2019/01/augmenting-the-human-hand-smart-nails/#usability">Usability</a></h2>

<p>Do you know where your phone's NFC sensor is? With a bit of trial and error you can easily find it.  But if you want to use your nails to share data with other people's phones, it is a bit more complicated.</p>

<p>You either have to slowly and sensuously stroke the back of the phone until it gives a little jolt of excitement, or laboriously hold your finger over likely spots for a few seconds.</p>

<p>Because the chip is small, and lots of phones have cases which attenuate the signal, placement needs to be quite precise.</p>

<p>Many years ago <a href="https://shkspr.mobi/blog/2011/03/the-problem-with-rfid/">I wrote about the usability of NFC compared to QR codes</a> - nothing much has changed. At least handing over a business card is more socially acceptable than demanding someone scan my finger<a href="https://youtu.be/VCt1yRMjo0A?t=200">.</a></p>

<h2 id="iphones"><a href="https://shkspr.mobi/blog/2019/01/augmenting-the-human-hand-smart-nails/#iphones">iPhones</a></h2>

<p>Bloody Apple! They finally have NFC in their latest models, but you need to <a href="https://itunes.apple.com/us/app/nfc-launch/id1436166599">install an app to read tags</a>. Once done, it is quick.</p>

<blockquote class="social-embed" id="social-embed-1086562088963751936" lang="en" itemscope="" itemtype="https://schema.org/SocialMediaPosting"><header class="social-embed-header" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><a href="https://twitter.com/edent" class="social-embed-user" itemprop="url"><img class="social-embed-avatar social-embed-avatar-circle" src="data:image/webp;base64,UklGRkgBAABXRUJQVlA4IDwBAACQCACdASowADAAPrVQn0ynJCKiJyto4BaJaQAIIsx4Au9dhDqVA1i1RoRTO7nbdyy03nM5FhvV62goUj37tuxqpfpPeTBZvrJ78w0qAAD+/hVyFHvYXIrMCjny0z7wqsB9/QE08xls/AQdXJFX0adG9lISsm6kV96J5FINBFXzHwfzMCr4N6r3z5/Aa/wfEoVGX3H976she3jyS8RqJv7Jw7bOxoTSPlu4gNbfXYZ9TnbdQ0MNnMObyaRQLIu556jIj03zfJrVgqRM8GPwRoWb1M9AfzFe6Mtg13uEIqrTHmiuBpH+bTVB5EEQ3uby0C//XOAPJOFv4QV8RZDPQd517Khyba8Jlr97j2kIBJD9K3mbOHSHiQDasj6Y3forATbIg4QZHxWnCeqqMkVYfUAivuL0L/68mMnagAAA" alt="" itemprop="image"><div class="social-embed-user-names"><p class="social-embed-user-names-name" itemprop="name">Terence Eden is on Mastodon</p>@edent</div></a><img class="social-embed-logo" alt="Twitter" src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%0Aaria-label%3D%22Twitter%22%20role%3D%22img%22%0AviewBox%3D%220%200%20512%20512%22%3E%3Cpath%0Ad%3D%22m0%200H512V512H0%22%0Afill%3D%22%23fff%22%2F%3E%3Cpath%20fill%3D%22%231d9bf0%22%20d%3D%22m458%20140q-23%2010-45%2012%2025-15%2034-43-24%2014-50%2019a79%2079%200%2000-135%2072q-101-7-163-83a80%2080%200%200024%20106q-17%200-36-10s-3%2062%2064%2079q-19%205-36%201s15%2053%2074%2055q-50%2040-117%2033a224%20224%200%2000346-200q23-16%2040-41%22%2F%3E%3C%2Fsvg%3E"></header><section class="social-embed-text" itemprop="articleBody"><small class="social-embed-reply"><a href="https://twitter.com/edent/status/1086544639035879424">Replying to @edent</a></small>My NFC finger works on iPhone!<br>(If you install the NXP tag reader app.) <a href="https://x.com/edent/status/1086562088963751936/photo/1">pic.x.com/K6Nmcwhbol</a><div class="social-embed-media-grid"><a href="https://pbs.twimg.com/media/DxQ-dM2XQAE9s3H.jpg" class="social-embed-media-link"><img class="social-embed-media" alt="An iPhone scanning my finger. " src="data:image/webp;base64,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"></a><a href="https://pbs.twimg.com/media/DxQ-dM2XgAAU3Qs.jpg" class="social-embed-media-link"><img class="social-embed-media" alt="The iPhone launching my website. " src="data:image/webp;base64,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"></a></div></section><hr class="social-embed-hr"><footer class="social-embed-footer"><a href="https://twitter.com/edent/status/1086562088963751936"><span aria-label="5 likes" class="social-embed-meta">❤️ 5</span><span aria-label="2 replies" class="social-embed-meta">💬 2</span><span aria-label="0 reposts" class="social-embed-meta">🔁 0</span><time datetime="2019-01-19T09:52:44.000Z" itemprop="datePublished">09:52 - Sat 19 January 2019</time></a></footer></blockquote>

<p>There is no way to write a tag using an iPhone.</p>

<h2 id="raw-info"><a href="https://shkspr.mobi/blog/2019/01/augmenting-the-human-hand-smart-nails/#raw-info">Raw Info</a></h2>

<p>After scanning the chip with the <a href="https://play.google.com/store/apps/details?id=com.nxp.taginfolite">NXP TagInfo app</a>, this is the technical readout:</p>

<pre><code class="language-_">-- NDEF ------------------------------

# NFC data set information:
NDEF message containing 1 record
Current message size: 59 bytes
Maximum message size: 142 bytes
NFC data set access: Read &amp; Write
Can be made Read-Only

# Record #1: Smart Poster record:
Type Name Format: NFC Forum well-known type
Short Record
type: "Sp"
    # URI record
    type: "U"
    * protocol field: [none]
    * URI field: https://edent.tel
    # Text record
    type: "T"
    * encoding: UTF-8
    * lang: "en"
    * text: "Terence's contact details"
Payload length: 54 bytes
Payload data:

[00] 91 01 12 55 00 68 74 74 70 73 3A 2F 2F 65 64 65 |...U.https://ede|
[10] 6E 74 2E 74 65 6C 51 01 1C 54 02 65 6E 54 65 72 |nt.telQ..T.enTer|
[20] 65 6E 63 65 27 73 20 63 6F 6E 74 61 63 74 20 64 |ence's contact d|
[30] 65 74 61 69 6C 73                               |etails          |

# NDEF message:
[00] D1 02 36 53 70 91 01 12 55 00 68 74 74 70 73 3A |..6Sp...U.https:|
[10] 2F 2F 65 64 65 6E 74 2E 74 65 6C 51 01 1C 54 02 |//edent.telQ..T.|
[20] 65 6E 54 65 72 65 6E 63 65 27 73 20 63 6F 6E 74 |enTerence's cont|
[30] 61 63 74 20 64 65 74 61 69 6C 73                |act details     |

# NDEF Capability Container (CC):
Mapping version: 1.0
Maximum NDEF data size: 144 bytes
NDEF access: Read &amp; Write
 E1 10 12 00                                     |....            |

-- EXTRA ------------------------------

# Memory size:
144 bytes user memory
* 36 pages, with 4 bytes per page

# IC detailed information:
Full product name: NT2H1311G0DUx
Capacitance: 50 pF

# Version information:
Vendor ID: NXP
Type: NTAG
Subtype: 50 pF
Major version: 1
Minor version: V0
Storage size: 144 bytes
Protocol: ISO/IEC 14443-3

# Configuration information:
ASCII mirror disabled
NFC counter: disabled
No limit on wrong password attempts
Strong load modulation enabled

# Originality check:
Signature verified with NXP public key

-- FULL SCAN ------------------------------

# Technologies supported:
ISO/IEC 14443-3 (Type A) compatible
ISO/IEC 14443-2 (Type A) compatible

# Android technology information:
Tag description:
* TAG: Tech [android.nfc.tech.NfcA, android.nfc.tech.MifareUltralight, android.nfc.tech.Ndef]
* Maximum transceive length: 253 bytes
* Default maximum transceive time-out: 618 ms


# Detailed protocol information:
ID: 04:01:2A:62:F4:48:81
ATQA: 0x4400
SAK: 0x00

# Memory content:
[00] *  04:01:2A A7 (UID0-UID2, BCC0)
[01] *  62:F4:48:81 (UID3-UID6)
[02] .  5F 48 00 00 (BCC1, INT, LOCK0-LOCK1)
[03] .  E1:10:12:00 (OTP0-OTP3)
[04] .  03 3B D1 02 |.;..|
[05] .  36 53 70 91 |6Sp.|
[06] .  01 12 55 00 |..U.|
[07] .  68 74 74 70 |http|
[08] .  73 3A 2F 2F |s://|
[09] .  65 64 65 6E |eden|
[0A] .  74 2E 74 65 |t.te|
[0B] .  6C 51 01 1C |lQ..|
[0C] .  54 02 65 6E |T.en|
[0D] .  54 65 72 65 |Tere|
[0E] .  6E 63 65 27 |nce'|
[0F] .  73 20 63 6F |s co|
[10] .  6E 74 61 63 |ntac|
[11] .  74 20 64 65 |t de|
[12] .  74 61 69 6C |tail|
[13] .  73 FE 00 00 |s...|
[14] .  00 00 00 00 |....|
[15] .  00 00 00 00 |....|
[16] .  00 00 00 00 |....|
[17] .  00 00 00 00 |....|
[18] .  00 00 00 00 |....|
[19] .  00 00 00 00 |....|
[1A] .  00 00 00 00 |....|
[1B] .  00 00 00 00 |....|
[1C] .  00 00 00 00 |....|
[1D] .  00 00 00 00 |....|
[1E] .  00 00 00 00 |....|
[1F] .  00 00 00 00 |....|
[20] .  00 00 00 00 |....|
[21] .  00 00 00 00 |....|
[22] .  00 00 00 00 |....|
[23] .  00 00 00 00 |....|
[24] .  00 00 00 00 |....|
[25] .  00 00 00 00 |....|
[26] .  00 00 00 00 |....|
[27] .  00 00 00 00 |....|
[28] .  00 00 00 BD (LOCK2-LOCK4, CHK)
[29] .  04 00 00 FF (CFG, MIRROR, AUTH0)
[2A] .  00 05 -- -- (ACCESS)
[2B] +P FF FF FF FF (PWD0-PWD3)
[2C] +P 00 00 -- -- (PACK0-PACK1)

  *:locked &amp; blocked, x:locked,
  +:blocked, .:un(b)locked, ?:unknown
  r:readable (write-protected),
  p:password protected, -:write-only
  P:password protected write-only

--------------------------------------
</code></pre>

<h2 id="buy-consume-enjoy"><a href="https://shkspr.mobi/blog/2019/01/augmenting-the-human-hand-smart-nails/#buy-consume-enjoy">Buy! Consume! Enjoy!</a></h2>

<p><a href="https://amzn.to/2ARvUI6">Buy smart fingernails on Amazon</a>. Or don't. I'm not in charge.</p>

<h2 id="further-reading"><a href="https://shkspr.mobi/blog/2019/01/augmenting-the-human-hand-smart-nails/#further-reading">Further Reading</a></h2>

<p><a href="https://makezine.com/projects/near-field-fingernails/">Tanya Fish on Make Magazine</a></p>

<blockquote class="social-embed" id="social-embed-1026553037026877441" lang="en" itemscope="" itemtype="https://schema.org/SocialMediaPosting"><header class="social-embed-header" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><a href="https://twitter.com/Baybe_Doll" class="social-embed-user" itemprop="url"><img class="social-embed-avatar social-embed-avatar-circle" src="data:image/webp;base64,UklGRgwCAABXRUJQVlA4IAACAAAQCwCdASowADAAPrVKnUonJCKhsdM8AOAWiUAVJPfAdSEWbUyWaiilLC8TbjwOEHVbcb32z6ZgWEPtUhQOAqBWUxbpU4Zcd2jxM0RBBvkwM/DaZUvPSGey/+r3bm0VMDBgAP72CdBvYQSz+HcCUHJglwS6JfSDFwet5QTSBwjyNA3JMyUY3gyXWaQdKyjm3kpd14g3JeYz57Vinir43XTz4R6ONGSsaZDaucXIBbMi2kJ7YK5f//vN1T7pNXFNC5MH+qcr+sLiQxFn8BE7V9kmStOyWEJYEICwanPz6IJhN8zVydCUuaCjQ+kadXl1AuDsFnMTUXuKHGSq+etJA5dGM5mP3lrYrlsg162611B5PtPziV7pX4iSq6tdvZBumBpUFRY/xxJwPNw6vzT8+WV1nCHR//cQqssMFMG4rCifvedjX9gStKYnK5d9klhtx8di7q4axWEHzsB+RcwavmOricsWl5S69ZXJi7xI223IC+8suhaYrOJInzCQk7AdDLIZXR86WeBDWdw3WCGLuAJeLm8tUYB0hDjBpzkk/QEFd2dQBxWe67g6hP+J5P2+5h6oDG/N2YPDYJkhQTlJZ6w/LLi3SwlItYdLyI0KHq8XZExJkKdisD/ve74nWMv8h4LP43ZOki7to9A7otzAh/Z4i+Pz/LJFqLMWF4GATqJAAA==" alt="" itemprop="image"><div class="social-embed-user-names"><p class="social-embed-user-names-name" itemprop="name">@baybedoll@infosec.exchange</p>@Baybe_Doll</div></a><img class="social-embed-logo" alt="Twitter" src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%0Aaria-label%3D%22Twitter%22%20role%3D%22img%22%0AviewBox%3D%220%200%20512%20512%22%3E%3Cpath%0Ad%3D%22m0%200H512V512H0%22%0Afill%3D%22%23fff%22%2F%3E%3Cpath%20fill%3D%22%231d9bf0%22%20d%3D%22m458%20140q-23%2010-45%2012%2025-15%2034-43-24%2014-50%2019a79%2079%200%2000-135%2072q-101-7-163-83a80%2080%200%200024%20106q-17%200-36-10s-3%2062%2064%2079q-19%205-36%201s15%2053%2074%2055q-50%2040-117%2033a224%20224%200%2000346-200q23-16%2040-41%22%2F%3E%3C%2Fsvg%3E"></header><section class="social-embed-text" itemprop="articleBody">New nails for <a href="https://twitter.com/defcon">@defcon</a> - 2x MiFare Classic 1K, 2x NTAG 210, 1x NTAG 213, 1x NTAG 215 (as Princess Peach Amiibo), 1x ICODE SL2 ICS20, and 4x NFC LED <a href="https://twitter.com/hashtag/DefconNails">#DefconNails</a> <a href="https://twitter.com/hashtag/DEFCON26">#DEFCON26</a> <a href="https://x.com/Baybe_Doll/status/1026553037026877441/photo/1">pic.x.com/CCmFF7n4z9</a><div class="social-embed-media-grid"><a href="https://pbs.twimg.com/media/Dj8MiA1V4AExG_F.jpg" class="social-embed-media-link"><img class="social-embed-media" alt="" src="data:image/webp;base64,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"></a></div></section><hr class="social-embed-hr"><footer class="social-embed-footer"><a href="https://twitter.com/Baybe_Doll/status/1026553037026877441"><span aria-label="109 likes" class="social-embed-meta">❤️ 109</span><span aria-label="6 replies" class="social-embed-meta">💬 6</span><span aria-label="0 reposts" class="social-embed-meta">🔁 0</span><time datetime="2018-08-06T19:38:11.000Z" itemprop="datePublished">19:38 - Mon 06 August 2018</time></a></footer></blockquote>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=31224&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2019/01/augmenting-the-human-hand-smart-nails/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		<enclosure url="https://video.twimg.com/ext_tw_video/1086342411654217729/pu/vid/720x1280/7hJyDrT5GRriwx-I.mp4?tag=6" length="871977" type="video/mp4" />
<enclosure url="https://cloud.video.taobao.com/play/u/2441521103/p/1/e/6/t/1/50000982980.mp4" length="0" type="video/mp4" />
<enclosure url="https://cloud.video.taobao.com/play/u/2441521103/p/1/e/6/t/1/50000976139.mp4" length="0" type="video/mp4" />

			</item>
		<item>
		<title><![CDATA[iBeacon Business Cards]]></title>
		<link>https://shkspr.mobi/blog/2015/10/ibeacon-business-cards/</link>
					<comments>https://shkspr.mobi/blog/2015/10/ibeacon-business-cards/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Wed, 07 Oct 2015 11:22:14 +0000</pubDate>
				<category><![CDATA[mobile]]></category>
		<category><![CDATA[ble]]></category>
		<category><![CDATA[bluetooth]]></category>
		<category><![CDATA[business cards]]></category>
		<category><![CDATA[nfc]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=21545</guid>

					<description><![CDATA[Four years ago, I wrote an article for Moo.com about using QR Codes on business cards.  At the time, it was the easiest way to get VCARD information from a physical card and onto a phone.  I notice that Moo are now selling NFC enabled business cards.  As regular readers know, I&#039;m not a great fan of NFC - mostly because it&#039;s so expensive.  The NFC cards are £1.20 each - the regular cards cost just …]]></description>
										<content:encoded><![CDATA[<p>Four years ago, I wrote an <a href="http://www.moo.com/us/ideas/better-connections-with-qr-codes.html">article for Moo.com about using QR Codes on business cards</a>.  At the time, it was the easiest way to get VCARD information from a physical card and onto a phone.</p>

<p>I notice that <a href="https://web.archive.org/web/20151008092252/http://www.moo.com/uk/products/nfc/business-cards-plus.html">Moo are now selling NFC enabled business cards</a>.  As regular readers know, I'm <a href="https://shkspr.mobi/blog/2011/03/the-problem-with-rfid/">not a great fan of NFC</a> - mostly because it's so expensive.  The NFC cards are £1.20 each - the <a href="http://www.moo.com/uk/products/original-business-cards.html">regular cards</a> cost just 26p each!</p>

<p>What if we change the idea of what a business card is?  Why do I need to hand over a physical bit of dead tree in order to exchange contact information?  That's dumb.</p>

<p>Last week I was at the Over The Air hackference.  While there, I was lucky enough to grab a few <a href="https://web.archive.org/web/20160511083420/http://lanyrd.com/2015/ota15/sdrzgq/">"Physical Web" beacons from Ilario Gressi of Google</a>.</p>

<p><a href="https://twitter.com/clurr/status/647429897330274304"><img src="https://shkspr.mobi/blog/wp-content/uploads/2015/10/Physical-Web-BLE.jpeg" alt="Photo by Claire Rowland" width="1024" height="768" class="size-full wp-image-21550"></a>
Is there some way to turn them into a high-tech business card?</p>

<p>Yes.  Yes there is.</p>

<h2 id="what-is-an-ibeacon"><a href="https://shkspr.mobi/blog/2015/10/ibeacon-business-cards/#what-is-an-ibeacon">What Is An iBeacon?</a></h2>

<p>There are a lot of misconceptions around <a href="https://en.wikipedia.org/wiki/IBeacon">iBeacons</a>.  Bluetooth Low Energy (BLE) is a version of Bluetooth which is specifically designed to be efficient at broadcasting small amounts of data.</p>

<p>An iBeacon simply transmits an ID number via BLE.  That's it.  When your phone hears the broadcast, it looks up the ID and does <em>something</em> with it.  The typical use case is that it alerts your Coffee Shop's app as to which branch you are in.</p>

<p>Google's <a href="http://physical-web.org/">Physical Web project</a> does something <em>much more interesting</em> with iBeacon technology.  Rather than just broadcasting an ID, it (ab)uses the <a href="http://j2abro.blogspot.co.uk/2014/06/understanding-bluetooth-advertising.html">Advertising Packets</a> to <strong>broadcast a URl</strong>!</p>

<h2 id="how-it-works"><a href="https://shkspr.mobi/blog/2015/10/ibeacon-business-cards/#how-it-works">How It Works</a></h2>

<p>I carry around a Physical Web beacon on my keyring.  I've programmed it with the URl of <a href="https://shkspr.mobi/blog/2013/03/should-i-renew-my-tel-domain/">my .tel website</a>.  It spends all day broadcasting that message via BLE.</p>

<p>If you have <a href="https://web.archive.org/web/20151117050011/https://play.google.com/store/apps/details?id=physical_web.org.physicalweb">Android's Physical Web app</a>, or <a href="http://blog.chromium.org/2015/07/exploring-physical-web-with-chrome-for.html">iOS Chrome</a> - your phone should display a persistent notification showing all the nearby beacons.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2015/10/iBeacon-Business-Card-Notification-fs8.png" alt="iBeacon Business Card Notification-fs8" width="768" height="561" class="aligncenter size-full wp-image-21547">

<p>Or, you can open up the app and see a list of nearby beacons.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2015/10/iBeacon-Business-Card-List-fs8.png" alt="iBeacon Business Card List-fs8" width="768" height="457" class="aligncenter size-full wp-image-21548">

<p>One click (either in notification or app) and it takes you directly to a website with my digital business card.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2015/10/iBeacon-Business-Card-fs8.png" alt="iBeacon Business Card-fs8" width="768" height="1237" class="aligncenter size-full wp-image-21546">

<p>Fantastic!</p>

<h2 id="issues"><a href="https://shkspr.mobi/blog/2015/10/ibeacon-business-cards/#issues">Issues</a></h2>

<p>The <a href="https://github.com/google/physical-web">Physical Web specification</a> is still evolving - and  this BLE Business Card idea isn't without problems.</p>

<ul>
    <li>Beacons are expensive. Around £20 each - or US$50 for 3.  More expensive than NFC, but you keep the beacon rather than hand them out.</li>
    <li>URl length is limited to 144 bits.  That's <em>really</em> short.  I've <a href="https://github.com/google/physical-web/issues/52">suggested using a 7-bit alphabet</a>, but it seems that the preferred solution is to use a URl shortener.</li>
    <li>Web addresses only.  You can't directly embed an email address, phone number, or BitCoin link - <a href="https://github.com/google/physical-web/issues/520">just web</a>.</li>
    <li>Limited hardware support.  Just like NFC - you need a phone with the right chips in it.  And you need an app.  (<em>*mutters darkly about how QR codes only need a camera lens.  And an app...*</em>)</li>
    <li>Battery life. BLE beacons should last 2 - 5 years on a single coin cell. NFC has no battery - it is powered by the phone - so should last forever. Similarly, QR Codes will last ask long as their ink sticks to paper.</li>
    <li>Size.  A Physical Web beacon isn't small.  Not as big a business card holder, true, but not quite small enough for a key-ring.</li>
    <li>Business cards, for all their faults, provide a physical memento of an interaction.  A ritualised exchange takes place which, culturally, may carry more semantic weight than merely scanning the æther for nearby signals.</li>
    <li>Finally, I'm pretty cool being the only person in the room with a BLE Business Card - but what's it like when <em>everyone</em> has one?  At the conference we set up loads of Physical Web beacons at once - and the app quickly became full of every beacon in a 75m radius:<br><img src="https://shkspr.mobi/blog/wp-content/uploads/2015/10/Physical-Web-Crowded-fs8.png" alt="Physical Web Crowded-fs8" width="480" height="773" class="aligncenter size-full wp-image-21553"><br>
Theoretically, the app will sort by whichever signal is the strongest - which <em>should</em> mean that if I'm standing next to you, your app will pick my card first. But no guarantees.</li>

</ul>

<p>So, not perfect - but certainly a neat way to broadcast your identity to nearby people.  With BLE making its way into more and more devices, it's certainly possible that it will overtake NFC as the primary way to discover and exchange data.</p>

<p>I encourage you to contribute to the <a href="https://github.com/google/physical-web">Physical Web spec and apps</a>, as well as to <a href="https://github.com/google/eddystone">EddyStone</a> which is part of the underlying technology.  You can buy Physical Web beacons or, if you're feeling adventurous, <a href="http://get.openbeacon.org/device.html">build your own BLE beacons</a>.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=21545&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2015/10/ibeacon-business-cards/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[How Not To Run An Interactive Advertising Campaign #TAP4offers]]></title>
		<link>https://shkspr.mobi/blog/2013/06/how-not-to-run-an-interactive-advertising-campaign-tap4offers/</link>
					<comments>https://shkspr.mobi/blog/2013/06/how-not-to-run-an-interactive-advertising-campaign-tap4offers/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Mon, 10 Jun 2013 11:08:01 +0000</pubDate>
				<category><![CDATA[badvertising]]></category>
		<category><![CDATA[qr]]></category>
		<category><![CDATA[advertising]]></category>
		<category><![CDATA[nfc]]></category>
		<category><![CDATA[QR Codes]]></category>
		<category><![CDATA[tap4offers]]></category>
		<guid isPermaLink="false">http://shkspr.mobi/blog/?p=8329</guid>

					<description><![CDATA[Public transport is a great way to assess the Zeitgeist.  Watching commuters transition from iPhones to Samsungs, and from paper books to Kindles, really gives one a sense of how the world is changing.  Advertising is also a great way to measure society; seeing lots of adverts for dodgy loan companies can give you an interesting idea about the direction of the economy.  I&#039;ve been tracking the…]]></description>
										<content:encoded><![CDATA[<p>Public transport is a great way to assess the Zeitgeist.  Watching commuters transition from iPhones to Samsungs, and from paper books to Kindles, really gives one a sense of how the world is changing.  Advertising is also a great way to measure society; seeing lots of adverts for dodgy loan companies can give you an interesting idea about the direction of the economy.</p>

<p>I've been tracking the rise of QR codes in advertising for several years now.  People keep asking me when NFC will take over for "boring" QR codes - based on the few live NFC examples I've seen in the UK, NFC will be trailing QR for several more years.</p>

<p>Let me talk you through <a href="https://web.archive.org/web/20130715015550/https://www.tap4offers.co.uk/">TAP4offers</a>' latest "effort".</p>

<p>The poster is fairly clear about what to expect - although I initially thought that I'd have to stretch to the top of the carriage to scan the NFC tag!
<img src="https://shkspr.mobi/blog/wp-content/uploads/2013/06/Tap4-Train.jpg" alt="Tap4 Train" width="600" height="262" class="aligncenter size-full wp-image-8331"></p>

<p>Thankfully, that's not the case.  Beside every exit were these combined NFC / QR / SMS stickers.
<img src="https://shkspr.mobi/blog/wp-content/uploads/2013/06/Tap4-Train-Door.jpg" alt="Tap4 Train Door" width="600" height="412" class="aligncenter size-full wp-image-8332">
The NFC tag and QR code each had a unique tracking URL, so the owner of the service (<a href="https://twitter.com/GunarsTAP4">Gunars Vucens</a>) can see which method is being used the most.  Judging from the URL and the printed information, I would guess each train carriage has a unique code.</p>

<p>Once the code is scanned - this happens.
<img src="https://shkspr.mobi/blog/wp-content/uploads/2013/06/Tap4-Screenshot-fs8.png" alt="Tap4 Screenshot" width="600" height="948" class="aligncenter size-full wp-image-8330"></p>

<p>What - as the kids say - The Fuck?  I've no idea how much it costs to do a deal with South West Trains - but someone has wasted their money!</p>

<p>This is the <a href="https://shkspr.mobi/blog/2013/04/clear-channels-nfc-mistake/">same mistake that Clear Channel made on their QR/NFC posters</a>.</p>

<p>Why bother with this? Seriously?  What's the point of installing all these codes?  They've been there for months - disappointing everyone who interacts with them.</p>

<p><a href="https://web.archive.org/web/20130718122310/http://shkspr.mobi/blog/2013/06/how-not-to-run-an-interactive-advertising-campaign-tap4offers/"><img src="https://shkspr.mobi/blog/wp-content/uploads/2013/06/archived-tweets-fs8.png" alt="3 Tweets complaining about the crappy experience." width="1080" height="1588" class="aligncenter size-full wp-image-52450"></a></p>

<p>Despite the advertiser's promise of a relaunch, nothing seems to be happening with these codes.</p>

<blockquote class="social-embed" id="social-embed-330326653135896578" lang="en" itemscope="" itemtype="https://schema.org/SocialMediaPosting"><header class="social-embed-header" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><a href="https://twitter.com/gunnars_v" class="social-embed-user" itemprop="url"><img class="social-embed-avatar social-embed-avatar-circle" src="data:image/webp;base64,UklGRkQCAABXRUJQVlA4IDgCAADQCwCdASowADAAPrVOoEunJCMhpyyQ4BaJagCdMr2D57tdbnHdv3z2fn/rPOM+OQ94zw1fc3qWmUX/Zcn1kR4JWWWnwnmaL9dUJ+ABy6W+YzPp5SIv8BYgq7xj6CWdKAhLtrDbQi0AAP73ebclb0e1Q2lmB7FrzB3clUts/9aEdQ73NNCl3yAXVl88uhkJYf0Pgvt4Midt8KLIeRp21iHV6+Urw1+59Ha3uc2AABS3mkp0sAI+IcBQEYS9wVxQDAgG4m+zwaoAYr8D3KP7zgafeygLLzvSbE4sFIWt8PDbwrZoGiburoHr23O4hmPWITBKuwQxyD8QFv+3gXjFD1E5zEK/R3f0UcL1yBoJgx1ERzLZB+hAhZ7SKs+0rSzBl9Z90EV9xkaF9ZU39htPbrShu3nRO3nYSE22ZWS/5A1nOscYIeLcUbtm8obGAL4wGJmuKuGK9ttcQa89q50acoEwwJ3ZRGknwInLWJVnt4aOVJP0RTAKLQbEGus34n5VdsCVIxR06xeAc88hF1+BQl9nPP/ESk/3gX5mVTCEDPI79DAVwkY4S64x7ejS5dZ+u829SQWiT75Q8Tu7s/JU0z7qRxrSkisLIst9yEx7IwV89/o+mbfAEiFkEZA3Vfjh8tZmUBiqvwt/ffQxOPtlx3p8vv8IHpfQdqv+qGUq0RVXaal4+PB8pNa9yObCao13golbdkYZQvgkoCgCt/F1/dotQGrZkuRhec5YzLwsfGkqNqDRHeE2MAAA" alt="" itemprop="image"><div class="social-embed-user-names"><p class="social-embed-user-names-name" itemprop="name">Gunars</p>@gunnars_v</div></a><img class="social-embed-logo" alt="Twitter" src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%0Aaria-label%3D%22Twitter%22%20role%3D%22img%22%0AviewBox%3D%220%200%20512%20512%22%3E%3Cpath%0Ad%3D%22m0%200H512V512H0%22%0Afill%3D%22%23fff%22%2F%3E%3Cpath%20fill%3D%22%231d9bf0%22%20d%3D%22m458%20140q-23%2010-45%2012%2025-15%2034-43-24%2014-50%2019a79%2079%200%2000-135%2072q-101-7-163-83a80%2080%200%200024%20106q-17%200-36-10s-3%2062%2064%2079q-19%205-36%201s15%2053%2074%2055q-50%2040-117%2033a224%20224%200%2000346-200q23-16%2040-41%22%2F%3E%3C%2Fsvg%3E"></header><section class="social-embed-text" itemprop="articleBody">New and upcoming <a href="https://twitter.com/hashtag/TAP4offers">#TAP4offers</a> is due to change and expand rapidly in following weeks, keep and eye out! <a href="https://twitter.com/hashtag/nfc">#nfc</a> <a href="https://twitter.com/hashtag/tap4">#tap4</a> <a href="https://twitter.com/hashtag/offers">#offers</a></section><hr class="social-embed-hr"><footer class="social-embed-footer"><a href="https://twitter.com/gunnars_v/status/330326653135896578"><span aria-label="1 likes" class="social-embed-meta">❤️ 1</span><span aria-label="1 replies" class="social-embed-meta">💬 1</span><span aria-label="0 reposts" class="social-embed-meta">🔁 0</span><time datetime="2013-05-03T14:23:05.000Z" itemprop="datePublished">14:23 - Fri 03 May 2013</time></a></footer></blockquote>

<h2 id="logo-problems"><a href="https://shkspr.mobi/blog/2013/06/how-not-to-run-an-interactive-advertising-campaign-tap4offers/#logo-problems">Logo Problems</a></h2>

<p>As well as the general uselessness of the destination, there is another flaw with the service.</p>

<p>Firstly, there's yet another NFC logo!  <a href="http://www.gsma.com/mobilenfc/wp-content/uploads/2012/11/Proxama-Use-Cases-for-Mobile-NFC.pdf">Proxima's report to the GSMA</a> already identified half a dozen common logos.
<a href="http://www.gsma.com/mobilenfc/wp-content/uploads/2012/11/Proxama-Use-Cases-for-Mobile-NFC.pdf"><img src="https://shkspr.mobi/blog/wp-content/uploads/2013/06/Proxama-Use-Cases-for-Mobile-NFC-fs8.png" alt="Proxama-Use-Cases-for-Mobile-NFC-fs8" width="600" height="476" class="aligncenter size-full wp-image-8334"></a>
<a href="https://web.archive.org/web/20130624145209/http://www.gsma.com/mobilenfc/news-information-resources/nfc-contactless-marks">GSMA NFC Logo</a>, <a href="https://nfc-forum.org/uploads/Branding-and-Marks/NFC_N_Mark_Guidelines.pdf">NFC Forum's N-Mark</a>, <a href="https://web.archive.org/web/20130725033547/http://www.clearchannel.co.uk/press-centre/news/2012/03/30/nfc-technology-the-appetite-exists-but-not-the-knowledge/">ClearChannel's NFC Mark</a>, etc. etc.</p>

<p>So, overall, a pretty pathetic effort.</p>

<p>If NFC is to overcome its significant obstacles - price, hardware requirements, lack of public awareness - the campaigns underpinning it <em>must</em> be better than this.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=8329&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2013/06/how-not-to-run-an-interactive-advertising-campaign-tap4offers/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Clear Channel's NFC Mistake]]></title>
		<link>https://shkspr.mobi/blog/2013/04/clear-channels-nfc-mistake/</link>
					<comments>https://shkspr.mobi/blog/2013/04/clear-channels-nfc-mistake/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Wed, 17 Apr 2013 11:00:36 +0000</pubDate>
				<category><![CDATA[badvertising]]></category>
		<category><![CDATA[advertising]]></category>
		<category><![CDATA[clear channel]]></category>
		<category><![CDATA[nfc]]></category>
		<category><![CDATA[qr]]></category>
		<guid isPermaLink="false">http://shkspr.mobi/blog/?p=8070</guid>

					<description><![CDATA[I&#039;ve talked before about advertising hoardings with combined NFC &#38; QR codes.  It looks like Clear Channel - the advertising behemoth - is getting into the game.  Spotted all over London are these bus stops with built in advertising poster.  Look on the right hand side, and you&#039;ll see the interactive element.    It&#039;s pretty well designed, although the disclaimer &#34;standard network rates apply&#34;…]]></description>
										<content:encoded><![CDATA[<p>I've talked before about <a href="https://shkspr.mobi/blog/2012/12/qr-and-nfc-living-in-harmony/">advertising hoardings with combined NFC &amp; QR codes</a>.  It looks like Clear Channel - the advertising behemoth - is getting into the game.</p>

<p>Spotted all over London are these bus stops with built in advertising poster.  Look on the right hand side, and you'll see the interactive element.
<img src="https://shkspr.mobi/blog/wp-content/uploads/2013/04/Bus-Stop-with-QR-NFC-540x1024.jpg" alt="Bus Stop with QR NFC" width="540" height="1024" class="alignnone size-large wp-image-8071"></p>

<p><img src="https://shkspr.mobi/blog/wp-content/uploads/2013/04/Clear-Channel-NFC-QR.jpg" alt="Clear Channel NFC QR" width="150" height="476" class="alignleft size-full wp-image-8073"> It's pretty well designed, although the disclaimer "standard network rates apply" seems a little redundant - and weirdly placed.  The QR code is oddly rotated, but that's just my personal preference.</p>

<p>The QR code is large enough to scan easily in broad daylight.  If the code was integrated with the poster, it would also been backlit which would have been helpful when it is dark.  The NFC scanned easily - once I'd flipped my phone's settings on.</p>

<p>Using a call to action of "Tap" and "Scan" assumes that the users will know what to do - and how to get an app if they need it.</p>

<p>The QR and the NFC both go to unique URLs - helpful for Clear Channel to see from where the hits are coming.</p>

<p>But what happens when you scan the hybrid QR/NFC?</p>

<p>This abomination....</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2013/04/CCNFC.png" alt="CCNFC" width="300" height="438" class="alignnone size-full wp-image-8072">

<p>What The Juddering Fuck?  Why on Earth would you deploy dozens of these interactive adverts and then not point them anywhere useful?  Even if the campaigns aren't ready, couldn't Clear Channel point to their YouTube Channel, or their Twitter feed, or <strong>anything!</strong></p>

<p>Some people are going to interact with this poster and come to the conclusion that there's nothing worthwhile to be gained by attempting to scan again.</p>

<p>Clear Channel are really shooting themselves in the foot by deploying this before their technology is ready.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=8070&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2013/04/clear-channels-nfc-mistake/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[NFC In Las Vegas]]></title>
		<link>https://shkspr.mobi/blog/2013/02/nfc-in-las-vegas/</link>
					<comments>https://shkspr.mobi/blog/2013/02/nfc-in-las-vegas/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Sat, 16 Feb 2013 12:00:34 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[las vegas]]></category>
		<category><![CDATA[nfc]]></category>
		<guid isPermaLink="false">http://shkspr.mobi/blog/?p=7543</guid>

					<description><![CDATA[I&#039;m not a big fan of NFC.  I think it&#039;s an impractical technology except in very specialised use cases.  Because it&#039;s so rarely seen in the UK I don&#039;t tend to post about it much.  The Boy Whatley recently posted about his new favourite NFC toy - the Nokia MD-310 (catchy name, guys!).  That reminded me - there was an interesting use of NFC which I&#039;d seen in Las Vegas.  Las Vegas - like most of the …]]></description>
										<content:encoded><![CDATA[<p>I'm <a href="https://shkspr.mobi/blog/2011/03/the-problem-with-rfid/">not a big fan of NFC</a>.  I think it's an impractical technology except in very specialised use cases.  Because it's so rarely seen in the UK I <a href="https://shkspr.mobi/blog/tag/nfc/">don't tend to post about it much</a>.</p>

<p>The <a href="http://whatleydude.com/2013/02/the-nokia-md-310-a-real-world-nfc-use-case/">Boy Whatley recently posted about his new favourite NFC toy - the Nokia MD-310</a> (catchy name, guys!).  That reminded me - there was an interesting use of NFC which I'd seen in Las Vegas.</p>

<p>Las Vegas - like most of the developed word - is full of QR codes.  They're on fliers, printed on t-shirts, in all the magazines, and on all the posters.</p>

<p>NFC - being cumbersome and expensive - is conspicuous by its absence.  However, I did spot some posters up in a couple of the casinos.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2013/02/NFC-Poster-Planet-Hollywood-Las-Vegas.jpg" alt="NFC Poster Planet Hollywood Las Vegas" width="600" height="800" class="aligncenter size-full wp-image-7545">

<p>Apparently, this NFC sticker would only work with Samsung Galaxy Phones! Luckily I had one on me, eh?</p>

<p>The posters were huge, but the target area which allows you to interact with them is tiny!</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2013/02/NFC-Close-Up.jpg" alt="NFC Close Up" width="600" height="556" class="aligncenter size-full wp-image-7547">

<p>The misaligned sticker - sorry TecTile™®© - was just waiting for me!
Like most people, I turned off NFC on my phone. I don't need it draining my battery on the off-chance I pass a poster at a casino... Now, what do I need to do in order to make it work?</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2013/02/NFC-Instructions.jpg" alt="NFC Instructions" width="600" height="66" class="aligncenter size-full wp-image-7546">

<p>Brilliant!</p>

<p>Still, I persevered, delved in to the bowels of my phone, fiddled with the settings, held my phone against the TecTile™®©, and waited.  Waited a bit longer. Took my phone out of its case, aligned it better with the TecTile™®© and... Bingo!</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2013/02/Planet-Hollywood-NFC-site.png" alt="Planet Hollywood NFC site" width="600" height="1022" class="aligncenter size-full wp-image-7544">

<p>It's actually a fairly nifty little site. But it's a bit of a palaver to get to it.  You need to have one of the few phones on the market which supports NFC (I mean, surely even Samsung aren't stupid enough to make the TecTile™®© work <em>only</em> with Samsung phones, are they?). You need to enable NFC. Then you need to get as physically close as possible, get the exact alignment between the TecTile™®© and the NFC aerial on your phone.</p>

<p>Sure, with QR codes you need to have the app installed - but that's pretty low bar compared to NFC.</p>

<p>Still, I suppose it's nice to see a new technology out there in the wild.</p>

<p>If you want to buy some <a href="https://web.archive.org/web/20130215075516/http://www.samsung.com/us/microsite/tectile/">Samsung TecTile™®©s</a> - they cost $15 for a pack of 5.</p>

<p>Your black and white printer will spit out as many QR codes as you like for a lot less than that.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=7543&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2013/02/nfc-in-las-vegas/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Why QR Codes Are Perfect For The Internet of Things]]></title>
		<link>https://shkspr.mobi/blog/2013/01/why-qr-codes-are-perfect-for-the-internet-of-things/</link>
					<comments>https://shkspr.mobi/blog/2013/01/why-qr-codes-are-perfect-for-the-internet-of-things/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Tue, 08 Jan 2013 12:35:55 +0000</pubDate>
				<category><![CDATA[qr]]></category>
		<category><![CDATA[internet of things]]></category>
		<category><![CDATA[nfc]]></category>
		<category><![CDATA[QR Codes]]></category>
		<category><![CDATA[rfid]]></category>
		<category><![CDATA[salt and pepper]]></category>
		<category><![CDATA[usability]]></category>
		<guid isPermaLink="false">http://shkspr.mobi/blog/?p=7320</guid>

					<description><![CDATA[My first QR code post of 2013!  I&#039;m a long term fan of QR codes.  I know some people don&#039;t like the idea of augmenting reality with specific tags for computer vision - but I do.  Some people prefer RFID/NFC.  Others still prefer dedicated augmented video apps.  As I&#039;ve written many times before, QR codes have several substantial advantages over alternate technologies.       QR is a free and open…]]></description>
										<content:encoded><![CDATA[<p>My first QR code post of 2013!</p>

<p>I'm a <a href="https://shkspr.mobi/blog/category/qr/">long term fan of QR codes</a>.  I know some people don't like the idea of augmenting reality with specific tags for computer vision - but I do.  Some people prefer <a href="https://shkspr.mobi/blog/2011/03/the-problem-with-rfid/">RFID/NFC</a>.  Others still prefer dedicated augmented video apps.</p>

<p>As I've written many times before, QR codes have several substantial advantages over alternate technologies.</p>

<ul>
    <li>QR is a free and open standard.</li>
    <li>Compatible with every phone with a camera.</li>
    <li>No need to build or use a dedicated app.</li>
    <li>Free to generate.</li>
</ul>

<p>Today, in the canteen, I think I have found the quintessential example of just how radical the open simplicity of QR codes is.
<img src="https://shkspr.mobi/blog/wp-content/uploads/2013/01/Salt-and-Pepper-QR-Codes.jpg" alt="Salt and Pepper QR Codes" width="500" height="525" class="alignnone size-full wp-image-7323"></p>

<p>Tiny sachets of salt an pepper.  Created in their millions.  Given away for free the world over.  Each stamped with a unique ID which can be recognised easily by a computer.</p>

<p>For scale, this is how small they are.
<img src="https://shkspr.mobi/blog/wp-content/uploads/2013/01/Pepper-pack-with-QR-code.jpg" alt="Pepper pack with QR code" width="500" height="391" class="alignnone size-full wp-image-7322"></p>

<p>Now, I'll be the first to admit that a website about salt is not the most riveting thing in the world. But that's exactly the point!
<img src="https://shkspr.mobi/blog/wp-content/uploads/2013/01/Salt-Website.png" alt="Salt Website" width="320" height="546" class="alignleft size-full wp-image-7321">  The costs associated with setting this up are close to zero.  Amortized over every sachet it's probably less than the cost of a grain of salt.</p>

<p>There's no opportunity cost lost - what else could you stick on the side of a packet that small?</p>

<p>I like the fact that I can instantly see nutritional information and can certainly see it being more useful on larger items.  But, again, that's the point. QR codes are free - so you might as well stick them on <strong>everything</strong>.</p>

<p>It's this dual freedom - free to generate and free to print - which makes QR codes ubiquitous.</p>

<p>The main problem with <a href="https://shkspr.mobi/blog/2011/03/the-problem-with-rfid/">NFC</a> (aside from lack of readers, inability for a user to tell a tag is present, proximity needed, etc) is <strong>cost</strong>.  Even bought in bulk, those little RFID chips have a price.  Buying 20,000 of them to stick on salt packets is an extravagance an unlikely to see any ROI to offset the cost of buying the chips and changing the manufacturing process to incorporate them.  Not to mention that the chips can't be recycled easily.</p>

<p>QR Codes? Black ink.  If you're already printing onto a surface, QR codes don't require any retooling or any equipment purchases.</p>

<p>I know that in our modern world we often strive for technical excellence, innovation, and quality.  However, where there are two relatively compatible technologies, it is usually the cheaper technology which wins.</p>

<blockquote>
In many of the more relaxed civilizations on the Outer Eastern Rim of the Galaxy, the Hitchhiker's Guide has already supplanted the great Encyclopaedia Galactica as the standard repository of all knowledge and wisdom, for though it has many omissions and contains much that is apocryphal, or at least wildly inaccurate, it scores over the older, more pedestrian work in two important respects. First, it is <em>slightly cheaper</em>; and second, it has the words "DON'T PANIC" inscribed in large friendly letters on its cover.
    —Hitchhiker's Guide to the Galaxy
</blockquote>

<p>The <a href="http://en.wikipedia.org/wiki/Internet_of_Things">Internet of Things</a> will be powered - in part - by QR codes.  Try not to get too upset about it.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=7320&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2013/01/why-qr-codes-are-perfect-for-the-internet-of-things/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
	</channel>
</rss>
