Commit | Line | Data |
---|---|---|
3fba9787 IJ |
1 | Server maintains a queue of outbound packets for each user |
2 | ||
ca732796 | 3 | Packets which are older than the applicable max_queue_time are discarded |
3fba9787 | 4 | |
ca732796 | 5 | Each incoming request to the server takes up to max_batch_down bytes |
3fba9787 IJ |
6 | from the queue and returns them as the POST response body payload |
7 | ||
ca732796 | 8 | Each incoming request contains up to max_batch_up bytes of payload. |
3fba9787 IJ |
9 | It's a multipart/form-data. |
10 | ||
ef041033 IJ |
11 | Authentication: clock-based lifetime-limited bearer tokens. |
12 | ||
13 | Encryption and integrity checking: none. Use a real VPN over this! | |
3fba9787 | 14 | |
0c8302b2 IJ |
15 | Routing assistance: none in hippotat; can be requested on client |
16 | from userv-ipif via `vroutes' parameter. Use with secnet polypath | |
17 | ideally uses the special support in secnet 0.4.x. | |
3fba9787 | 18 | |
ca732796 IJ |
19 | Client form parameters (multipart/form-data): |
20 | m metadata, newline-separated list (text file) of | |
21 | client ip address (textual) | |
ef041033 | 22 | token |
ca732796 | 23 | target_requests_outstanding |
eb6eb974 | 24 | http_timeout |
7b07f0b5 | 25 | d data (SLIP format, with SLIP_ESC and `-' swapped) |
1672ded0 IJ |
26 | |
27 | ||
ef041033 IJ |
28 | Authentication token is: |
29 | <time_t in hex with no leading 0s> <hmac in base64> | |
30 | (separated by a single space). The hmac is | |
31 | HMAC(secret, <time_t in hex>) | |
1672ded0 | 32 | |
a2b48abf IJ |
33 | |
34 | Possible future nonce-based authentication: | |
1672ded0 IJ |
35 | |
36 | server keeps big nonce counter for each client | |
37 | meaning is: | |
38 | nonce counter is most recent nonce client has sent | |
39 | also server keeps bitmap of the previous ?64 nonces, | |
40 | whether client has sent them | |
41 | ||
42 | client picks.... xxx |