A simple authentication server which allows a client to authenticate with a server without having to send its password. This is done by using the Chaum-Pedersen ZKP protocol.
gRPC is used for communication, which will require the protobuf compiler to build the project. On Debian systems this can be installed with:
sudo apt-get install protobuf-compiler
cargo build --release
Chaum-Pedersen requires parameters which are shared between the server and client. In this implementation, the server reads them in via a config file, and sends them to the client.
This repo has a sample config file with parameters taken from RFC 5114.
./target/release/server 127.0.0.1:5000 rfc_5114_params.toml
First register a new user:
./target/release/client http://127.0.0.1:5000 register
Enter a username and password at the prompt.
To authenticate and receive a session token:
./target/release/client http://127.0.0.1:5000 authenticate