aboutsummaryrefslogtreecommitdiff
path: root/doc/sphinx/introduction.rst
diff options
context:
space:
mode:
Diffstat (limited to 'doc/sphinx/introduction.rst')
-rw-r--r--doc/sphinx/introduction.rst77
1 files changed, 77 insertions, 0 deletions
diff --git a/doc/sphinx/introduction.rst b/doc/sphinx/introduction.rst
new file mode 100644
index 0000000..bfff83a
--- /dev/null
+++ b/doc/sphinx/introduction.rst
@@ -0,0 +1,77 @@
1..
2 This file is part of Anastasis
3 Copyright (C) 2019-2021 Anastasis SARL
4
5 Anastasis is free software; you can redistribute it and/or modify it under the
6 terms of the GNU Affero General Public License as published by the Free Software
7 Foundation; either version 2.1, or (at your option) any later version.
8
9 Anastasis is distributed in the hope that it will be useful, but WITHOUT ANY
10 WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
11 A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
12
13 You should have received a copy of the GNU Affero General Public License along with
14 Anastasis; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
15
16 @author Christian Grothoff
17 @author Dominik Meister
18 @author Dennis Neufeld
19
20============
21Introduction
22============
23
24To understand how Anastasis works, you need to understand three key
25concepts: user identifiers, our adversary model and the role of the
26recovery document.
27
28
29User Identifiers
30----------------
31
32To uniquely identify users, an "unforgettable" **identifier** is used. This
33identifier should be difficult to guess for anybody but the user. However, the
34**identifier** is not expected to have sufficient entropy or secrecy to be
35cryptographically secure. Examples for such identifier would be a
36concatenation of the full name of the user and their social security or
37passport number(s). For Swiss citizens, the AHV number could also be used.
38
39
40Adversary models
41----------------
42
43The adversary model of Anastasis has two types of adversaries: weak
44adversaries which do not know the user's **identifier**, and strong
45adversaries which somehow do know a user's **identifier**. For weak
46adversaries the system guarantees full confidentiality. For strong
47adversaries, breaking confidentiality additionally requires that Anastasis
48escrow providers must have colluded. The user is able to specify a set of
49**policies** which determine which Anastasis escrow providers would need to
50collude to break confidentiality. These policies also set the bar for the user
51to recover their core secret.
52
53
54The recovery document
55---------------------
56
57A **recovery document** includes all of the information a user needs to
58recover access to their core secret. It specifies a set of **escrow
59methods**, which specify how the user should convince the Anastasis server
60that they are "real". Escrow methods can for example include SMS-based
61verification, video identification or a security question. For each escrow
62method, the Anastasis server is provided with **truth**, that is data the
63Anastasis operator may learn during the recovery process to authenticate the
64user. Examples for truth would be a phone number (for SMS), a picture of the
65user (for video identification), or the (hash of) a security answer. A strong
66adversary is assumed to be able to learn the truth, while weak adversaries
67must not. In addition to a set of escrow methods and associated Anastasis
68server operators, the **recovery document** also specifies **policies**, which
69describe the combination(s) of the escrow methods that suffice to obtain
70access to the core secret. For example, a **policy** could say that the
71escrow methods (A and B) suffice, and a second policy may permit (A and C). A
72different user may choose to use the policy that (A and B and C) are all
73required. Anastasis imposes no limit on the number of policies in a
74**recovery document**, or the set of providers or escrow methods involved in
75guarding a user's secret. Weak adversaries must not be able to deduce
76information about a user's **recovery document** (except for its length, which
77may be exposed to an adversary which monitors the user's network traffic).