
Application de bureau pour enregistrer un compte Signal et lier Signal Desktop sans nécessiter de smartphone, en utilisant les protocoles cryptographiques de Signal pour l'approvisionnement sécurisé des appareils.
Une application de bureau pour enregistrer un compte Signal et le lier à Signal Desktop, le tout sans nécessiter de smartphone.

Cet utilitaire évite d'avoir besoin d'un téléphone intelligent, mais nécessitera tout de même un moyen de recevoir des SMS pendant la phase de configuration. Signal a récemment introduit les comptes sans numéro, mais cela nécessite toujours Android et les services Google Play. Il est fort probable que des options de paiement alternatives soient proposées à l'avenir.
Téléchargez la dernière version !
Il existe plusieurs raisons pour lesquelles cet outil pourrait vous intéresser :
La sécurité de vos conversations Signal est aussi faible que celle des appareils sur lesquels elle est installée :
Si votre appareil est perdu ou volé alors qu'il n'est pas verrouillé par votre code, quelqu'un pourrait bien sûr lire les messages qu'il contient. De même, les forces de l'ordre sont connues pour utiliser des outils forensiques afin de pénétrer dans les appareils saisis, ce qui permet de lire tout ce qui s'y trouve, y compris vos messages.
— Sécurité des groupes Signal, Freedom of the Press Foundation
Certaines personnes n'ont pas de smartphone, et elles devraient pouvoir utiliser Signal :-)
À l'heure actuelle, Signal Desktop nécessite un numéro de téléphone et un smartphone pour configurer un compte. Cela pourrait changer à l'avenir mais en attendant, vous pouvez utiliser ceci.
« Je suppose que votre question concerne en quelque sorte l'inscription par numéro de téléphone qui existe sur Signal aujourd'hui. C'est quelque chose que nous étudions, espérons-le pour plus tard cette année, en ajoutant un moyen de s'inscrire sans numéro de téléphone. [...] »
— Ehren Kret, CTO de Signal, 20 juillet 2026
Téléchargez le fichier correspondant à votre système depuis la page des versions :
.dmg et glissez Signal Setup dans Applications.AppImage : Rendez-le exécutable (chmod +x Signal_Setup-*.AppImage) et lancez-le. Un binaire simple signal-setup-linux-* est également publié si vous préférez.Les versions ne sont pas signées avec un certificat de développeur payant (99 USD par an pour macOS, encore plus pour Windows), et par conséquent le système vous avertit après l'installation :
macOS affiche « ne peut pas être ouvert car il provient d'un développeur
non identifié. » Faites un clic droit sur l'application et choisissez Ouvrir, puis confirmez. Vous ne
devez le faire qu'une seule fois. S'il indique que l'application est « endommagée », supprimez le drapeau de quarantaine du téléchargement : xattr -dr com.apple.quarantine "/Applications/Signal Setup.app".
Windows SmartScreen affiche « Windows a protégé votre PC. » Cliquez sur Plus d'infos, puis sur Exécuter quand même.
cargo build --release
./target/release/signal-setup
Le projet est un workspace Cargo avec deux crates : signal-setup-core (la
logique d'enregistrement Signal et de liaison d'appareil) et signal-setup (l'interface graphique de bureau qui en dépend). La compilation du workspace produit le binaire signal-setup ci-dessus.
Sur Linux uniquement, quelques bibliothèques système sont utiles pour le GPU/affichage :
# 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
Vous pouvez exécuter l'outil contre l'environnement de staging de Signal plutôt que la production, ce qui est utile pour le développement et les tests sans risquer votre vrai compte :
./target/release/signal-setup --staging
Pour terminer l'étape de liaison d'appareil, vous aurez besoin d'une instance de Signal Desktop également connectée au serveur de staging. Compiler Signal Desktop depuis les sources le fait par défaut :
git clone https://github.com/signalapp/Signal-Desktop.git
cd Signal-Desktop
pnpm install
pnpm start
Un drapeau --demo est également disponible pour des tests entièrement hors ligne avec de fausses données (aucun
serveur nécessaire).
Il existe d'autres outils capables de faire cela, comme l'excellent signal-cli d'AsamK, mais malheureusement ils ne fournissent pas d'interface graphique. Une version précédente de cet outil l'utilisait sous le capot, mais nécessitait que les utilisateurs aient une JVM installée pour exécuter les choses.
À la place — et parce que je pensais que ce serait plus facile — j'ai profité de l'occasion pour plonger en profondeur dans la cryptographie de Signal.
Voici un aperçu de haut niveau du fonctionnement (cette application s'enregistre comme appareil Signal principal, puis lie Signal Desktop comme appareil secondaire).
Voici le déroulement :
%%{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
rect rgb(235,255,235)
Note over User,Server: Phase 2: Verify & register account
User->>App: Step 3: enter 6-digit code
App->>Server: PUT .../session/{id}/code {code}
Note over App: Generate keys: ACI/PNI identity,<br/>signed pre-keys, Kyber PQ keys,<br/>master/profile keys, password
App->>Server: POST /v1/registration (account attrs + keys)
alt 409 Device transfer available
Server-->>App: 409 / DeviceTransferAvailable
Note over App: warn, retry skipping device transfer
else Success
Server-->>App: registered
App->>Store: save metadata (disk) + secrets (keyring)
end
end