Skip to main content

 

 

 

 

Template:OutSystems/Documentation_KB/Breadcrumb_New_Layout

 

 

Template:OutSystems/OSLanguageSwitcher

 

モバイルアプリにのみ適用されます

 

 

OutSystems

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

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

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

デバイスはどこへでも持ち出せ、あらゆるアプリをインストールできます。盗難、あるいは不注意でインストールされた悪意のあるアプリによって、デバイスのセキュリティは容易に損なわれてしまいます。サーバーのみに機密データを保存し、必要なときにのみデバイスから要求するようにすることで、第三者がデバイスストレージに侵入して機密情報にアクセスすることを妨げます。デバイスからサーバーへのすべての接続が認証され、HTTPS上を通過させることで、機密情報が安全に保たれます。

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

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

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

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

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

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

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

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

従来型のJavScriptの暗号化フレームワーク(https://gist.github.com/jo/8619441で一部利用可能)を使用[して、ローカルストレージに書き込む前に暗号化し、ローカルストレージから読み取った後に復号化することが可能です。暗号化キーは、上記のデバイスキーストアの仕組みを利用して安全に保存できます。

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

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

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

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

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

アプリからサーバーに送信されたすべてのデータは、サーバー上で再検証する必要があります。再検証することで、サーバー側のロジックが健全なデータに対して動作し、操作が期待どおりに実行されることが保証されます。アプリからサーバーへのリクエストをハッカーが偽造できる場合、アプリでの検証を回避して不正なリクエストを送信できます。サーバー側で必要な検証を行わないと、データ破損(サーバー上の実データを偽データで置き換えることにより発生)やデータ漏えい(特定ユーザーからの意図しないデータアクセスにより発生)を引き起こす可能性があります。

  • Was this article helpful?