Temporary RSA + AES

Registered by aj00200

Use a temporary RSA key which is signed and encrypted by the normal RSA key to establish a temporary communication channel which will protect past and future communications because the key is only temporary. Also, it is hard for the government to request this key because the software only stores it for a short period of time.

The public key from the temporary RSA key is sent to a friend we are trying to establish a connection to. This creates a secure communication channel on which an AES session can be established.

Blueprint information

Status:
Not started
Approver:
Vomun Security Team
Priority:
High
Drafter:
Vomun Security Team
Direction:
Approved
Assignee:
Vomun Security Team
Definition:
Discussion
Series goal:
Accepted for 0.0.0
Implementation:
Not started
Milestone target:
milestone icon build-8

Related branches

Sprints

Whiteboard

What it fixes:
 - It is possible to establish a secure communication channel even if your private key is compromised. This is useful if your computer is hacked or the government can force you to give them your key.

What it does not fix:
 - It is possible to impersonate you with your key if your key is compromised. However, previous connections will not be vulnerable.
   - Other forms of authentication (such as a passphrase) may be needed to prevent identity impersonation.

--------------------

Some code is needed to set the connected state to True on libs.friends.Friend upon handshake completion because the handshake will be handled within the Friend instance.
--Aj00200

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.