Paket | flash.data |
Klasse | public class EncryptedLocalStore |
Vererbung | EncryptedLocalStore Object |
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0 |
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 auftrue
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
auffalse
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
auftrue
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.
Eigenschaft | Definiert von | ||
---|---|---|---|
constructor : 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 |
Methode | Definiert von | ||
---|---|---|---|
[statisch]
Die Daten, die dem angegebenen Namen entsprechen. | EncryptedLocalStore | ||
Gibt an, ob für ein Objekt eine bestimmte Eigenschaft definiert wurde. | Object | ||
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde. | Object | ||
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann. | Object | ||
[statisch]
Entfernt das Element mit dem angegebenen Namen aus dem verschlüsselten lokalen Speicher. | EncryptedLocalStore | ||
[statisch]
Löscht alle Daten im verschlüsselten lokalen Speicher. | EncryptedLocalStore | ||
[statisch]
Speichert ein ByteArray-Objekt unter dem angegebenen Namen. | EncryptedLocalStore | ||
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest. | Object | ||
Gibt die Stringdarstellung dieses Objekts zurück, formatiert entsprechend den Konventionen des Gebietsschemas. | Object | ||
Gibt das angegebene Objekt als String zurück. | Object | ||
Gibt den Grundwert des angegebenen Objekts zurück. | Object |
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
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.
|
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 .
|
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");
Tue Jun 12 2018, 10:04 AM Z