-
-
Notifications
You must be signed in to change notification settings - Fork 3
/
IDEAS
53 lines (27 loc) · 1.57 KB
/
IDEAS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
IDEAS
------------
There should be a system that provides magic values.
------------
There should be a system that performs key rotation.
There should be key rotation such that the connect tokens and session tokens can be generated by a rotating key pair, such that if a keypair is leaked, it can easily be rotated out to a new one.
Key rotation should be continuous such that there are no secrets that would destroy security if leaked.
If a key is leaked, ok, that's not great, but it's rotated out.
-------------
The job of the gateway is to:
a) scrub packets that don't belong to our protocol
b) scrub old packets that can't possibly be valid (eg. packets older than n sequence from current)
c) verify signature and decrypt packets before passing on to the server
d) maintain challenge/response protocols with the client
e) handle migrations of clients from one IP:port to another
f) handle migrations of clients from one gateway instance to another (via hashing or whatever)
g) disallow more bandwidth to be sent to a server than is allowed per-session
*** DONE ***
-------------
The job of the server is to:
a) maintain reliability via ack/ack_bits
b) enable migration of a client from one server instance to another
c) limit the amount of bandwidth sent down to each individual client
*** DONE TO HERE ***
d) queue up messages delivered from the client to some internal message processing system
e) dequeue messages sent to the client and include them in payload packets sent down to the client at some regular send rate.
-------------