ActionScript® 3.0 Referenzhandbuch für die Adobe® Flash®-Plattform
Home  |  Liste der Pakete und Klassen ausblenden |  Pakete  |  Klassen  |  Neue Funktionen  |  Stichwortverzeichnis  |  Anhänge  |  Warum auf Englisch?
Filter: Daten werden vom Server abgerufen...
Daten werden vom Server abgerufen...
flash.data 

EncryptedLocalStore  - AS3

Paketflash.data
Klassepublic class EncryptedLocalStore
VererbungEncryptedLocalStore Inheritance Object

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0

Die EncryptedLocalStore-Klasse (ELS) stellt einen Mechanismus für verschlüsselten lokalen Speicher bereit, der als kleiner Cache für die privaten Daten einer Anwendung verwendet werden kann.

ELS-Daten können nicht von Anwendungen gemeinsam genutzt werden. ELS hat den Zweck, einer Anwendung das Speichern von leicht wiederherzustellenden Elementen wie Anmeldeinformationen und anderen privaten Informationen zu ermöglichen. ELS-Daten sollten nicht als dauerhaft betrachtet werden; siehe „Einschränkungen des verschlüsselten lokalen Speichers“ und „Empfohlene Verfahren für die Verwendung von ELS“ weiter unten.

AIR-Profilunterstützung: Diese Funktion wird auf Geräten mit AIR für TV nicht unterstützt. Mit der EncryptedLocalStore.isSupported-Eigenschaft können Sie testen, ob zur Laufzeit Unterstützung gegeben ist. Weitere Informationen zum AIR-Support über mehrere Profile finden Sie unter Unterstützung von AIR-Profilen.

AIR stellt einen verschlüsselten lokalen Speicher (encrypted local store, ELS) für jede auf dem Computer oder einem Gerät eines Benutzers installierte AIR-Anwendung bereit. Dadurch können Daten auf der lokalen Festplatte des Benutzers in einem verschlüsselten Format gespeichert und abgerufen werden, das von anderen Benutzern nicht leicht entschlüsselt werden kann. Für jede AIR-Anwendung wird jeweils ein separater verschlüsselter lokaler Speicher verwendet, und jede AIR-Anwendung verwendet jeweils einen separaten verschlüsselten lokalen Speicher für jedes Benutzerkonto auf dem Computer.

Verwenden Sie den verschlüsselten lokalen Speicher für die Zwischenspeicherung von Daten, die gesichert werden müssen (z. B. Anmeldeinformationen für Webdienste). Der ELS eignet sich für die Speicherung von Informationen, die für andere Benutzer nicht zugänglich sein sollen. Er schützt die Daten jedoch nicht vor anderen Prozessen, die unter demselben Benutzerkonto ausgeführt werden. ELS eignet sich deshalb nicht für den Schutz geheimer Anwendungsdaten wie DRM oder Verschlüsselungsschlüssel.

AIR verwendet DPAPI unter Windows, KeyChain unter Mac OS und iOS, und KeyRing oder KWallet unter Linux, um den verschlüsselten lokalen Speicher den einzelnen Anwendungen und Benutzern zuzuordnen. Die Verschlüsselung im lokalen Speicher erfolgt mit AES-CBC 128 Bit-Verschlüsselung.

Unter Android werden die von der EncryptedLocalStorage-Klasse gespeicherten Daten nicht verschlüsselt. Stattdessen werden die Daten durch die vom Betriebssystem bereitgestellte Sicherheit auf Benutzerebene geschützt. Das Android-Betriebssystem weist jeder Anwendung eine separate Benutzer-ID zu. Anwendungen können nur auf ihre eigenen Dateien zugreifen und auf Dateien, die an öffentlichen Speicherorten erstellt wurden (zum Beispiel auf der austauschbaren Speicherkarte). Beachten Sie, dass auf gerooteten Android-Geräten Anwendungen, die mit Root-Berechtigung ausgeführt werden, auf die Dateien anderer Anwendungen zugreifen können. Auf einem gerooteten Gerät bietet der verschlüsselte lokale Speicher deshalb weniger Datensicherheit als auf einem nicht gerooteten Gerät.

Die im verschlüsselten lokalen Speicher enthaltenen Informationen stehen nur als AIR-Anwendungsinhalt in der Sicherheits-Sandbox application zur Verfügung.

Wenn Sie eine AIR-Anwendung aktualisieren, behält die aktualisierte Version den Zugriff auf alle vorhandenen Daten im verschlüsselten lokalen Speicher, es sei denn:

  • Die Elemente wurden hinzugefügt, während ihr stronglyBound-Parameter auf true gesetzt war
  • Sie haben ein Upgrade vom AIR 3.2-Namespace auf AIR 3.3 ausgeführt (der physische Speicherort des verschlüsselten lokalen Speichers wurde zwischen AIR 3.2 und AIR 3.3 sowohl für Mac OS als auch für Windows geändert)
  • Die vorhandene und die aktualisierte Version wurden beide vor AIR 1.5.3 veröffentlicht und das Update wurde mit einer Migrationssignatur signiert

Einschränkungen des verschlüsselten lokalen Speichers

Die Daten im verschlüsselten lokalen Speicher sind durch die Authentifizierungsdaten des Betriebssystems des Benutzers geschützt. Andere Entitäten haben keinen Zugriff auf den Speicher, solange sie sich nicht als der betreffende Benutzer anmelden können. Die Daten sind jedoch nicht vor dem Zugriff durch andere Anwendungen, die von einem authentifizierten Benutzer ausgeführt werden, geschützt. Daten, die Ihre Anwendung vor Benutzern geheim halten möchte, zum Beispiel Lizenzschlüssel oder DRM-Schlüssel, sind deshalb nicht sicher. Der verschlüsselte lokale Speicher ist nicht der geeignete Ort für die Speicherung dieser Informationen. Er ist lediglich ein geeigneter Speicherort für die persönlichen Daten eines Benutzers, zum Beispiel Kennwörter.

Daten im ELS können aus verschiedenen Gründen verloren gehen. Der Benutzer könnte die Anwendung zum Beispiel deinstallieren und die verschlüsselte Datei löschen. Oder die Herausgeber-ID wird im Rahmen eines Updates geändert. Deshalb sollte der ELS als privater Cachespeicher, nicht als permanenter Datenspeicher betrachtet werden.

Der stronglyBound-Parameter ist veraltet und sollte nicht auf true gesetzt werden. Das Einstellen des Parameters auf true bringt keinerlei zusätzlichen Schutz für Daten. Gleichzeitig geht der Zugriff auf die Daten verloren, wenn die Anwendung aktualisiert wird, selbst wenn die Herausgeber-ID gleich bleibt.

Der verschlüsselte lokale Speicher kann langsamer sein, wenn die gespeicherte Datenmenge 10 MB übersteigt.

Bei der Deinstallation einer AIR-Anwendung werden die Daten im verschlüsselten lokalen Speicher nicht gelöscht.

Empfohlene Verfahren für die Verwendung von ELS

Zu den bewährten Verfahren bei der Verwendung des verschlüsselten lokalen Speicher gehört Folgendes:

  • Speichern Sie vertrauliche Benutzerdaten, wie Kennwörter, im verschlüsselten lokalen Speicher (indem Sie stronglyBound auf false setzen)
  • Speichern Sie im verschlüsselten lokalen Speicher keine vertraulichen Anwendungsdaten, wie DRM-Schlüssel oder Lizenz-Token
  • Stellen Sie für Ihre Anwendung eine Möglichkeit bereit, die im ELS gespeicherten Daten wiederherzustellen, falls sie verloren gehen sollten. Dies ist zum Beispiel möglich, indem der Benutzer ggf. zur erneuten Eingabe seiner Benutzerkontodaten aufgefordert wird.
  • Verwenden Sie nicht den stronglyBound-Parameter.
  • Wenn Sie stronglyBound auf true setzen, migrieren Sie gespeicherte Elemente während eines Updates nicht. Erstellen Sie die Daten stattdessen nach dem Update erneut.
  • Speichen Sie nur relativ kleine Datenmengen. Für große Datenmengen sollten Sie eine AIR-SQL-Datenbank mit Verschlüsselung verwenden.

Die Elemente im verschlüsselten lokalen Speicher werden mit einem String gekennzeichnet. Alle Elemente werden als Byte-Array-Daten gespeichert.

Beispiele anzeigen



Öffentliche Eigenschaften
 EigenschaftDefiniert von
 Inheritedconstructor : Object
Ein Verweis auf das Klassenobjekt oder die Konstruktorfunktion für eine angegebene Objektinstanz.
Object
      isSupported : Boolean
[statisch] [schreibgeschützt] Die isSupported-Eigenschaft hat den Wert „true“, wenn die EncryptedLocalStore-Klasse von der aktuellen Plattform unterstützt wird, andernfalls hat sie den Wert „false“.
EncryptedLocalStore
Öffentliche Methoden
 MethodeDefiniert von
  
    getItem(name:String):ByteArray
[statisch] Die Daten, die dem angegebenen Namen entsprechen.
EncryptedLocalStore
 Inherited
Gibt an, ob für ein Objekt eine bestimmte Eigenschaft definiert wurde.
Object
 Inherited
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde.
Object
 Inherited
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann.
Object
  
    removeItem(name:String):void
[statisch] Entfernt das Element mit dem angegebenen Namen aus dem verschlüsselten lokalen Speicher.
EncryptedLocalStore
  
    reset():void
[statisch] Löscht alle Daten im verschlüsselten lokalen Speicher.
EncryptedLocalStore
  
    setItem(name:String, data:ByteArray, stronglyBound:Boolean = false):void
[statisch] Speichert ein ByteArray-Objekt unter dem angegebenen Namen.
EncryptedLocalStore
 Inherited
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest.
Object
 Inherited
Gibt die Stringdarstellung dieses Objekts zurück, formatiert entsprechend den Konventionen des Gebietsschemas.
Object
 Inherited
Gibt das angegebene Objekt als String zurück.
Object
 Inherited
Gibt den Grundwert des angegebenen Objekts zurück.
Object
Eigenschaftendetails
    

isSupported

Eigenschaft
isSupported:Boolean  [schreibgeschützt]

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 2

Die isSupported-Eigenschaft hat den Wert true, wenn die EncryptedLocalStore-Klasse von der aktuellen Plattform unterstützt wird, andernfalls hat sie den Wert false.



Implementierung
    public static function get isSupported():Boolean
Methodendetails

    getItem

()Methode
public static function getItem(name:String):ByteArray

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0

Die Daten, die dem angegebenen Namen entsprechen.

Wenn es kein Element mit dem angegebenen Namen gibt, gibt diese Methode null zurück.

Parameter

name:String — Der Name des Elements im verschlüsselten lokalen Speicher.

Rückgabewerte
ByteArray — Die ByteArray-Daten. Wenn für den angegebenen name keine Daten vorhanden sind, gibt die Methode null zurück.

Auslöser
ArgumentError — Der name-Wert ist null oder ein leerer String.

    removeItem

()Methode 
public static function removeItem(name:String):void

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0

Entfernt das Element mit dem angegebenen Namen aus dem verschlüsselten lokalen Speicher.

Parameter

name:String — Der Name des Elements im verschlüsselten lokalen Speicher.


Auslöser
ArgumentError — Der name-Wert ist null oder ein leerer String.

    reset

()Methode 
public static function reset():void

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0

Löscht alle Daten im verschlüsselten lokalen Speicher.

    setItem

()Methode 
public static function setItem(name:String, data:ByteArray, stronglyBound:Boolean = false):void

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0

Speichert ein ByteArray-Objekt unter dem angegebenen Namen.

Parameter

name:String — Der Name des Elements im verschlüsselten lokalen Speicher.
 
data:ByteArray — Die Daten.
 
stronglyBound:Boolean (default = false) — (veraltet) Der stronglyBound-Parameter sollte auf false (Standardwert) gesetzt werden. Bei der Einstellung auf true kann das gespeicherte Element nicht abgerufen werden, falls Anwendungsdaten geändert werden. Wenn ein Benutzer zum Beispiel ein Update Ihrer Anwendung installiert, kann die aktualisierte Anwendung keine stark gebundenen („strongly bound“) Daten lesen, die zuvor in den verschlüsselten lokalen Speicher geschrieben wurden.


Auslöser
ArgumentError — Der name-Wert ist null oder ein leerer String.
 
ArgumentError — Der data-Wert ist null.
EncryptedLocalStore.1.as

Mit dem folgenden Codebeispiel wird ein String im verschlüsselten lokalen Speicher gespeichert, abgerufen und dann gelöscht:
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 ]Warum auf Englisch?
Inhalt des ActionScript 3.0-Referenzhandbuchs wird in englischer Sprache angezeigt

Nicht alle Teile des ActionScript 3.0-Referenzhandbuchs wurden in alle Sprachen übersetzt. Wenn der Text zu einem Sprachelement nicht übersetzt wurde, wird er auf Englisch angezeigt. Zum Beispiel wurden die Informationen zur ga.controls.HelpBox-Klasse nicht in andere Sprachen übersetzt. In der deutschen Version des Referenzhandbuchs erscheint der Abschnitt zur ga.controls.HelpBox-Klasse deshalb auf Englisch.