
DeadManSwitch en rust avec plusieurs déclencheurs (distant, local et réseau)

Dead Man Switch est une application de sécurité multiplateforme écrite en Rust qui protège automatiquement les données sensibles en cas d'urgence. L'application surveille plusieurs mécanismes de déclenchement et exécute immédiatement des procédures de verrouillage du système lorsqu'elle est activée, notamment le démontage des volumes chiffrés et l'arrêt contrôlé du système.
Modifiez src/config.rs pour personnaliser les réglages :
pub fn default() -> Result<Self> {
Self::new(
"YOUR_TELEGRAM_BOT_TOKEN".to_string(),
3600, // Délai d'expiration du battement de cœur (secondes)
45370, // Port de diffusion réseau
"trigger_dms".to_string(), // Message de déclenchement réseau
"execute".to_string(), // Commande de déclenchement manuel
0x090c, // Identifiant du fabricant USB
0x1000, // Identifiant du produit USB
"auto".to_string(), // Adresse IP Flic (détection automatique)
5551, // Port Flic
)
}
@BotFather sur Telegram/newbotForme de base :
./DeadManSwitch --mode <modes> [--trigger]
--mode : liste de modes séparés par des virgules. Si omis, all est utilisé.--trigger : exécute immédiatement les actions et affiche l'interface d'alerte, sans attendre un déclencheur externe.Modes disponibles :
timer – minuterie de battement de cœur Telegrambot – déclenchement manuel Telegramnet – écouteur de diffusion UDPusb – déclencheur VID/PID USBflic – déclencheur par bouton Flicall – tous les modes ci-dessusExemples :
# Tous les déclencheurs (par défaut)
./DeadManSwitch
# Uniquement battement de cœur Telegram + USB
./DeadManSwitch --mode timer,usb
# Uniquement diffusion réseau
./DeadManSwitch --mode net
# Déclenchement manuel uniquement
./DeadManSwitch --trigger
Se déclenche automatiquement après un délai spécifié sans pointage.
Configuration :
telegram_heartbeat_timeout: 3600 // secondes
Exécution :
./DeadManSwitch --mode timer
Commandes Telegram :
/alive - Réinitialise le compte à rebours/status - Interroge le temps restantComportement :
Interface de contrôle manuel à distance.
Configuration :
Exécution :
./DeadManSwitch --mode bot
Commande :
/dms execute - Activation du déclenchement manuelMécanisme de déclenchement par réseau local.
Configuration :
broadcast_port: 45370
broadcast_message: "trigger_dms"
Exécution :
# Machine protégée
./DeadManSwitch --mode net
# Déclenchement depuis le réseau
echo "trigger_dms" | nc -u -b 255.255.255.255 45370
Activation matérielle à la connexion d'un périphérique.
Identification des identifiants du périphérique :
git clone https://github.com/BlackSnufkin/Rusty-Playground.git
cd Rusty-Playground/USB_mon
cargo run
# Connectez le périphérique et notez les identifiants vendor:product
Configuration :
usb_vendor_id: 0x090c
usb_product_id: 0x1000
Exécution :
./DeadManSwitch --mode usb
Mécanisme d'activation par bouton physique.
Installation du serveur :
Appairage du bouton :
./simpleclient scan
./simpleclient connect <button_address>
Configuration :
flic_ip: "192.168.1.242".to_string() // ou "auto" pour la détection
Exécution :
./DeadManSwitch --mode flic
Activation : Appuyez longuement sur le bouton
ActionExecutor pour démonter et éteindre lors du déclenchement