Ciao a tutti, pensavo di andare avanti nel progetto di diffusione della
pratica di federazione dei social network mettendo su un server
ActivityPub "didattico", nel senso che gli utenti invieranno e
riceveranno messaggi scrivendo direttamente le attività.
Mi piacerebbe però andare un po oltre, vi spiego nel seguito la mia idea.
Oggi come oggi l'invio di un messaggio da un utente alice che ha un
account sul sever S ad un utente bob che ha un account sul server R
funziona come segue:
P1. alice invia il messaggio nella propria outbox su S
P2. S invia quindi questo messaggio al server R sulla inbox di bob (o,
se disponibile sulla sharedInbox di R)
P3. bob legge i messaggi ricevuti sulla propria inbox residente su R.
Questo processo è spiegato (abbastanza male a dire il vero) nella
sezione 1. Overview del documento di specifica di ActivityPub
https://www.w3.org/TR/activitypub/ .
Nelle implementazioni attuali si è diffusa la buona (ne siamo sicuri?)
pratica di accettare nelle inbox solo messaggi firmati con la chiave
privata dell'utente mittente (alice nel caso specifico), utilizzando
HTTP Message Signatures, si vedano a tal proposito
https://www.w3.org/wiki/SocialCG/ActivityPub/Authentication_Authorization#Signing_requests_using_HTTP_Signatures
e
https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-message-signatures
Questa operazione di firma è attualmente realizzata dal server mittente
(nell'esempio, S) che deve quindi detenere la chiave privata dell'attore
mittente.
P1. alice invia il messaggio m nella propria outbox su S
P2. S firma il messaggio m con la chiave privata di alice e lo invia al
server R sulla inbox di bob (o, se disponibile sulla sharedInbox di R)
P3. il messaggio viene accettato da R perché il mittente del messaggio
m, alice, corrisponde alla firma del messaggio. Si noti che R può
verificare la firma perché conosce la chiave pubblica di alice.
P4. bob legge i messaggi ricevuti sulla propria inbox residente su R.
Nella pratica i passaggi P1 e P2 possono essere condensati lasciando che
il mittente invii direttamente il messaggio sulla inbox del ricevente.
L'esempio sopra diventa così
In realtà i passaggi P1 e P2 possono essere condensati lasciando che il
mittente invii direttamente il messaggio sulla inbox del ricevente.
P1-2. alice invia il messaggio m, firmandolo con la propria chiave
privata, al server R sulla inbox di bob (o, se disponibile sulla
sharedInbox di R)
P3. il messaggio viene accettato da R perché il mittente del messaggio
m, alice, corrisponde alla firma del messaggio.
P4. bob legge i messaggi ricevuti sulla propria inbox residente su R.
Con questo approccio non abbiamo bisogno che le chiavi private degli
utenti risiedano su un server. A questo punto vi chiedo: qualcuno ha
esperienze di firma RSA in javascript?
A proposito di Little Activity Pub, ho creato un repository (ancora
vuoto su github)
https://github.com/cristianolongoodhl/LittleActivityPub
Grazie in anticipo a chiunque voglia collaborare.
On 16/02/23 18:13, Cristiano Longo wrote:
> cristianolongo@??? has invited you to Mini-workshop su
> ActivityPub - abitare il fediverso senza intermediazioni
> Title: Mini-workshop su ActivityPub - abitare il fediverso senza
> intermediazioni
> Location: https://vc.autistici.org/ActivityPub20230228
> When: martedì 28 febbraio 2023 21:00 – 22:00
>
>
>
>
> Organizer:
> cristianolongo@???
> Description:
> Buongiorno a tutti, mi pregio di invitarvi ad un piccolo incontro
> online che sto tenendo sul protocollo ActivityPub.
>
> ActivtyPub <https://www.w3.org/TR/activitypub/> è un protocollo
> /aperto/ prodotto dal W3C per il social networking /decentralizzato/.
> Utilizzando ActivityPub due o più server sul web possono /federarsi/
> al fine di far comunicare tra loro i rispettivi utenti. Basandosi su
> questo concetto di federazione, sono stati realizzati svariati servizi
> (Mastodon, Friendica, Nextcloud, Mobilizon, PeerTube, ...) installati
> su più di 5000 server, che insieme costituiscono il cosiddetto
> /fediverso/. Il fatto che ActivityPub sia un protocollo aperto
> permette a chiunque di realizzare un proprio server e di sperimentare
> diverse modalità di partecipazione al fediverso.
>
> Giorno *28 Febbraio 2023 alle 21:00* ci incontreremo online in un
> workshop tecnico nel quale verranno mostrate le principali
> funzionalità di ActivityPub e verrà data una dimostrazione pratica su
> come realizzare il proprio server.
>
> Link dell'evento
> https://www.opendatahacklab.org/src/viewArticle.php?url=..%2Fsitedata%2F20230216170347275528.md
>
> Link per la riunione
> https://vc.autistici.org/ActivityPub20230228
>
>
>
>
>
> Attendees:
>
> *
> lifeoutoffb@???
> *
> mastodonsiciliae@???
>
>
>
>
>
> _______________________________________________
> Lifeoutoffb mailing list
> Lifeoutoffb@???
> https://www.autistici.org/mailman/listinfo/lifeoutoffb