セキュリティ

モバイルアプリを開発し、運用していく過程では、セキュリティに対する考慮が重要となります。ここでは、Kii Cloud でのセキュリティについて説明します。

なお、本ドキュメントでは、セキュリティの詳細な技術情報に加え、トランザクションやパフォーマンスなど、実装のヒントになる技術情報を用意しています。詳細は、リファレンスガイドの「実装上のヒント」(AndroidiOSJavaScriptREST) を参照してください。

Kii Cloud のセキュリティ

Kii Cloud のセキュリティのうち、モバイルアプリの開発に関連するものを以下に挙げます。

  • 通信路のセキュリティ

    Kii Cloud とデバイスとの間では、SSL/TLS を使った通信を行えるため、安全性を確保できます。Kii Cloud SDK や REST で実行する API は HTTPS でリクエストする他、IoT で使用する MQTT でも SSL/TLS ベースのプロトコルを使用できます。

  • サーバーのセキュリティ

    サーバーの権限設定やセキュリティパッチの適用など、サーバーの運用に関するセキュリティは Kii 株式会社が確保しており、開発者の特別な考慮は不要です。サーバー機能拡張 にも示したとおり、サーバー上のカスタムロジックを使っても、開発者にはサーバーの運用に対する責務は生じません。

  • アプリケーションのセキュリティ

    Kii Cloud の機能を組み合わせてアプリケーションを設計する際、開発者はアプリケーションレベルでのセキュリティに考慮する必要があります。本ページの残りのセクションで基本的な考え方を説明します。

アプリケーションのセキュリティ

Kii Cloud アプリケーションのセキュリティで、まず考慮すべきものはユーザーが保存したデータのセキュリティです。

モバイルアプリから保存されたデータは、各ユーザーのパスワードによって守られるように設計されています。

  • ユーザースコープに保存されているデータは、本人以外からアクセスできません。
  • グループスコープに保存されているデータは、本人と同じグループのユーザー以外からアクセスできません。

攻撃者は、たとえアプリケーションの設計情報やソースコードを知っていても、攻撃対象のユーザーのパスワードが分からない限り、そのユーザーのデータにはアクセスできません。

Kii Cloud のように仕様がオープンなシステムでは、サーバーへのアクセス方法が公開されています。そのため、攻撃者がアクセス対象のモバイルアプリを逆コンパイルするなどすれば、モバイルアプリが実行している API と同等の処理を再現できます。ただし、ユーザーのデータは、それぞれ個別のパスワードによって守られているため、攻撃者がアクセスすることはできません。

Kii Cloud の基本的な設計モデルに従ったモバイルアプリは、結果的に安全なアプリケーションになります。通常、ユーザーを作成し、そのユーザーのスコープにデータを格納する設計とするため、データは攻撃を受けにくい構造で保存されます。

なお、データの保存方法以外にもセキュリティのリスクが発生する箇所がいくつかあります。これらは、リファレンスガイドで個別に設計上の注意点を示しています。

独自サーバーとの比較

Kii Cloud のセキュリティは、「実装の不明瞭さ」のみを安全の根拠としているシステムより安全です。

Kii Cloud のように仕様がオープンなシステムより、通信仕様が非公開の独自サーバーの方が安全と考える場合がありますが、これは実装の不明瞭さを安全の根拠としているため脆弱です。攻撃の動機があれば、攻撃者はあらゆる手段で、時間に制限なくモバイルアプリを解析できます。攻撃者がクライアントの実行モジュールを入手できる限り、ソースコードや仕様が公開されているかどうかは攻撃者にとって大きな意味を持ちません。

Kii Cloud では、オープンな仕様を前提に、ユーザーの認証とアクセス権限によってセキュリティを確保しています。上記に示すとおり、攻撃者はデータへのアクセス方法を知っていても、ユーザーのデータにはアクセスできません。

独自実装のサーバーでも、Kii Cloud と同様のセキュリティ機能を実現することは可能です。しかし、セキュリティは最終的なサービスの機能性や商品的価値に直結しないため、検証やテストのコストは抑えられがちです。一方、Kii Cloud では、セキュリティ自体がサービスの機能性の一部であるため、十分な検証やテストが行われています。


この機能の詳細は...

  • セキュリティについての技術情報の詳細は、「セキュリティ」(AndroidiOSJavaScriptREST) を参照してください。