Replies: 4 comments
|
Any other requirements that are not security requirements? |
0 replies
|
Some ideas for authenticating RPC connections were raised in #4575 |
0 replies
|
Another consideration here could be ease-of-use, JSON is a bit easier to read during development. |
0 replies
|
@arya2 @upbqdn @oxarbitrage If there are no more requirements we can close this discussion as finished |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
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
zcashdauthenticationzcashdcurrently 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 ofartiuses). 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
All reactions