Skip to content

arti: Add an arti hsc subcommand.

gabi-250 requested to merge gabi-250/arti:arti-hsc-subcommand into main

This adds an experimental arti hsc subcommand for managing client state and keys. Currently, it only supports the prepare-service-discovery-keys operation described in #1281 (closed) and doc/dev/notes/client-auth.md.

A note on terminology: I am referring to services that encrypt the second layer of their descriptor as running in "restricted discovery" mode (because they can only be discovered, i.e. have their IPT points found out, by a set of authorized clients). The corresponding client "auth" keys, being the keys that enable the client to find out the list of intro points, pow-params etc. of the service, are referred to as service "discovery keys".

Alternative names I considered:

  • extra descriptor encryption: accurate, but overly technical. IMO, the CLI should be accessible to users who aren't familiar with the nitty-gritty of the protocol
  • shielded mode: good, but slightly misleading. Calling it "shielded mode" makes it sound like a universally desirable "extra protection" that should almost always be enabled (which is not the case). Seeing shielded_mode = off in the config might be worry operators that don't fully understand what "extra descriptor encryption" or "shielded mode" means
  • restricted mode: slightly inaccurate. It implies this mechanism is a good substitute for conventional service-side authentication, which it isn't (because client authorization isn't instantaneous)

I'd like @nickm and/or @Diziet to sign off on this before merging (I'm adding some experimental TorClient APIs, and the somewhat controversially-named arti hsc prepare-service-discovery-key subcommand`).

Closes #1281 (closed)

Merge request reports