Logiciel sur mesure · Applications desktop

Développement d'applications desktop pour Windows, macOS et Linux

Nous assurons le développement d'applications desktop sur mesure pour Windows, macOS et Linux - lorsque les données ne doivent pas quitter l'ordinateur, que le travail doit se poursuivre sans réseau ou que le logiciel exploite des fichiers et des périphériques locaux. Nous misons sur Tauri 2 et Rust : des installeurs légers, un cœur protégé contre les erreurs de gestion de la mémoire et le chiffrement des données sur le disque.

01Quand choisir le desktop

Quand une entreprise a-t-elle besoin d'une application desktop ?

Une application desktop est un logiciel installé sur l'ordinateur d'un collaborateur, qui fonctionne en local : elle exploite les fichiers, les périphériques et la puissance de calcul de l'ordinateur, et ne se connecte au serveur que lorsque c'est nécessaire. À l'heure des applications web, nous la choisissons en connaissance de cause - lorsque le navigateur ne peut pas offrir ce dont vous avez besoin.

Les données ne doivent pas quitter l'ordinateur

Documents confidentiels, données personnelles ou informations couvertes par le secret professionnel traités en local, dans une base chiffrée, sans envoi vers le cloud.

Travail sans réseau

Laboratoires, ateliers de production, interventions sur le terrain et déplacements - le logiciel fonctionne indépendamment de la connexion.

Fichiers et périphériques locaux

Fichiers volumineux, scanners, imprimantes d'étiquettes, lecteurs et appareils de mesure connectés à l'ordinateur.

Performance

Traitement de grands volumes de données et de documents sans les faire transiter par le réseau ni attendre le serveur.

Si aucune de ces raisons ne s'applique, une application web est généralement un meilleur choix - une seule version pour tous, mise à jour de façon centralisée. Nous vous le dirons honnêtement, même si cela signifie un projet plus modeste.

02Technologie

Développement d'applications desktop sur mesure avec Tauri 2 et Rust

Nous utilisons la même pile technologique dans notre propre produit, SecureWorkspace : nous en connaissons les forces et les limites par la pratique.

Architecture d'une application desktop avec Tauri 2 L'interface de l'application, écrite en TypeScript, fonctionne dans le composant de navigateur intégré au système d'exploitation. Elle communique avec le cœur en Rust uniquement par des appels autorisés dans le modèle de permissions. Le cœur enregistre les données dans une base SQLCipher chiffrée et dans des fichiers chiffrés, conserve les clés dans le magasin d'identifiants du système et se connecte au serveur via une connexion chiffrée. ORDINATEUR DE L'UTILISATEUR Interface TypeScript, WebView Cœur Rust Base locale SQLCipher Clés magasin système Serveur central API dans l'UE permissions TLS
Illustration : les couches d'une application desktop et la frontière des permissions entre l'interface et le cœur.

Légèreté

Tauri utilise le composant de navigateur intégré au système au lieu d'embarquer le sien. Les installeurs sont légers et l'application consomme moins de mémoire.

Un cœur en Rust

Rust élimine des classes entières d'erreurs de gestion de la mémoire, une source fréquente de vulnérabilités dans les logiciels desktop.

Modèle de permissions

L'interface ne peut appeler que les fonctions du cœur et du système explicitement autorisées par la configuration : une faille dans l'interface ne donne pas accès à tout l'ordinateur.

03Chiffrement local

Des données chiffrées sur le disque, des clés hors de portée de l'application

Un ordinateur portable peut être perdu, un disque copié. C'est pourquoi nous protégeons les données de l'application indépendamment du chiffrement de disque assuré par le système :

  • SQLCipher - une base de données locale entièrement chiffrée, et pas seulement certains champs,
  • AES-256-GCM - chiffrement des fichiers et des pièces jointes avec contrôle d'intégrité : toute modification des données chiffrées est détectée,
  • magasin d'identifiants du système - les clés de chiffrement sont conservées par le système d'exploitation, et non dans un fichier de configuration à côté de la base.

Nous définissons les règles de stockage des données avec votre équipe sécurité : quelles données peuvent se trouver sur l'ordinateur, combien de temps elles y restent, ce qui se passe à la déconnexion et comment révoquer l'accès à distance lorsqu'un collaborateur quitte l'entreprise.

Ces décisions alimentent le modèle de menaces de l'application - sa place dans notre cycle de développement est décrite sur la page développement sécurisé (security by design).

04Distribution

Distribution et mises à jour dans l'entreprise

Installeurs signés

Des installeurs pour Windows, macOS et Linux signés avec le certificat de l'éditeur : le système et le service informatique savent d'où vient le logiciel.

Mises à jour sécurisées

Avant d'installer une mise à jour, l'application en vérifie la signature : impossible de lui substituer une version modifiée.

Gestion centralisée

Des paquets prêts à être distribués via les outils de gestion de parc de l'entreprise, avec des paramètres imposés par le service informatique.

Nous définissons le rythme des mises à jour avec le service informatique : certaines entreprises veulent des mises à jour automatiques, d'autres préfèrent tester chaque version sur un groupe pilote. Après le déploiement, nous faisons évoluer et maintenons l'application dans le cadre d'un contrat SLA - y compris lorsque les nouvelles versions des systèmes d'exploitation modifient les exigences en matière de signatures et de permissions.

05Systèmes de l'entreprise

Un logiciel desktop dans l'écosystème de l'entreprise

Une application desktop fonctionne rarement de manière isolée. Le plus souvent, elle :

  • authentifie les utilisateurs avec leurs comptes d'entreprise - via le fournisseur d'identité de l'entreprise (OAuth 2.0, OpenID Connect), sans mot de passe supplémentaire à retenir,
  • synchronise les données avec le serveur - les données choisies arrivent sur l'ordinateur, et les modifications remontent vers le système central une fois la connexion rétablie,
  • récupère les paramètres et les politiques de façon centralisée - le service informatique décide de ce qui est autorisé, et le logiciel l'applique,
  • échange des données avec l'ERP ou la gestion documentaire - via l'API du serveur, et non directement avec la base.

Nous définissons délibérément la frontière entre ce qui se passe sur l'ordinateur et ce qui se passe sur le serveur : les données sensibles qui n'ont pas besoin de quitter l'appareil restent en local, et les opérations qui exigent un contrôle des droits et une piste d'audit passent par le serveur.

Nous concevons le serveur et l'API en même temps que l'application, et si le logiciel doit communiquer avec des systèmes existants, nous appliquons les modèles décrits sur la page intégration de systèmes. Le même backend pourra ensuite servir également une application mobile.

06Tests

Revue de code et tests avant la mise en production

Avec une application desktop, l'attaquant dispose du logiciel sur son propre ordinateur et peut l'analyser à sa guise. C'est pourquoi rien de ce qui protège les données des autres utilisateurs ne repose sur le secret du code de l'application : les droits sont vérifiés par le serveur, et aucun secret ne se retrouve dans l'installeur.

Avant la mise en production, le code de l'application fait l'objet d'une revue de sécurité, manuelle et outillée (SAST et SCA), comme dans notre service d'audit de code source (boîte blanche).

Si l'application communique avec un serveur, nous testons son API comme n'importe quelle autre - avec des comptes de différents rôles et des tentatives de contournement des droits. Le périmètre de ce type de test est décrit sur la page pentest API.

Le résultat : un rapport avec les corrections, que nous déployons avant de livrer la version aux utilisateurs, et un retest (contre-test) qui confirme leur efficacité.

07Exemple

SecureWorkspace : notre produit desktop développé avec Tauri 2

SecureWorkspace est notre produit pour utiliser des outils d'IA en toute sécurité dans l'entreprise, développé sur la pile que nous proposons à nos clients (le produit est en cours de développement).

Questions fréquentes

Pourquoi Tauri plutôt qu'Electron ?

Electron embarque dans chaque application son propre navigateur Chromium : les installeurs sont volumineux et chaque application consomme beaucoup de mémoire. Tauri s'appuie sur le composant de navigateur intégré au système d'exploitation, et la logique de l'application est exécutée par un cœur en Rust. Résultat : des paquets plus légers, une consommation de ressources réduite et un modèle de permissions explicite, qui limite ce à quoi l'interface peut accéder dans le système.

Une seule base de code suffit-elle pour Windows, macOS et Linux ?

Dans la plupart des cas, oui : l'interface et le cœur sont communs, et les différences entre systèmes (chemins de fichiers, gestionnaire de mots de passe, installeurs, signatures) sont traitées dans des parties du code clairement isolées. Nous testons chaque version sur tous les systèmes sur lesquels elle doit fonctionner.

L'application fonctionne-t-elle sans connexion Internet ?

Oui, c'est même l'une des principales raisons pour lesquelles les entreprises choisissent une application desktop. Les données nécessaires au travail sont conservées localement dans une base chiffrée, et la synchronisation avec le serveur - si elle est nécessaire - se fait une fois la connexion rétablie.

Comment mettez-vous à jour l'application sur les postes des collaborateurs ?

Les installeurs et les mises à jour sont signés numériquement, et l'application vérifie la signature avant d'installer une mise à jour. Les mises à jour peuvent se télécharger automatiquement ou être distribuées via les outils de gestion de parc de l'entreprise, selon la politique de votre service informatique.

Pouvez-vous remplacer notre ancien logiciel desktop ?

Oui. Nous commençons par une revue du logiciel actuel et de ses données, puis nous proposons une stratégie : réécriture, remplacement progressif des modules ou migration vers une nouvelle plateforme. Nous les présentons sur la page modernisation legacy.

Sources

  1. Tauri 2 - documentation (architecture, modèle de permissions, distribution) ()
  2. SQLCipher - documentation ()

Mis à jour le

Services associés

Parlons de votre projet ou de votre audit

Décrivez brièvement votre besoin - nous reviendrons vers vous avec une proposition de prochaines étapes. Nous échangeons avec vous en anglais ou en polonais.

ou appelez le +48 575 621 877