Cryptographic controls are implemented for the protection of collected, stored, processed, and/or transmitted sensitive information when security requirements specify and/or mandate the use of such controls or when the use of such controls is a balanced approach to mitigating risks.
The primary datastore for Foundry is AWS DynamoDB. DynamoDB offers fully managed encryption at rest. DynamoDB encryption at rest provides enhanced security by encrypting all your data at rest using encryption keys stored in AWS Key Management Service (AWS KMS). This functionality helps reduce the operational burden and complexity involved in protecting sensitive data. With encryption at rest, you can build security-nosensitive applications that meet strict encryption compliance and regulatory requirements.
DynamoDB encryption at rest provides an additional layer of data protection by securing your data in the encrypted table, including its primary key, local and global secondary indexes, streams, global tables, backups, and DynamoDB Accelerator (DAX) clusters whenever the data is stored in durable media. Organizational policies, industry or government regulations, and compliance requirements often require the use of encryption at rest to increase the data security of your applications.
Because each clients encryption needs are different Thinglogix evaluates each clients needs as follows:
Data In-Transit Security & Connected Devices/Assets or Network Communication Security
All interactions with Foundry for data transportation to/from Foundry over public networks must utilize standard open encryption method HTTPS communications. All interactions with external devices/assets must utilize standard MQTT over TLS encryption with X.509 certificates as an option for device authentication. Alternative methods of communication with customer devices/assets must be approved by the customer and must include some level of encryption of all data in transit.
Data At-Rest Security
Foundry default is to not utilize encryption at the database level unless required by the Customer to store specific sensitive or private information. The only exceptions to this include the following:
If a Customer requires encryption of private or sensitive data in storage, the following are the approved encryption alternatives the customer can choose from:
Foundry API Security
All Foundry API's developed should utilize the AWS API Gateway service and utilize the AWS Cognito and IAM services for user/role access control. Foundry API's should only be accessible via SSL encryption enabled connections (e.g. HTTPS). The AWS API Gateway must be configured utilizing an access key and secret access key for programmatic calls to the Foundry AWS API services, or for CLI or SDK access.
Application Audit Logging
For any code that generates application logs, no username/passwords combinations should be included in any logs.
API Logging via AWS CloudTrail
For customers that want to record Foundry API calls they may turn on AWS CloudTrail in the AWS account where Foundry is installed. The customer should store these log files in AWS S3 bucket that is encrypted using an approved AWS S3 encryption method (see https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html ). Additionally, customers should restrict access to these log files by establishing appropriate IAM roles which are granted to only authorized users who should view the logs.
Personally Identifiable Information (PII) Encryption
Foundry itself is a platform, so customers have to choose to collect PII information. If they choose to do so, we recommend encrypting that data in storage using the methods indicated as approved for AWS services elsewhere in this wiki.
If customers are concerned about the potential for storing PII information, then the Customer should enable and turn on the AWS Macie service to scan any logs from Foundry stored in S3 buckets, such as API logs, which should be encrypted as specified elsewhere in this wiki. More information can be found at: https://docs.aws.amazon.com/macie/latest/userguide/macie-setting-up.html
Foundry User Passwords
Foundry User Accounts, which are setup and managed by our Customers in their AWS Foundry account, should have passwords stored in RDS using MD5 hash.
Keys must be created using cryptographically strong algorithms per Amazon Web Services.
Keys must be encrypted when transmitted over communication lines. The exchange of keys must employ encryption using an algorithm that is at least as strong as the one that is used to encrypt the data protected by the keys, and access must be strictly limited to those who have a need-to-know.
Keys and their associated software products must be securely maintained for the life of the archived data that was encrypted with that product. Keys must conform to the maximum standards available in AWS. Keys should be stored in AWS Key Management Service.
AWS Key Management service is recommended for this purpose because it is reliable and secure. The Key Recovery process is as follows:
More information on Cryptographic Controls can be found at: