Skip to content

Commit 847005a

Browse files
author
Corentin Mors
authored
Add doc for UP, reports interface and security model (#233)
Add documentation about user presence, reports interface and our security model.
1 parent b4e5c9f commit 847005a

File tree

4 files changed

+64
-5
lines changed

4 files changed

+64
-5
lines changed

documentation/pages/_meta.json

+1
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
"type": "separator"
3636
},
3737
"troubleshooting": "Troubleshooting",
38+
"security": "Security",
3839
"help_center": {
3940
"title": "Dashlane Help Center ↗",
4041
"href": "https://support.dashlane.com/",

documentation/pages/business/reports.mdx

+20-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,11 @@ import { Callout } from 'nextra/components';
44

55
<Callout emoji="💡">Needs team credentials to use this command.</Callout>
66

7-
You can get reports on your team about the number of seats provisioned, used and pending. You can also get reports on the aggregated password health history of your team.
7+
You can get reports on your team containing:
8+
9+
- number of seats provisioned, used and pending
10+
- current password health score
11+
- aggregated password health score history
812

913
## Fetch reports
1014

@@ -14,6 +18,21 @@ The following commands take in input the number of days to look back for the pas
1418
dcli t report 30
1519
```
1620

21+
Here is the structure of the report:
22+
23+
| Output Interface | Description | Type |
24+
| ------------------------------ | --------------------------------------------------------------- | -------- |
25+
| `seats.provisioned` | The total number of seats that are paid | `number` |
26+
| `seats.used` | The number of used seats (active, pending) | `number` |
27+
| `seats.pending` | The number of pending invitations | `number` |
28+
| `passwordHealthHistory` | Array containing objects with date and securityIndex properties | `array` |
29+
| `passwordHealth.securityIndex` | The aggregated security index of the team | `number` |
30+
| `passwordHealth.passwords` | The total number of passwords in this team | `number` |
31+
| `passwordHealth.safe` | The total number of safe passwords in this team | `number` |
32+
| `passwordHealth.weak` | The total number of weak passwords in this team | `number` |
33+
| `passwordHealth.reused` | The total number of reused passwords in this team | `number` |
34+
| `passwordHealth.compromised` | The total number of compromised passwords in this team | `number` |
35+
1736
## Generate graphics from reports
1837

1938
One way to consume password health history reports is to generate graphics from them.

documentation/pages/personal/authentication.mdx

+27-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { Callout } from 'nextra/components';
22

3-
# Authentication
3+
# Authentication (Login)
44

55
To start with launch a first manual sync:
66

@@ -39,11 +39,37 @@ The CLI will open a new **incognito** tab to authenticate you to your SSO provid
3939

4040
By completing the device registration process, you'll be now asked to enter your Master Password.
4141

42+
## Lock the CLI
43+
44+
You can lock the CLI at any time by running:
45+
46+
```sh copy
47+
dcli lock
48+
```
49+
50+
This will require you to enter your Master Password again to unlock the CLI.
51+
4252
## Options
4353

54+
### Save Master Password
55+
4456
By default your Master Password will be saved locally in the OS keychain so you don't have to enter it every time.
4557
You can disable this behavior with the following command:
4658

4759
```sh copy
4860
dcli configure save-master-password false
4961
```
62+
63+
### Unlock with Biometrics
64+
65+
You can unlock the CLI with your biometrics (Touch ID, Face ID) if your machine supports it (only macOS for now).
66+
67+
```sh copy
68+
dcli configure user-presence --method biometric
69+
```
70+
71+
And to disable it:
72+
73+
```sh copy
74+
dcli configure user-presence --method none
75+
```

src/modules/crypto/README.md documentation/pages/security.mdx

+16-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,13 @@
1-
# How private data is stored
1+
# Security
22

3-
## Goals
3+
Here are some details about how the security is managed in the application. To read more about our security model, please
4+
refer to the [security whitepaper](https://www.dashlane.com/download/whitepaper-en.pdf).
45

6+
## How private data is stored by CLI
7+
8+
### Goals
9+
10+
- Data is stored encrypted on disk.
511
- Store the master password, so it is possible to decrypt the transactions whatever derivation method is used.
612
- Store the device secret key, so it is possible to synchronize the transactions.
713
- Don't store the above secrets unencrypted, so if the computer/disk is stolen it is impossible to retrieve them.
@@ -10,7 +16,7 @@
1016
- The two above cases are the same because, if the master password is required to get access to the local key, it is
1117
useless to store the master password encrypted by the local key.
1218

13-
## Solution used
19+
### Solution used
1420

1521
- The OS password management system (Keychain for macOS, Credential Vault for Windows and libsecret for Linux) is used
1622
to store the randomly generated _local key_. It is then the responsibility of the OS keychain to encrypt
@@ -23,3 +29,10 @@
2329
- To encrypt the local key using the master password a derivate has to be generated. However, at this point no
2430
derivation settings are known, so it is hard-coded via a fake transaction generated by
2531
`getDerivationParametersForLocalKey` in [keychainManager.ts](keychainManager.ts).
32+
33+
### Other considerations
34+
35+
- You can disable the use of the OS keychain by using the command `dcli configure save-master-password false`. In this case,
36+
you will be asked for the master password every time you start the application.
37+
- You can enable biometrics unlock by using the command `dcli configure user-presence --method biometric`. In this case, you will be
38+
asked for a user presence check (e.g. fingerprint) every time you start the application before the OS password management system is requested.

0 commit comments

Comments
 (0)