Encryption in DataMiner
Note
DataMiner does not support having the Use FIPS compliant cryptographic algorithms Windows setting enabled. Having this option enabled will prevent DataMiner from starting up properly.
Passwords
In the context of a DataMiner System, we can distinguish between two types of passwords:
- User passwords
- Device passwords
User passwords
Passwords for external users in the DataMiner System are always managed by the User Directory (Active Directory, OpenLDAP, etc.). To verify password security requirements, we recommend that users consult their respective User Directory documentation.
For local DataMiner users, Windows will store the (hashed) password. The complexity and renewal policies in Windows apply to local DataMiner users.
The only exception to this is dataminer.services users (see Types of users). These users are fully managed by DataMiner. The passwords for these users are randomly generated (17 characters) and encrypted using the Blowfish algorithm (ECB mode, 308-bit key) before being stored.
Device passwords (tokens)
All password encryption in DataMiner is done through the Blowfish algorithm (ECB mode). A 308-bit key is used for the encryption.
DataMiner encrypts the following secrets using this technique:
- Password parameters
- Credential libraries
- Database passwords
- Element passwords
- Replication passwords
In-Transit Encryption
Here we can distinguish several communication flows:
- DataMiner Cube
- DataMiner Web Apps & API
- Inter-DataMiner
- Data acquisition
- Cassandra
- Elasticsearch
- NATS
DataMiner Cube
DataMiner Cube will communicate with the DataMiner back end over .NET Remoting by default. This is encrypted using the Rijndael (256-bit key, CBC mode) algorithm. The encryption key is negotiated over a 2048-bit RSA-secured communication channel. It is also possible to configure DataMiner so gRPC is used instead of .NET Remoting.
DataMiner Web Apps & API
By default, the DataMiner Web Apps (Reports, Dashboards, Monitoring, etc.) are served over HTTP, which is unencrypted. We recommend that you enable HTTPS and disabling HTTP to ensure all traffic is encrypted.
Inter-DataMiner
When a DataMiner System consists of multiple DataMiner nodes, inter-node communication flows through a .NET Remoting channel by default. This is encrypted using the Rijndael algorithm (256-bit key, CBC mode). The encryption key is negotiated over a 2048-bit RSA-secured communication channel. It is also possible to configure DataMiner to use gRPC instead of .Net Remoting.
Data acquisition
Depending on the type of device, DataMiner supports different communication protocols:
Protocol | Description |
---|---|
SSH | DataMiner supports a broad list of SSH cipher, host key algorithms and key exchange algorithms. For more information, see SSH support in DataMiner. |
SNMP | We recommend interfacing with SNMP devices by using SNMPv3, which provides authentication and privacy. |
HTTP(S) | We recommend interfacing with devices or APIs over HTTPS, which uses TLS encryption. |
TCP/IP | DataMiner can poll devices over a TLS-encrypted TCP/IP channel. See Enabling TLS encryption. |
Storage as a Service
For DataMiner Systems configured to use STaaS, all communication between DataMiner and the database is TLS-encrypted by default, since it makes use of the the connection towards dataminer.services.
Cassandra
For DataMiner Systems configured to use a Cassandra database, it is possible to enable TLS encryption between DataMiner and the Cassandra cluster. Please refer to the official Cassandra documentation on enabling TLS encryption.
We recommend changing the default Cassandra credentials.
Note
For more information, see Securing the Cassandra general database.
OpenSearch
For DataMiner Systems configured to use an OpenSearch database, we recommend enabling HTTPS. Please refer to the official OpenSearch documentation on enabling TLS encryption.
Note
For more information, see Securing the OpenSearch database.
Elasticsearch
For DataMiner Systems configured to use an Elasticsearch database, we recommend enabling HTTPS. Please refer to the official Elasticsearch documentation on enabling TLS encryption.
Note
For more information, see Securing the Elasticsearch database.
NATS
From version 10.1.0/10.1.1 onwards, DataMiner relies on NATS for some inter-process communication. By default, this NATS traffic is not yet encrypted.
Please refer to Securing NATS to learn how to set up TLS for NATS.
Encryption at rest
DataMiner only encrypts passwords at rest, all other data is not encrypted by default. This behavior is not configurable in DataMiner.
Note
To encrypt all data on disk, you can enable Windows BitLocker.
Storage as a Service
DataMiner Storage as a Service (STaaS) makes use of existing secure storage solutions of Microsoft Azure, which means that all data is encrypted at rest.
Cassandra
If you are using Cassandra enterprise edition, we recommend enabling the transparent_encryption_options, effectively encrypting all your database data at rest. This option is not available in Apache Cassandra, so we recommend enabling disk encryption on the operating system level for this.
OpenSearch
OpenSearch does not have the option to encrypt data at rest. For this reason, we recommend enabling disk encryption on the operating system level.
ElasticSearch
ElasticSearch does not have the option to encrypt data at rest. For this reason, we recommend enabling disk encryption on the operating system level.