Skip to main content

 

OutSystems 11オンラインヘルプ

 

モバイルアプリが対象
OutSystems

モバイルアプリのデータを保護する

OutSystemsで構築されたモバイルアプリのデータ保護に関するベストプラクティスとソリューションについて説明します。

機密データをデバイスに保存しないようにする

デバイスはどこへでも持ち出せ、あらゆるアプリをインストールできます。ただし、盗難されたり、悪意のあるアプリを不注意でインストールしたりすると、デバイスのセキュリティは簡単に損なわれてしまいます。

サーバーのみに機密データを保存し、必要なときにのみデバイスから要求するようにすることで、第三者がデバイスストレージに侵入して機密情報にアクセスすることを妨げます。

デバイスからサーバーへのすべての接続が認証され、HTTPS上を通過させることで、機密情報が安全に保たれます。

アプリケーションをオフラインで動作させる必要がある場合は、詳細な情報を得たうえで、デバイス上にローカルで保存するデータを決定します。 機密性の高いエンティティまたはアトリビュートはサーバーのデータベースに保存し、ローカスストレージには、アプリケーションをオフラインで使用するために必要な非機密データのみを保存します。

ユーザーがオフラインでタスクを完了するために必要最小限のデータを明らかにすることが推奨されます。 これはデータの削減や機密データの削除を行う際に有効です。

機密情報の小さな断片を保存する

パスワードや社会保障番号などの少量の情報を保存する必要がある場合、デバイスのキーストア(iOSでは「キーチェーン」)を使用できます。

キーストアはデバイスが提供する、少量の機密情報を保存するアプリです。 キーストアは、データを保存前に暗号化することで保護します。プラットフォームでは、保存されたアイテムへのアクセスを慎重に制御します。

キーストアに安全に情報を保存するには、Forgeで入手できるKeyStore Pluginを使用できます。

機密性の高いアトリビュートをローカルストレージエンティティに保存する

アプリケーションで、オフラインオペレーションのためにいくつかのエンティティアトリビュートに機密情報を保持させる必要がある場合、必要に応じて値の暗号化と復号化を行うロジックをアプリケーションに作成できます。

従来型のJavScriptの暗号化フレームワーク(一部使用可能)を使用して、ローカルストレージに書き込む前に暗号化し、ローカルストレージから読み取った後に復号化することが可能です。

暗号化キーは、上記のデバイスキーストアの仕組みを利用して安全に保存できます。

大量の機密情報をローカルストレージに保存する

機密情報だと判断されるデータがローカルストレージに大量にある場合、ローカルストレージ全体を暗号化することができます。

ローカルストレージデータベースを暗号化するには、Forgeで入手できるCiphered Local Storage Pluginを利用できます。これにより、安全性の高いAES-256bitでデバイス上のデータを暗号化できます。

このような特別なセキュリティレベルでは、ローカルストレージ上のデータの読み取りや書き込みの際にパフォーマンスのオーバーヘッドが発生する可能性があります。この方法を採用する場合は、その点についても考慮が必要です。ご注意ください。

サーバーでデータを再検証する

アプリからサーバーに送信されたすべてのデータは、サーバー上で再検証する必要があります。 再検証することで、サーバー側のロジックが健全なデータに対して動作し、オペレーションが期待どおりに実行されることが保証されます。 アプリからサーバーへのリクエストをハッカーが偽造できる場合、アプリでの検証を回避して不正なリクエストを送信できます。

サーバー側で必要な検証を行わないと、データ破損(サーバー上の実データを偽データで置き換えることにより発生)やデータ漏えい(特定ユーザーからの意図しないデータアクセスにより発生)を引き起こす可能性があります。