Il computer di un amico, guardato e guidato da qui quando lui lo chiede.
Nessuna porta aperta su internet, nessuna password da ricordare, niente da fare per lui:
un doppio clic la prima volta, e mai piu'.
alone del puntatore: inseguimento elastico, cometa in movimento, dissolvenza in entrata e uscita
Come sono collegati
Una stanza privata, non una porta sulla strada
I computer non si raggiungono direttamente: sono tutti e due dietro il router di casa.
Invece di aprire porte verso internet, entrano in una rete privata — ZeroTier — che esiste
solo per l'assistenza e in cui non c'e' nient'altro. Quando i due riescono a parlarsi
diretti lo fanno, e il video non passa da nessuna parte.
Il VPS non vede mai il video: serve la pagina che stai leggendo e i pacchetti degli aggiornamenti.
Se sparisse, l'assistenza continuerebbe a funzionare.
Sul computer dell'amico
Un servizio solo, e niente da vedere
Cosa installa
Sunshine per lo schermo, ZeroTier per la rete, e un servizio che tiene insieme le due cose.
Tutto in silenzio, tutto firmato: nessun avviso dell'antivirus.
Cosa vede l'amico
Una finestra sola, la prima volta, che gli dice quando ha finito. Poi piu' niente:
nessuna icona, nessuna finestra, nessuna password da inventare o ricordare.
Cosa fa il servizio
Ogni mezz'ora rimette a posto quello che si fosse rotto, riferisce come sta il computer
e controlla se c'e' una versione nuova. Se muore, Windows lo rialza.
Aggiornamenti
Le correzioni arrivano da sole
Questa pagina e' il canale: quando pubblico una versione, i computer degli amici
la prendono da qui al giro successivo. Nessun file da rimandare, nessuna telefonata.
Prima di mettere in servizio qualcosa, ogni computer controlla quattro cose:
La firmaIl manifest e' firmato con una chiave che sta solo sul computer di Leonardo. Chi entrasse in questo server puo' cancellare il canale, non puo' spingere codice.
L'improntaIl pacchetto deve corrispondere all'impronta SHA-256 scritta nel manifest firmato.
Il collaudoLa versione nuova deve superare una prova d'avvio prima di sostituire quella in uso.
Il rientroSe dopo l'aggiornamento qualcosa non torna, il computer riprende da solo la versione precedente, che e' rimasta li'.
Il canale viaggia in HTTPS pubblico, separato dalla rete privata: se un domani si
rompesse il collegamento fra i computer, gli aggiornamenti arriverebbero lo stesso e potrebbero ripararlo.
Chi puo' entrare
Due serrature, entrambe in mano a due persone diverse
L'ingresso nella reteIl computer dell'amico chiede di entrare e resta fuori finche' non lo autorizzi tu, riconoscendolo dal suo codice.
Il PIN di associazioneAnche dentro la rete, nessuno vede lo schermo di nessuno senza un'associazione confermata una volta. Il PIN lo consegna l'app al posto dell'amico, ma parte da te.
Quello che non c'e' piu'Nessuna porta di Sunshine aperta su internet, nessun eseguibile che l'antivirus segnala, nessuna password condivisa.
Il banco di Leonardo
Tre comandi, e non di piu'
Pubblicare una versione nuova: la prendono tutti da soli.
python pubblica.py versione 2.1.0
python pubblica.py pubblica --note "cosa cambia"
Preparare il pacchetto per un amico nuovo (poi si autorizza nella rete).
Associarsi a un amico, una volta sola: il PIN non lo detta nessuno.
python associa.py Beppe --indirizzo 10.113.63.170
Perche' e' fatto cosi'
Le due cose che abbiamo cambiato strada facendo
Il rimbalzo su VPS con frpFunzionava, ma Windows Defender lo classifica come PUA:Win32/FRProxy e ne impedisce l'avvio. Sul computer di un amico un avviso di sicurezza e' inaccettabile, e chiedere un'esclusione all'antivirus di casa d'altri non e' una strada.
Tre attivita' pianificateTunnel, agente e sonda separati: quando una non partiva, non lo diceva nessuno. Ora e' un servizio solo — se non parte quello, si vede subito.