4.2 Establishing a Connection Using Password Authentication

Node 2 requests to connect to a Group created by Node 1. Node 1 is already listening for incoming connections. Node 2 does not have a GMC.

Establishing a connection using password authentication

Figure 4: Establishing a connection using password authentication

To establish the connection, the following steps occur:

  1. Node 2 (the Requestor) queries PNRP for a Group Node. For example, if the Group Peer Name is "abc123", Node 2 queries for "abc123.participant".

  2. PNRP responds with the address and port of Node 1 (the Authenticator).

  3. Node 2 establishes a P2P Graphing connection to Node 1. Because P2P Graphing has been configured to use P2P Grouping as the Graph Security Provider, P2P Grouping is asked to authenticate the connection.

  4. Node 2 and Node 1 establish a secure connection using TLS.

  5. Node 2 sends a message containing the Hello message and an empty Password message.

  6. Node 1 validates that the Group is configured to allow password authentication, and responds with a message containing the Hello message and the MyGMC message.

  7. Node 2 validates that the GMC received in the MyGMC message is for the Group to which it is intending to connect.

  8. Node 2 generates a Password message containing the proof of password.

  9. Node 1 validates that the Password message contains the correct data, thus ensuring that Node 2 knew the correct password.

  10. Node 1 generates a GMC chain for Node 2.

  11. Node 1 responds with a YourGMC message, containing the GMC it created in step 10.

  12. The connection is now authenticated, and the P2P Graphing protocol begins using the connection.