Product

Solutions

Resources

Company

Product

Solutions

Resources

Company

S/MIME Partie 2 : signé, scellé et livré par SparkPost

Oiseau

31 déc. 2018

Email

1 min read

S/MIME Partie 2 : signé, scellé et livré par SparkPost

Oiseau

31 déc. 2018

Email

1 min read

S/MIME Partie 2 : signé, scellé et livré par SparkPost

Dans la première partie, nous avons effectué un rapide tour d'horizon de S/MIME, en examinant la signature et le cryptage de nos flux de messages à travers une gamme de clients de messagerie. Les messages S/MIME peuvent être signés (fournissant une preuve de l'identité de l'expéditeur), cryptés (gardant le corps du message secret), ou les deux.

Diagram illustrating email security layers showing the relationship between S/MIME signing, S/MIME encryption, and TLS connections in the email delivery process from message source through email server to recipient.

Dans cette partie, nous allons :

  • Installer quelques outils de ligne de commande simples pour signer et chiffrer les emails

  • Obtenir votre clé/certificat d'expéditeur pour la signature

  • Envoyer un message signé via SparkPost, et examiner le message reçu

  • Obtenir éventuellement le certificat de votre destinataire pour le chiffrement

  • Envoyer un message signé et chiffré via SparkPost, et examiner le message reçu

  • Essayer un outil autonome pratique "mimeshow" pour examiner l'intérieur des fichiers email.

D'accord – commençons !

1. Installer les outils

Les outils de démonstration sont disponibles sur GitHub, complets avec des instructions d'installation. Vous pourriez remarquer le logo “build passing” – Travis et pytest vérifient automatiquement le statut de la construction. Notez que ces outils ne sont pas officiellement soutenus par SparkPost, mais j'ai essayé de les rendre robustes et faciles à utiliser.

Si vous avez une certaine connaissance de Python et pip, l'installation devrait vous sembler assez familière. Le Pipfile s'occupe automatiquement des dépendances externes pour vous. Une fois que c'est terminé, vous pouvez vérifier que tout est installé en exécutant.

./sparkpostSMIME.py -h

Vous devriez voir le texte d'aide amical. Ensuite, nous devons…

2. Obtenez votre clé / certificat d'expéditeur pour la signature

Si vous avez déjà un fichier de clé pour votre identité d'envoi, vous pouvez passer à l'étape suivante. Sinon, voici deux options parmi lesquelles choisir :

a) Clé/test de signature auto-signée (non valide extérieurement)

Si vous ne faites que tester, vous pouvez créer des certificats et des clés "auto-signées" pour une adresse e-mail en utilisant l'outil en ligne de commande openssl sous Linux, en suivant une procédure telle que celle-ci. À la fin de ce processus, vous aurez un fichier smime.p12. Renommez ce fichier pour qu'il corresponde à votre identité d'envoi, y compris le signe @, par exemple, alice@example.com.p12.

ou

b) Clés / certificats validés extérieurement

Si vous souhaitez obtenir des clés / certificats validés extérieurement qui vous permettent de signer, il y a une liste de fournisseurs ici. J'ai trouvé que Comodo fonctionne bien (gratuit pour une utilisation non commerciale), et c'est plus facile que la procédure d'auto-signature ci-dessus. Suivez le processus d'inscription, recevez votre mail de validation et assurez-vous d'ouvrir le lien dans Firefox. Allez dans Préférences Firefox / Vie privée et Sécurité. Faites défiler jusqu'à Certificats / Voir les certificats :

Firefox browser settings page showing certificate management options under the Privacy & Security section, with controls for how the browser handles personal certificate requests.


Sélectionnez votre certificat et utilisez l'option "Sauvegarde" pour enregistrer sous forme de fichier au format PKCS12 (ajoutez l'extension de fichier .p12 à votre nom de fichier) qui transporte la clé privée et la chaîne de certificats publics.

Certificate Manager window showing a list of software security device certificates from COMODO CA Limited, with details including certificate names and serial numbers


Fournissez un mot de passe pour sécuriser le fichier .p12 :

Certificate backup password entry dialog with password fields and strength meter


Générer des fichiers de clé publique (.crt) et privée (.pem) séparés

Que vous ayez utilisé a) ou b), vous avez maintenant un fichier .p12 pour votre identité d'expéditeur. C'est un grand pas en avant - prenez un café maintenant !

Nous devons maintenant générer des fichiers de clé publique et privée séparés comme suit - en substituant votre propre adresse e-mail à celle de l'exemple. (Mac OSX et Linux) :

openssl pkcs12 -in alice\@example.com.p12 -clcerts -nokeys -out alice\@example.com.crt openssl pkcs12 -in alice\@example.com.p12 -nocerts -nodes -out alice\@example.com.pem

Vous devrez entrer le mot de passe que vous avez fourni précédemment. Notez que ces barres obliques inverses \ sont utilisées pour échapper au signe @ - elles ne séparent pas les noms d'un chemin d'annuaire (c'est une barre oblique / sur Mac OSX et Linux).

Si vous utilisez Windows, il existe des implémentations openssl disponibles telles que MINGW64 intégré aux outils de ligne de commande Git, mais j'ai trouvé qu'il avait tendance à se bloquer. Vous trouverez probablement plus facile et plus rapide de faire cela sous Linux, puis de copier vos fichiers. Ces mêmes outils Git pour Windows sont livrés avec un client ssh pratique que vous pouvez utiliser pour vous connecter à une boîte Linux, comme une instance Amazon EC2.


2.1 Signer un message

Il y a déjà un faux fichier de clé/certificat et un fichier source d'e-mail dans le répertoire de tests pour alice@example.com, donc vous pouvez obtenir un certain résultat même avant d'avoir vos propres clés. Tapez simplement ce qui suit :

cd tests ../sparkpostSMIME.py example_email1.eml --sign

Et vous obtiendrez :

To: Bob <bob@example.com> 
From: Alice <alice@example.com> 
Subject: A message MIME-Version: 1.0 
Content-Type: application/x-pkcs7-mime; smime-type=signed-data; name="smime.p7m" 
Content-Transfer-Encoding: base64 
Content-Disposition: attachment; filename="smime.p7m" MIIKXAYJKoZIhvcNAQcCoIIKTTCCCkkCAQExDzANBglghkgBZQMEAgEFADCCAQoGCSqGSIb3DQEH AaCB/ASB+VRvOiBCb2IgPGJvYkBleGFtcGxlLmNvbT4NCkZyb206IEFsaWNlIDxhbGljZUBleGFt : :

Vous ne pouvez pas réellement envoyer d'e-mails depuis example.com via SparkPost sauf si vous possédez ce domaine, donc l'étape suivante est d'utiliser votre propre clé et d'envoyer un message signé depuis votre propre domaine.

Si vous avez déjà un fichier de clé pour votre identité d'envoi, vous pouvez passer à l'étape suivante. Sinon, voici deux options parmi lesquelles choisir :

a) Clé/test de signature auto-signée (non valide extérieurement)

Si vous ne faites que tester, vous pouvez créer des certificats et des clés "auto-signées" pour une adresse e-mail en utilisant l'outil en ligne de commande openssl sous Linux, en suivant une procédure telle que celle-ci. À la fin de ce processus, vous aurez un fichier smime.p12. Renommez ce fichier pour qu'il corresponde à votre identité d'envoi, y compris le signe @, par exemple, alice@example.com.p12.

ou

b) Clés / certificats validés extérieurement

Si vous souhaitez obtenir des clés / certificats validés extérieurement qui vous permettent de signer, il y a une liste de fournisseurs ici. J'ai trouvé que Comodo fonctionne bien (gratuit pour une utilisation non commerciale), et c'est plus facile que la procédure d'auto-signature ci-dessus. Suivez le processus d'inscription, recevez votre mail de validation et assurez-vous d'ouvrir le lien dans Firefox. Allez dans Préférences Firefox / Vie privée et Sécurité. Faites défiler jusqu'à Certificats / Voir les certificats :

Firefox browser settings page showing certificate management options under the Privacy & Security section, with controls for how the browser handles personal certificate requests.


Sélectionnez votre certificat et utilisez l'option "Sauvegarde" pour enregistrer sous forme de fichier au format PKCS12 (ajoutez l'extension de fichier .p12 à votre nom de fichier) qui transporte la clé privée et la chaîne de certificats publics.

Certificate Manager window showing a list of software security device certificates from COMODO CA Limited, with details including certificate names and serial numbers


Fournissez un mot de passe pour sécuriser le fichier .p12 :

Certificate backup password entry dialog with password fields and strength meter


Générer des fichiers de clé publique (.crt) et privée (.pem) séparés

Que vous ayez utilisé a) ou b), vous avez maintenant un fichier .p12 pour votre identité d'expéditeur. C'est un grand pas en avant - prenez un café maintenant !

Nous devons maintenant générer des fichiers de clé publique et privée séparés comme suit - en substituant votre propre adresse e-mail à celle de l'exemple. (Mac OSX et Linux) :

openssl pkcs12 -in alice\@example.com.p12 -clcerts -nokeys -out alice\@example.com.crt openssl pkcs12 -in alice\@example.com.p12 -nocerts -nodes -out alice\@example.com.pem

Vous devrez entrer le mot de passe que vous avez fourni précédemment. Notez que ces barres obliques inverses \ sont utilisées pour échapper au signe @ - elles ne séparent pas les noms d'un chemin d'annuaire (c'est une barre oblique / sur Mac OSX et Linux).

Si vous utilisez Windows, il existe des implémentations openssl disponibles telles que MINGW64 intégré aux outils de ligne de commande Git, mais j'ai trouvé qu'il avait tendance à se bloquer. Vous trouverez probablement plus facile et plus rapide de faire cela sous Linux, puis de copier vos fichiers. Ces mêmes outils Git pour Windows sont livrés avec un client ssh pratique que vous pouvez utiliser pour vous connecter à une boîte Linux, comme une instance Amazon EC2.


2.1 Signer un message

Il y a déjà un faux fichier de clé/certificat et un fichier source d'e-mail dans le répertoire de tests pour alice@example.com, donc vous pouvez obtenir un certain résultat même avant d'avoir vos propres clés. Tapez simplement ce qui suit :

cd tests ../sparkpostSMIME.py example_email1.eml --sign

Et vous obtiendrez :

To: Bob <bob@example.com> 
From: Alice <alice@example.com> 
Subject: A message MIME-Version: 1.0 
Content-Type: application/x-pkcs7-mime; smime-type=signed-data; name="smime.p7m" 
Content-Transfer-Encoding: base64 
Content-Disposition: attachment; filename="smime.p7m" MIIKXAYJKoZIhvcNAQcCoIIKTTCCCkkCAQExDzANBglghkgBZQMEAgEFADCCAQoGCSqGSIb3DQEH AaCB/ASB+VRvOiBCb2IgPGJvYkBleGFtcGxlLmNvbT4NCkZyb206IEFsaWNlIDxhbGljZUBleGFt : :

Vous ne pouvez pas réellement envoyer d'e-mails depuis example.com via SparkPost sauf si vous possédez ce domaine, donc l'étape suivante est d'utiliser votre propre clé et d'envoyer un message signé depuis votre propre domaine.

Si vous avez déjà un fichier de clé pour votre identité d'envoi, vous pouvez passer à l'étape suivante. Sinon, voici deux options parmi lesquelles choisir :

a) Clé/test de signature auto-signée (non valide extérieurement)

Si vous ne faites que tester, vous pouvez créer des certificats et des clés "auto-signées" pour une adresse e-mail en utilisant l'outil en ligne de commande openssl sous Linux, en suivant une procédure telle que celle-ci. À la fin de ce processus, vous aurez un fichier smime.p12. Renommez ce fichier pour qu'il corresponde à votre identité d'envoi, y compris le signe @, par exemple, alice@example.com.p12.

ou

b) Clés / certificats validés extérieurement

Si vous souhaitez obtenir des clés / certificats validés extérieurement qui vous permettent de signer, il y a une liste de fournisseurs ici. J'ai trouvé que Comodo fonctionne bien (gratuit pour une utilisation non commerciale), et c'est plus facile que la procédure d'auto-signature ci-dessus. Suivez le processus d'inscription, recevez votre mail de validation et assurez-vous d'ouvrir le lien dans Firefox. Allez dans Préférences Firefox / Vie privée et Sécurité. Faites défiler jusqu'à Certificats / Voir les certificats :

Firefox browser settings page showing certificate management options under the Privacy & Security section, with controls for how the browser handles personal certificate requests.


Sélectionnez votre certificat et utilisez l'option "Sauvegarde" pour enregistrer sous forme de fichier au format PKCS12 (ajoutez l'extension de fichier .p12 à votre nom de fichier) qui transporte la clé privée et la chaîne de certificats publics.

Certificate Manager window showing a list of software security device certificates from COMODO CA Limited, with details including certificate names and serial numbers


Fournissez un mot de passe pour sécuriser le fichier .p12 :

Certificate backup password entry dialog with password fields and strength meter


Générer des fichiers de clé publique (.crt) et privée (.pem) séparés

Que vous ayez utilisé a) ou b), vous avez maintenant un fichier .p12 pour votre identité d'expéditeur. C'est un grand pas en avant - prenez un café maintenant !

Nous devons maintenant générer des fichiers de clé publique et privée séparés comme suit - en substituant votre propre adresse e-mail à celle de l'exemple. (Mac OSX et Linux) :

openssl pkcs12 -in alice\@example.com.p12 -clcerts -nokeys -out alice\@example.com.crt openssl pkcs12 -in alice\@example.com.p12 -nocerts -nodes -out alice\@example.com.pem

Vous devrez entrer le mot de passe que vous avez fourni précédemment. Notez que ces barres obliques inverses \ sont utilisées pour échapper au signe @ - elles ne séparent pas les noms d'un chemin d'annuaire (c'est une barre oblique / sur Mac OSX et Linux).

Si vous utilisez Windows, il existe des implémentations openssl disponibles telles que MINGW64 intégré aux outils de ligne de commande Git, mais j'ai trouvé qu'il avait tendance à se bloquer. Vous trouverez probablement plus facile et plus rapide de faire cela sous Linux, puis de copier vos fichiers. Ces mêmes outils Git pour Windows sont livrés avec un client ssh pratique que vous pouvez utiliser pour vous connecter à une boîte Linux, comme une instance Amazon EC2.


2.1 Signer un message

Il y a déjà un faux fichier de clé/certificat et un fichier source d'e-mail dans le répertoire de tests pour alice@example.com, donc vous pouvez obtenir un certain résultat même avant d'avoir vos propres clés. Tapez simplement ce qui suit :

cd tests ../sparkpostSMIME.py example_email1.eml --sign

Et vous obtiendrez :

To: Bob <bob@example.com> 
From: Alice <alice@example.com> 
Subject: A message MIME-Version: 1.0 
Content-Type: application/x-pkcs7-mime; smime-type=signed-data; name="smime.p7m" 
Content-Transfer-Encoding: base64 
Content-Disposition: attachment; filename="smime.p7m" MIIKXAYJKoZIhvcNAQcCoIIKTTCCCkkCAQExDzANBglghkgBZQMEAgEFADCCAQoGCSqGSIb3DQEH AaCB/ASB+VRvOiBCb2IgPGJvYkBleGFtcGxlLmNvbT4NCkZyb206IEFsaWNlIDxhbGljZUBleGFt : :

Vous ne pouvez pas réellement envoyer d'e-mails depuis example.com via SparkPost sauf si vous possédez ce domaine, donc l'étape suivante est d'utiliser votre propre clé et d'envoyer un message signé depuis votre propre domaine.

3. Envoyer un message signé via SparkPost

Maintenant, utilisons un véritable domaine d'envoi, configuré selon le Nouveau Guide d'Utilisateur de SparkPost. Nous avons le certificat de l'expéditeur et les fichiers clés dans le répertoire actuel :

steve@thetucks.com.crt steve@thetucks.com.pem

Le fichier tests/declaration.eml est inclus dans le projet. C’est juste un fichier texte, vous pouvez donc personnaliser l'adresse De : pour convenir à votre propre domaine d'envoi et l'adresse À : pour convenir à votre destinataire de test. Le début du fichier ressemble à ceci :

À : Bob <bob.lumreeker@gmail.com> De : Steve <steve@thetucks.com> Sujet : Voici notre déclaration MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-GB Lorsque, au cours des événements humains, il devient nécessaire…

Définissez votre clé API :

export SPARKPOST_API_KEY=<<Put your API key here>

Envoyez l'email :

./sparkpostSMIME.py tests/declaration.eml --sign --send_api

Vous verrez :

Connexion ouverte à https://api.sparkpost.com/api/v1 Envoi tests/declaration.eml De : Steve <steve@thetucks.com> À : Bob  <bob.lumreeker@gmail.com> OK - en 1,15 secondes

Une seconde ou deux plus tard, l'email arrive dans la boîte de réception de Bob. Thunderbird l'affiche avec un point rouge sur l'enveloppe, indiquant une signature d'expéditeur valide.

Thunderbird email inbox showing an email with a subject 'Here is our declaration'

Succès ! Finissez ce café, vous l'avez bien mérité. Si vous avez des difficultés, vérifiez que votre adresse De : dans le fichier email correspond au nom de vos fichiers .crt et .pem.

4. Chiffrement des messages

Pour chiffrer un message, vous avez besoin de la clé publique de votre destinataire sous forme de certificat. Il s'agit d'un fichier texte qui ressemble à ceci :

Bag Attributes   friendlyName: s COMODO CA Limited ID #2   localKeyID: 32 84 AB 9C 56 5C 80 C6 89 4D 40 46 DD D4 7C 71 E8 CD ED C1 subject=/emailAddress=bob.lumreeker@gmail.com issuer=/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Client Authentication and Secure Email CA -----BEGIN CERTIFICATE----- semble contenir des caractères aléatoires ici -----END CERTIFICATE-----

Il y a un certificat de destinataire factice pour bob@example.com dans le répertoire de tests, donc vous pouvez vous entraîner avec avant d'avoir un certificat réel :

cd tests ../sparkpostSMIME.py example_email1.eml --sign --encrypt

Vous verrez :

To: Bob <bob@example.com>
From: Alice <alice@example.com> 
Subject: A message MIME-Version: 1.0 
Content-Type: application/pkcs7-mime; smime-type=enveloped-data; name=smime.p7m 
Content-Transfer-Encoding: base64 
Content-Disposition: attachment; filename=smime.p7m MIIRwQYJKoZIhvcNAQcDoIIRsjCCEa4CAQAxggKlMIICoQIBADCBijCBhDELMAkG :

Vous remarquerez que la longueur de la sortie est assez longue par rapport à un message chiffré car elle contient beaucoup d' informations supplémentaires ainsi que le message brouillé lui-même.


4.1 Envoi d'un message chiffré et signé via SparkPost

Envoyons un message chiffré à une adresse e-mail réelle. Vous pouvez suivre le même processus qu'auparavant (auto-signé ou via un fournisseur tel que Comodo) pour obtenir une clé publique / certificat pour vos propres adresses de destinataire. Vous avez seulement besoin du fichier .crt – le destinataire ne doit jamais vous donner sa clé privée (.p12 et .pem fichiers).

J'ai le fichier bob.lumreeker@gmail.com.crt pour mon destinataire prévu – correspondant à l'adresse De : dans mon fichier.

Voici la commande pour envoyer :

./sparkpostSMIME.py tests/declaration.eml --sign --encrypt --send_api

Je vois :

Connexion ouverte à https://api.sparkpost.com/api/v1 Envoi tests/declaration.eml De : Steve <steve@thetucks.com> À : Bob <bob.lumreeker@gmail.com> OK - en 1.168 secondes

Le courrier apparaît dans Thunderbird avec l'icône de signature « point rouge » et l'icône chiffrée « cadenas ».

Thunderbird email view with signature and encryption icons

Vous pouvez envoyer des e-mails complexes basés sur HTML avec des liens et des images aussi facilement, comme celui montré dans la Partie 1. Certains clients comme Thunderbird demandent l'autorisation d'afficher des liens externes et des images dans les messages S/MIME chiffrés, mais les messages signés uniquement s'affichent bien dans les clients y compris Thunderbird et Gmail :

Avocado marketing email with guacamole in a blue bowl and product order sectionsGmail interface showing an HTML email with guacamole image and Avocado marketing content

Notez que le menu déroulant affiche « Adresse e-mail vérifiée ».

Réflexions supplémentaires et choses à prendre en compte

Cet outil adopte une approche ultra-simple pour récupérer les clés nécessaires – il cherche simplement des fichiers nommés dans le répertoire actuel. Des arrangements plus complexes, tels que la conservation de toutes les clés dans une base de données, pourraient facilement être ajoutés, mais je voulais que le code soit aussi simple que possible.

Vous pouvez inclure d'autres destinataires avec Cc: et Bcc: et ils seront livrés ; cela pourrait être utile pour des fins d'archivage. Les messages signés sont reçus et peuvent être affichés par d'autres destinataires avec la signature complète. L'outil retire l'en-tête Bcc: du message livré (comme le ferait un client de messagerie de bureau).

Pour garantir que les messages passent par SparkPost sans changements (ce qui pourrait casser la signature), l'outil définit les options API pour les envois « transactionnels », avec le suivi de l'ouverture et du clic désactivé.

Si vous utilisez le cryptage, gardez à l'esprit que l'outil récupère l'adresse To: unique pour cela. Les autres destinataires ne peuvent décoder le corps du message que s'ils possèdent la clé privée du destinataire To:. Si vous n’utilisez que des destinataires secondaires pour garder trace des livraisons effectuées, par exemple, cela peut convenir malgré tout.

Signé, scellé, livré…Je suis à toi

C'est notre aperçu rapide de la manière de signer, sceller et envoyer des messages S/MIME via SparkPost. Petit rappel : le projet de démonstration est disponible sur GitHub, et j’ai essayé de le rendre facile à installer et à utiliser.

Fonctionnalité bonus : affichage des parties MIME avec "mimeshow"

Les fichiers multiparties MIME RFC822 sont assez complexes à lire pour les humains. Le projet comprend un outil autonome pour rendre cela plus facile, appelé mimeshow.

Ceci prend tous les fichiers d'emails que vous avez (pas seulement ceux en S/MIME) et montre la structure interne. Voici un exemple :

./mimeshow.py testcases/img_and_attachment.eml

Vous verrez :

To Bob <bob.lumreeker@gmail.com>
From Steve <steve@thetucks.com> 
Subject Testing attachments etc 
MIME-Version 1.0
Content-Type multipart/mixed; boundary="------------7D48652042860D0098C65210"
Content-Language en-GB
Content-Type multipart/alternative; boundary="------------58C0BF87598336550D70EB95" 
Content-Type text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding 7bit
Content-Transfer-Encoding quoted-printable 
Content-Type text/html; charset="utf-8"
Content-Type application/pdf; name="sparkpost-datasheet-tam-technical-account-management.pdf" 
Content-Transfer-Encoding base64
Content-Disposition attachment; filename="sparkpost-datasheet-tam-technical-account-management.pdf"

Vous pouvez également l'utiliser comme filtre pour donner un résumé lisible par un humain de la sortie de sparkpostSMIME :

./sparkpostSMIME.py tests/declaration.eml --sign --encrypt | ./mimeshow.py


Vous verrez :

To Bob <bob.lumreeker@gmail.com>  
From Steve <steve@thetucks.com>
Subject Here is our declaration 
Content-Language en-GB
MIME-Version 1.0
Content-Type application/pkcs7-mime; smime-type=enveloped-data; name=smime.p7m
Content-Transfer-Encoding base64
Content-Disposition attachment; filename=smime.p7m

Enfin…

Pour récapituler – nous avons installé quelques outils simples en ligne de commande pour signer et chiffrer les emails (le dépôt GitHub comprend des instructions d'installation complètes).

Nous avons obtenu notre clé / certificat d'expéditeur pour signer, et envoyé un message signé via SparkPost. Nous avons obtenu un certificat de destinataire pour le chiffrement, puis envoyé un message signé et chiffré via SparkPost.

Enfin, nous avons essayé l'outil autonome pratique « mimeshow » pour examiner les fichiers internes des emails.

C'est tout pour le moment ! Dans notre prochain épisode, nous vous montrerons comment étendre ces capacités S/MIME à des plateformes d'email sécurisées sur site comme PowerMTA et Momentum. À bientôt!

A person is standing at a desk while typing on a laptop.

La plateforme AI-native complète qui évolue avec votre business.

Product

Solutions

Resources

Company

Paramètres de confidentialité

À venir bientôt

Social

Newsletter

Restez à jour avec Bird grâce aux mises à jour hebdomadaires dans votre boîte de réception.

S'inscrire

A person is standing at a desk while typing on a laptop.

La plateforme AI-native complète qui évolue avec votre business.

Product

Solutions

Resources

Company

Paramètres de confidentialité

Social

Newsletter

Restez à jour avec Bird grâce aux mises à jour hebdomadaires dans votre boîte de réception.

S'inscrire