root/doc/security.txt

Revision 0:4a4bfb6ee2fc, 2.0 kB (checked in by Kevin Lai <klai@…>, 3 years ago)

tag of klai@…/tycoon--mainline--0.1--patch-78
(automatically generated log message)

Line 
1
2Keys:
3
4    Users:
5        1 bank account key: certificate is signed by bank
6        h host account key: certificate is signed by host
7
8    Bank:
9        bank key: certificate signed by CA
10
11    Hosts:
12        host key: certificate signed by owner
13
14    SLS:
15        No key
16
17Operations:
18    Bank:
19        all use bank account key
20
21    Host:
22        create_account uses bank account key
23        others use host account key
24        login uses reformed ssl key
25
26    SLS:
27        clients are not authenticated
28        data put in SLS is signed by host
29
30SLS:
31        register()
32                data is signed with host key
33                can only register source address
34
35        unregister()
36                authenticate with host key
37
38Bank:
39        all operations use bank account key
40
41Host:
42        create_account()
43               
44
45Typical sequence:
46
471) host - register -> SLS
48
492) host - unregister -> SLS
50
513) client - query -> SLS
52
534) SLS - query reply -> client
54
555) client - transfer -> bank
56
576) bank - transfer reply -> client
58
597) client - create account -> host
60
618) host - create account reply -> client
62
638)
64
65Attacks:
661) MIM on 1), substitute self as owner, different host key
67   difficult for attacker to claim IP address
68   mitigated if user caches host keys
69   user should consider (owner, IP) tuple for reputation
70
712) 1) with own machine, but substitute other user as owner
72
733) Spoof 2), Dos
74   difficult for attacker to claim IP address
75   prevented because 2) requires host authentication
76
773) MIM on 3), substitute false information
78   
79
80------------------------------------------------------------------------------
81
82Simplified xml-rpc security:
83
84Attacks:
851) modification
862) spoofing
873) replay
88
89Note, we do not require encryption.
90
91Assumptions:
92C knows K_c, {K_c}^-1, K_s, and N_c
93S knows K_s, {K_s}^-1, K_c, and P_c < N_c
94
951) C->S: C, S, N_c, M, MAC_{{K_c}^-1}(C, S, M, N_c)
962) C<-S: C, S, N_c, R, MAC_{{K_s}^-1}(C, S, R, N_c)
97
98Notes:
99a) when C sends 1), it increments N_c
100
101b) when S receives 1), it checks that N_c > P_c. If so, it sets P_c =
102N_c, otherwise, it drops the message.
103
104c) when C receives 2), it checks that N_c == old N_c
105
Note: See TracBrowser for help on using the browser.