Tomu

提供: ArchWiki
2023年11月2日 (木) 00:51時点におけるKgx (トーク | 投稿記録)による版 (翻訳)
ナビゲーションに移動 検索に移動

関連記事

[1] は、オープンソースの FIDO2 セキュリティキーのファミリーです。この記事では、その設定方法と使用方法について説明します。これまでのところ、このページは オリジナルの Tomu に限定されています。このページの拡張にご協力ください。

オリジナルの Tomu

依存関係

Tomu イメージをビルドするには、arm-none-eabi-gccarm-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"
ノート: U2F コードを含む一部の Tomu プログラムは、TOBOOT_CONFIG_FLAG_AUTORUN フラグを設定し、すぐに実行を開始します。そうすれば、このように (必要に応じて) 点滅することはなくなり、dfu-util によって検出されなくなります。これらのデバイスで Toboot に入るには、Tomu を USB ポートに挿入しながら、外側の 2 つのピンをピンセットでショートさせます [2]

ブートローダー (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 が数秒間点灯したままになり、その後アプリケーションが応答を受け取ります。