Skip to content

Commit

Permalink
docs: summarize challenge response protocol
Browse files Browse the repository at this point in the history
  • Loading branch information
tufteddeer committed Sep 20, 2024
1 parent 1e963d4 commit 1581731
Showing 1 changed file with 14 additions and 0 deletions.
14 changes: 14 additions & 0 deletions README.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,18 @@ This is the readme for remote attestation in SSH. You can find the original `Por
// \ needed because asciidoctor think ... is an ellipsis and breaks the link
https://github.com/tufteddeer/openssh-tdx-remote-attestation/compare/master\...ra-ssh[See the detailed list of changes here.]

== How it works

The implementation is based on a _challenge-response protocol_.

The client starts the connection as usual.
After the keys are exchanged and the user is authenticated, it sends a message to the server, requesting the attestation information together with a nonce (_challenge_).
The server create an Intel TDX report that contains the nonce and information about the Trusted Domain and uses an Azure Service to generate a JWT token from it.
The token is send to the client (_response_).

As relying party, the client validates the signature on the JWT and veryfies the claims and the nonce.
If the attestation is successful, the SSH connection continues, otherwise the client terminates the connection.

== Demo

This is a recording of the SSH server accepting a client connection and performing remote attestation.
Expand Down Expand Up @@ -137,6 +149,8 @@ After attestation is performed (which my take a few seconds), the connection wil

Note that `sh` prompt is just a single `$` and the shell session may be interlaced with the debug logs of the `ssh` client.

Type `exit` to quit the session.

Since `sshd` is running in debug mode to be able to see the logs in the terminal, it will exit when the connection is terminated.


Expand Down

0 comments on commit 1581731

Please sign in to comment.