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/src/main/java/de/rki/coronawarnapp/worker/BackgroundNoisePeriodicWorker.kt 64 additions, 0 deletions...rki/coronawarnapp/worker/BackgroundNoisePeriodicWorker.kt
- Corona-Warn-App/src/main/java/de/rki/coronawarnapp/worker/BackgroundWorkBuilder.kt 137 additions, 0 deletions...java/de/rki/coronawarnapp/worker/BackgroundWorkBuilder.kt
- Corona-Warn-App/src/main/java/de/rki/coronawarnapp/worker/BackgroundWorkHelper.kt 17 additions, 0 deletions.../java/de/rki/coronawarnapp/worker/BackgroundWorkHelper.kt
- Corona-Warn-App/src/main/java/de/rki/coronawarnapp/worker/BackgroundWorkScheduler.kt 51 additions, 77 deletions...va/de/rki/coronawarnapp/worker/BackgroundWorkScheduler.kt
- Corona-Warn-App/src/test/java/de/rki/coronawarnapp/http/playbook/PlaybookImplTest.kt 166 additions, 0 deletions...va/de/rki/coronawarnapp/http/playbook/PlaybookImplTest.kt
- Corona-Warn-App/src/test/java/de/rki/coronawarnapp/http/service/SubmissionServiceTest.kt 44 additions, 0 deletions...e/rki/coronawarnapp/http/service/SubmissionServiceTest.kt
- Corona-Warn-App/src/test/java/de/rki/coronawarnapp/http/service/VerificationServiceTest.kt 61 additions, 0 deletions...rki/coronawarnapp/http/service/VerificationServiceTest.kt
- Corona-Warn-App/src/test/java/de/rki/coronawarnapp/service/diagnosiskey/DiagnosisKeyConstantsTest.kt 7 additions, 7 deletions...warnapp/service/diagnosiskey/DiagnosisKeyConstantsTest.kt
- Corona-Warn-App/src/test/java/de/rki/coronawarnapp/service/submission/SubmissionConstantsTest.kt 10 additions, 2 deletions...ronawarnapp/service/submission/SubmissionConstantsTest.kt
- Corona-Warn-App/src/test/java/de/rki/coronawarnapp/service/submission/SubmissionServiceTest.kt 24 additions, 9 deletions...coronawarnapp/service/submission/SubmissionServiceTest.kt
- Corona-Warn-App/src/test/java/de/rki/coronawarnapp/transaction/SubmitDiagnosisKeysTransactionTest.kt 29 additions, 9 deletions...warnapp/transaction/SubmitDiagnosisKeysTransactionTest.kt
- Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/viewmodel/SubmissionViewModelTest.kt 18 additions, 0 deletions...rki/coronawarnapp/ui/viewmodel/SubmissionViewModelTest.kt
- Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/MockWebServerUtil.kt 50 additions, 0 deletions.../test/java/de/rki/coronawarnapp/util/MockWebServerUtil.kt
- Server-Protocol-Buffer/src/main/proto/keyExportFormat.proto 1 addition, 0 deletionsServer-Protocol-Buffer/src/main/proto/keyExportFormat.proto
Please register or sign in to comment