Commit f4d4cc93 authored by Alexander Blom's avatar Alexander Blom
Browse files

Update README.md

parent ac01364b
SSIComms project summary
========================
## Who's talking
One of the things people enjoy the most about the internet, is that it enables them to talk to others remotely almost without limit.
# 1. Introduction
Unfortunately, remotely often means that parties are not sure who they are communicating with. Think of the epidemic of robocalls and prank calls the telecoms industry has been battling for years, or you yourself simply trying to videoconference with your bank: the absence of an identity layer can be a huge problem.
One of the things people enjoy the most about the internet, is that it enables them to talk to others remotely almost without limit.
Unfortunately, remotely often means that parties are not sure who they are communicating with. Think of the epidemic of robocalls and prank calls the telecoms industry has been battling for years, or you yourself simply trying to videoconference with your bank: the absence of an identity layer can be a huge problem.
Adding SSI to internet communications resulting in seamless identified communications is the solution to this problem. It enables people engaging in any form of internet communication to exchange presentation requests and proofs, and communicate at the same time.
Adding SSI to internet communications (SSIComms for short) resulting in seamless identified communications is the solution to this problem. It enables people engaging in any form of internet communication to exchange presentation requests and proofs, and communicate at the same time.
From now on, when Alice calls Bob, Bob will be sure that it is really Alice he is talking to.
## Mixing two protocols
Dedicated to identified communications, Dutch startup and initiator of the SSIComms project **Bloqzone** (bloqzone.com) has built several solutions to this problem in the past using more standard local identity solutions such as DIGID and IDIN. Unfortunately, these sofar tended to result in a somewhat awkward customer experience since the enduser has to switch between multiple applications during one session.
A more thorough approach is therefore needed where not only one application is able to handle both communications sessions and identity sessions, but also where both communications and SSI protocols are interwoven.
# 2. Protocol use by SSIComms
SSIComms makes use of two protocols: DIDComm, central to SSI, and SIP, equally central to internet comunications.
### 2.1 DIDComm
## The SSIComms project
The project SSIComms adds SSI to internet communications by adding SSI wallets to the renowned SYLK Suite, an award winning ensemble of communications solutions. In terms of protocols, SSIComms connects the open standard SIP on the internet communications side to the open standard DIDComm messaging on the SSI side. This enables users to respond to presentation requests for credentials entirely voluntarily and according to SSI principles during communications sessions.
DIDComm is the messaging protocol that provides utility for DID-based relationships, the foundation of Self Sovereign Identity. DIDComm is a protocol layer capable of supporting specialized application protocols for specific workflows.
One such application protocol is the “Present proof protocol”, a way to exchange credentials.
SSIComms differs from existing applications in that it focuses on peer2peer internet communications sessions, where DIDComms by itself does not suffice to add an identity layer.
#### 2.1.1. The out-of-band message
Establishing a DIDComm connection starts by Alice sending an out-of-band message to Bob. Besides key material and an identifier, the message contains the endpoint where Alice wishes to receive Bob’s DIDComm messages. Alice is free to use any means of communications to send her out-of-band message.
The solution is designed to function within an SSI ecosystem and conform to all its principles by extending the SIP protocol to accommodate identified communications and by linking governance-as-code to the implementation to ensure the rules (as much as possible) are enforced in the source code.
The use cases include identification before and during session, the principle of verify the verifier, and exchange of payment tokens during sessions.
### 2.2. SIP
The Session Initiation Protocol (SIP) is a signaling protocol used for initiating, maintaining, and terminating real-time sessions that include voice, video and messaging applications. SIP is used for signaling and controlling multimedia communication sessions in applications of Internet telephony for voice and video calls, in private IP telephone systems, in instant messaging over Internet Protocol (IP) networks as well as mobile phone calling over LTE (VoLTE).
The resulting source code will be available open source and offer developers the opportunity to integrate their own wallets with the enhanced Sylk Suite react native client.
### 2.3. DIDComm & SIP within SSIComms
An SSIComms session between Alice and Bob involves 4 major steps:
1. First, Alice and Bob start a SIP session, for instance by Alice calling Bob using the SIP protocol.
2. Then, after Bob answers, he and Alice establish a DIDComm connection by Bob sending Alice an out-of band-message. As a means of transport, Bob chooses the active SIP session between him and Alice, and sends Alice the message as an encrypted SIP message.
3. With the DIDComm connection in place, they can now use DIDComm to exchange credentials.
4. The credentials proven to be satisfactory, Bob and Alice continue their SIP session and exchange voice, video or text messages.
## 3. The SSIComms project
The project SSIComms adds SSI to internet communications by bringing together an a SIP module and an SSI module in one application. In terms of protocols, SSIComms connects the open standard SIP on the internet communications side to the open standard DIDComm messaging on the SSI side. This enables users to respond to presentation requests for credentials entirely voluntarily and according to SSI principles during communications sessions.
SSIComms differs from existing applications in that it focuses on internet communications sessions with both participants behind a firewall. Under these circumstances, DIDComms by itself does not suffice to add an identity layer.
SSIComms is designed to function within an SSI ecosystem and conform to all its principles by extending the SIP protocol to accommodate identified communications.
The use cases include identification before and during session, the principle of verify the verifier, and as a nice to have, exchange of payment tokens during sessions.
The resulting source code will be available open source and offer developers the opportunity to integrate their own solutions with the SSIComms framework.
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment