diverta / onecard-fido

MIT License
0 stars 0 forks source link

[障害] MDBT50Q Dongleのペアリング障害 #682

Closed makmorit closed 1 year ago

makmorit commented 1 year ago

概要

以下の操作を行ったところ、macOS側で数回のBLE接続リトライが行われた後、管理ツール、MDBT50Q Dongle(nRF52840アプリケーション)の双方がダウンする障害が確認されました。

原因ですが、Windows PCで設定されたnRF52840側のペアリング情報を使用して、macOSとBLE接続しようとしたためです。 すなわち先述の通り、macOS側とのペアリング解除が行われなかったのが直接の原因になります。

Bluetooth接続については、1対多の接続は、セキュリティー面から許容されません。 したがってBLE接続は、常に「あと勝ち」(後にペアリングしたOSとの接続が有効となる)となります。

この場合、前にペアリングしたOSは、明示的なペアリング解除がされなかった場合、デバイスとのペアリング情報が残ったままとなってしまうことになります。 デバイスは後にペアリングしたOSとのペアリング情報が有効であるため、前にペアリングしたOSのペアリング情報を使用してペアリングすると、セキュリティーエラーが発生します。

その結果、本件のような障害が発生してしまった次第です。

対策

nRF52840アプリケーションに、明示的な「ペアリング解除」機能を追加し、ユーザーが接続先OSを変更できる仕組みが必要になるかと考えております。

makmorit commented 1 year ago

進捗

683 の対応により、ペアリング解除をmacOS版管理ツールから実行するための画面を実装しました。

(手順につきましてはBLEペアリング手順 - ペアリングの解除ご参照)

続いて、#685 の対応により、MDBT50Q Dongle側のペアリング情報が削除されるようにしたいと思います。

makmorit commented 1 year ago

ご案内

685 は、#692 に振り替え、現在対応中ですのでお知らせいたします。

makmorit commented 1 year ago

対応振り替えのご案内

692 の対応が完了し、この Issue で予定していた作業「ペアリング解除要求機能の追加実装」は完了したのですが、#692 における動作確認中、本件とほぼ同様な障害が確認されています。

(#697 ご参照)

本質的な原因としては、こちらも本件と同様(=ペアリング情報の不整合によるもの)ですので、いったん本件はクローズし、#697 で対応を継続させていただきたく存じます。