2024年8月12日月曜日

複数のウォレットをiPhoneにインストールすると困る話

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


先日のMyData JapanカンファレンスではDataSignさんが提供されているOWND Walletへの入場証の発行が可能なことが現地では話題になっていました。

当日のセッションでも代表の太田さんからはオープンソースであるOWND Walletのコードを使ったVESSさんのVESS Walletも紹介され、両方のアプリをインストールした方も多いのではないでしょうか?

しかし、当日実際に両方のウォレットアプリがインストールされている状態だとうまく意図したウォレットに入場証明書が入らない、という課題が発生していました。

これはiOSを少しだけ知っている人なら推測がつくと思いますが、OWND WalletとVESS Walletが同じカスタムURLスキーム(openid-credential-offer://など)を使っていることから「後から」インストールしたアプリが優先されてしまう、というiOSの仕様によって発生します。


OWND WalletかVESS Walletか、くらいの話なら気をつければ特に問題はありませんが、今後ウォレットが乱立してきて「悪意のある」ウォレットが出てきたり、「一見ウォレットに見えない」アプリが出てきた場合に思わぬ事態を招きかねない、という問題を内包しています。

この話は以前紹介したOpenID for Verifiable Credentials関連仕様のフォーマルセキュリティ分析のレポートでも指摘された課題です。

https://idmlab.eidentity.jp/2024/01/openid-for-verifiable-credentials.html



ということで、ちょっと嫌な方法ではあるのですが、各アプリケーションがどんなカスタムURLスキームを使っているのかを調べてみます。

少し古いのとMacにアプリをインストールする必要があるので個人的にはすごく嫌だったんですが、人柱になりました。

このURLを参考にしています。

https://blog.thetheorier.com/entry/extract-url-scheme

https://www.imobie.jp/iphone-tips/extract-ipa-files-from-iphone.htm


ざっくりいうと、

  • ipaファイルからURLスキームを抜き出すデスクトップアプリ(実態はPythonスクリプトらしい)
  • AnyTrans(商用アプリ。トライアルで試しました)

をMacに入れてあげる必要があります。(さらにいうと自分のAppleアカウントでAnyTransにサインインする必要もあるのでもっと嫌です・・・)


まずはAnyTransで対象としたいアプリをダウンロードしてMacに転送します。個人的にカスタムURLスキームが被っているのを知っているのは先に触れたOWND Wallet / VESS Wallet、あとはxIDアプリとMicrosoft Authenticatorです。


こんな感じでipaファイルが抽出されてきますので、extract_url_schemeを実行していきます。

こんな感じで各アプリがどんなURLスキームを登録しているか見えます。
この例だとMicrosoft AuthenticatorとxIDアプリがopenid-vcというURLスキームを重複登録していることがわかりますね。


これはウォレットエコシステムを作る上で大きな課題となりますので、Chrome 128ベータでも実装されてきているDigital Credential APIが本命になってくるのかと思います。


引き続き要ウォッチですね!

0 件のコメント: