Replies: 4 comments
-
Any other requirements that are not security requirements? |
Beta Was this translation helpful? Give feedback.
0 replies
-
Some ideas for authenticating RPC connections were raised in #4575 |
Beta Was this translation helpful? Give feedback.
0 replies
-
Another consideration here could be ease-of-use, JSON is a bit easier to read during development. |
Beta Was this translation helpful? Give feedback.
0 replies
-
@arya2 @upbqdn @oxarbitrage If there are no more requirements we can close this discussion as finished |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Motivation
We want to provide secure access to the shielded blockchain scanner.
Goals
Based on the discussion in this week's Zebra team sync, we have the following goals for the RPC interface:
Additional security requirement:
Background & Security Notes
zcashd
authenticationzcashd
currently authenticates using either:Passwords might be deprecated, we should ask the ECC team why that happened, and if they've made a final decision.
Tor compatibility
To be used via Tor, the RPC library must communicate over either:
PeerTransport: AsyncRead + AsyncWrite + ...
, orarti::DataStream
(or whatever the latest version ofarti
uses). See the linked examples for how this works inzebra-network
.Tor onion addresses authenticate the server, but not the client. Tor did have client authentication in v2 onion services, but I'm not sure if it is implemented in v3. (v2 has been disabled.)
Authentication
Typically, proof of knowledge uses a challenge-response protocol, to avoid response re-use. A rough sketch of that protocol is:
For proving knowledge of a key, we might just be able to use a prefixed hash of that key, because the connection is already authenticated and encrypted.
It's also possible to use client and server certificates, if we use TLS (or HTTPS).
Next Steps
Beta Was this translation helpful? Give feedback.
All reactions