
Applicazione desktop per registrare un account Signal e collegare Signal Desktop senza bisogno di uno smartphone, utilizzando i protocolli crittografici di Signal per il provisioning sicuro del dispositivo.
Un'applicazione desktop per registrare un account su Signal e collegarlo a Signal Desktop, il tutto senza richiedere uno smartphone.

Questa utility evita la necessità di uno smartphone, ma richiede comunque un modo per ricevere messaggi SMS durante la fase di configurazione. Signal ha recentemente introdotto gli account senza numero, ma questo richiede comunque Android e i servizi di Google Play. È molto probabile che in futuro offriranno opzioni di pagamento alternative.
Scarica l'ultima release!
Ci sono molteplici ragioni per cui questo strumento potrebbe interessarti:
La sicurezza delle tue conversazioni su Signal è tanto bassa quanto la sicurezza dei dispositivi su cui è installato:
Se il tuo dispositivo viene smarrito o rubato quando non è bloccato con il tuo codice di accesso, ovviamente qualcuno potrebbe leggerne i messaggi. Allo stesso modo, le forze dell'ordine sono note per utilizzare strumenti forensi per accedere ai dispositivi sequestrati, rendendo possibile leggere qualsiasi cosa sul dispositivo, inclusi i tuoi messaggi.
Alcune persone non hanno uno smartphone, e dovrebbero poter usare Signal :-)
Lo strumento si registra come dispositivo primario dell'account e collega Signal Desktop come dispositivo secondario. Signal consente cinque dispositivi collegati per account, e questo strumento può aiutarti a collegarli tutti. È utile nelle situazioni in cui vuoi condividere un account Signal con un collega, ad esempio.
Al momento, Signal Desktop richiede un numero di telefono e uno smartphone per configurare un account. Questo potrebbe cambiare in futuro ma fino ad allora, puoi usare questo.
"Presumo che la tua domanda riguardi più o meno la registrazione con numero di telefono che esiste oggi su Signal. Stiamo valutando di aggiungere, si spera più avanti quest'anno, un modo per registrarsi senza numeri di telefono. [...]"
— Ehren Kret, CTO di Signal, 20 luglio 2026
Scarica il file per il tuo sistema dalla pagina delle release:
.dmg e trascina Signal Setup in Applicazioni.AppImage: Rendilo eseguibile (chmod +x Signal_Setup-*.AppImage) ed eseguilo. È pubblicato anche un semplice binario signal-setup-linux-* se preferisci.Le release non sono firmate con un certificato di sviluppatore a pagamento (99 USD all'anno per macOS, anche di più per Windows), e di conseguenza il sistema ti avvisa dopo l'installazione:
macOS mostra "impossibile aprire perché proviene da uno sviluppatore non
identificato". Fai clic con il tasto destro sull'app e scegli Apri, quindi conferma. Devi
farlo solo una volta. Se segnala che l'app è "danneggiata", rimuovi il flag di quarantena del download:
xattr -dr com.apple.quarantine "/Applications/Signal Setup.app".
Windows SmartScreen mostra "Windows ha protetto il tuo PC". Fai clic su Ulteriori informazioni, quindi su Esegui comunque.
cargo build --release
./target/release/signal-setup
Il progetto è un workspace Cargo con due crate: signal-setup-core (la logica di registrazione Signal e di collegamento del dispositivo) e signal-setup (la GUI desktop che dipende da essa). Compilando il workspace si produce il binario signal-setup riportato sopra.
Solo su Linux, alcune librerie di sistema sono utili per GPU/display:
# Ubuntu / Debian
sudo apt install libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev \
libxkbcommon-dev libssl-dev protobuf-compiler
# Fedora
sudo dnf install libxcb-devel libxkbcommon-devel openssl-devel protobuf-compiler
# Arch
sudo pacman -S libxcb libxkbcommon openssl protobuf
Ogni account può essere esportato dalla sua schermata "Manage" come file chiave:
signal-account-<number>.json. Contiene tutto il necessario per agire come dispositivo
primario dell'account, crittografato con una passphrase di tua scelta.
Conservalo come backup, potrai importarlo su un'altra macchina!
I file chiave contengono anche la master key, utile per registrare nuovamente un numero senza attendere la scadenza del lock.
Puoi eseguire lo strumento contro l'ambiente di staging di Signal invece che in produzione, il che è utile per lo sviluppo e i test senza rischiare il tuo account reale:
./target/release/signal-setup --staging
Per completare il passaggio di collegamento del dispositivo, avrai bisogno di un'istanza di Signal Desktop anch'essa connessa al server di staging. Compilare Signal Desktop dal codice sorgente lo fa per impostazione predefinita:
git clone https://github.com/signalapp/Signal-Desktop.git
cd Signal-Desktop
pnpm install
pnpm start
Imposta SIGNAL_SETUP_DEBUG=1 per stampare ogni risposta dell'API di verifica di Signal
(stato e corpo) nel terminale, che è la prima cosa da controllare quando una
registrazione non va a buon fine.
È inoltre disponibile un flag --demo per test completamente offline con dati fittizi (nessun
server necessario). In modalità demo, il codice di verifica 000000 simula un
account idoneo al trasferimento del dispositivo e 111111 un numero bloccato per la
registrazione.
Esistono altri strumenti in grado di fare questo, come l'ottimo signal-cli di AsamK, ma sfortunatamente non forniscono un'interfaccia utente grafica. Una versione precedente di questo strumento lo utilizzava dietro le quinte, ma richiedeva agli utenti di avere una JVM installata per poter eseguire le operazioni.
Invece — e poiché ho pensato che sarebbe stato più semplice — ho colto l'occasione per approfondire la crittografia di Signal.
Ecco una panoramica di alto livello di come funzionano le cose (questa applicazione si registra come dispositivo Signal primario, e poi collega Signal Desktop come dispositivo secondario).
Ecco il flusso:
%%{init: {'theme':'default', 'themeVariables': {'background':'#ffffff'}}}%%
sequenceDiagram
actor User
participant App as App
participant Server as Signal Server
participant Desktop as Signal Desktop
participant Store as Disk + Keyring
Note over App: Step 0: Welcome (if saved accounts)
rect rgb(235,245,255)
Note over User,Server: Phase 1: Request verification code
User->>App: Step 1: enter phone (+1234567890)
App->>Server: POST /v1/verification/session
Server-->>App: session.id (+ captcha_required?)
alt Captcha required
Note over App: Step 2 shown
User->>App: solve captcha, paste it
App->>Server: POST .../session/{id}/code (sms)
else No captcha
App->>Server: POST .../session/{id}/code (sms)
end
Server-->>User: SMS verification code
end