mirror of
https://github.com/spacedriveapp/spacedrive.git
synced 2025-12-11 20:15:30 +01:00
29 lines
1.1 KiB
Markdown
29 lines
1.1 KiB
Markdown
---
|
|
id: NET-002
|
|
title: Secure Device Pairing Protocol
|
|
status: Done
|
|
assignee: james
|
|
parent: NET-000
|
|
priority: High
|
|
tags: [networking, security, pairing]
|
|
whitepaper: Section 4.5.2
|
|
---
|
|
|
|
## Description
|
|
|
|
A secure protocol for pairing two devices will be implemented. The flow uses a human-readable BIP39 mnemonic code to establish a secure, end-to-end encrypted session, after which devices are mutually trusted.
|
|
|
|
## Implementation Notes
|
|
|
|
- The complete state machine and logic will be implemented in `src/services/networking/protocols/pairing/`.
|
|
- The `PairingProtocolHandler` manages the initiator and joiner roles.
|
|
- Cryptographic operations, including challenge-response using `ed25519-dalek`, are handled by `pairing/security.rs`.
|
|
- Multi-process integration tests (`device_pairing_test.rs`, `device_persistence_test.rs`) validate the real-world functionality.
|
|
|
|
## Acceptance Criteria
|
|
|
|
- [x] An initiator can generate a 12-word pairing code.
|
|
- [x] A joiner can use the code to discover and connect to the initiator.
|
|
- [x] Devices successfully exchange keys and establish a trusted relationship.
|
|
- [x] Paired device information is persisted securely for automatic reconnection.
|