Cosa può e non può vedere il relay di Peering
Un relay è un server nel mezzo della tua sessione di desktop remoto, quindi la domanda giusta è cosa gli impedisce di guardare. La risposta è una chiave che non riceve mai.
Cosa fa
Il relay svolge tre compiti. Presenta due dispositivi che non possono raggiungersi direttamente, copia i byte tra loro quando ancora non possono, e invia notifiche push per conto di un Mac, come "il tuo agente di coding ha bisogno di una risposta". È un piccolo programma in Rust, e mantenere piccolo il suo compito è il progetto.
Cosa conosce
Essere onesti su questo fa parte del punto. Per fare il suo lavoro il relay vede:
- Gli identificatori dei dispositivi e il nome del Mac, così da poter abbinare un telefono a un Mac.
- L'indirizzo di rete da cui si connette ciascun dispositivo, come fa qualsiasi server, e consegna a ciascuno quello dell'altro in modo che possano provare un percorso diretto.
- Quale piano è in uso e quanto tempo di relay è stato consumato, per applicare la quota gratuita di 30 minuti al giorno.
- Che una sessione esiste, quando è iniziata e quanto è durata.
L'informativa sulla privacy li elenca per intero. Nessuno di questi è il contenuto della tua sessione.
Cosa non può vedere
Immagine, audio, appunti, tasti premuti e puntatore stanno tutti dentro un canale cifrato che termina sui tuoi due dispositivi. Il relay non può leggerli, modificarli né riprodurli. Due meccanismi lo rendono vero, e nessuno dei due dipende dal fidarsi del relay.
Il canale di controllo è TLS tra i dispositivi
Quando una sessione passa dal relay, il telefono esegue un handshake TLS 1.3 con il Mac attraverso il relay. Il relay copia i record cifrati senza terminarli, quindi non possiede mai una chiave di sessione. Entrambe le estremità si autenticano con le chiavi che hanno fissato quando li hai associati, quindi il relay non può sostituirsi a uno dei due senza che il telefono rifiuti la connessione.
La chiave del video non passa mai dal relay
Il video percorre un'altra strada, su UDP, quindi ha bisogno di una propria chiave. Quando la sessione è pronta, il Mac crea 32 byte casuali e li invia al telefono dentro lo stream TLS. Il relay trasporta quello stream e non può aprirlo. Ogni direzione ricava poi la propria chiave con HKDF-SHA256, e ogni datagramma è cifrato con ChaCha20-Poly1305 e un contatore.
key = HKDF-SHA256(secret, salt = "pl.dmq.peering.video-datagram", info = direction) datagram = token | counter | ciphertext | tag
Il token da 16 byte in testa è l'unica cosa che il relay legge. È un'indicazione di instradamento che dice a quale sessione appartiene il datagramma, e il relay lo rimuove prima di inoltrarlo. Tutto ciò che segue è testo cifrato.
Notifiche push e Live Activity
Quando il telefono è in stop, il Mac chiede al relay di svegliarlo con una push di Apple. Ciò che entra in quella push è volutamente minimo: un titolo e un messaggio brevi per un avviso e, per gli aggiornamenti di Live Activity, solo stato codificato come ID, stati, conteggi e orari. Il Mac non invia mai al relay il tuo schermo né l'output del tuo terminale. Per le approvazioni degli agenti, vedi le notifiche per gli agenti di coding.
Prove al posto degli account
La quota gratuita deve essere legata a qualcosa. Invece di un account, i dispositivi firmano un breve messaggio con la propria chiave, e il relay controlla la firma entro una finestra di cinque minuti. Questo lega la quota a una chiave anziché a un ID reimpostabile, e impedisce a chiunque di spacciarsi per un Mac registrato senza possederne la chiave privata.
Verificalo tu stesso
Il formato dei dati è documentato e il relay è costruito attorno a un vincolo: presenta i dispositivi e copia byte cifrati, e non può ispezionare, alterare né autorizzare ciò che trasporta. Per sapere come una sessione arriva sul relay in primo luogo, leggi come il tuo iPhone raggiunge il tuo Mac da ovunque e, per come le chiavi di ciascuna estremità diventano attendibili, l'associazione senza account.
Domande
Il relay di Peering può vedere il mio schermo?
No. L'immagine è cifrata con una chiave che il Mac invia al telefono dentro una connessione cifrata che il relay non può aprire, quindi il relay copia sempre e solo testo cifrato.
Cosa sa di me il relay di Peering?
Identificatori dei dispositivi, il nome del tuo Mac, il piano in uso, l'utilizzo del relay e l'indirizzo di rete da cui si connette ciascun dispositivo. Non vede video, audio, tasti premuti né contenuto degli appunti.