Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

transport recency blob #280

Closed
breed opened this issue Aug 12, 2024 · 2 comments
Closed

transport recency blob #280

breed opened this issue Aug 12, 2024 · 2 comments

Comments

@breed
Copy link
Contributor

breed commented Aug 12, 2024

when a client talks to a transport, there are two things it needs to know:

  1. has it been in contact with the server

  2. has it been in contact with the server since it sent the last bundle

  3. tells lets the client know it's worth interacting with the transport and 2) lets it know that it's time to upload a new blob.

we also want to preserve the anonymity of the transports: the bundle server knows the transports, but the transports are anonymous to the clients.

we can accomplish both things by having a blob make up of the following:

[M, Ms] where M = [nonce, timestamp, Tepub] and Ms = M signed by the server

whenever the transport talks to the server, it sends an ephemeral (generated each time it talks to the server) public key using a channel authenticated #95 by its identity key. the server will include the recency blob in its response.

when the transport talks to the server, it will authenticate with Tepub and the client will retrieve the recency blob and validate 1) and 2)

follow on work could include a bloomfilter to indicate that the transport has communicated on behalf of a specific client before.

@pankinkun
Copy link
Collaborator

it seems like we are adding more security here. I wonder whether we need to implement #95 first before doing this or we can do both at the same time

@pankinkun
Copy link
Collaborator

pankinkun commented Aug 12, 2024

btw, can you clarify if "it" in these are "transport" or "client"? I have a feeling you mean "transport" but client can also contact with server
"two things it needs to know:"
has it been in contact with the server
has it been in contact with the server since it sent the last bundle
tells lets the client know it's worth interacting with the transport and 2) lets it know that it's time to upload a new blob."

@breed breed closed this as completed Sep 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants