-
-
Notifications
You must be signed in to change notification settings - Fork 8
Security policy
mathcoll edited this page Oct 30, 2021
·
19 revisions
- JWT and signed token (Token lifetime can be setup in configuration file, but suggested to be short);
- POSTing your Datapoints timeseries allows signed payloads (with a shared secret) to check and verify sender;
- POSTing your Datapoints timeseries allows encrypted payloads (aes-256-cbc only yet; with a shared secret, no public key yet);
- POSTing your Datapoints timeseries allows both signed + encrypted payloads;
- Optionally, signature and/or encryption can be required from a Flow;
- Using aes-256-cbc Preprocessor will allows to store encrypted data in timeseries; but prevent you from Exploratory Data Analysis as t6 wouldn't be able to read your data :-)
- Rule based events can send data to Mqtt using encryption;
- User passwords are bcrypt-hashed in database; at least not in clear;
- User passwords recovery process is secured, but still can be improved when the User set it's own password and Post data;
- t6 is using multiple private certificates to run DKIM on email sending, Firebase FCM certificate;
- Authentification process is not allowing wrong password and is sending an email message to registered users when
4
invalid credentials are used within a1 hour
window. - Please note that during authentication process, the user IP address (v4 and/or v6) can be logged on the user account for sattistic purpose.
- Authentication in t6 is available in 3 modes:
- a matching username+passwords for credentials;
- a valid Key+Secret temporary and revokable token;
- or a refresh token process.
All of these modes generates a signed JWT from the server and can be used fo a limited time.
Sessions on t6 is using JWT short life Bearer tokens. Session last 5 minutes before token expires itself. Additionally, during authentication process a refreshToken is provided by t6 (this token last 24hours) giving the ability to refresh the token.
t6 on Saas is hosting data in Europe. And 2 alternatives are available to bypass this behaviour :
- POSTing your Datapoints using
save: false
in the payload AND customizing the InfluxData Cloud Storage so that you can have a different data location external to t6 - Installing your own t6 wherever you wants using this Github repository
t6 tend to follow Common Weakness Enumeration list. Here are the specific declarative list of mitigation efforts completed on t6:
- The HTTP header "x-powered-by" is disabled in the responses
- CWE-223 CWE-778 All authentication activities (successful or not) are being logged, at any level of debugging
- CWE-223 CWE-778 All administrative activities (successful or not) are being logged, at any level of debugging
- CWE-272 CWE-284 All new requests (not login users) have the least privilege possible.
- CWE-312 CWE-319 The passwords, keys or certificates are not stored in clear files.
- CWE-521 The users are forced to enter a strong password. :warn: partially completed, only frontend.
- CWE-523 CWE-311 WE-319 All routes which transmit sensitive info use SSL.
- CWE-778 All critical errors being logged, at any level of debugging.
- CWE-778 Different levels of debugging are supported.
t6 Technical Api Documentation. Please refers to CONTRIBUTING.md in case you would like to help :-)
- Installing t6
- Internal errors
- Repository structure
- Six main Resources
- Other Resources
- Datapoints
- Users
- UIs 💥 not detailed
- Mqtt Topic 💥 not detailed
- Referentials
- Technical Api Documentation 🔗
- TWA Application Screenshots
- t6 Security policy
- Advanced t6 concepts