Friend Identification
Identify friends based on the connection request packet (0x0000) packet they send.
== Necessity ==
When we receive anonymity connections through sources such as Tor, it is not possible to identify who went the packet based on the source IP address. Also, it is not practical to expect users with dynamic IP addresses to tell their friends their IP address every time it changes.
For this reason, we need a way to send encrypted information about the source of the connection request to the node who is receiving the connection request. The public keys for each node should have been exchanged and verified during a previous process, in which case, it is possible to simply sign a connection packet. All packets should be signed anyways to prevent forgery or replay attacks of data collected from other friends.
On top of this, the packet is encrypted as is done with the code now. It is encrypted via RSA to the receiving node's public key.
== Steps ==
* Decrypt the 0x0000 packet with our nodekey
* Parse the packet with libs.packets
* Get the sender key ID and signature
* Store a connection to the Friend object
* Use the key property to reply 0x0002
== Future ==
In the future, it might be a good idea to add a timestamp field to the packet to prevent a replay attack.
Blueprint information
- Status:
- Started
- Approver:
- Vomun Developers
- Priority:
- High
- Drafter:
- Vomun Developers
- Direction:
- Approved
- Assignee:
- Vomun Developers
- Definition:
- New
- Series goal:
- Accepted for 0.0.0
- Implementation:
- Good progress
- Milestone target:
- build-8
- Started by
- aj00200
- Completed by
Related branches
Related bugs
Whiteboard
Current Implementation:
* libs.friends.
* lp:~x0factor/anonplus/trunk also contains the starting crypto code. I will make a new branch for this at lp:~vomun-developers/anonplus/friend-identification soon for collaboration on this task
This is required for build-8 because the Tor tunnel depends on this code working.