diverta / onecard-fido

MIT License
0 stars 0 forks source link

[改善] CCID I/F応答タイムアウト検知機能の実装(macOS版) #771

Closed makmorit closed 1 year ago

makmorit commented 1 year ago

概要

759 ご参照

makmorit commented 1 year ago

対応取り下げの件

759

OATH設定機能を実行時、CCIFインターフェースから応答がない場合、管理ツールがフリーズしてしまいます。 管理ツール側に、CCID I/Fの応答タイムアウト検出処理がないための不具合ですので、タイムアウト検出処理を追加実装する必要があります。

試しに、認証器のファームウェアを、OATH設定機能が戻らないよう一時的に改修後、管理ツールからOATH設定機能を実行し、標記事象(管理ツールフリーズ)再現を試行しました。 数回試しましたが、いずれも下図のようなタイムアウトエラーが捕捉される結果となりました。

発生し得ないハング事象に備え、タイムアウトロジックを実装する必要性はないと考えますので、今一度、標記事象の再現を待つ形にしたいと思います。

ですので本プルリクエストは一旦取り下げとさせていただきます。

ご参考

為念で再現テスト時の管理ツールログを掲載しておきます。

2023-04-07 12:13:28.067 [info] FIDO認証器管理ツールを起動しました: Version 0.2.4
2023-04-07 12:13:28.101 [info] USB HIDデバイスに接続されました。
2023-04-07 12:13:39.064 [info] OATHアカウント一覧の取得を開始します。
2023-04-07 12:13:39.066 [info] FIDO認証器に接続しました(CCIDデバイス名: Diverta Inc. Secure Dongle)
2023-04-07 12:13:39.070 [debug] FIDO認証器へのリクエスト送信を実行します。
2023-04-07 12:13:47.115 [error] FIDO認証器へのリクエスト送信が失敗しました(SCardTransmit failed for 'Diverta Inc. Secure Dongle', rc=0x80100016)
2023-04-07 12:13:47.122 [info] FIDO認証器から切断しました(CCIDデバイス名: Diverta Inc. Secure Dongle)
2023-04-07 12:13:47.122 [error] 不明なエラーが発生しました(SW=0x6900)
2023-04-07 12:13:47.122 [error] OATHアカウント一覧の取得が失敗しました。
2023-04-07 12:13:59.628 [info] FIDO認証器管理ツールを終了しました。