NIFCLOUD-mbaas / UserCommunity

ニフクラ mobile backend ユーザーコミュニティ
https://mbaas.nifcloud.com/
81 stars 18 forks source link

キーに関するセキュリティについて #402

Open yaoki1207 opened 8 years ago

yaoki1207 commented 8 years ago

MBaaSへ問い合わせする際のアプリケーションキーとクライアントキーがソースコードを通じて外部に漏れることは避けなくてはなりません。 そこで、以下の質問を目にしました。 ・apiキーが流出した時にpush通知が送り放題になるのでは? https://github.com/NIFTYCloud-mbaas/UserCommunity/issues/268 ・セキュリティ対策方法の相談 https://github.com/NIFTYCloud-mbaas/UserCommunity/issues/29

前者では 1.サーバサイドで認証する方法 2.ソースファイルを暗号化する方法 後者では 3.ACLを利用して、データアクセスを制限する方法 を紹介していますが

1.署名を貰うために必要なデータが無いので、簡単に署名が受け取れるのではないか? また受け取った署名を悪用できるのではないか? 2.リバースエンジニアリングが可能なのではないか? 3.他のユーザデータを取得することをACLで防御できるか? また擬似ユーザを作って、現状のユーザを成りすましがあるのではないか?

と懸念しております。 上記に誤解はございますでしょうか?また、他に解決手段はありますでしょうか?

goofmint commented 8 years ago

1について言えばAjax部分を自分たちで好きにカスタマイズできますので、別途何らかの認証の仕組みを設けることもできます。が、実用的とは思いません(結局それが漏れたらどうするのかと言う話なので)。

2についてはネイティブでも同じ問題が起こりえます。かつてTwitterアプリでもキーが漏洩したことがあります。

3については自分だけが読み取れるデータと制限することで他のユーザには取得できなくなります。認証を使っている場合、IDとパスワードが漏洩しない限りは権限管理されます。ID/パスワードが漏洩すればなりすましできますが、これはシステムの問題ではありません。