Blog/Pubblicato: Aggiornato:

Mettiti in prima fila per quando Gaavala arriverà sul Chrome Web Store. Entra in lista d'attesa

Come Gaavala protegge l'audio delle tue riunioni: un'architettura privacy-first

Gaavala invia l’audio delle riunioni direttamente dal browser a Soniox per trascrizione e traduzione. Il backend gestisce account, abbonamenti e altri dati dichiarati, ma non fa da tramite per quell’audio. La cronologia delle trascrizioni resta sul dispositivo per sette giorni. Questa guida spiega i flussi distinti e come verificarli.

L'audio della riunione va browser → Soniox. I nostri server non sono nel percorso.
L’audio della riunione va dal browser a Soniox — nessun server Gaavala sul percorso

Il principio di privacy alla base

La maggior parte degli strumenti di traduzione SaaS segue un flusso di dati familiare:

  1. Il tuo browser cattura l'audio della riunione
  2. L'audio viene caricato sul backend del fornitore
  3. Il backend del fornitore inoltra l'audio a un motore speech-to-text
  4. Le trascrizioni tornano indietro passando dal backend del fornitore
  5. Lungo il percorso, i server del fornitore spesso registrano, mettono in cache o conservano l'audio

Ogni salto di quella catena è un confine di fiducia. Ogni salto è un punto in cui un bug di logging, la fuga di una credenziale, un mandato giudiziario o un ingegnere infedele potrebbero esporre il contenuto della tua riunione. Più sono le parti che toccano l'audio, più diventa difficile dimostrare a un auditor che nessuno l'ha conservato.

Gaavala elimina del tutto il passaggio di inoltro. Il flusso dei dati è questo:

  1. Il tuo browser cattura l'audio della riunione dalla scheda
  2. Il tuo browser apre un WebSocket diretto verso Soniox
  3. L'audio viene trasmesso direttamente su quel WebSocket
  4. Soniox restituisce le trascrizioni direttamente al tuo browser
  5. Il backend di Gaavala non è mai coinvolto

L'estensione Chrome in esecuzione sulla tua macchina è l'unico pezzo del nostro codice che tocca l'audio delle tue riunioni — e non ci invia quell'audio.

Perché abbiamo scelto questa architettura

Quando abbiamo ricostruito Gaavala come estensione Chrome, abbiamo preso una decisione architetturale deliberata: l'estensione avrebbe autenticato gli utenti tramite il nostro backend, gestito lo stato dell'abbonamento e servito i metadati — ma non sarebbe mai stata nel percorso dell'audio. Il ragionamento era lineare:

  • Tenere l’audio fuori dal backend di Gaavala riduce un percorso di elaborazione; non elimina la necessità di valutare il servizio, Soniox, i permessi del browser e le trascrizioni locali. Vanno esaminati anche i flussi di account, fatturazione, campioni vocali e diagnostica.
  • Raggio d'impatto della sicurezza: una violazione su un server che elabora audio è fondamentalmente peggiore di una violazione su un server che elabora metadati testuali. Preferiamo che i nostri sistemi più sensibili trattino i dati meno sensibili.
  • Latenza: ogni salto di inoltro aggiunge tempo di andata e ritorno. Lo streaming diretto dal browser a Soniox elimina un salto intero e ci dà una latenza dei sottotitoli sensibilmente migliore.
  • Costi allineati alla privacy: gestire un nostro proxy audio significherebbe pagare banda e capacità di calcolo su ogni riunione. Non gestirlo fa risparmiare denaro e protegge i clienti. Quando gli incentivi sono allineati, l'architettura tende a restare onesta.

Il flusso dei dati nel dettaglio

Vediamo cosa succede davvero quando avvii la trascrizione in una riunione.

Passaggio 1: autenticazione

Quando accedi a Gaavala per la prima volta, l'estensione usa l'API chrome.identity.launchWebAuthFlow di Chrome per completare un flusso OAuth Authorization Code con Google oppure con Microsoft. Il provider di identità restituisce un codice di autorizzazione al tuo browser, che l'estensione scambia con il nostro backend per un JWT di sessione Gaavala. Quel JWT viene archiviato in chrome.storage.local ed è usato per autenticare le chiamate API successive verso il nostro backend.

Nulla di tutto questo tratta audio. Il flusso OAuth è solo testo — token, claim, campi del profilo.

Passaggio 2: chiave temporanea Soniox

Quando clicchi su "Start" in una riunione, l'estensione chiama l'API del nostro backend per richiedere una chiave temporanea Soniox a breve scadenza. Questa chiave ha tre proprietà importanti:

  • È limitata al solo speech-to-text — nient'altro della superficie API di Soniox
  • Scade in pochi minuti, non in giorni
  • Viene emessa una volta per sessione e non viene conservata sul tuo dispositivo

Il pattern della chiave temporanea è cruciale per la storia della privacy. Se Gaavala distribuisse una chiave API Soniox a lunga durata dentro il bundle dell'estensione, chiunque potrebbe estrarla. Al suo posto emettiamo chiavi usa e getta, coniate su richiesta, legate alla tua sessione autenticata e invalidate poco dopo la fine della sessione.

Il nostro backend registra solo i metadati di questa richiesta — quale utente, a che ora, con quale livello di piano. Non vede alcun audio, perché non è ancora stato catturato alcun audio.

Passaggio 3: cattura dell'audio della scheda

Partecipi alla tua chiamata Microsoft Teams, Zoom, Google Meet o Webex in una scheda di Chrome. L'estensione Gaavala apre il pannello laterale e ti chiede di avviare la cattura dell'audio. Quando confermi, l'estensione usa l'API tabCapture di Chrome — un'API riservata alle estensioni che permette di catturare l'audio della scheda attiva con un'autorizzazione esplicita dell'utente e un indicatore visibile.

Chrome instrada l'audio catturato in un documento offscreen che Gaavala esegue in background. Il documento offscreen è una pagina sandboxed che l'estensione può usare per gestire l'elaborazione audio senza tenere in giro interfacce visibili. Dentro quel documento offscreen, Gaavala apre un MediaStream, lo collega a un AudioContext e lo prepara per lo streaming.

Fatto cruciale, l'audio passa anche per un grafo audio locale che reinstrada il suono verso i tuoi altoparlanti. Questo significa che puoi continuare a sentire la riunione normalmente mentre Gaavala la cattura — nulla viene silenziato o deviato.

Passaggio 4: WebSocket diretto verso Soniox

Il documento offscreen apre poi una connessione WebSocket direttamente verso Soniox. Questa connessione:

  • Usa TLS 1.2 o superiore
  • È autenticata con la chiave temporanea a breve scadenza del Passaggio 2
  • Ha origine dallo stack di rete del tuo browser — i pacchetti vanno dal tuo sistema operativo a Soniox, non a Gaavala

I frame audio catturati dalla scheda vengono codificati in PCM e inviati sul WebSocket. Soniox li elabora in tempo reale e restituisce token di trascrizione sulla stessa connessione. Quei token — frammenti di testo con marca temporale ed etichette degli speaker — arrivano direttamente nel documento offscreen, che li inoltra al pannello laterale per la visualizzazione.

In nessun punto di questo intero ciclo un pacchetto audio delle riunioni raggiunge un server gestito da Gaavala. Puoi verificarlo tu stesso con Chrome DevTools: apri la scheda Network con il filtro WS attivo mentre Gaavala è in esecuzione, e vedrai esattamente un WebSocket — verso un host soniox.com — e zero traffico in uscita verso gaavala.com contenente audio delle riunioni.

Passaggio 5: visualizzazione della trascrizione e riepilogo facoltativo

I sottotitoli compaiono nel pannello laterale e nella finestra sovrapposta. La cronologia delle trascrizioni viene anche conservata per sette giorni nel database locale dell’estensione sul dispositivo, con esportazione ed eliminazione. È testo locale, non una registrazione audio né un archivio cloud.

Quando richiedi un riepilogo AI alla fine di una riunione, il riepilogo viene generato interamente sul tuo dispositivo dall'AI integrata di Chrome (Gemini Nano). Il testo della trascrizione non lascia mai la tua macchina — non viene inviato al backend di Gaavala e non viene inviato ad alcuna terza parte. Il contenuto della riunione, che sia audio o testo, non attraversa in alcun modo il backend di Gaavala; ciò che lo attraversa è elencato nella sezione successiva.

Quali dati vedono i server di Gaavala

Ecco i principali tipi di dati che il nostro backend gestisce, in tutte le funzionalità:

DatoQuandoConservazioneNote
Refresh token di sessione GaavalaAccessoDurata del token — le righe scadute vengono eliminate ogni giornoIl tuo token OAuth Google/Microsoft non viene mai memorizzato
Profilo utente (email, nome)AccessoDurata dell'accountPer fatturazione e assistenza
Stato dell'abbonamentoSempreDurata dell'accountLivello di piano, stato della prova
Registri dei pagamenti (Pro)Quando paghiPer il tempo richiesto dalla normativa fiscale, anche dopo l'eliminazione del tuo accountImporto, imposta, valuta, paese, data e metodo di pagamento, come li comunica il nostro partner di pagamento; i dati della tua carta restano presso il partner di pagamento
Richieste di chiave temporanea SonioxPer sessioneSolo log della richiestaNessun audio
Contatore dei minuti di trascrizionePer sessioneDurata dell'accountRaggruppato per mese, per l'applicazione della quota
Campione di riferimento per il clone vocale (Pro)Solo se ne registri unoFinché non elimini la tua voce o il tuo accountCrittografato (AES-256-GCM), usato solo per costruire la tua voce; non è audio delle riunioni
Segnalazioni di problemi tecniciSolo quando ne invii una180 giorniDati diagnostici che scegli di inviare; il testo della trascrizione è escluso
Lingua dell'interfacciaOgni volta che usi l'estensione dopo aver effettuato l'accessoDurata dell'accountPerché le nostre email ti arrivino nella tua lingua
Email della lista d'attesa (sito web)Solo se ti iscrivi alla lista d'attesaFinché non ci chiedi di cancellarlaCon la lingua della pagina e la fonte della campagna; usata solo per confermare l'indirizzo e annunciare il lancio
Analytics anonimi del sito webSolo dopo che accetti i cookieConservati da Google Analytics, non nel nostro databaseSolo sito web — l'estensione riporta conteggi anonimi di errori privi di qualsiasi ID utente

Ecco l'elenco esatto dei dati che il nostro backend non vede:

  • Audio grezzo della riunione (in qualsiasi formato, in qualsiasi momento)
  • Stream audio compressi delle riunioni
  • Buffer audio delle riunioni o rappresentazioni intermedie
  • Dati biometrici vocali provenienti dalle tue riunioni (l'unica registrazione vocale che conserviamo è il campione per il clone vocale Pro indicato sopra, e solo se lo registri)
  • L'identità degli speaker, oltre agli ID speaker anonimi assegnati da Soniox
  • Il testo della trascrizione — i riepiloghi sono generati on-device; le trascrizioni non lasciano mai la tua macchina

Se un tribunale ordinasse a Gaavala di consegnare l'audio di una riunione specifica, la risposta tecnicamente veritiera sarebbe che non ce l'abbiamo e non possiamo recuperarlo. Non è mai esistito sui nostri sistemi.

Nelle chiamate ricorrenti con clienti, il tuo clone vocale può dare a Speak Mode una voce familiare; la guida spiega registrazione ed eliminazione.

Per controlli e limiti delle risposte solo testuali, consulta la guida all’accessibilità.

Verificalo tu stesso

Uno dei vantaggi di girare come estensione Chrome è che l'intero runtime è ispezionabile. Il tuo team IT può verificare le nostre affermazioni sulla privacy senza credere a una sola parola di questo articolo:

Metodo 1 — Ispezione della rete. Apri chrome://extensions, trova Gaavala, clicca su "service worker" oppure su "inspect views > background page". In DevTools, vai alla scheda Network e filtra per WS (WebSocket). Avvia una riunione. Vedrai aprirsi esattamente un WebSocket, verso un host soniox.com. Nessun audio delle riunioni va verso gaavala.com.

Metodo 2 — Ispezione del manifest. In chrome://extensions, espandi "Details" su Gaavala e passa in rassegna le autorizzazioni. Gli host_permissions dichiarano esattamente quali origini l'estensione può raggiungere. Vedrai gli endpoint Soniox per lo streaming e gli endpoint Gaavala per autenticazione e abbonamento. Non c'è alcuna autorizzazione host con caratteri jolly né alcun accesso di rete non dichiarato.

Metodo 3 — Ispezione del codice. L'estensione include un service worker, un documento offscreen, un pannello laterale e dei content script. Chrome espone tutti questi elementi all'ispezione tramite gli strumenti per sviluppatori. Il tuo team di sicurezza può collegarsi alla background page o al documento offscreen in qualsiasi momento e leggere lo stato a runtime — inclusa la conferma che l'oggetto dello stream audio non viene mai serializzato in una fetch o in una XHR verso il nostro dominio.

Pubblichiamo il manifest e le autorizzazioni host come parte della scheda sul Chrome Web Store, e accogliamo con favore revisioni di sicurezza di terze parti.

Mappatura sulla conformità

GDPR e minimizzazione dei dati

L'articolo 5(1)(c) del GDPR stabilisce il principio di minimizzazione dei dati: i dati personali devono essere "adeguati, pertinenti e limitati a quanto necessario". I dati vocali sono dati personali ai sensi del GDPR, e dati biometrici se usati per l'identificazione.

La verifica della minimizzazione deve distinguere audio inviato a Soniox, dati dell’account e campione vocale facoltativo gestiti da Gaavala e testo sul dispositivo. Questi flussi restano parte della valutazione anche senza un intermediario per l’audio.

Soniox resta comunque nella tua catena di conformità, come fornitore di servizi vocali di cui Gaavala si avvale per contratto: Gaavala detiene l'account Soniox ed emette la chiave a breve scadenza usata dal tuo browser per connettersi, e la nostra Informativa sulla privacy indica Soniox tra le terze parti con cui condividiamo dati. Una DPIA copre quindi Soniox come parte del servizio di Gaavala, non come un fornitore con cui stipuli tu stesso un contratto.

HIPAA e audio contenente PHI

Secondo la guida HHS sui business associate, un fornitore che tratta informazioni sanitarie protette in formato elettronico (ePHI) per conto di un'entità soggetta a HIPAA o di un altro business associate può rientrare in questa qualifica. Quando si configura tale rapporto, sono necessarie clausole BAA adeguate. La guida HHS sul cloud ne spiega l'applicazione ai servizi cloud. Valuta il servizio effettivo, i flussi di dati e gli accordi.

Il backend di Gaavala non riceve mai l'audio delle riunioni, quindi le PHI pronunciate in una riunione non vengono mai archiviate sui server di Gaavala. L'audio delle riunioni viene comunque trasmesso a Soniox ed elaborato lì, dal fornitore di servizi vocali di cui Gaavala si avvale per contratto, quindi una valutazione HIPAA deve coprire quel percorso come parte del servizio di Gaavala — non è un rapporto solo tra te e Soniox. Se generi riepiloghi AI, questi sono prodotti on-device dall'AI integrata di Chrome — il testo della trascrizione resta sulla tua macchina, quindi la funzione di riepilogo non aggiunge alla catena di trattamento delle PHI né i server di Gaavala né un altro fornitore.

Rischio fornitori SOC 2

Il criterio CC9.2 dei Trust Services Criteria dell'AICPA riguarda la valutazione e la gestione dei rischi associati a fornitori e partner commerciali. La valutazione dipende dal sistema, dai servizi e dagli impegni definiti, nonché dal ruolo del fornitore in tale perimetro.

Nell'architettura di Gaavala, il tuo browser si connette direttamente a Soniox, ma il rapporto con il fornitore passa per Gaavala: Gaavala detiene l'account Soniox, quindi il tuo registro dei rischi fornitori elenca Soniox come sub-responsabile del trattamento di Gaavala per il riconoscimento vocale, non come un fornitore con cui stipuli tu stesso un contratto. Ciò che la connessione diretta restringe è il perimetro proprio di Gaavala: i nostri server gestiscono dati dell'account come identità, fatturazione e utilizzo, più il campione per il clone vocale di un utente Pro, se ne registra uno — non l'audio delle riunioni, e non il testo della trascrizione o del riepilogo, che non lascia mai il computer dell'utente.

Perché il formato dell'estensione Chrome conta

Molte delle garanzie di privacy qui sopra dipendono dal fatto che Gaavala giri come estensione Chrome con un pattern di rete diretto verso il fornitore. Abbiamo preso in considerazione, e scartato, diverse alternative:

  • Proxy audio lato server: semplice da implementare, ma ci costringerebbe a gestire l'audio di ogni cliente sulla nostra infrastruttura. È esattamente ciò che volevamo evitare.
  • Web app con STT integrato: catturare l'audio della scheda da una pagina web richiede getDisplayMedia, che mostra all'utente un selettore a livello di sistema operativo a ogni sessione e vincola l'estensione alla scheda che sceglie. Peggio ancora, non esiste un modo affidabile per una pagina web di mantenere uno stream audio in background mentre l'utente interagisce con altre schede.
  • App desktop nativa: ci darebbe più controllo, ma aggiungerebbe attrito all'installazione, costi di firma e oneri di sviluppo specifici per sistema operativo. E comunque non eliminerebbe il nostro ruolo di responsabile del trattamento dell'audio, a meno di stare molto attenti — il che significa reinventare tutti gli stessi problemi.

Solo il formato dell'estensione Chrome ha reso possibile l'architettura della privacy che volevamo. tabCapture, i documenti offscreen e il modello del service worker di Manifest V3 insieme permettono all'estensione di acquisire l'audio delle riunioni sulla macchina dell'utente, di trasmetterlo in streaming tramite una connessione diretta al motore speech-to-text e di mantenere lo stato in background necessario per le riunioni lunghe — senza instradare l'audio delle riunioni attraverso di noi.

Le cose che dobbiamo comunque fare bene

L'architettura della privacy non finisce con "non tocchiamo l'audio delle riunioni". Ci sono preoccupazioni adiacenti che prendiamo altrettanto sul serio:

  • Coniazione delle chiavi temporanee: le chiavi Soniox a breve scadenza che coniamo potrebbero essere abusate se il nostro backend le coniasse per un attaccante. Autentichiamo ogni richiesta con il tuo JWT, applichiamo un rate limit all'emissione delle chiavi e registriamo le anomalie.
  • Aggiornamenti dell'estensione: una nuova versione dell'estensione potrebbe in teoria cambiare il pattern di rete. Versioniamo il manifest, pubblichiamo i changelog e il Chrome Web Store mostra qualsiasi nuova autorizzazione prima che un aggiornamento venga installato.
  • Testo dei riepiloghi: i riepiloghi sono generati interamente on-device dall'AI integrata di Chrome (Gemini Nano), quindi la trascrizione non raggiunge mai il nostro backend — nell'architettura attuale questo rischio non esiste. Se anche l'elaborazione AI locale è più di quanto una determinata riunione possa tollerare, la funzione di riepilogo può semplicemente restare inutilizzata; nient'altro dipende da essa.
  • Campione di riferimento per il clone vocale (Pro): se crei un clone personale della tua voce, il tuo campione di due minuti viene archiviato crittografato (AES-256-GCM) sui server di Gaavala, usato solo per costruire la tua voce ed eliminato su richiesta — vedi l'Informativa sulla privacy.
  • Richieste legali: ci impegniamo pubblicamente a rispondere alle richieste legali solo per i dati che effettivamente deteniamo. Per l'audio delle riunioni, la risposta sarà sempre "non ce l'abbiamo".

Confronto tra gli strumenti di traduzione delle riunioni

Confronta separatamente chi riceve l’audio, dove e per quanto tempo conserva il testo e se lo usa per addestrare modelli. Gaavala invia l’audio a Soniox e conserva la cronologia locale per sette giorni; questo non stabilisce le politiche di altri prodotti.

Zoom dichiara di non usare le comunicazioni dei clienti per addestrare modelli di IA propri o di terzi. Controlla separatamente conservazione, funzioni attive e impostazioni aziendali: addestramento e archiviazione sono questioni diverse.

La privacy è il default, non un livello a pagamento

La versione gratuita di Gaavala ti dà la stessa architettura diretta verso Soniox, la stessa diarizzazione degli speaker, la stessa copertura di 60 lingue. Pro sblocca 120 minuti al giorno, Speak Mode e la clonazione vocale — non la privacy. Non crediamo che gli utenti attenti alla privacy debbano pagare di più per tenere al sicuro i propri dati.

Se finora la tua organizzazione ha respinto gli strumenti di traduzione delle riunioni perché la conformità ha detto no ai server dell'azienda che sviluppa lo strumento, interposti tra le tue riunioni e il motore speech-to-text, Gaavala è pensato proprio per questo caso. La pipeline è progettata perché i tuoi team legali, di sicurezza e di conformità abbiano meno cose da revisionare, non di più.

Entra in lista d'attesa

Prova gratuita una tantum: 5 minuti di trascrizione, non si rinnova mai. Senza carta di credito. Nessuna registrazione sul sito.


Articoli correlati