Closed waffleruskbutter closed 8 years ago
こちらで回答がつかなかったため、 別途、nifty_mbaas公式サイトから質問をしまして ご担当者様からご回答いただきました。
[クライアントキー][アプリケーションキー]をコードに実装している場合、 コードが漏れた場合や、ビルドしたアプリを Disassemble してキー情報を抜 かれるなどした時、キーの不正利用は防ぐ手段がございません。 これは不具合ではなく、仕様ということになります。
なお、外部サーバに置いたキー情報を処理の都度取得するなどの方法を用いれ ば、キー情報そのものを隠蔽することは可能と存じます。 こちらに関して、以下ブログ記事がございますので、ご参考にしていただけま すと幸いです。
◇クライアントキーを隠蔽して安全にmBaaSを使ってみる http://blog.mb.cloud.nifty.com/?p=7410
色々な状況の方がいらっしゃると思いますが、 私は、キーをアプリに持たせるのはリスクを感じました。 外部サーバにキーを置くことを検討します。
本件、ご興味持ってくださった方ありがとうございました。
Monacaが2016/06/22に、cordova6.2対応したことで、 こちらの暗号化プラグインが使えるようになりました。 https://github.com/tkyaji/cordova-plugin-crypt-file
※MonacaでGoldプラン以上でないと、[cordova pluginのインポート]機能は使えません(2016/06/23時点)
対応策としては、以下の2つが考えられそうです。 ・コードを暗号化する ・外部サーバに置く
どなたかの参考になれば幸いです。
現在、monaca(HTML+CSS+Javascript)でモバイルアプリを開発しています。
■最終的な構成は以下を想定しています。 モバイルアプリ <--> nifty mbaas <--> 自server 自server上で定期的にプログラムを走らせ、適宜Pushをモバイルアプリへ送るという事を実現させたいです。
■懸念点 nifty mbaasを使うためには、monaca アプリの中に[クライアントキー][アプリケーションキー]を 記載する必要がありますが、monaca でビルドしたアプリはunzipすると中身が全て見えてしまいます。
[クライアントキー][アプリケーションキー]があれば、 REST APIを用いてなりすましPush通信ができてしまうように思えるのですが、 こちら防ぎ方を教えていただけませんでしょうか? そもそも誤解がありますでしょうか?
■補足
【過去質問】セキュリティ対策方法の相談 https://github.com/NIFTYCloud-mbaas/UserCommunity/issues/29
ACLの設定でデータ漏えいは防げることは理解できたのですが、 Push通信はACL設定が見当たりませんでした。
またcordovaのencryptプラグインでソースコードを暗号化する方法があることは理解しています。 nifty mbaas側の対応策を知りたいと考えています。
■補足 2 同質問を、teratail、stackoverflowへも投稿しています。 https://teratail.com/questions/38272 http://ja.stackoverflow.com/questions/26876/nifty-mbaas-%E3%81%AE%E3%81%AA%E3%82%8A%E3%81%99%E3%81%BE%E3%81%97push%E9%80%9A%E4%BF%A1%E3%82%92%E9%98%B2%E3%81%8E%E3%81%9F%E3%81%84