this post was submitted on 13 May 2025
22 points (95.8% liked)

Privacy

1716 readers
3 users here now

Icon base by Lorc under CC BY 3.0 with modifications to add a gradient

founded 2 years ago
MODERATORS
22
submitted 5 days ago* (last edited 5 days ago) by xoron to c/privacy
 

glitr.io

I'm working towards something for secure/private/simple P2P file transfer. It isnt as "simple" as it could be, im still working on it, but ive got it down to:

  • Zero-installation as a PWA
  • Zero-registration by using local-only storage
  • P2P-authentication using WebCrypto API
  • Fast data-transfer using WebRTC

It's far from finished, but i think ive got it "usable" enough to ask for feedback on it.

I'm aware there are things like SFTP and several other established protocols and tools. I started doing this because I was learning about WebRTC and it seems suprisingly capable. This isnt ready to replace any existing apps or services.

(Note: I know you guys on lemmy are interested in open-source code. this project is a spin-off from a bigger project: https://github.com/positive-intentions/chat)

Let me know what you think about the app, features and experience you would expect from a tool like this.

you are viewing a single comment's thread
view the rest of the comments
[โ€“] [email protected] 1 points 5 days ago (1 children)
  1. user uses html input to select file from device. this requires the user to grant permissions.
  2. file loaded into into os/browser/js memory-space.
  3. this file is base64 encoded and sent to peer (base64 encoded to make the data serializable for network transfer)
  4. peer recieves file in base64 which can then be converted back into a file.

There is no encryption?

[โ€“] xoron 2 points 5 days ago* (last edited 5 days ago)

the implementation is based on WebRTC which mandates encryption as part of the spec browsers have to confirm to.

in the app i have a concept of "contacts" in the app. when establishing a new contact, i use that webrtc channel to do a diffie-helman key-exchange (with RSA asymmetric keys used to exchange to AES symmetric keys). (im using vanilla os/browser cryptography tools as seen here: https://github.com/positive-intentions/cryptography/blob/staging/src/stories/components/Cryptography.tsx)

https://positive-intentions.com/docs/research/authentication

in my setup, all data that is being sent over webrtc, is already encrypted specific to a recipient. that encryption is a redundency over the WebRTC offering.

there is a performance hit with this redundency, but then allows me to have things like a way to verify public keys with a peer to prevent MITM vulnerbilities.

https://positive-intentions.com/blog/security-privacy-authentication