Don't try to erase secrets from memory.
1. The things we're really trying to protect - contact identities, message contents, etc - can't be erased from memory because they're encapsulated inside objects we don't control. 2. Long-term secrets can't be protected by erasing them from memory because they're stored in the database and the database key has to be held in memory whenever the app's running. 3. If the runtime uses a compacting garbage collector then we have no way to ensure an object is erased from memory. 4. Trying to erase secrets from memory makes the code more complex. Conclusion: Let's not try to protect secrets from an attacker who can read arbitrary memory locations.
Showing
- briar-android/src/org/briarproject/android/PasswordActivity.java 1 addition, 4 deletions...ndroid/src/org/briarproject/android/PasswordActivity.java
- briar-android/src/org/briarproject/android/SetupActivity.java 8 additions, 27 deletions...r-android/src/org/briarproject/android/SetupActivity.java
- briar-api/src/org/briarproject/api/crypto/CryptoComponent.java 2 additions, 2 deletions...-api/src/org/briarproject/api/crypto/CryptoComponent.java
- briar-api/src/org/briarproject/api/crypto/KeyManager.java 1 addition, 4 deletionsbriar-api/src/org/briarproject/api/crypto/KeyManager.java
- briar-api/src/org/briarproject/api/crypto/PasswordStrengthEstimator.java 1 addition, 1 deletion...rg/briarproject/api/crypto/PasswordStrengthEstimator.java
- briar-api/src/org/briarproject/api/crypto/SecretKey.java 8 additions, 14 deletionsbriar-api/src/org/briarproject/api/crypto/SecretKey.java
- briar-core/src/org/briarproject/crypto/AuthenticatedCipherImpl.java 1 addition, 1 deletion.../src/org/briarproject/crypto/AuthenticatedCipherImpl.java
- briar-core/src/org/briarproject/crypto/CryptoComponentImpl.java 12 additions, 45 deletions...core/src/org/briarproject/crypto/CryptoComponentImpl.java
- briar-core/src/org/briarproject/crypto/PasswordStrengthEstimatorImpl.java 3 additions, 2 deletions...rg/briarproject/crypto/PasswordStrengthEstimatorImpl.java
- briar-core/src/org/briarproject/crypto/SecretKeyImpl.java 0 additions, 30 deletionsbriar-core/src/org/briarproject/crypto/SecretKeyImpl.java
- briar-core/src/org/briarproject/crypto/StreamDecrypterImpl.java 5 additions, 10 deletions...core/src/org/briarproject/crypto/StreamDecrypterImpl.java
- briar-core/src/org/briarproject/crypto/StreamEncrypterFactoryImpl.java 0 additions, 1 deletion...c/org/briarproject/crypto/StreamEncrypterFactoryImpl.java
- briar-core/src/org/briarproject/crypto/StreamEncrypterImpl.java 3 additions, 18 deletions...core/src/org/briarproject/crypto/StreamEncrypterImpl.java
- briar-core/src/org/briarproject/db/H2Database.java 5 additions, 21 deletionsbriar-core/src/org/briarproject/db/H2Database.java
- briar-core/src/org/briarproject/plugins/ConnectionManagerImpl.java 14 additions, 27 deletions...e/src/org/briarproject/plugins/ConnectionManagerImpl.java
- briar-core/src/org/briarproject/transport/KeyManagerImpl.java 27 additions, 63 deletions...r-core/src/org/briarproject/transport/KeyManagerImpl.java
- briar-core/src/org/briarproject/transport/TransportTagRecogniser.java 1 addition, 6 deletions...rc/org/briarproject/transport/TransportTagRecogniser.java
- briar-core/src/org/briarproject/util/ByteUtils.java 0 additions, 4 deletionsbriar-core/src/org/briarproject/util/ByteUtils.java
- briar-tests/build.xml 1 addition, 2 deletionsbriar-tests/build.xml
- briar-tests/src/org/briarproject/ProtocolIntegrationTest.java 4 additions, 4 deletions...r-tests/src/org/briarproject/ProtocolIntegrationTest.java
Loading
Please register or sign in to comment