This is not intended to be a comprehensive or legal HIPAA guide. Please refer to your HIPAA compliance or security officer prior to deploying and using Philter in a PHI environment.
The steps below outline how to configure a Philter 4.0 deployment for encryption of data at rest and in motion.
Encryption of data at rest
Philter encrypts the sensitive data it stores, such as policies, custom lists, the redaction ledger, and documents waiting to be redacted, with the PHILTER_ENCRYPTION_KEY the virtual machine generates on its first boot. Back that key up, and keep it with any backup of Philter’s data: the data cannot be read without it. See Philter’s encryption settings and what is encrypted at rest.
Encrypt the virtual machine’s disk as well.
Amazon Web Services
Turn on EBS encryption by default in the region before launching Philter, so its volume is encrypted from the start. For an instance that is already running:
- Stop the Philter EC2 instance.
- Make an AMI of the instance.
- Make an encrypted copy of the Philter AMI.
EC2 instances launched from the encrypted AMI use an encrypted EBS volume, and their snapshots are encrypted. Refer to the AWS documentation Creating an Amazon EBS-Backed Linux AMI for assistance.
Microsoft Azure and Google Cloud
Azure managed disks and Google Cloud persistent disks are encrypted at rest by default. To control the keys yourself, use customer-managed keys: Azure Disk Storage server-side encryption or Google Cloud customer-managed encryption keys.
Encryption of data in motion
Philter serves its API over HTTPS on port 8080. Launched from the AWS, Azure, or Google Cloud marketplace, it starts with a self-signed certificate. Replace it with a certificate from a trusted certificate authority, as described in using a signed SSL certificate with Philter. Then verify the connection from a client, without skipping certificate verification:
curl https://philter.yourdomain.com:8080/api/health
To terminate TLS in front of Philter instead, see using an Apache reverse proxy with Philter. Keep any unencrypted hop on the same host or on a private network.