Passbookの脆弱性を考える(1)
pkpassファイル
Passbook(*1), Provider(*2)間のやり取りにおいては、
Appleから払い出してもらえる証明書を用いた3way-handshakeなので、
pkpassファイルの改竄はできないようになっている。
適切な証明書で作成していないpkpassファイルは、Passbookに保存できないのだ。
今後、サードパーティ製のPassbookアプリが出てきた場合、
脆弱性の温床になる可能性はある。
ただし、pkpassファイルの中身を見ることはできる
pkpassファイルの中身
・Barcode:message
推測されやすい値になってたら、やられたい放題になってしまう。
(当たり前過ぎるのでコレ以上は言及しない)
・passTypeIdentifier, serialNumber, webServiceURL, authenticationToken
この4つがあれば、先日の記事の「デバイスはパスの最新版を要求する」で書いたURL(↓)が構築できる。
GET {webServiceURL}/v1/passes/{パスタイプId}/{シリアルナンバー}
もし、ユーザごとに認証トークンとBarcode:messageを変えているとしたら、
別のユーザの認証トークンを得ることで、不正にBarcode:messageを利用できてしまう。
(別のユーザ向けのpkpassをダウンロードできちゃう)
ということで、認証トークンは難解難読なやつをしっかり払い出してあげるべきしょう。
またProvider側で適切にブルートフォース対策をすることも重要でしょう。
*1)iPhone上で動くPassbookアプリ。
*2)Passbookファイルを配信するサービスプロバイダ。