Skip to content
Snippets Groups Projects
Forked from briar / briar
Source project has a limited visibility.
  • Torsten Grote's avatar
    63d87ae0
    Support for Destructive Panic Actions · 63d87ae0
    Torsten Grote authored
    PanicKit does distinguish between two kinds of panic responses:
    
    * default responses such as logging out which are non-destructive and
      do not require user interaction, so that the basics work without
      configuration
    * destructive responses such as deleting user data. These require
      some sort of authentication to make sure they are not triggered
      by malicious apps
    
    The second type of responses is implemented with this commit.
    
    Authentication is done by comparing the package name
    which is very weak. It requires the user to opt-in to
    destructive responses and to configure from which app
    to receive those (since there might be many different panic
    trigger apps).
    
    While possible to uninstall an app and install one with the same
    package name afterwards, this always triggers notifications to
    the user (if the attacker does not have root access).
    
    Still that is no sufficient security for Briar's requirements,
    so that TrustedIntents are used as well to make sure that the
    app sending the destructive trigger is signed by a signing key
    that we specified before. Currently, that is the one from the
    GuardianProject and from IilabEngineering who does the Amnesty
    International Panic App.
    
    The responsibility of checking that the panic TRIGGER is
    legitimate lies with the app responding to the trigger, so Briar
    in this case. This commit checks whether the TRIGGER comes from
    a trusted app before performing destructive actions,
    but does perform the default action even when triggered from
    untrusted apps.
    
    Closes #210
    63d87ae0
    History
    Support for Destructive Panic Actions
    Torsten Grote authored
    PanicKit does distinguish between two kinds of panic responses:
    
    * default responses such as logging out which are non-destructive and
      do not require user interaction, so that the basics work without
      configuration
    * destructive responses such as deleting user data. These require
      some sort of authentication to make sure they are not triggered
      by malicious apps
    
    The second type of responses is implemented with this commit.
    
    Authentication is done by comparing the package name
    which is very weak. It requires the user to opt-in to
    destructive responses and to configure from which app
    to receive those (since there might be many different panic
    trigger apps).
    
    While possible to uninstall an app and install one with the same
    package name afterwards, this always triggers notifications to
    the user (if the attacker does not have root access).
    
    Still that is no sufficient security for Briar's requirements,
    so that TrustedIntents are used as well to make sure that the
    app sending the destructive trigger is signed by a signing key
    that we specified before. Currently, that is the one from the
    GuardianProject and from IilabEngineering who does the Amnesty
    International Panic App.
    
    The responsibility of checking that the panic TRIGGER is
    legitimate lies with the app responding to the trigger, so Briar
    in this case. This commit checks whether the TRIGGER comes from
    a trusted app before performing destructive actions,
    but does perform the default action even when triggered from
    untrusted apps.
    
    Closes #210