Package | flash.data |
Classe | public class EncryptedLocalStore |
Héritage | EncryptedLocalStore Object |
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0 |
Les données du magasin local chiffré ne peuvent pas être partagées entre les applications. L’objectif du magasin local chiffré est de permettre à une application de stocker les éléments facilement recréés tels que les informations d’identification et autres informations privées. Les données du magasin local chiffré ne doivent pas être considérées comme étant permanentes ; voir les sections « Restrictions du magasin local chiffré » et « Recommandations d’utilisation du magasin local chiffré » ci-après.
Prise en charge du profil AIR : cette fonctionnalité n’est pas prise en charge sur les périphériques AIR pour TV. Vous pouvez tester la prise en charge lors de l’exécution à l’aide de la propriété EncryptedLocalStore.isSupported
. Voir Prise en charge du profil AIR pour plus d’informations sur la prise en charge de l’API dans plusieurs profils.
AIR fournit un magasin local chiffré pour chaque application AIR installée sur l’ordinateur ou le périphérique de l’utilisateur. Vous pouvez ainsi enregistrer et extraire les données stockées sur le disque dur local de l’utilisateur dans un format chiffré, que d’autres utilisateurs ne peuvent pas déchiffrer facilement. Un magasin local chiffré distinct est utilisé pour chaque application AIR et chacune d’elle fait appel à un magasin local chiffré pour chaque compte utilisateur de l’ordinateur.
Utilisez le magasin local chiffré pour mettre en mémoire cache des informations à sécuriser, telles que les informations de connexion aux services Web. Le magasin local chiffré convient au stockage des informations devant rester confidentielles. En revanche, il ne permet pas de protéger les données des autres processus exécutés sous le même compte utilisateur. Il n’est donc pas approprié pour protéger les données secrètes d’une application, notamment les mots de passe DRM ou les clés de chiffrement.
Pour associer le magasin local chiffré à chaque application et chaque utilisateur, AIR utilise DPAPI sous Windows, KeyChain sous Mac OS et iOS, et KeyRing ou KWallet sous Linux. Le magasin local chiffré utilise un cryptage AES-CBC de 128 bits.
Sur Android, les données enregistrées par la classe EncryptedLocalStorage ne sont pas chiffrées. Elles sont protégées par la sécurité de niveau utilisateur fournie par le système d’exploitation. Le système d’exploitation Android affecte à chaque application un ID utilisateur distinct. Les applications peuvent uniquement accéder à leurs propres fichiers et aux fichiers créés dans des emplacements publics (tels que la carte de stockage amovible). Notez que sur les périphériques Android associés à une racine, les applications s’exécutant avec des privilèges racines peuvent accéder aux fichiers d’autres applications. Sur ce type de périphérique, le magasin de stockage local ne fournit pas un niveau élevé de protection de données.
Les informations conservées dans le magasin local chiffré ne sont disponibles que pour le contenu de l’application AIR dans le sandbox de sécurité de l’application.
Si vous mettez à jour une application AIR, la version mise à jour conserve l’accès à toutes les données existantes dans le magasin local chiffré, sauf dans les cas suivants :
- Les éléments ont été ajoutés avec le paramètre
stronglyBound
défini surtrue
. - Vous avez effectué une mise à niveau de l’espace de noms AIR 3.2 vers l’espace de noms AIR 3.3 (l’emplacement physique du magasin local chiffré a changé entre AIR 3.2 et AIR 3.3 sous Mac OS et Windows).
- La version existante et la version mise à jour sont toutes deux publiées avant AIR 1.5.3, et la mise à jour est signée à l’aide d’une signature de migration.
Restrictions du magasin local chiffré
Les données contenues dans le magasin local chiffré sont protégées par les informations d’identification du compte du système d’exploitation de l’utilisateur. Les autres entités ne peuvent pas accéder aux données contenues dans le magasin, à moins qu’elles soient en mesure d’utiliser les informations d’identification de cet utilisateur pour se connecter. Il est néanmoins possible que d’autres applications exécutées par un utilisateur authentifié puissent accéder aux données. Par conséquent, les données que votre application souhaite garder secrètes, telles que les clés utilisées pour l’obtention de licences ou la gestion des droits numériques, ne sont pas sécurisées. Le magasin local chiffré n’est pas un emplacement approprié pour le stockage de ces informations. Il convient uniquement au stockage des données privées d’un utilisateur, telles que les mots de passe.
Les données contenues dans le magasin local chiffré peuvent être perdues pour plusieurs raisons. Par exemple, l’utilisateur n’a pas pu désinstaller l’application et supprimer le fichier chiffré. Ou l’ID de l’éditeur a été modifié suite à une mise à jour. Par conséquent, le magasin local chiffré doit être considéré comme une mémoire cache privée et non comme un emplacement de stockage permanent.
Le paramètre stronglyBound
est déconseillé et ne doit pas être défini sur true
. Définir ce paramètre sur true
ne fournit pas de protection supplémentaire aux données. Par ailleurs, l’accès aux données est perdu à chaque mise à jour de l’application, même si l’ID de l’éditeur reste inchangé.
Le magasin local chiffré peut s’exécuter plus lentement si les données stockées dépassent 10 Mo.
Lorsque vous désinstallez une application AIR, le programme de désinstallation ne supprime pas les données stockées dans le magasin local chiffré.
Recommandations d’utilisation du magasin local chiffré
Voici les normes de bonne pratique concernant l’utilisation du magasin local chiffré :
- Utilisez le magasin local chiffré pour stocker des données utilisateur sensibles, telles que les mots de passe (en définissant
stronglyBound
surfalse
). - N’utilisez pas le magasin local chiffré pour stocker les données secrètes d’une application, notamment les clés DRM ou les jetons de licence.
- Faites en sorte que votre application recrée les données stockées dans le magasin local chiffré en cas de perte, notamment en invitant l’utilisateur à saisir de nouveau les informations d’identification de son compte, si besoin est.
- N’utilisez pas le paramètre
stronglyBound
. - Si vous définissez
stronglyBound
surtrue
, ne migrez pas les éléments stockés lors d’une mise à jour, mais recréez les données après la mise à jour. - Stockez uniquement de petites quantités de données. Si vous souhaitez stocker de grandes quantités de données, utilisez une base de données SQL AIR avec cryptage.
Les éléments du magasin local chiffré sont identifiés par une chaîne. Tous les éléments sont stockés sous forme de données de tableau d’octets.
Plus d’exemples
Propriété | Défini par | ||
---|---|---|---|
constructor : Object
Référence à l’objet de classe ou à la fonction constructeur d’une occurrence donnée d’un objet. | Object | ||
isSupported : Boolean [statique] [lecture seule]
La propriété isSupported est définie sur true si la classe EncryptedLocalStore est prise en charge sur la plate-forme actuelle ; dans le cas contraire, elle est définie sur false. | EncryptedLocalStore |
Méthode | Défini par | ||
---|---|---|---|
[statique]
Données correspondant au nom spécifié. | EncryptedLocalStore | ||
Indique si la propriété spécifiée d’un objet est définie. | Object | ||
Indique si une occurrence de la classe Object figure dans la chaîne de prototype de l’objet spécifié en tant que paramètre. | Object | ||
Indique si la propriété spécifiée existe et est énumérable. | Object | ||
[statique]
Supprime l’élément avec le nom donné du magasin local chiffré. | EncryptedLocalStore | ||
[statique]
Efface tout le stockage local crypté, en supprimant toutes les données. | EncryptedLocalStore | ||
[statique]
Enregistre un objet ByteArray sous le nom spécifié. | EncryptedLocalStore | ||
Définit la disponibilité d’une propriété dynamique pour les opérations en boucle. | Object | ||
Renvoie la représentation de chaîne de cet objet, formatée selon les paramètres régionaux en vigueur. | Object | ||
Renvoie la représentation sous forme de chaîne de l’objet spécifié. | Object | ||
Renvoie la valeur primitive de l’objet spécifié. | Object |
isSupported | propriété |
isSupported:Boolean
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 2 |
La propriété isSupported
est définie sur true
si la classe EncryptedLocalStore est prise en charge sur la plate-forme actuelle ; dans le cas contraire, elle est définie sur false
.
Implémentation
public static function get isSupported():Boolean
getItem | () | méthode |
public static function getItem(name:String):ByteArray
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0 |
Données correspondant au nom spécifié.
Si un élément n’existe pas avec le paramètre name spécifié, cette méthode renvoie null
.
Paramètres
name:String — Nom de l’élément dans le magasin local chiffré.
|
ByteArray — Données ByteArray. S’il n’y a pas de données pour le paramètre name fourni, la méthode renvoie null .
|
Valeur émise
ArgumentError — La valeur name est null ou une chaîne vide.
|
removeItem | () | méthode |
public static function removeItem(name:String):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0 |
Supprime l’élément avec le nom donné du magasin local chiffré.
Paramètres
name:String — Nom de l’élément dans le magasin local chiffré.
|
Valeur émise
ArgumentError — La valeur name est null ou une chaîne vide.
|
reset | () | méthode |
public static function reset():void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0 |
Efface tout le stockage local crypté, en supprimant toutes les données.
setItem | () | méthode |
public static function setItem(name:String, data:ByteArray, stronglyBound:Boolean = false):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0 |
Enregistre un objet ByteArray sous le nom spécifié.
Paramètres
name:String — Nom de l’élément dans le magasin local chiffré.
| |
data:ByteArray — Données.
| |
stronglyBound:Boolean (default = false ) — (déconseillé) Le paramètre stronglyBound doit être défini sur false (valeur par défaut). S’il est défini sur true , l’élément stocké ne pourra pas être récupéré si l’un des fichiers de l’application est endommagé. Par exemple, si un utilisateur installe une mise à jour de votre application, l’application mise à jour n’est pas en mesure de lire les données fortement liées précédemment écrites dans le magasin local chiffré.
|
Valeur émise
ArgumentError — La valeur name est null ou une chaîne vide.
| |
ArgumentError — La valeur data est définie sur 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, 09:30 AM Z