Comment créer une application de messagerie vraiment sécurisée similaire à Signal ?

Publié: 2021-10-05

La confidentialité et la sécurité des communications en ligne sont des sujets brûlants de nos jours, et pour une raison. Puisque nous savons comment créer une application cryptée , nous aimerions partager notre expérience et offrir des conseils dans cet article. Nous parlerons de l'état actuel de l'industrie, des méthodes de cryptage et des risques possibles. Pour une estimation de prix, faites défiler jusqu'à la fin de l'article.

Que s'est-il passé?

Début 2021, WhatsApp, l'application de messagerie la plus populaire au monde, a déployé ses nouvelles conditions d'utilisation. Ils ont causé tout un tollé, en partie à cause de la confusion. Après cela, le PDG de Tesla, Elon Musk, qui est un critique bien connu de Facebook (WhatsApp appartient à Facebook), a suggéré que ses 42,5 millions de followers sur Twitter passent à Signal, un messager auparavant peu connu.

À la suite de ce tweet, Signal – dont le système de cryptage utilisé par WhatsApp lui-même , soit dit en passant – a connu une augmentation du nombre d'utilisateurs. Cette augmentation était si importante que les serveurs avaient du mal à faire face. Les développeurs de Signal ont réussi à gérer la situation, mais cela a montré que la demande de systèmes de messagerie sécurisés est en augmentation. Maintenant, tout le monde veut savoir comment créer une application comme Signal. Ce qui nous amène à cet article.

Qu'est-ce que cela signifie d'avoir une messagerie instantanée sécurisée ?

La plupart des applications de messagerie instantanée utilisent aujourd'hui un cryptage de bout en bout. Qu'est-ce que c'est? Voici un schéma d'une architecture d'application de chat à titre d'exemple :

chiffrement de bout en bout

En termes simples, un messager typique comporte trois parties principales interconnectées :

  • L'appareil de l'expéditeur

  • Un serveur

  • L'appareil du destinataire

Un message est envoyé par un expéditeur à un destinataire via un serveur. Sans cryptage, ce message sera transmis sous forme de texte brut et pourra donc être lu par toute personne y ayant accès à tout moment du parcours. Avec le chiffrement, le message est transformé du texte brut en texte chiffré - chiffré avec une clé - pour le transfert, puis retransformé (déchiffré) sur l'appareil du destinataire , avec une clé appariée.

Le chiffrement de bout en bout signifie que les clés de chiffrement sont stockées aux extrémités, c'est-à-dire sur les appareils des utilisateurs, plutôt que sur le serveur. Cela fait en sorte que personne, à l'exception de l'expéditeur et du destinataire, ne puisse lire les messages . Même le fournisseur de services propriétaire du serveur n'y a pas accès. Pour pirater ces messages, un pirate doit accéder aux appareils des utilisateurs, car pirater le serveur du fournisseur de services est peu utile.

Le point faible du chiffrement de bout en bout est sa susceptibilité à une attaque dite de l'homme du milieu (MITM) . Les pirates informatiques qualifiés du MITM peuvent pirater la clé publique stockée sur un serveur et configurer le système pour reconnaître le pirate informatique en tant que destinataire légitime, permettant au pirate informatique d'écouter une conversation et même d'y participer à la place du destinataire prévu.

Pour lutter contre les attaques MITM , les développeurs de Signal ont encore amélioré le cryptage de bout en bout de leur protocole avec un algorithme à double cliquet. Cet algorithme crée des clés de session en plus des clés publiques et privées créées lorsque les utilisateurs installent l'application. Des clés de session sont créées pour chaque message envoyé et elles s'autodétruisent lorsque la session est terminée (c'est-à-dire lorsque le message est reçu), ce qui empêche un pirate de déchiffrer tous les messages s'il parvient à obtenir la clé pour une session.

WhatsApp utilise un cryptage de bout en bout pour tous ses messages. En fait, il utilise le propre protocole de cryptage de Signal. Alors, quel est le problème avec ça maintenant?

Différentes approches du chiffrement de bout en bout

Différentes approches du chiffrement de bout en bout

Il est vrai que WhatsApp ne peut pas espionner le contenu de vos messages et ne peut pas écouter vos appels in-app. Cependant, la version du protocole de cryptage de Signal que WhatsApp utilise ne crypte que le contenu des messages . Cela signifie que WhatsApp - et, par extension, Facebook et toute personne avec qui ils décident de partager les informations - peuvent voir à qui vous parlez, quand et d'où. Ces métadonnées peuvent révéler des informations très personnelles sur tous les participants à une conversation.

Dans le même temps, l'application Signal utilise un protocole mis à jour qui code également les métadonnées, et personne, pas même les propriétaires de l'application, ne peut les décoder sans accès direct aux appareils des utilisateurs .

En outre, conformément à la politique de confidentialité de Signal, presque aucune métadonnée n'est stockée de manière permanente sur leurs serveurs , uniquement le temps nécessaire à la réception d'un message. Ensuite, tout sauf la date de la dernière connexion de l'utilisateur est supprimé.

La seule autre application de messagerie qui fait cela est Telegram. Cependant, dans Telegram, le cryptage de bout en bout n'est appliqué qu'en mode secret et pas à tous les chats par défaut. Les messages généraux ne sont pas bien cryptés sur Telegram. Au moins Telegram refuse de partager de telles informations avec quiconque, qu'il s'agisse de gouvernements ou d'annonceurs.

Aujourd'hui, la sécurité des applications de messagerie est un sujet énorme - l'incapacité ou la réticence d'un messager à partager les informations des utilisateurs avec les gouvernements se heurte souvent à des limitations et des interdictions. Telegram, par exemple, a été interdit en Russie, la patrie de son créateur ; les Émirats arabes unis ont interdit tous les services VoIP n'appartenant pas à l'État. En réponse, partout dans le monde, les gens exigent des moyens de communication plus sûrs et le marché des applications de messagerie mobile sécurisées se développe .

Alors comment faire une messagerie sécurisée ?

conception d'application de messagerie sécurisée

La plupart des gens utilisent au moins un messager, probablement plusieurs, et l'ensemble de fonctionnalités de base d'une application de messagerie ne vous surprendra guère. Nous serons donc brefs dans cette section. Voici un tableau des fonctionnalités d'une solution de chat sécurisé :

Caractéristiques La description

Intégration

Présentez brièvement votre application ; plus c'est court, mieux c'est, mais rendez-le compréhensible.

S'inscrire Se connecter

Un compte de messagerie est généralement lié à un numéro de téléphone.

Des profils d'utilisateurs

Un profil stocke les informations personnelles d'un utilisateur et des liens vers des fonctionnalités importantes telles que les contacts, les paramètres et les FAQ.

Paramètres

Autorisez les utilisateurs à ajuster le messager à leur convenance.

Notifications

Dans une application de messagerie, il est essentiel d'avoir un système fiable pour les notifications instantanées.

Chats textuels

Une application de messagerie moderne est requise pour prendre en charge à la fois les discussions en tête-à-tête et les discussions de groupe.

Transfert de fichier

Les utilisateurs doivent pouvoir échanger des messages texte ainsi que partager des images et des documents.

Chats/appels vocaux

Une fonctionnalité VoIP est aussi importante aujourd'hui que l'envoi de SMS. Un son de qualité nécessite une connexion stable, même avec des vitesses Internet lentes.

Messages autodestructeurs

Même avec le protocole Signal, si quelqu'un met la main sur le téléphone d'un utilisateur, il peut voir tous les messages précédents à moins que les utilisateurs ne les suppriment. Vous pouvez ajouter une option permettant aux utilisateurs de définir une minuterie pour détruire les messages et/ou les fichiers multimédias.

Synchroniser

La plupart des gens ont plusieurs appareils sur lesquels des applications de communication sont installées. Pour que les utilisateurs puissent basculer facilement entre les appareils comme bon leur semble, vous devrez fournir une fonction de synchronisation.

Authentification en deux étapes

Pour mieux protéger les données des utilisateurs en cas de vol d'un appareil, proposez une authentification en deux étapes via une empreinte digitale, un mot de passe, un code PIN ou un code ou un lien de vérification.

Si vous souhaitez créer une application de messagerie peer-to-peer qui se démarque de la foule, tenez compte de ces fonctionnalités :

  • Autocollants et GIF. Tous les autres messagers intègrent aujourd'hui le service GIF populaire Giphy dans son interface pour compléter les émoticônes. Les autocollants sont devenus populaires lorsque Telegram a commencé à les proposer gratuitement (par opposition à Viber, par exemple, où seuls certains autocollants sont gratuits).

  • Discussions secrètes/privées. Que vous cryptiez ou non les métadonnées de vos utilisateurs, dans la réalité orageuse d'aujourd'hui, il pourrait devenir l'argument de vente de votre application d'avoir des chats en voie de disparition ou verrouillables. Par exemple, Telegram propose des discussions secrètes qui disparaissent automatiquement si vous vous déconnectez de Telegram sur votre appareil. Ces discussions ne sont pas stockées sur les serveurs cloud de Telegram et ne peuvent donc pas être sauvegardées ou synchronisées même si vous êtes connecté sur plusieurs appareils.

  • Chat vidéo. En 2020, avec un nombre écrasant de personnes contraintes de travailler à distance en raison de la pandémie, les outils de visioconférence ont connu une énorme augmentation de popularité. Et beaucoup ont déploré le manque d'appels vidéo - en tête-à-tête et en groupe - dans les messageries populaires existantes. Ce n'est en aucun cas une fonctionnalité indispensable, mais elle sera très certainement populaire parmi les utilisateurs.

Lire la suite : Comment créer une application similaire à SnapChat ?

Comment sécuriser une application de messagerie

L'arrière-plan est l'endroit où la magie opère dans les messagers. Les spécialistes backend sont responsables de la sécurité et de la fiabilité de votre application de chat, car ce sont eux qui savent crypter les messages.

Il existe plusieurs façons de mettre en œuvre un chiffrement de bout en bout et de sécuriser une application de communication . Habituellement, les messages cryptés sont stockés sur les serveurs d'un messager - les serveurs cloud sont plus sécurisés et donc recommandés à cette fin - et les clés de décryptage ne sont disponibles que sur les appareils des utilisateurs pour éviter une violation de données en cas de piratage des serveurs.

Il est également possible de renoncer complètement au stockage des messages sur vos serveurs et de les stocker sur les appareils des utilisateurs. Mais cela signifie que vos utilisateurs ne pourront pas restaurer l'historique de leurs messages au cas où les appareils sur lesquels ils sont connectés seraient perdus ou s'ils suppriment l'application. La synchronisation des messages entre les appareils sera également impossible.

Pour créer une application de messagerie sécurisée comme Signal, vous pouvez en fait utiliser l'API de messagerie cryptée de Signal lui-même . Le protocole de cryptage open source de Signal est le plus populaire parmi les développeurs qui créent des messagers, car il est constamment revu et audité par des pairs. Au moment de la rédaction de cet article, les messagers suivants utilisent le protocole de Signal pour crypter le contenu de leurs messages :

  • WhatsApp
  • Facebook Messenger (chats secrets uniquement)
  • Skype (conversations privées uniquement)
  • Messages Google pour Android (SMS)

Telegram utilise son propre algorithme de cryptage AES symétrique 256 bits appelé MTProto pour les conversations secrètes. Cet algorithme est cependant à code source fermé, pour lequel Telegram a été largement critiqué.

Coût pour créer une application de messagerie sécurisée

Une équipe pour créer une application de messagerie sécurisée

Le coût de création d' une application dépend fortement du temps nécessaire au développement . En ce qui concerne le nombre de fonctionnalités, les messagers ne semblent pas trop complexes ; Cependant, le back-end à lui seul d'une application de messagerie bien cryptée peut prendre environ 520 heures à créer .

Les options de langage de programmation habituelles pour un serveur principal de messagerie sont Elixir ou Erlang - Ruby on Rails n'est pas un bon choix pour une grande quantité de données sous forme de messages texte, de médias et d'appels audio/vidéo. WhatsApp utilise Erlang, tandis qu'Elixir est employé par Discord.

Lire la suite : Le rôle et la valeur des chefs de projet dans le processus de développement d'applications .

Chez Mind Studios , nous avons développé une application de messagerie avec un back-end basé sur Elixir. Cependant, Elixir lui-même est basé sur Erlang avec un peu de Ruby mélangé, donc un développeur Elixir expérimenté peut également écrire du code en Erlang.

Voici notre point de vue sur le temps nécessaire au développement d'une application de messagerie sécurisée :

  • Analyse commerciale et création d'un cahier des charges — 96+ heures

  • Conception UI/UX — 168+ heures

  • Application mobile iOS côté client : plus de 450 heures pour un MVP avec les fonctionnalités les plus essentielles

  • Développement backend — 520+ heures

  • Test de l'application iOS — ~ 240 heures

Le développement Android prend un peu moins de temps que le développement iOS, mais les tests prennent plus de temps en raison de la plus grande variété d'appareils.

Avec cette estimation approximative, le coût pour créer une application de chat vraiment sûre commencera à 51 590 $ et augmentera avec des fonctionnalités supplémentaires.

Conclusion

Les messagers sécurisés sont exceptionnellement importants et la demande pour eux est élevée aujourd'hui et le sera encore demain. Mais la concurrence aussi. Toutes les entreprises ne peuvent pas créer des applications de messagerie cryptées. Pour développer une application de messagerie instantanée sécurisée comme Signal, vous aurez besoin de développeurs expérimentés dans ce créneau .

Vous devrez également suivre les leaders de l'industrie en matière de conception. L'application Signal est simple et n'est pas réputée pour son intuitivité, mais elle séduit les utilisateurs qui se soucient plus de leur vie privée que des cloches et des sifflets. WhatsApp et Telegram, en revanche, ont l'air sophistiqués et sont exceptionnellement intuitifs en plus d'être sécurisés (bien que leur sécurité ne soit peut-être pas au même niveau que Signal, elle reste impressionnante). Donc, pour briller de mille feux dans ce créneau, votre application personnalisée devra être à la fois sécurisée et conviviale . Équilibrer ces exigences n'est pas une mince affaire. Mais avec la bonne équipe, c'est possible.