Leave a comment at the end of this page or email contact@krishagni.com
Security considerations
Overview
OpenSpecimen is a Java Spring and REST API-based application. It is designed to handle highly sensitive data such as patient identifiers, demographics, clinical information, images, test results, etc. This document explains the security considerations used in OpenSpecimen to achieve this.
Latest technology stack
OpenSpecimen is built using the latest versions of all the technology platforms used internally. This includes Tomcat, Apache, Oracle, MySQL, Java, etc.
HTTPS/SSL
OpenSpecimen uses TLS2/3 SSL-enabled webserver to encrypt data over the network.
Authentication
OpenSpecimen has an in-built user management module. Customers can integrate OpenSpecimen with their institution's identity provider (e.g., Active Directory) via SAML or LDAP for tighter security. This will also avoid users having to remember multiple user names and passwords.
Password protection
Note: This does not apply if user accounts are integrated with the Customer's Identity Providers (IdP).
Where N is configured as per the Customer's needs.
- Password should be of length N characters (default 8)
- Password complexity defined via RegEx as per customer needs (default: one capital, one number)
- Cannot be the same as the last N passwords
- Password expiry every N days
- Passwords are never emailed in free text
- Passwords are stored in a one-way encrypted format
Account Protection
Where N is configured as per the Customer's needs.
- Accounts are locked after N failed attempts
- Accounts are locked after N days of inactivity
PHI Handling
PHI data is displayed only to users who have specific privileges.
Audit
Login Audit
Every login and logout session is recorded, including failed login attempts.
Data Audit
Every action resulting in changed data is audited (i.e., create, edit, delete). The audit information contains:
- Timestamp
- User id
- IP address
- Record id
- In the case of edit: old value and new value
Audit reports can be generated via UI.
Reporting Audit
Every time a user runs a report, a log is maintained, which includes information like:
- User ID
- Timestamp
- Report ID
- Internal SQL generated
Leave a comment at the end of this page or email contact@krishagni.com