SecuritySécurité
Security (Sécurisé) is one of Tauri's three design principles, aimed first at external — network — threats. This page states honestly what is protected by default, what you must do for a safe deployment, and what Tauri does not do for you. La sécurité (Sécurisé) est l'un des trois principes de conception de Tauri, tournée d'abord vers les menaces externes — le réseau. Cette page dit honnêtement ce qui est protégé par défaut, ce que vous devez faire pour un déploiement sûr, et ce que Tauri ne fait pas à votre place.
The main threat is the network: an attacker reaching the HTTP/HTTPS/FTPS/SSH ports, or a hosting customer whose site is compromised. Tauri is an alpha and has not been independently audited: run it with defence in depth (upstream firewall, minimal exposure and privileges). La menace principale est le réseau : un attaquant qui atteint les ports HTTP/HTTPS/FTPS/SSH, ou un client hébergé dont le site est compromis. Tauri est en alpha et n'a pas fait l'objet d'un audit indépendant : exploitez-le en défense en profondeur (pare-feu en amont, exposition et privilèges minimaux).
1. Protected by defaultProtégé par défaut
Transport & web
- TLS 1.3 only — X25519 key exchange, AES-128-GCM, P-256 server certificates. No fallback to TLS 1.2 or older.TLS 1.3 uniquement — échange de clés X25519, AES-128-GCM, certificats serveur P-256. Pas de repli vers TLS 1.2 ou antérieur.
- HSTS on every HTTPS response (
max-age=300).HSTS sur chaque réponse HTTPS (max-age=300). - Per-source-IP rate limit (burst 50, ~15 new connections/s), applied before the fork and the TLS handshake.Limitation de débit par adresse source (rafale 50, ~15 nouvelles connexions/s), appliquée avant le fork et la négociation TLS.
- Anti-slowloris: 10 s idle timeout, keep-alive capped at 100 requests per connection, and a kernel cap on TCP connections.Anti-slowloris : délai d'inactivité de 10 s, keep-alive plafonné à 100 requêtes par connexion, et plafond de connexions TCP au noyau.
- Bounded request parsing; POST bodies capped at 2 MB; malformed requests are logged in a bounded, sanitised form.Analyse de requête bornée ; corps POST plafonné à 2 Mo ; une requête malformée est journalisée sous une forme bornée et nettoyée.
- Anti-spoofing: a packet arriving from the network with a loopback source (
127.x) or with one of the server's own addresses is dropped, so local calls cannot be impersonated from outside.Anti-usurpation : un paquet venu du réseau avec une source de bouclage (127.x) ou l'une des adresses propres du serveur est rejeté ; un appel local ne peut donc pas être imité depuis l'extérieur. - Hidden files (
.env,.git/,.htaccess…) are never served, and the.htaccessrules that protect an application's private folders are enforced (see Websites).Les fichiers cachés (.env,.git/,.htaccess…) ne sont jamais servis, et les règles.htaccessqui protègent les dossiers privés d'une application sont appliquées (voir Sites web).
Privileges & isolationPrivilèges & isolement
- Per-connection privilege drop: servers open their port as root, then each connection is handled by a process that irreversibly drops to
guest— or to the hosting account that owns the virtual host. The resident PHP daemon drops its privileges the same way once started: it can only switch to a hosting account, never back to root.Abandon de privilèges par connexion : les serveurs ouvrent leur port en root, puis chaque connexion est traitée par un processus qui redescend irréversiblement àguest— ou au compte d'hébergement propriétaire de l'hôte virtuel. Le démon PHP résident abandonne ses privilèges de la même façon une fois démarré : il ne peut que passer à un compte d'hébergement, jamais revenir à root. - Creating a file, a folder or an SQL table — and moving or renaming one into a folder — requires write permission on that folder. A web process cannot place anything in root's or another user's folders.Créer un fichier, un dossier ou une table SQL — et en déplacer ou renommer un vers un dossier — exige le droit d'écriture sur ce dossier. Un processus web ne peut rien déposer dans les dossiers de root ni d'un autre utilisateur.
- Confinement of hosting accounts: an account's PHP, FTPS and SSH sessions see only its home, its backup area, the shared disk and the read-only shared code — never the system disk nor another customer. Disk quotas are enforced.Confinement des comptes d'hébergement : le PHP, les sessions FTPS et SSH d'un compte ne voient que son répertoire, sa zone de sauvegarde, le disque partagé et le code partagé en lecture seule — jamais le disque système ni un autre client. Les quotas disque sont appliqués.
- Shared code (
@wp:,@dp:,@fw:) is read-only by construction, even for root: a compromised site cannot alter the WordPress or Drupal core of the others.Le code partagé (@wp:,@dp:,@fw:) est en lecture seule par construction, même pour root : un site compromis ne peut pas altérer le cœur WordPress ou Drupal des autres. - PHP limits:
memory_limit(128 MB by default) is enforced, and a page is stopped after 60 s.Limites PHP :memory_limit(128 Mo par défaut) est appliqué, et une page est arrêtée au bout de 60 s. - Memory: a process never gets more than 256 MB, and processes as a whole stop at a reserve kept for the system (1/16 of the RAM, between 8 and 256 MB) — a runaway process is refused memory or stopped, the system keeps working. Memory a process frees is returned to the system while it runs.Mémoire : un processus n'obtient jamais plus de 256 Mo, et l'ensemble des processus s'arrête à une réserve gardée pour le système (1/16 de la RAM, entre 8 et 256 Mo) — un processus emballé se voit refuser de la mémoire ou est arrêté, le système continue de fonctionner. La mémoire qu'un processus libère est rendue au système de son vivant.
- Boot escalation whitelist: only a few system programs started by
initcan obtain root. Privileged ports (< 1024) are reserved to root.Liste blanche d'escalade au démarrage : seuls quelques programmes système lancés parinitpeuvent obtenir root. Les ports privilégiés (< 1024) sont réservés à root. - Kernel hardening: W^X / NX and SMEP enabled by default.Durcissement du noyau : W^X / NX et SMEP activés par défaut.
Accounts, updates, outgoing connectionsComptes, mises à jour, connexions sortantes
- Self-service: no password ever travels by e-mail (one-time links, 48 h); pages answer identically whether an account exists or not; a deletion is confirmed from the account's own address, then delayed 7 days with a cancellation link.Libre-service : aucun mot de passe ne circule par courriel (liens à usage unique, 48 h) ; les pages répondent pareil qu'un compte existe ou non ; une suppression est confirmée depuis l'adresse du compte, puis différée de 7 jours avec un lien d'annulation.
- Passwords are salted and slowed down (PBKDF2-HMAC-SHA512, 20,000 rounds); an older hash is converted at the account's next login.Les mots de passe sont salés et ralentis (PBKDF2-HMAC-SHA512, 20 000 tours) ; une empreinte ancienne est convertie à la connexion suivante du compte.
- Server backups (
compteadm sauve-tout) are encrypted with a passphrase of at least 12 characters. Only an encrypted backup carries the accounts' (salted) passwords, so that restored accounts keep them.Les sauvegardes du serveur (compteadm sauve-tout) sont chiffrées par une phrase de passe d'au moins 12 caractères. Seule une sauvegarde chiffrée transporte les mots de passe (salés) des comptes, pour que les comptes restaurés les conservent. - Signed updates:
updatechecks an Ed25519 signature for every manifest entry and refuses anything unsigned or altered.Mises à jour signées :updatevérifie une signature Ed25519 pour chaque entrée du manifeste et refuse tout ce qui n'est pas signé ou est altéré. update,acme,mail,curland PHP's curl fully validate the remote certificate chain (28 trusted root authorities: Let's Encrypt, Google, DigiCert, GlobalSign, Sectigo, Amazon, Microsoft…) and host name; a server that presents no certificate is refused.update,acme,mail,curlet le curl de PHP valident entièrement la chaîne de certificats (28 autorités racines de confiance : Let's Encrypt, Google, DigiCert, GlobalSign, Sectigo, Amazon, Microsoft…) et le nom d'hôte distants ; un serveur qui ne présente aucun certificat est refusé.- Web sessions idle for 30 minutes are invalidated.Les sessions web inactives depuis 30 minutes sont invalidées.
2. Hardening checklistChecklist de durcissement
What to do before exposing a Tauri host: À faire avant d'exposer un hôte Tauri :
- Change the default passwords, root's first (
useradm passwd root …).Changez les mots de passe par défaut, celui de root d'abord (useradm passwd root …). - Filter inbound traffic upstream. Allow only what you serve: 443, 80 (ACME and redirect), 990 and the FTPS passive range if you host customers, 22 only from your administration addresses.Filtrez les flux entrants en amont. N'autorisez que ce que vous servez : 443, 80 (ACME et redirection), 990 et la plage passive FTPS si vous hébergez des clients, 22 seulement depuis vos adresses d'administration.
- Use production certificates (not the default ACME staging) and keep the automatic renewal running — see TLS.Utilisez des certificats de production (pas le staging ACME par défaut) et laissez tourner le renouvellement automatique — voir TLS.
- Configure a relay that requires STARTTLS (port 587) — see Mail.Configurez un relais qui impose STARTTLS (port 587) — voir Mail.
- Run
httpswithstrict-sniif you serve several domains.Lancezhttpsavecstrict-snisi vous servez plusieurs domaines. - Keep the clock right (
ntp_sync): certificate checks and the account tasks depend on it.Gardez l'horloge juste (ntp_sync) : les vérifications de certificats et les tâches des comptes en dépendent. - Keep the system up to date (
update fetch,check,upgrade) and back it up (compteadm sauve-tout, encrypted), keeping the passphrase apart from the backup — without it nothing can be restored.Tenez le système à jour (update fetch,check,upgrade) et sauvegardez-le (compteadm sauve-tout, chiffrée), en gardant la phrase de passe à part de la sauvegarde — sans elle, rien ne peut être restauré.
3. Limits — what Tauri does not doLimites — ce que Tauri ne fait pas
There is no packet filter, no IP allow/deny list and no IP banning in Tauri: the kernel only drops malformed, misaddressed or spoofed (local source) packets. Restrict which hosts and ports can reach the machine upstream — it cannot be done on the host itself. Il n'y a dans Tauri ni filtre de paquets, ni liste d'adresses autorisées ou interdites, ni bannissement d'IP : le noyau ne rejette que les paquets malformés, mal adressés ou usurpés (source locale). Restreignez en amont les hôtes et les ports qui peuvent atteindre la machine — ce n'est pas faisable sur l'hôte lui-même.
- No general CPU limit: a looping script runs until the 60 s page timeout; a CLI script has no time limit unless it sets one.Pas de limite générale de CPU : un script qui boucle tourne jusqu'au délai de 60 s d'une page ; un script lancé en ligne de commande n'a pas de limite de temps s'il n'en pose pas.
- SSH: password authentication only, no host-key fingerprint shown; the
ftpclient does not validate the server certificate.SSH : authentification par mot de passe uniquement, pas d'empreinte de clé d'hôte affichée ; le clientftpne valide pas le certificat du serveur. mail: if the relay does not offer STARTTLS, the session goes in clear.mail: si le relais ne propose pas STARTTLS, la session part en clair.
Tauri gives you strong transport security (TLS 1.3), a strict privilege model with confined hosting accounts, DoS-resistant servers and signed updates out of the box. You are responsible for the network edge (no host firewall), your credentials (change the defaults) and the code you deploy. Treat it as an alpha with a hardened core, not as audited production equipment. Tauri vous offre d'emblée une sécurité de transport solide (TLS 1.3), un modèle de privilèges strict avec des comptes d'hébergement confinés, des serveurs résistants au déni de service et des mises à jour signées. Vous êtes responsable de la bordure réseau (pas de pare-feu hôte), de vos identifiants (changez les valeurs par défaut) et du code que vous déployez. Considérez-le comme une alpha au socle durci, pas comme un équipement de production audité.