私たちが毎日使っているテクノロジーの多くは、背景に消えていきます。タップして支払い、解錠、スキャン、共有 - そしてその下のプロトコルについて考えることはありません。NFCはそういった静かなインフラのひとつです。iPhoneでNFCが実際にどう動いているのか、見ていきましょう。
NFCとは何か
**Near Field Communication(近距離無線通信)**は短距離の無線プロトコルです。2つのデバイスが約4 cm以内の距離にある時にデータを交換できます。BluetoothやWi-Fiの簡略化された、ずっと短距離のいとこと言えます。
この短い距離は制限ではありません。セキュリティモデルそのものです。部屋の反対側から決済端末に誤ってタップすることはあり得ませんし、悪意あるリーダーが離れた場所からこっそりデータを抜き取ることもできません。
iPhoneにおけるNFCの歴史
Appleが初めてNFCハードウェアを搭載したのは2014年のiPhone 6および6 Plusでしたが、無線モジュールはApple Pay専用にロックされていました。サードパーティアプリはNFCタグを読むことすらできませんでした。
これはiOS 11(2017年)で変わりました。Core NFCフレームワークが導入され、開発者がNDEFタグを読めるようになったのです。Appleはその後も段階的に開放を進め、iOS 13で書き込みサポートを追加、iPhone XS以降ではバックグラウンドでのタグ読み取りも追加されました。今日では、最新のiPhoneなら何も開かなくてもタグをタップできます。OSが認識し、適切なアクションを提案してくれます。
NFCの実際のデータ転送
NFCデバイスはやり取りごとに2つの役割のいずれかで動作します。アクティブ(電源を持ち、磁界を生成)か、パッシブ(バッテリーなし、磁界から電力を得る)。
Apple Payで支払うとき、iPhoneがアクティブリーダーです。13.56 MHzで無線磁界を生成します。決済端末のNFCエレメントがその磁界内で起動し、自分を識別し、小さな暗号ペイロードをiPhoneと交換します。あなたのカード情報はSecure Element(iPhone内の専用ハードウェア分離チップ)を出ることはありません。送信されるのはワンタイムトークンです。
ポスターのNFCステッカーをタップする時は、役割が逆転します。ポスターのタグはパッシブ - バッテリーがありません。iPhoneのリーダーが電力を供給し、タグは保存されているNDEFレコードで応答し、iOSが何をするかを判断します(URLを開く、アプリを起動する、連絡先カードを表示する、ショートカットをトリガーする)。
NDEF:共通言語
NFC無線の上のデータ層がNDEF(NFC Data Exchange Format)です。小さな自己記述型のレコードフォーマットで、タグは1つ以上のレコードを保持し、それぞれにタイプ(URI、テキスト、vCard、Wi-Fi認証情報、カスタムMIME)とペイロードがあります。
地球上のすべてのNFC対応スマホがNDEFを話します。だからAndroidでプログラムされたタグはiPhoneで問題なく読めますし、その逆も同じです。iOSとAndroidが本当に同じ標準を共有している、数少ない領域のひとつです。
プライバシーとセキュリティ
注目すべき防御層が2つあります。
距離:数センチメートルは目立つアンテナなしには傍受困難 - これはNFCが設計された当初の脅威モデルです。
トークン化:Apple Payは実際のカード番号を送信しません。各取引はSecure Elementで生成されるDevice Account Numberとワンタイムcryptogramを使用します。端末が侵害されてもリプレイ攻撃はできません。
タグ読み取りの場合は攻撃面が異なります - 信頼されるのはタグそのものです。何が書かれているかをあなたが管理しているなら(自宅の自動化、自分のビジネスカード)、問題ありません。公共の場でランダムなタグをタップする場合、iOSは何かが実行される前に確認プロンプトを表示するはずです。
なぜこれが重要か
NFCは、機能するときには姿を消すプロトコルのひとつです。改札機、決済端末、名刺、スマートスピーカーにタップして - 何かが起こる。ペアリングなし、PINなし、アプリ起動なし。意図的な物理的ジェスチャーが、1つの特定のやり取りを認可するだけ。
だからNFC.cool Toolsを作りました。プロトコルを学ばなくても、NFCのNDEF全面を使えるようにするためです。あらゆるタグを読み、あらゆるレコードタイプを書き、終わったらタグをロックする。iPhoneでもAndroidでも。