E2ee and the web

English version

 

I’m not an expert and i’m not even up-to-date, but i wonder how including end-to-end encryption in a webapp, like corporations such as whatsapp, telegram, protonmail, tutanota and probably many others already do, could not be a bad idea even for less commercial projects like Mastodon, etc., basically for a very simple reason: every time a user’s browser connects to an url, it downloads from the server code (html, javascript, ecc.) that, despite showing a potentially identical interface to the user, can be different and do different things than the code the browser downloaded from the same url the previous time, so there’s no way for third parties to check that code and verify it doesn’t do malicious things, and even without big technical skills a malicious admin of a web server claiming to host a webapp implementing end-to-end encryption can alter it, even just for a short amount of time, so that the server, to make an example, will send to the browser of a single targeted user – let’s call him Pippo -, even just once, code that will make it do things which Pippo doesn’t want it to do, such as sending his private key, on first submission of a new post/message, to a mailbox owned by the admin, which would allow the admin, soon after that, to revert the webapp to its official version, having by then obtained the possibility to decrypt and thus read, since that very moment, all the posts or messages which Pippo will continue to consider accessible only to his recipients, as well as the possibility to impersonate him, without risking any longer Pippo noticing it before he possibly finds himself in big troubles, and maybe even later.

A false sense of security is worse than no security at all, thus i think it would be better to not implement end-to-end encryption in webapps, warning their users that anything they send will be potentially readable by the admins, and reserving end-to-end encryption to “classical” apps which are distributed by safer means like f-droid.

 

Versione in italiano

 

Non sono un espertone e non sono nemmeno aggiornato, ma mi chiedo in che modo implementare la crittografia end-to-end in una webapp, come già fanno aziendone quali whatsapp, telegram, protonmail, tutanota e chissà quante altre più piccole, potrebbe non essere una cattiva idea anche per progetti meno commerciali come Mastodon, ecc., fondamentalmente per un motivo molto semplice: ogni volta che il browser di un utente accede a una url, scarica dal server del codice (html, javascript, ecc.) che, pur mostrando all’utente un’interfaccia potenzialmente identica, può essere diverso e fare cose diverse rispetto al codice che il browser ha scaricato dalla stessa url la volta precedente, quindi non c’è modo per terze parti di controllare quel codice e verificare che non faccia cose cattive, e anche senza grandi conoscenze e capacità tecniche un admino malevolo di un server web che dichiari di ospitare una webapp che implementa crittografia end-to-end può alterarla, anche solo per un breve lasso di tempo, in modo che il server, per fare un esempio, mandi al browser di un singolo utente preso di mira – chiamiamolo Pippo -, anche una volta sola, del codice che gli farà fare cose che Pippo non vorrebbe facesse, come mandare la sua chiave privata a una mailbox dell’admino al primo invio, da parte di Pippo, di un nuovo post/messaggio, ciò che permetterebbe all’admino di ripristinare, subito dopo, la webapp ufficiale, avendo nel frattempo ottenuto la possibilità di decrittare e quindi leggere, da quel momento in poi, tutti i post o i messaggi che Pippo continuerà a presumere accessibili soltanto ai suoi destinatari, come pure quella di impersonarlo, senza più nemmeno il remotissimo rischio che Pippo se ne accorga prima di trovarsi magari in guai seri, e forse anche dopo.

Un falso senso di sicurezza è peggio di nessuna sicurezza, meglio quindi una webapp che non implementa crittografia end-to-end ma avverte gli utenti che qualsiasi cosa inviino tramite la stessa può essere letta dagli admin, riservando la crittografia end-to-end alle app “classiche” distribuite tramite sistemi più sicuri tipo f-droid.

Services offering end-to-end encryption through web sites can’t be trusted

A false sense of security is worse than no security at all

 

Whatsapp, Telegram, Element/Matrix, Protonmail, Tutanota are just the most known and widely used services, among many, offering end-to-end encryption not only through their apps, but also through their web sites.

 

– Can users of these web sites be confident that the people behind these web sites’ servers can’t read their “end-to-end encrypted” contents?

 

No, they can’t.

Continua a leggere Services offering end-to-end encryption through web sites can’t be trusted

Ciao “metaverso” ciao

Ho chiuso i miei account facebook e instagram e per quanto riguarda i social userò solo il fediverso. Zuckerborg lascia la possibilità di annullare la cancellazione degli account sulle sue piattaforme per 30 giorni, e i miei non sono ancora passati, ma a ’sto giro non ci ricadrò, non cederò ai ricatti affettivi di parenti e amic* tipo “eh ma io qui ci ho tutt* lə miə amic* poi come faccio”, “eh ma io non le so usare quell’altre robe lì son complicate e così poi non ci si sente più”: potrebbero iniziare a farsi un account sul fediverso e poi magari fare un post di saluto nel “metaverso” linkandolo, come ho fatto io, e nella stragrande maggioranza dei casi non avrebbero difficoltà a imparare quel poco di diverso all’uso che c’è. Così, in un post di saluto su facebook, ho scritto ciò:

 

Ciao ciccett*, chiudo l’account facebook e instagram e non ci rimetto più piede: facebook fa schifo, lo sappiamo, per tanti motivi. Per i messaggi privati vorrei chiudere anche whatsapp e usare solo signal e xmpp, che già uso, ma tropp* amic* usano ancora solo whatsapp, perciò per ora lo tengo.

Per quanto riguarda la mia presenza più o meno “pubblica” in rete tengo solo il blog, https://bu.noblogs.org, e tre account nel fediverso: due su mastodon (una piattaforma “simile a twitter” nel fediverso), uno dei quali sta qui, https://sociale.network/[mio_nome_e_cognome], mentre il secondo, che uso molto di più, preferisco non linkarlo qui; e un terzo su pixelfed (la piattaforma “simile a instagram” nel fediverso) per postare le foto: https://pixelfed.social/pongrebio

Perché questo post sia visibile ancora per un po’, per poterci salutare e magari se vi va seguirmi nel fediverso, la procedura di disiscrizione da facebook la farò domani.
Qui trovate un motore di ricerca di istanze (nodi) mastodon che consiglia alcune istanze italiane buone, https://mastodon.help/instances/it, e ha una buona guida su mastodon che spiega anche un po’ in generale cos’è il fediverso: https://mastodon.help/it.

Abbracci sparsi :)

 

L’account su sociale.network con nome e cognome me lo sono fatto apposta per non spaventare ai parenti e perché non mi va che quello che uso abitualmente sia troppo riconducibile a me-persona-fisica.

NetworkManager: come cambiare i DNS

Cambiare i DNS con NetworkManager, il “gestore di rete” di gran lunga più usato su Linux, magari per aggirare la censura di qualche sito italiano, è facile.

Per prima cosa si tratta di cliccare con il tasto destro del mouse sull’iconcina di rete che sta nella “system tray” del desktop e, dal menu che compare, cliccare col tasto sinistro su “Modifica connessioni…”.

NetworkManager - Cambiare i DNS - 1

Dalla finestra “Connessioni di rete” che compare bisogna selezionare la connessione che si sta utilizzando, nel mio caso “Ethernet”, e poi cliccare sull’iconcina con l’ingranaggio.

NetworkManager - Cambiare i DNS - 2

Dalla nuova finestra che compare bisogna selezionare la scheda “Impostazioni IPv4”.

Se il “Metodo” è impostato su “Automatico (DHCP)”, bisogna cambiarlo in “Automatico (DHCP) solo indirizzi”. Se invece, come nel mio caso, è impostato su “Manuale”, va già bene così. Nella casella di testo “Server DNS” bisogna specificare i DNS che si vuole usare (se sono più di uno basta separarli con uno spazio, o con virgola e poi spazio), poi cliccare sul pulsante “Salva”.

NetworkManager - Cambiare i DNS - 3

Ora si può chiudere anche la finestra “Connessioni di rete”.

Poi, perché il cambiamento di DNS sia effettivo, bisogna (almeno sul mio sistema), disattivare la connessione in uso cliccando col tasto sinistro sull’iconcina di rete e poi su “Disconnetti”…

NetworkManager - Cambiare i DNS - 4

…per poi riattivarla cliccando di nuovo col tasto sinistro sull’iconcina di rete e poi sul nome della connessione.

NetworkManager - Cambiare i DNS - 5

Ecco fatto.