1. Home
  2. Documentation
  3. Security and privacy
  4. Known gaps and what is unverified

Security and privacy

Known gaps and what is unverified

The open security and privacy gaps, stated plainly, and the parts of Joripo that have been built and tested but not yet proven in production.

Joripo documentation · https://joripo.com/docs/security-and-privacy/known-gaps

On this page

Joripo's rule is to say what is true. This page lists what is known to be weak or not yet proven, so you can decide with it in front of you. Read it before fielding a study on real respondents.

Open gaps

GapWhat it meansWhat to do
Encryption at rest is off until the server's data key is setOn a server without the key, collected data is stored unencrypted on its disk.Ask whoever runs the server; check Server health.
Form media are not sealedPreload CSV files and other form attachments are readable on the server's disk, because every phone receives them.Keep preloads to the columns a form needs.
Phones protect unsent interviews with Android's encryption, not the app's own keyA rooted phone could expose interviews not yet sent.Send promptly; manage phones; revoke lost ones.
Joripo Desktop's study folders are ordinary filesAnyone with the computer can read the copy.Use an encrypted disk and a computer only you use.
Garbling: a late respondent added to a running schemeThe way late respondents extend a roster's key can, for a lone newcomer in a block, weaken deniability. How to change it is a statistical design decision still open.Avoid adding a single late respondent to a block on their own.
No email for password resets or notificationsReset requests go to the organisation's owners, who pass a new password on directly.Agree how passwords are passed on.

Built and tested, not yet proven in production

  • The newest database paths (the sealed answers column, the database-held lockout counts, savepoints, the review index) are verified on the test database (SQLite). Production runs Postgres, and those paths have not all been run on it yet.
  • Joripo Collect releases after 2.0.0 have been run on the Android emulator only, not yet on a physical phone.
  • Field monitoring's SurveyCTO and Google Sheets connections are tested against copies of those services' protocols, not against live accounts.
  • Backups and Review and correct were built and tested on the test database; their first run on a production server is still to be watched.
  • Restoring a backup on a hosted server (rather than on a machine you control) has not been exercised.

Gaps since fixed

Some past gaps, for the record:

  • Database upgrades are now named, recorded steps; a failed one stops the server from starting rather than leaving it serving a half-upgraded database.
  • The case list's lock now holds across server processes, so two processes can never write it at once.
  • Joripo Collect from release 2.0 removes a garbled form's answers from the phone once the server has them.

Reporting a problem

Tell your server's administrator. For Joripo itself, report it privately to the Joripo team through the contact page, not in a public place, and do not include exploit details in public.