2024年2月7日水曜日

Walletアプリを同一端末にインストールする際の注意点

こんにちは、富士榮です。

先日のOpenID for Verifiable Credentials関連仕様に関するセキュリティ分析の中でも触れましたが、Issuer/Holder/Verifierの3パーティモデルにではどうしてもクロスデバイス(Issuer/VerifierはPCブラウザ、Holderはスマホアプリ)のユースケースや、同一デバイス(スマホ)においてもブラウザとアプリを切り替えて利用するユースケースを想定せざるを得ません。

参考)


そのためにはWalletアプリがIssuance/Presentationに利用するカスタムURLスキームを定義する必要がありますが、例えばiOSの場合は最後にインストールしたアプリが当該のスキームを占有してしまう問題があります。その中でも最大の問題は、利用者から見てどのアプリがどのカスタムURLスキームを利用しているのかを判別することが難しい点にあります。
具体的に何が起きるか、というと利用者が無意識にインストールするアプリケーションがOpenID for Verifiable Credentialsで利用するカスタムURLスキームを利用していた場合、利用者は正しいVerifiable Credentialsを保有していたとしてもそれをうまく利用できなくなってしまいます。こうなるとIssuerやVerifierのサービスを提供している事業者からすると、利用者から問い合わせがあったとしても何が起きているのかわからず、単にうまくWalletが起動しない、という状況に見えてしまうわけです。

こんな感じになってしまします。(iOSの場合)
  • クロスデバイスのケース(カメラでQRコードを読み込む場合)
    • 基本的に後からインストールしたアプリが起動してしまいます。
    • 後からインストールしたアプリの実装によってはカメラアプリからの起動に失敗して何も起きない、という見え方をするケースもあります。
  • 同一デバイスのケース(スマホブラウザからWalletアプリを起動する場合)
    • 後からインストールしたアプリを起動しようとしてしまいます。
    • こんな感じです。(本来はMicrosoft Authenticatorを立ち上げようとしているのですが、別アプリが立ちあがろうとしてしまっています)
    • 本来はこのようにAuthenticatorが起動します。



この状態を解消するには後からインストールしたアプリを削除するしかないので、もし後からインストールしたアプリも利用したい場合やすでに後からインストールしたアプリにもVCを発行してしまった場合などは諸々やり直しが起きてしまいます。

仕組み上どうしようもありませんが、なんとかなりませんかね。。。Appleさん。

0 件のコメント: