Tomu
[1] は、オープンソースの FIDO2 セキュリティキーのファミリーです。この記事では、その設定方法と使用方法について説明します。これまでのところ、このページは オリジナルの Tomu に限定されています。このページの拡張にご協力ください。
目次
オリジナルの Tomu
依存関係
Tomu イメージをビルドするには、arm-none-eabi-gcc と arm-none-eabi-newlib を インストール する必要があります。Tomu でソフトウェアをフラッシュするには、dfu-util を使用します。
検証中
Tomu は dfu-util がインストールされた状態で届くはずです。Tomu を USB ポートに挿入して toboot が開始すると、緑と赤の LED が交互に点滅します。Tomu がブートローダー toboot を実行しているかどうか、およびそのバージョンを確認するには、次のコマンドを実行します。
# dfu-util --list
... Found DFU: [1209:70b1] ver=0101, devnum=19, cfg=1, intf=0, path="1-1.2", alt=0, name="Tomu Bootloader (5) v2.0-rc7", serial="UNKNOWN"
ブートローダー (toboot) を更新します。
Tomu のブートローダーが 最新バージョン でない場合は、更新する必要があります。自分でコンパイルすることも、ビルド済みバージョン をダウンロードすることもできます。次のようにアップデートをインストールします。
# dfu-util -d 1209:70b1 -D toboot-booster.dfu
他のソフトウェアのインストール
Tomu を U2F トークンとして使用したくないが、別の目的に使用する場合は、GitHub のサンプルアプリケーション で見つけることができます。これらは df-util でインストールできます。
# dfu-util -d 1209:70b1 -D application.dfu
U2F ファームウェアのインストール (chopstx ポート)
Tomu の U2F ファームウェアのコードは on GitHub にあります。git でクローンを作成し、コンパイルします。
$ git clone https://github.com/im-tomu/chopstx.git $ cd chopstx/u2f $ make
次の 2 つのオプションがあります。
- キーなしでフラッシュする: キーなしでフラッシュすると、ファームウェアは最初の起動時に EC 秘密キーを生成し、ブートローダーに入るときにそれを消去します。バックアップを作成することはできません。ただし、これには、Tomu の外にはキーが決して存在しないという利点があります。代替の 2 番目の要素または回復の可能性を必ず用意してください。秘密キーを紛失しない限りソフトウェアを更新することはできません。
- 秘密キーを挿入する: コンピューター上でキーを生成し、それをファームウェアに挿入し、それらを一緒に Tomu にフラッシュします。
秘密キーの挿入 (オプション)
秘密鍵を生成します。
$ openssl ecparam -name prime256v1 -genkey -noout -outform der -out key.der
暗号化してバックアップしたり、オフラインでバックアップしたりすることもできます。それを含めてビルドします。
$ ./inject_key.py --key key.der
フラッシュ
ソフトウェアをデバイスにフラッシュします。
# dfu-util -v -d 1209:70b1 -D build/u2f.bin
フラッシュが成功すると、LED の点滅が停止するはずです。それを取り外して、もう一度差し込みます。U2F ソフトウェアを使用すると、赤い LED が非常に短く素早く点滅するはずです。
更新または復元中
秘密キーを注入した場合は、ソフトウェアを再度ビルドしてキーを注入できます。ただし、カウンターを Tomu の値より少なくとも 1 高い値に設定する必要があります。
$ ./inject_key.py --key key.der --ctr 1001
オリジナルの Tomu をまだ持っている場合 (つまり、更新したい場合)、Yubikey デモサイトでカウンターを見つけることができます。それ以外の場合は、"十分な大きさ" の値に設定します。
使用法
https://webauthn.io/ または Yubikey デモサイトを使用して、U2F キーをテストするか、ターミナルで pamu2fcfg を使用してテストできます。
Tomu を接続します。アプリケーション (ブラウザなど) がボタンを押すように要求すると、Tomu の赤い LED が点滅し始めます。"下のボタン" を押す必要があります。容量性ボタンは、Tomu の端にある 4 つの接触領域です。"下" のボタンはチップを載せた状態で横から見たものです。指で押します。届くのが難しい場合があります。最悪の場合は、金属製のドライバーなどを使用してください。これを押すと、赤い LED が数秒間点灯したままになり、その後アプリケーションが応答を受け取ります。