Adobe® Flash® Platform 用 ActionScript® 3.0 リファレンスガイド
ホーム  |  パッケージおよびクラスリストの非表示 |  パッケージ  |  クラス  |  新機能  |  索引  |  付録  |  英語で表示される理由
フィルター: サーバーからデータを取得しています...
サーバーからデータを取得しています...
flash.data 

EncryptedLocalStore  - AS3

パッケージflash.data
クラスpublic class EncryptedLocalStore
継承EncryptedLocalStore Inheritance Object

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0

EncryptedLocalStore クラス(ELS)は、アプリケーションのプライベートデータ用の小さなキャッシュとして使用できる暗号化されたローカルストレージメカニズムを提供します。

ELS のデータはアプリケーション間で共有できません。ELS の目的は、ログイン資格情報や他の個人情報などの再作成されたアイテムをアプリケーションで簡単に格納できるようにすることです。ELS データは永続的なものと考えるべきではありません。以下の「暗号化されたローカルストアの制限事項」と「ELS を使用するためのベストプラクティス」を参照してください。

AIR プロファイルのサポート:この機能は AIR for TV デバイスではサポートされません。EncryptedLocalStore.isSupported プロパティを使用して、サポートされているかどうかを実行時にテストすることができます。複数のプロファイル間での API サポートについて詳しくは、AIR プロファイルのサポートを参照してください。

AIR は、ユーザーのコンピューターまたはデバイスにインストールされた各 AIR アプリケーションに対して、暗号化されたローカルストア(ELS)を提供します。これにより、他のユーザーによって簡単に解読されないように暗号化された形式で、ユーザーのローカルハードディスクに格納されたデータを保存および取得できるようになります。各 AIR アプリケーションで個別の暗号化されたローカルストアが使用され、各 AIR アプリケーションは、コンピューター上の各ユーザーアカウントに対して個別の暗号化されたローカルストアを使用します。

Web サービスに対するログイン資格情報など、セキュリティで保護する必要がある情報を格納するために暗号化されたローカルストアを使用します。他のユーザーに対して非公開にする必要がある情報を保存するには、ELS が適切です。ただし、ELS では同じユーザーアカウントで実行される他のプロセスからデータを保護することはできません。このため、DRM や暗号化キーなどの機密アプリケーションデータを保護するには適切でありません。

AIR では、Windows は DPAPI、Mac OS および iOS は KeyChain、Linux は KeyRing または KWallet を使用して、暗号化されたローカルストアを各アプリケーションおよびユーザーに関連付けます。暗号化されたローカルストアでは、128 ビットの AES-CBC 暗号化を使用します。

Android では、EncryptedLocalStorage クラスによって保存されたデータは暗号化されません。代わりに、データはオペレーティングシステムに用意されているユーザーレベルのセキュリティによって保護されます。Android オペレーティングシステムはすべてのアプリケーションに個別のユーザー ID を割り当てます。アプリケーションがアクセスできるのは、自身のファイルと、パブリックロケーション(リムーバブルストレージカードなど)で作成されたファイルだけです。ルート化された Android デバイス上では、ルート権限で実行しているアプリケーションは、他のアプリケーションのファイルにアクセス可能です。したがって、ルート化されたデバイスでは、ルート化されていないデバイスで確保される暗号化されたローカルストアの高いデータ保護レベルが実現されません。

暗号化されたローカルストアの情報は、application セキュリティサンドボックス内の AIR アプリケーションコンテンツでのみ使用できます。

AIR アプリケーションを更新すると、更新されたバージョンには暗号化されたローカルストアの既存のデータへのアクセス権が保持されます。ただし、次の場合を除きます。

  • stronglyBound パラメーターを true に設定してアイテムが追加された場合。
  • AIR 3.2 名前空間から AIR 3.3 にアップグレードした場合(Mac OS と Windows の両方で、AIR 3.2 と AIR 3.3 の間に暗号化されたローカルストアの物理的な場所が変更されています)。
  • 既存バージョンと更新バージョンが両方とも AIR 1.5.3 以前にパブリッシュされていて、更新が移行署名で署名されている場合。

暗号化されたローカルストアの制限事項

暗号化されたローカルストアのデータは、ユーザーのオペレーティングシステムアカウントの資格情報で保護されています。他のエンティティは、そのユーザーとしてログインできる場合を除き、ストア内のデータにアクセスできません。ただし、認証されたユーザーによって実行される他のアプリケーションからのアクセスに対しては、データのセキュリティは保護されません。このため、ライセンスに使用されるキーやデジタル権限管理など、ユーザーに公開したくないアプリケーションのデータがセキュリティ保護されません。ELS は、このような情報を保存するために適切な場所ではありません。ELS は、パスワードなどのユーザーのプライベートデータを保存する目的にのみ適しています。

ELS 内のデータは、さまざまな理由で失われる場合があります。例えば、ユーザーがアプリケーションをアンインストールしたり、暗号化されたデータを削除したりする場合があります。また、更新の結果、発行者 ID が変更される場合があります。こうした理由により、ELS は永続的なデータストレージではなく、プライベートキャッシュとして扱う必要があります。

stronglyBound パラメーターはサポートされなくなったため、true に設定しないでください。このパラメーターを true に設定しても、追加のデータ保護は提供されません。同時に、発行者 ID が同じでもアプリケーションが更新されるとデータへのアクセスが失われます。

保存されるデータが 10 MB を超える場合、暗号化されたローカルストアの実行が低速化する場合があります。

AIR アプリケーションをアンインストールする場合、アンインストーラーは暗号化されたローカルストアに保存されたデータを削除しません。

ELS を使用するためのベストプラクティス

ELS を使用するためのベストプラクティスには次のようなものがあります。

  • パスワードなどのユーザーの機密データを保存する目的で ELS を使用します(stronglyBoundfalse に設定)。
  • DRM キーやライセンスのトークンなどのアプリケーションの機密情報を保存する目的では ELS を使用しないでください。
  • ELS データが失われた場合に、ELS に保存されたデータをアプリケーションで作成し直す方法を提供します。例えば、必要に応じて、ユーザーにアカウント資格情報の再入力を求めます。
  • stronglyBound パラメーターは使用しないでください。
  • stronglyBoundtrue に設定する場合は、更新中に保存されたアイテムを移行しないでください。代わりに、更新後にデータを再作成します。
  • 比較的少量のデータのみ保存します。大量のデータの場合は、AIR SQL データベースを暗号化して使用します。

暗号化されたローカルストアのアイテムは、ストリングで識別されます。アイテムは、すべてバイト配列データとして保存されます。

例を表示



パブリックプロパティ
 プロパティ定義元
 Inheritedconstructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクター関数への参照です。
Object
      isSupported : Boolean
[静的] [読み取り専用] 現在のプラットフォームで EncryptedLocalStore クラスがサポートされている場合、isSupported プロパティは true に設定されます。サポートされていない場合は、false に設定されます。
EncryptedLocalStore
パブリックメソッド
 メソッド定義元
  
    getItem(name:String):ByteArray
[静的] 指定された名前に対応するデータ。
EncryptedLocalStore
 Inherited
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
Object
 Inherited
Object クラスのインスタンスが、パラメーターとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
Object
 Inherited
指定されたプロパティが存在し、列挙できるかどうかを示します。
Object
  
    removeItem(name:String):void
[静的] 暗号化されたローカルストアから、指定された名前のアイテムを削除します。
EncryptedLocalStore
  
    reset():void
[静的] すべてのデータを削除して、暗号化されたローカルストア全体をクリアします。
EncryptedLocalStore
  
    setItem(name:String, data:ByteArray, stronglyBound:Boolean = false):void
[静的] ByteArray オブジェクトを指定された名前で保存します。
EncryptedLocalStore
 Inherited
ループ処理に対するダイナミックプロパティの可用性を設定します。
Object
 Inherited
ロケール固有の規則に従って書式設定された、このオブジェクトのストリング表現を返します。
Object
 Inherited
指定されたオブジェクトのストリング表現を返します。
Object
 Inherited
指定されたオブジェクトのプリミティブな値を返します。
Object
プロパティの詳細
    

isSupported

プロパティ
isSupported:Boolean  [読み取り専用]

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 2

現在のプラットフォームで EncryptedLocalStore クラスがサポートされている場合、isSupported プロパティは true に設定されます。サポートされていない場合は、false に設定されます。



実装
    public static function get isSupported():Boolean
メソッドの詳細

    getItem

()メソッド
public static function getItem(name:String):ByteArray

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0

指定された名前に対応するデータ。

指定された名前でアイテムが見つからない場合、このメソッドは null を返します。

パラメーター

name:String — 暗号化されたローカルストアのアイテムの名前です。

戻り値
ByteArray — ByteArray データです。指定された名前に対するデータが存在しない場合、メソッドは null を返します。

例外
ArgumentError name 値は、null または空の文字列です。

    removeItem

()メソッド 
public static function removeItem(name:String):void

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0

暗号化されたローカルストアから、指定された名前のアイテムを削除します。

パラメーター

name:String — 暗号化されたローカルストアのアイテムの名前です。


例外
ArgumentError name 値は、null または空の文字列です。

    reset

()メソッド 
public static function reset():void

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0

すべてのデータを削除して、暗号化されたローカルストア全体をクリアします。

    setItem

()メソッド 
public static function setItem(name:String, data:ByteArray, stronglyBound:Boolean = false):void

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0

ByteArray オブジェクトを指定された名前で保存します。

パラメーター

name:String — 暗号化されたローカルストアのアイテムの名前です。
 
data:ByteArray — データです。
 
stronglyBound:Boolean (default = false) — (非推奨)stronglyBound パラメーターを false(デフォルト値)に設定します。true に設定すると、アプリケーションファイルが変更された場合に、保存されたアイテムを取得できません。例えば、ユーザーがアプリケーションの更新をインストールすると、更新されたアプリケーションは、暗号化されたローカルストアに以前に書き込まれた、強力にバインドされたデータを読み取れなくなります。


例外
ArgumentError name 値は、null または空の文字列です。
 
ArgumentError data 値は null です。
EncryptedLocalStore.1.as

次のコードは、暗号化されたローカルストアにストリングを保存して、そのストリングを取得し、削除します。
var str:String = "Bob";
var bytes:ByteArray = new ByteArray();
bytes.writeUTFBytes(str);
EncryptedLocalStore.setItem("firstName", bytes);

var storedValue:ByteArray = EncryptedLocalStore.getItem("firstName");
trace(storedValue.readUTFBytes(storedValue.length)); // "Bob"

EncryptedLocalStore.removeItem("firstName");




[ X ]英語で表示される理由
ActionScript 3.0 リファレンスガイドのコンテンツが英語で表示されます。

ActionScript 3.0 リファレンスガイドのすべての部分がすべての言語に翻訳されているわけではありません。言語エレメントが翻訳されていない場合、そのエレメントは英語で表示されます。例えば、ga.controls.HelpBox クラスはどの言語にも訳されていません。このため、リファレンスガイドの日本語バージョンでは、ga.controls.HelpBox クラスは英語で表示されます。