X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=hippotat.git;a=blobdiff_plain;f=PROTOCOL;h=e18cf0e1554da169e6ffdcd8994ba3a727f8c17c;hp=c1ef03b0cfd8cb54a1e335afd2567e153d96ddf7;hb=b3e598b5ea54399982e0183a3e59835b0f82f077;hpb=ca732796fd94e7bc50750c11377da63880e4beff diff --git a/PROTOCOL b/PROTOCOL index c1ef03b..e18cf0e 100644 --- a/PROTOCOL +++ b/PROTOCOL @@ -8,13 +8,35 @@ from the queue and returns them as the POST response body payload Each incoming request contains up to max_batch_up bytes of payload. It's a multipart/form-data. -Authentication: for now, plaintext password +Authentication: clock-based lifetime-limited bearer tokens. -Routing assistance: none needed; secnet polypath will DTRT +Encryption and integrity checking: none. Use a real VPN over this! + +Routing assistance: none in hippotat; can be requested on client + from userv-ipif via `vroutes' parameter. Use with secnet polypath + ideally uses the special support in secnet 0.4.x. Client form parameters (multipart/form-data): m metadata, newline-separated list (text file) of client ip address (textual) - password + token target_requests_outstanding - d data (SLIP format) + http_timeout + d data (SLIP format, with SLIP_ESC and `-' swapped) + + +Authentication token is: + +(separated by a single space). The hmac is + HMAC(secret, ) + + +Possible future nonce-based authentication: + +server keeps big nonce counter for each client +meaning is: + nonce counter is most recent nonce client has sent +also server keeps bitmap of the previous ?64 nonces, + whether client has sent them + +client picks.... xxx