plausible deniability (#946)
* Added requestPadding property to all VerficationService requests * Added fake calls to the WebReqeustBuilder *initial draft to enable plausible deniability * Switched from SubmissionConstants to KeyType enum everywhere * basic playbook implementation with fake and real requests * Playbook - ensure request pattern for playbooks is always the same VerificationService - apply padding to ensure equal request size (header & body) SecurityHelper - extract hash256 to HashHelper. This simplifies tests that use only the hash function (and therefore don´t need to initialize SecurityHelper and its dependencies) * Implemented random chance of dummy playbook execution on app open Signed-off-by: Kolya Opahle <k.opahle@sap.com> * Playbook - ignore exceptions for fake requests SubmissionService - add padding header to fake request for same header size WebRequestBuilder - include fake keys in upload (
) * DiagnosisKeyService: removed (low value & difficult to test) SubmissionService & SubmitDiagnosisKeysTransaction - inline playbook & backgroundNoise property to prevent issues during testing DiagnosisKeyConstantsTest, SubmissionServiceTest, SubmitDiagnosisKeysTransactionTest & SubmissionViewModelTest - adjusted to changes * Dummy playbook will now be repeated and delayed randomly Signed-off-by: Kolya Opahle <k.opahle@sap.com> * Linting Signed-off-by:
Kolya Opahle <k.opahle@sap.com> * Initial Code for background noise worker Signed-off-by:
Kolya Opahle <k.opahle@sap.com> * First implementation of noise background worker Signed-off-by:
Kolya Opahle <k.opahle@sap.com> * Linting Signed-off-by:
Kolya Opahle <k.opahle@sap.com> * PlaybookImpl - ensure that fake requests are executed when real requests fail SubmissionService & VerificationService - adjust header name for padding WebRequestBuilder - add padding to dummy submission * BackgroundNoise is now trigger-only PlaybookImpl - include follow-up executions after every playbook - logging SubmissionViewModel.kt, SubmissionService.kt, SubmitDiagnosisKeysTransaction.kt, MainActivity.kt, BackgroundNoisePeriodicWorker.kt, DiagnosisTestResultRetrievalPeriodicWorker.kt - propagate context for coroutine VerificationService - ensure body size of 1000 * WebRequestBuilder.kt - adjust fake key generation PlaybookImplTest.kt - remove unused server.enqueue SubmissionService.kt 6 SubmitDiagnosisKeysTransaction.kt - remove commented out code * revert temporary changes to SubmissionResultPositiveOtherWarningFragment.kt * Background job scheduling implemented Signed-off-by:
Kolya Opahle <k.opahle@sap.com> * - adjust fake key size - remove temporary comment * Moved build work calls to own file to fix linting Signed-off-by:
Kolya Opahle <k.opahle@sap.com> * - initialize coroutine scope within the playbook, revert passing it from outside - remove experimental test dependency for coroutines * - use single endpoint per server for fake requests - reduce request size from 1000 to 250 for the verification server - include dummy registration token in fake request to fulfill verification on server side - prepare for randomized count of submitted keys - always include headers cwa-authorization & cwa-header-padding for submission server * - simplify empty header using constant Co-authored-by:
Kolya Opahle <k.opahle@sap.com>
Showing
- Corona-Warn-App/build.gradle 1 addition, 0 deletionsCorona-Warn-App/build.gradle
- Corona-Warn-App/src/main/java/de/rki/coronawarnapp/http/WebRequestBuilder.kt 76 additions, 13 deletions.../main/java/de/rki/coronawarnapp/http/WebRequestBuilder.kt
- Corona-Warn-App/src/main/java/de/rki/coronawarnapp/http/playbook/BackgroundNoise.kt 36 additions, 0 deletions...ava/de/rki/coronawarnapp/http/playbook/BackgroundNoise.kt
- Corona-Warn-App/src/main/java/de/rki/coronawarnapp/http/playbook/Playbook.kt 24 additions, 0 deletions.../main/java/de/rki/coronawarnapp/http/playbook/Playbook.kt
- Corona-Warn-App/src/main/java/de/rki/coronawarnapp/http/playbook/PlaybookImpl.kt 144 additions, 0 deletions...n/java/de/rki/coronawarnapp/http/playbook/PlaybookImpl.kt
- Corona-Warn-App/src/main/java/de/rki/coronawarnapp/http/requests/RegistrationRequest.kt 3 additions, 1 deletion...de/rki/coronawarnapp/http/requests/RegistrationRequest.kt
- Corona-Warn-App/src/main/java/de/rki/coronawarnapp/http/requests/RegistrationTokenRequest.kt 4 additions, 2 deletions...i/coronawarnapp/http/requests/RegistrationTokenRequest.kt
- Corona-Warn-App/src/main/java/de/rki/coronawarnapp/http/requests/TanRequestBody.kt 3 additions, 1 deletion...java/de/rki/coronawarnapp/http/requests/TanRequestBody.kt
- Corona-Warn-App/src/main/java/de/rki/coronawarnapp/http/service/SubmissionService.kt 2 additions, 1 deletion...va/de/rki/coronawarnapp/http/service/SubmissionService.kt
- Corona-Warn-App/src/main/java/de/rki/coronawarnapp/http/service/VerificationService.kt 3 additions, 0 deletions.../de/rki/coronawarnapp/http/service/VerificationService.kt
- Corona-Warn-App/src/main/java/de/rki/coronawarnapp/service/diagnosiskey/DiagnosisKeyConstants.kt 3 additions, 5 deletions...ronawarnapp/service/diagnosiskey/DiagnosisKeyConstants.kt
- Corona-Warn-App/src/main/java/de/rki/coronawarnapp/service/diagnosiskey/DiagnosisKeyService.kt 0 additions, 60 deletions...coronawarnapp/service/diagnosiskey/DiagnosisKeyService.kt
- Corona-Warn-App/src/main/java/de/rki/coronawarnapp/service/submission/SubmissionConstants.kt 34 additions, 3 deletions...i/coronawarnapp/service/submission/SubmissionConstants.kt
- Corona-Warn-App/src/main/java/de/rki/coronawarnapp/service/submission/SubmissionService.kt 10 additions, 13 deletions...rki/coronawarnapp/service/submission/SubmissionService.kt
- Corona-Warn-App/src/main/java/de/rki/coronawarnapp/transaction/SubmitDiagnosisKeysTransaction.kt 14 additions, 16 deletions...ronawarnapp/transaction/SubmitDiagnosisKeysTransaction.kt
- Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/MainActivity.kt 10 additions, 0 deletions...rc/main/java/de/rki/coronawarnapp/ui/main/MainActivity.kt
- Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/security/HashHelper.kt 10 additions, 0 deletions...ain/java/de/rki/coronawarnapp/util/security/HashHelper.kt
- Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/security/SecurityHelper.kt 0 additions, 7 deletions...java/de/rki/coronawarnapp/util/security/SecurityHelper.kt
- Corona-Warn-App/src/main/java/de/rki/coronawarnapp/worker/BackgroundConstants.kt 41 additions, 0 deletions...n/java/de/rki/coronawarnapp/worker/BackgroundConstants.kt
- Corona-Warn-App/src/main/java/de/rki/coronawarnapp/worker/BackgroundNoiseOneTimeWorker.kt 46 additions, 0 deletions.../rki/coronawarnapp/worker/BackgroundNoiseOneTimeWorker.kt
Please register or sign in to comment