Sécuriser les activités sensibles

Ce document explique comment surveiller les activités sensibles, telles que les connexions utilisateur et les achats en ligne.

FLAG_SECURE

FLAG_SECURE est un indicateur de fenêtre qui indique à Android de ne pas autoriser les captures d'écran ni l'affichage de la vue de la fenêtre sur un écran non sécurisé (comme la diffusion de l'écran). Cela est utile pour les applications qui doivent protéger des informations sensibles, comme les applications bancaires ou les gestionnaires de mots de passe. Lorsqu'une fenêtre est signalée avec FLAG_SECURE, Android empêche la prise de captures d'écran et l'affichage de la fenêtre sur un écran non sécurisé, tel qu'un téléviseur ou un projecteur. Cela permet de protéger les informations affichées dans la fenêtre contre tout accès non autorisé.

Comment cela permet d'atténuer la fraude

Une application ou une entité malveillante peut récupérer des captures d'écran en arrière-plan. Lorsque l'état de votre application passe à l'arrière-plan, FLAG_SECURE peut être utilisé. Lorsque la capture d'écran est effectuée, l'image obtenue est vide.

FLAG_SECURE est également utile pour les cas d'utilisation du partage d'écran à distance. Il ne s'agit pas toujours d'une application malveillante qui récupère des captures d'écran. Des applications de partage d'écran légitimes sont également couramment utilisées dans des situations frauduleuses.

Implémentation

Pour les vues dont vous souhaitez protéger les informations, ajoutez les éléments suivants :

Kotlin

window?.setFlags(
    WindowManager.LayoutParams.FLAG_SECURE,
    WindowManager.LayoutParams.FLAG_SECURE
)

Java

window.setFlags(
  WindowManager.LayoutParams.FLAG_SECURE,
  WindowManager.LayoutParams.FLAG_SECURE
);

Bonnes pratiques

Il est important de noter que cette approche n'est pas fiable pour empêcher les attaques par superposition. Dans certains cas, il ne prédit pas correctement si l'enregistrement d'écran est actif, mais il couvre la plupart des cas d'utilisation. Pour atténuer les attaques par superposition, lisez la section suivante sur les autorisations HIDE_OVERLAY_WINDOWS.

HIDE_OVERLAY_WINDOWS

HIDE_OVERLAY_WINDOWS est une autorisation ajoutée dans Android 12 qui permet à votre application de désactiver le dessin de calques d'application au-dessus d'elle. Dans Android 12, nous avons rendu plus difficile l'obtention de l'autorisation SYSTEM_ALERT_WINDOW, ce qui permet à votre application de bloquer les calques des applications tierces.

Comment cela permet d'atténuer la fraude

Lorsque vous activez l'autorisation HIDE_OVERLAY_WINDOWS, vous désactivez l'affichage des calques d'application au-dessus de votre application. Cette autorisation fournit un mécanisme de protection contre les attaques cloak and dagger.

Implémentation

Pour activer cette autorisation, ajoutez HIDE_OVERLAY_WINDOWS au fichier manifeste de votre projet.

Bonnes pratiques

Comme pour toute autorisation, vous devez faire confiance à toute application de superposition au moins autant qu'à toute autre application sur l'appareil. En d'autres termes, votre application ne doit pas autoriser d'autres applications à dessiner des calques par-dessus, sauf si vous savez que l'autre application est fiable. Autoriser une application à se superposer à d'autres applications peut être dangereux, car elle peut voler des mots de passe ou lire des messages.