Privacy Policy
How the DropLink app handles your data.
01 Summary
DropLink is a peer-to-peer file transfer app. It does not create user accounts, does not require sign-up, and does not collect personal data. The content of your files never touches a DropLink server.
02 How transfers work
DropLink uses two channels, chosen automatically:
- Local Area Network (LAN). On the same network, devices discover each other via mDNS / Bonjour and transfer files directly over QUIC with TLS 1.3 encryption. Traffic never leaves your network.
- Remote peer-to-peer. When devices are on different networks, DropLink negotiates a direct connection through NAT using the iroh library (ed25519 device identity, Noise IK handshake). The transfer remains end-to-end encrypted.
- Encrypted relay (fallback). When a direct connection cannot be established, traffic falls back to a DERP relay as an encrypted TLS 1.3 pipe. The relay sees only ciphertext — it cannot read, alter, or log your file content. File integrity is verified chunk-by-chunk on the receiving device via BLAKE3 hash trees.
03 What we do NOT collect
- No name, email, phone number, address, or any personal identifier
- No file content, filenames, sizes, types, or metadata
- No address book, contacts, browsing history, or location data
- No advertising identifiers — the app shows no ads
- No behavioral telemetry — the app does not phone home to track usage
03b Architecture in brief
DropLink is built in three layers, all under the developer's control:
- UI layer (per platform). macOS uses SwiftUI with an XPC service embedding the Rust core. Windows uses Tauri 2 + Vue. iOS uses SwiftUI with direct FFI. Browsers use an embedded Web UI served by a local HTTP server.
- Core (Rust, cross-platform). The same Rust crate drives QUIC transport (quinn), iroh remote P2P, HTTP server (axum), mDNS discovery, crypto (ring via rustls), compression, and the transfer engine. Release profile: opt-level=3, LTO, strip, codegen-units=1.
- Relay server. Runs iroh-relay DERP, WebSocket signaling, and a download gateway for browsers. It sees Noise-encrypted QUIC packets and ephemeral session metadata only — never file content.
03c Encryption by channel
| Channel | Protocol | Keys / cert | Integrity |
|---|---|---|---|
| QUIC on LAN | TLS 1.3 (TLS 1.2 rejected) | Self-signed ECDSA P-256, TOFU via mDNS SHA-256 fingerprint | TLS 1.3 AEAD |
| iroh P2P (internet) | Noise IK over QUIC/TLS 1.3 | ed25519 identity + curve25519 ECDH | BLAKE3 via Bao tree (verified streaming) |
| DERP relay (fallback) | TLS 1.3 tunnel | Same ed25519 identity | BLAKE3 end-to-end (relay sees ciphertext only) |
| HTTP Web UI (local) | HTTP (plaintext, LAN only) | Session token (UUID) bound to share | TCP + access-control token |
Cipher suites are reordered per CPU architecture: AES-128-GCM first on x86_64 (AES-NI acceleration), ChaCha20-Poly1305 first on aarch64 / Apple Silicon. Session resumption uses 8 pre-generated TLS 1.3 tickets with 0-RTT early data enabled.
03d Why TOFU and not a CA
On local networks there is no public key infrastructure (no CA-signed certificates). The Trust On First Use (TOFU) model is appropriate because: (1) communication happens on a trusted local network, (2) the certificate fingerprint travels over the mDNS discovery channel in the same announcement, and (3) an attacker would need to be on the same local network AND intercept multicast mDNS — significantly harder than intercepting internet traffic.
03e iroh discovery DNS is disabled
iroh's default configuration includes a pkarr-based DNS discovery that
publishes each node's IP and relay URL to public DNS servers. DropLink explicitly
disables this: the endpoint is built with Endpoint::empty_builder()
and RelayMode::Custom pointing only to the DropLink-operated relay. Your
device's IP is never published to third-party DNS servers. This is a deliberate privacy
choice.
03f BLAKE3 verified streaming
On iroh-based transfers, every file is identified by its BLAKE3 hash. The receiver verifies each chunk against a Bao tree (Binary All-or-Nothing) incrementally during download. This guarantees that the bytes arriving on the receiver's device exactly match what the sender authored — even a compromised DERP relay cannot silently tamper with content, because the hash tree would reject modified blocks.
03g Why the local Web UI is HTTP, not HTTPS
DropLink runs a local HTTP server on port 7878 (macOS) or 8080 (iOS) to serve the Web UI to browsers without the app installed. HTTP — not HTTPS — is used here deliberately:
- Traffic stays on the local network and never crosses the internet.
- HTTPS requires a CA-signed certificate. A self-signed certificate would cause every browser to show "connection not secure" warnings on first use.
- Browsers do not support
https://with self-signed certificates without user interaction — the friction would make the feature unusable. - File transfers between app-installed peers use QUIC with TLS 1.3 — HTTP is only used when the receiver has no app.
- Access to the HTTP endpoints is gated by a session token (UUID): without the token the server rejects
/download/*,/files,/uploadrequests.
04 What the app processes locally
- Local file access. You grant the app permission to select files on your device to send. These files stay on your device unless you send them to another device.
- Device identity. A cryptographic keypair (ed25519) is generated locally and stored in your system keychain (macOS/iOS Keychain, Windows Credential Manager). It identifies your device, not you as a person, and is used to establish end-to-end encrypted sessions.
- Discovery broadcasts. On LAN, the app announces itself via multicast mDNS with a display name (typically your device's computer name) and a certificate fingerprint. This broadcast stays on your local network.
05 Signaling relay (remote transfers only)
For remote transfers, a signaling server helps two devices discover each other over the internet. During signaling, the server temporarily handles:
- Your device's public key (NodeID) and share identifier
- NAT traversal metadata (candidate IP addresses and ports)
- A session token, if you protect the share with an optional password
This information is ephemeral, scoped to a single transfer session, and necessary to establish the encrypted channel. It is not used for profiling or advertising and is not sold to third parties. Authentication to the relay uses HMAC-SHA256 and ed25519 signatures — no email or account is involved.
06 Password protection
You can optionally protect a share with a password. The password is hashed (SHA-256) on the relay and used to issue short-lived session tokens. Brute-force attempts are rate-limited. The password is never transmitted in plaintext and is not stored.
07 Subscriptions & payments
The app is free and includes no in-app purchases, subscriptions, or advertising.
08 Third parties
The app itself does not integrate third-party SDKs that collect personal data. The signaling relay is operated by the developer.
09 Children's privacy
The app is not directed to children under 13 and does not knowingly collect data from them — since it does not collect personal data from anyone.
10 Your rights
Because DropLink does not collect personal data, there is normally nothing to access, export, or delete. You can uninstall the app at any time, which removes the local device identity. For any question under GDPR, CCPA, or other applicable regulation, contact [email protected].
11 Changes
This policy may be updated when the app evolves. The "Last updated" date at the top of this page always reflects the current version. Material changes will be announced in the app release notes.
01 Sommario
DropLink è un'app di trasferimento file peer-to-peer. Non crea account utente, non richiede registrazione, non raccoglie dati personali. Il contenuto dei tuoi file non transita mai su un server DropLink.
02 Come funzionano i trasferimenti
DropLink usa due canali, scelti automaticamente:
- Rete locale (LAN). Sulla stessa rete, i dispositivi si scoprono via mDNS / Bonjour e si scambiano file direttamente tramite QUIC con crittografia TLS 1.3. Il traffico non lascia la tua rete.
- Peer-to-peer remoto. Quando i dispositivi sono su reti diverse, DropLink negozia una connessione diretta attraverso il NAT usando la libreria iroh (identità del dispositivo ed25519, handshake Noise IK). Il trasferimento rimane cifrato end-to-end.
- Relay cifrato (fallback). Quando una connessione diretta non è possibile, il traffico ripiega su un relay DERP come canale TLS 1.3 cifrato. Il relay vede solo testo cifrato: non può leggere, alterare o registrare il contenuto dei file. L'integrità è verificata chunk-by-chunk sul dispositivo ricevente tramite alberi di hash BLAKE3.
03 Cosa NON raccogliamo
- Nessun nome, email, numero di telefono, indirizzo o identificatore personale
- Nessun contenuto dei file, nome file, dimensione, tipo o metadato
- Nessuna rubrica, cronologia di navigazione o dati di posizione
- Nessun identificatore pubblicitario: l'app non mostra pubblicità
- Nessuna telemetria comportamentale: l'app non comunica statistiche d'uso
03b Architettura in breve
DropLink è costruita su tre livelli, tutti sotto il controllo dello sviluppatore:
- Livello UI (per piattaforma). macOS usa SwiftUI con un servizio XPC che incorpora il core Rust. Windows usa Tauri 2 + Vue. iOS usa SwiftUI con FFI diretto. I browser usano una Web UI embedded servita da un server HTTP locale.
- Core (Rust, cross-platform). Lo stesso crate Rust gestisce il trasporto QUIC (quinn), iroh per P2P remoto, server HTTP (axum), discovery mDNS, crittografia (ring tramite rustls), compressione e motore di trasferimento. Profilo release: opt-level=3, LTO, strip, codegen-units=1.
- Relay server. Esegue iroh-relay DERP, signaling WebSocket e un gateway di download per i browser. Vede solo pacchetti QUIC cifrati con Noise e metadati di sessione effimeri — mai il contenuto dei file.
03c Crittografia per canale
| Canale | Protocollo | Chiavi / certificato | Integrità |
|---|---|---|---|
| QUIC su LAN | TLS 1.3 (TLS 1.2 rifiutato) | ECDSA P-256 self-signed, TOFU via fingerprint SHA-256 in mDNS | AEAD TLS 1.3 |
| iroh P2P (Internet) | Noise IK su QUIC/TLS 1.3 | ed25519 + scambio chiavi curve25519 | BLAKE3 con Bao tree (verified streaming) |
| Relay DERP (fallback) | Tunnel TLS 1.3 | Stessa identità ed25519 | BLAKE3 end-to-end (il relay vede solo ciphertext) |
| Web UI HTTP (locale) | HTTP (plaintext, solo LAN) | Token di sessione (UUID) legato alla condivisione | TCP + token di access control |
Le cipher suite sono ri-ordinate per architettura CPU: AES-128-GCM prima su x86_64 (accelerazione AES-NI), ChaCha20-Poly1305 prima su aarch64 / Apple Silicon. La session resumption usa 8 ticket TLS 1.3 pre-generati con early data 0-RTT abilitato.
03d Perché TOFU e non una CA
Sulle reti locali non esiste una PKI pubblica (nessun certificato firmato da una CA). Il modello Trust On First Use (TOFU) è appropriato perché: (1) la comunicazione avviene su rete locale fidata, (2) la fingerprint del certificato viaggia sullo stesso canale di discovery mDNS dell'annuncio e (3) un attaccante dovrebbe essere sulla stessa rete locale E intercettare il multicast mDNS — molto più difficile che intercettare traffico Internet.
03e Discovery DNS iroh disabilitato
La configurazione di default di iroh include un discovery DNS basato su pkarr
che pubblica l'IP e l'URL del relay di ciascun nodo su server DNS pubblici. DropLink
disabilita esplicitamente questo meccanismo: l'endpoint è costruito con
Endpoint::empty_builder() e RelayMode::Custom che punta solo al
relay operato da DropLink. L'IP del tuo dispositivo non viene mai pubblicato su server
DNS di terze parti. È una scelta di privacy deliberata.
03f BLAKE3 verified streaming
Per i trasferimenti basati su iroh, ogni file è identificato dal suo hash BLAKE3. Il ricevente verifica ogni chunk contro un Bao tree (Binary All-or-Nothing) in modo incrementale durante il download. Questo garantisce che i byte che arrivano sul dispositivo ricevente corrispondano esattamente a quelli inviati — nemmeno un relay DERP compromesso può alterare silenziosamente il contenuto, perché l'hash tree rifiuterebbe i blocchi modificati.
03g Perché la Web UI locale è HTTP, non HTTPS
DropLink avvia un server HTTP locale su porta 7878 (macOS) o 8080 (iOS) per servire la Web UI a browser senza app installata. HTTP — non HTTPS — è scelto deliberatamente:
- Il traffico resta sulla rete locale e non attraversa mai Internet.
- HTTPS richiederebbe un certificato firmato da una CA. Un certificato self-signed causerebbe warning "connessione non sicura" al primo utilizzo di ogni browser.
- I browser non supportano
https://con certificati self-signed senza interazione utente — l'attrito renderebbe la funzione inutilizzabile. - I trasferimenti tra peer con app installata usano QUIC con TLS 1.3 — HTTP è usato solo quando il ricevente non ha l'app.
- L'accesso agli endpoint HTTP è protetto da un token di sessione (UUID): senza il token il server rifiuta le richieste a
/download/*,/files,/upload.
04 Cosa l'app elabora localmente
- Accesso ai file locali. Concedi all'app il permesso di selezionare file sul dispositivo per inviarli. Questi file rimangono sul dispositivo a meno che tu non li invii ad un altro dispositivo.
- Identità del dispositivo. Una coppia di chiavi crittografiche (ed25519) viene generata localmente e salvata nel portachiavi di sistema (macOS/iOS Keychain, Gestore Credenziali di Windows). Identifica il tuo dispositivo, non te come persona, e serve a stabilire sessioni cifrate end-to-end.
- Annunci di discovery. Sulla LAN, l'app si annuncia via multicast mDNS con un nome visualizzato (di solito il nome del computer) e una fingerprint del certificato. L'annuncio resta sulla tua rete locale.
05 Relay di signaling (solo trasferimenti remoti)
Per i trasferimenti remoti, un server di signaling aiuta i due dispositivi a scoprirsi su Internet. Durante il signaling il server tratta temporaneamente:
- La chiave pubblica del tuo dispositivo (NodeID) e l'identificativo della condivisione
- Metadati di NAT traversal (indirizzi IP e porte candidati)
- Un token di sessione, se proteggi la condivisione con una password opzionale
Queste informazioni sono effimere, limitate a una singola sessione di trasferimento e necessarie per stabilire il canale cifrato. Non vengono usate per profilazione o pubblicità, né vendute a terzi. L'autenticazione verso il relay usa HMAC-SHA256 e firme ed25519: nessuna email e nessun account coinvolto.
06 Protezione con password
Puoi opzionalmente proteggere una condivisione con una password. La password viene hashata (SHA-256) sul relay e usata per emettere token di sessione a breve durata. I tentativi di forza bruta sono rate-limitati. La password non viene mai trasmessa in chiaro e non viene memorizzata.
07 Abbonamenti e pagamenti
L'app è gratuita e non prevede acquisti in-app, abbonamenti o pubblicità.
08 Terze parti
L'app in sé non integra SDK di terze parti che raccolgono dati personali. Il relay di signaling è gestito dallo sviluppatore.
09 Minori
L'app non è rivolta a bambini sotto i 13 anni e non raccoglie consapevolmente dati da loro, poiché non raccoglie dati personali da nessuno.
10 I tuoi diritti
Poiché DropLink non raccoglie dati personali, di norma non c'è nulla da accedere, esportare o cancellare. Puoi disinstallare l'app in qualsiasi momento: l'identità locale del dispositivo viene rimossa. Per qualsiasi richiesta ai sensi del GDPR, del CCPA o di altra normativa applicabile, contatta [email protected].
11 Modifiche
Questa informativa può essere aggiornata quando l'app evolve. La data di "Ultimo aggiornamento" in cima a questa pagina riflette sempre la versione corrente. Le modifiche sostanziali verranno annunciate nelle note di rilascio.
See also: Website Privacy Policy · Cookie Policy