Abraxas-365 / Abraxas-365/r_clip

Add End-to-End Encryption for Clipboard Data Transmission

Open
#2 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
19
Forks
3
PR merge metrics
No merged PRs in 30d

Description

# Issue Description
Currently, the r_clip tool effectively synchronizes clipboard content between a remote server and a local machine using a reverse TCP connection. However, the clipboard data is transmitted in plaintext over the network, which could pose security risks, especially when handling sensitive information.

# Proposed Enhancement
To enhance the security of r_clip, I propose implementing end-to-end encryption for the clipboard data transmitted between the server and the client. This would ensure that clipboard data remains confidential and secure from potential eavesdropping or man-in-the-middle attacks.

# Suggested Approach
- Research and decide on an appropriate encryption protocol (e.g., AES, RSA).
- Implement encryption of clipboard data on the server side before transmission.
- Implement decryption of the received data on the client side.
- Ensure that the encryption/decryption process is efficient and doesn't significantly impact the tool's performance.
- (Optional) Implement key exchange mechanism for shared secret keys or public/private key pairs, depending on the chosen encryption method.

# Impact
- Security: Significantly increases the security of data transmission in r_clip.
- User Trust: Builds user trust in using r_clip for copying sensitive information.
- Performance: Need to ensure that the added encryption layer does not introduce significant performance overhead.

Contributor guide

No contributing guide indexed for this repository

Research direction

The issue describes adding encryption to a clipboard syncing tool. First, examine the codebase to understand the data transmission flow between server and client. Look for the network module or the functions that send and receive clipboard data. Research Rust cryptography libraries like `ring` or `rustls` to decide on an implementation. 'Done' means clipboard data is encrypted before sending and decrypted after receiving, with a working key exchange.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
security
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.