diff options
author | Dominik <dominik@dominikschuermann.de> | 2012-11-15 23:25:21 +0100 |
---|---|---|
committer | Dominik <dominik@dominikschuermann.de> | 2012-11-15 23:25:21 +0100 |
commit | 0f3164c5b58f1f368a2710e0c653bb911d74df6d (patch) | |
tree | 2d1dca3890ae69fa5ba7cf6cfb8bfa605500531b | |
parent | e247fe18af14010719d26f3823a2f2984bc1f9be (diff) | |
download | open-keychain-0f3164c5b58f1f368a2710e0c653bb911d74df6d.tar.gz open-keychain-0f3164c5b58f1f368a2710e0c653bb911d74df6d.tar.bz2 open-keychain-0f3164c5b58f1f368a2710e0c653bb911d74df6d.zip |
Wrote security concept
-rw-r--r-- | README.md | 50 |
1 files changed, 49 insertions, 1 deletions
@@ -57,4 +57,52 @@ See http://docs.oseems.com/general/application/eclipse/fix-gc-overhead-limit-exc ## Generate pressed dashboard icons 1. Open svg file in Inkscape -2. Extensions -> Color -> darker (2 times!)
\ No newline at end of file +2. Extensions -> Color -> darker (2 times!) + +# Security Concept + +## Basic goals + +* Never (even with permissions) give out actual PGPSecretKey/PGPSecretKeyRing blobs +* Intents without permissions should only work based on user interaction (e.g. click a button in a dialog) + +Android primitives to exchange data: Intent, Intent with return values, Send (also an Intent), Content Provider, AIDL + +## Intents + +### Without permission + +* android.intent.action.VIEW connected to .gpg and .asc files: Import Key and Decrypt +* android.intent.action.SEND connected to all mime types (text/plain and every binary data like files and images): Encrypt and Decrypt +* IMPORT +* EDIT_KEY +* SELECT_PUBLIC_KEYS +* SELECT_SECRET_KEY +* ENCRYPT +* ENCRYPT_FILE +* DECRYPT +* DECRYPT_FILE + +### With permission + +* CREATE_KEY +* ENCRYPT_AND_RETURN +* GENERATE_SIGNATURE +* DECRYPT_AND_RETURN + +## Content Provider + +* The whole content provider requires a permission (only read) +* Don't give out blobs +* Make an internal and external content provider (or pathes with <path-permission>) +* Look at android:grantUriPermissions especially for ApgServiceBlobProvider +* Only give out android:readPermission + +## Remote Service + +* The whole service requires a permission + +## Resulting permission + +* Read key information (not the actual keys)(content provider) +* Encrypt/Sign/Decrypt/Create keys (intents, remote service) without user interaction
\ No newline at end of file |