あなたの電動歯ブラシは、あなたを監視しています。
不気味なサーベイランスの話ではありません。「あなたを買い替えに駆り立てるために、ブラシヘッドに小さなNFCチップを仕込んだ」という話です。Philips Sonicareの交換用ヘッドにはすべて、プラスチックの中にNTAG213が埋め込まれており、あなたが歯磨きをした時間を記録し、3か月経ったとハンドル側が判断すると警告ランプを点滅させるよう指示します。
ようこそ、Internet of Shitへ。
実のところ、3か月というのは推奨であって医学的な事実ではありません。毛先の摩耗は、磨く強さ、使う歯磨き粉、頻度によって変わります。チップは毛先の状態を測っていません。ただ秒数を数えているだけです。優しく磨き、マイルドな歯磨き粉を使う人なら、3か月経っても毛先は十分きれいかもしれません。タイマーはそれを知りませんし、気にもしません。
NFC.cool Toolsは今、そのチップを読み取り、あなたのブラシヘッドがどれだけの寿命を使ったかを正確に表示し、毛先がまだ大丈夫だと判断したらタイマーをリセットできます。仕組みはこうです。
チップに実際に記録されているもの
これらは私自身がリバースエンジニアリングしたものではありません。Cyrill Künzi氏がプロトコルを解析し、mbirth氏が全バイトをマッピングし、二人で以下のすべてを突き止めました。あなたのブラシヘッドのNTAG213が保持している情報は次の通り:
ブラシヘッドのタイプとカラー –ページ
0x1Fの1バイトで、モデル(Premium All-in-One、Gum Care、DiamondCleanなど)とカラーを識別する(mbirth氏のメモリマップには22の既知タイプが掲載されている)目標寿命 –
0x21に、通常は0x5460= 21,600秒。これは2分間の磨きセッション180回分、つまり1日2回使用で3か月分製造コード –
0x21-0x23に、製造日とラインがASCIIで記録される。例:241206 31K(2024年12月6日、ライン31Kで製造)。柄にも印字されている累積磨き時間 –ページ
0x24の最初の2バイトに、ヘッドが使われた合計秒数が16ビット値として保存される。0xFFFF(65,535秒、約18時間連続磨き)に達するとカウンターは停止する。新品のヘッドは00:00:02:00から始まる –最初の2バイトはゼロ(未使用)で、後の2バイトの意味は現在不明最後の強度とモード –同じく
0x24に:Low/Med/HighとClean/White+/Gum Health/Deep Clean+URL –
philips.com/nfcbrushheadtapを指しており、汎用NFCリーダーでヘッドをタップすると開く
累積時間が目標(21,600秒)を超えると、ハンドルの黄色いLEDが点滅します。それは毛先ではなく、チップが喋っているのです。
リセットしたくなる理由
3か月の交換間隔はPhilipsの推奨であって、毛先の摩耗の科学的測定ではありません。チップは秒を数えるのであって、毛先のほつれを数えるわけではありません。カウントダウンタイマーに従うのではなく、自分の毛先を見て自分で判断したい–そう思うなら、カウンターのリセットがそれを可能にします。
複数のヘッド(旅行用と自宅用など)をローテーションして自分で管理したい場合にもリセットは役立ちます。
パスワードの仕組み
NTAG213はパスワード保護されています。すべてのブラシヘッドにはユニークな4バイトのパスワードがあります。歯ブラシのハンドルは、タグに書き込むたびにそのパスワードで認証します。
パスワードは2つの入力から計算されます:タグの7バイトUIDと、タグに保存されている(そして柄に印字されている)製造コードです。Aaron Christophel氏が、Cyrill Künzi氏が当初ソフトウェア無線でパスワード送信をスニッフィングした後に、Sonicareのファームウェアからアルゴリズムをリバースエンジニアリングしました。
⚠️重要: NTAG213はパスワード認証に3回失敗すると永久にロックされます。チップは永続的に読み取り専用になり–歯ブラシ自身でさえ書き込めなくなります。推測で試さないでください。
NFC.cool Toolsで確認・リセットする方法
アプリでの見え方はこうです:
NFC.cool Toolsはプロセス全体を担います:タグの読み取り、パスワードの計算、統計の表示。16進コマンドも、Web計算機も、SDRも不要です。
iPhoneでNFC.cool Toolsを開く
Toothbrush Head Resetを選択
Read NFCをタップし、ブラシヘッドをスマホに当てる
アプリがパーセンテージゲージでヘッドの使用済み寿命を表示し、その下に使用済み時間と残り時間を表示
Reset Timerをタップして使用カウンターをゼロに戻すか、別のヘッドをスキャン
リセットが実際にやっていること
リセットすると、ページ0x24に00:00:02:00を書き込んでいます–新品のブラシヘッドが出荷時に持っているのと同じ値です。最初の2バイト(使用カウンター)だけがゼロに戻されます。後の2バイトの意味は不明なので、アプリはそのまま保持します。
歯ブラシはまたゼロから数え始め、黄色いランプはさらに3か月後に戻ってきます。そのときに毛先を見て、自分で判断すればいいのです。
より大きな視点:日常品の中のNFC
次の購入までカウントダウンするNFCチップ入りの歯ブラシヘッドは、まさにInternet of Shitの極致です。私はNFCが本当に役立つものだと考えて自分の仕事をその周りに築いてきましたが、使い捨てプラスチックの中に、買い替えを促すためだけに埋め込むのは……一つの選択ではあります。
同じNTAG213チップは、消費者にとって本当に役立つことにも使われています:商品認証、アクセス制御、そしてまもなくEU Digital Product Passport。これは消費者製品にNFCタグを義務付け、購入するものとその出所を確認できるようにするものです。これはNFCがあなたのために使われている例で、あなたに対して使われているのではありません。
NFC.cool Toolsはこれらすべてを読み書きできます。Sonicare機能はその一例で、身の回りのタグに何が入っているかを理解し、その情報をどう扱うかを自分で決めるためのものです。
さらに読む
Cyrill Künzi氏のオリジナルのリバースエンジニアリング解説 –SDRスニッフィング、パスワード抽出、Sonicare NFCプロトコルの最初の詳細分析
Aaron Christophel氏のパスワードジェネレーター –Sonicareファームウェアから抽出されたアルゴリズム
mbirth氏のNTAG213メモリマップ –チップ上の各バイトの詳細なドキュメント
Sonicareのブラシヘッドを確認したい方は? iPhone版NFC.cool Toolsをダウンロード、またはAndroidして、あなたの歯ブラシが何を記録していたのか確認してみてください。