Sécurité
Un résumé pour les équipes informatiques et de sécurité qui évaluent Snowkit pour un usage professionnel.
Comment Snowkit est construit
La réponse courte pour une évaluation de sécurité, avec le détail à un clic.
Architecture
- Snowkit est un site web statique. Chaque outil s'exécute en JavaScript et WebAssembly dans le navigateur du visiteur.
- Les fichiers et le texte saisis dans un outil sont traités en mémoire sur l'appareil du visiteur et ne sont jamais transmis à Snowkit.
- Le site est servi uniquement en HTTPS, avec HSTS.
Accès réseau
Chaque page d'outil porte sa propre politique de sécurité du contenu (CSP). Les pages d'outils ne peuvent charger que les scripts et styles de Snowkit, et presque toutes n'ont le droit d'établir aucune connexion réseau.
Quelques outils existent pour consulter des choses sur Internet, et chacun le dit sur sa page. Le vérificateur d'expiration lit les enregistrements publics RDAP et de transparence des certificats. La recherche DNS interroge les résolveurs publics de Cloudflare et Google. Le générateur de citations consulte un DOI ou un ISBN avec Crossref et Open Library. Le vérificateur d'en-têtes HTTP, l'analyse avant lancement et la vérification du site en ligne de Snowkit Launch récupèrent l'adresse publique que vous saisissez via le propre serveur de Snowkit. Le testeur MCP se connecte à l'adresse de serveur que vous saisissez. Seuls le domaine, l'adresse ou l'identifiant que vous saisissez sont envoyés, jamais vos fichiers.
Ouvrir des fichiers depuis Dropbox, Google Drive ou OneDrive, et y enregistrer des résultats, est possible sur les pages qui le proposent. Le script de sélecteur de ce service ne se charge que lorsque quelqu'un le choisit, et seules ces pages autorisent les adresses de ce service dans leur politique de sécurité du contenu. Les fichiers circulent directement entre le navigateur et le service, jamais par Snowkit, et l'autorisation de courte durée que le service accorde n'est gardée que dans la page ouverte.
Notion ou Canva n'acceptent les fichiers que depuis un serveur : envoyer un fichier là-bas passe donc par le serveur de Snowkit en chemin, par une connexion chiffrée. Il est transmis directement, jamais écrit sur disque, journalisé ou conservé. L'autorisation accordée par ce service n'est gardée que dans la page ouverte et voyage avec cette seule requête.
Ce que nous n'utilisons jamais
- Aucune balise d'analyse ni réseau publicitaire. Les seuls scripts tiers sont les sélecteurs de fichiers décrits sous Accès réseau, chargés quand quelqu'un choisit ce service.
- Aucun cookie de suivi ou publicitaire. Les visiteurs qui ne se connectent pas n'ont aucun cookie ; votre choix de thème est stocké dans le stockage local de votre propre navigateur.
- Pas de mots de passe. Les comptes sont facultatifs et utilisent des clés d'accès ou la connexion GitHub ou Google : Snowkit ne voit ni ne stocke donc jamais de mot de passe.
Autres en-têtes
Les pages ne peuvent pas être intégrées dans des cadres par d'autres sites, le MIME sniffing est désactivé, les référents sont réduits quand on quitte le site, et les fonctions caméra, micro, localisation et paiement sont désactivées sauf si un outil en a besoin.
Content-Security-Policy- Seuls les scripts et styles de Snowkit se chargent. Les plugins et l'intégration en cadre sont bloqués.
Strict-Transport-Security- HTTPS uniquement, mémorisé pendant un an, sous-domaines compris.
X-Frame-Options- DENY. D'autres sites ne peuvent pas intégrer une page Snowkit dans un cadre.
X-Content-Type-Options- nosniff. Les fichiers ne sont jamais lus que comme le type sous lequel ils sont servis.
Referrer-Policy- strict-origin-when-cross-origin. Les autres sites ne voient que snowkit.io, jamais la page où vous étiez.
Permissions-Policy- La caméra, le micro, la localisation et le paiement sont désactivés sauf si un outil en a besoin.
Cross-Origin-Opener-Policy- same-origin. Les fenêtres ouvertes depuis d'autres sites ne peuvent pas atteindre une page Snowkit.
Comptes facultatifs
La connexion stocke un nom et une adresse e-mail quand la méthode de connexion les fournit, l'ID de compte du fournisseur de connexion et les outils que vous enregistrez en favoris. Les sessions utilisent un jeton aléatoire gardé dans un cookie sécurisé, HttpOnly et first-party, avec un second cookie qui ne contient que votre initiale pour l'en-tête de la page et un troisième qui ne contient qu'une version d'image quand vous ajoutez une photo de profil, et seul un hachage du jeton est stocké de notre côté. Les fichiers et le texte utilisés dans les outils ne sont jamais liés à un compte. Vous pouvez supprimer votre compte et tout ce qu'il contient depuis la page du compte à tout moment.
Clés d'accès
Les clés d'accès utilisent WebAuthn avec vérification de l'utilisateur préférée. Le serveur émet un défi à usage unique qui expire après cinq minutes, vérifie l'origine, la partie de confiance et le compteur de signature, et ne stocke que la clé publique de l'identifiant. Les liens de connexion par e-mail, quand ils sont proposés, fonctionnent une fois, expirent après 15 minutes et ne sont stockés que sous forme de hachage.
Synchronisation privée
Les visiteurs connectés peuvent choisir de synchroniser leur Library, Your Snowkit, leurs étapes enregistrées et leurs outils favoris entre leurs appareils. La synchronisation est chiffrée de bout en bout : chaque élément est chiffré dans le navigateur avant l'envoi, et le serveur ne détient que du texte chiffré.
- Chiffrement
- AES-GCM avec des clés de 256 bits
- Nonce
- Un nouveau nonce de 96 bits à chaque enregistrement
- Clé de coffre
- 256 bits aléatoires, créés dans le navigateur
- Enveloppement de clés
- PRF de clé d'accès avec HKDF-SHA-256, ou clé de récupération de 128 bits avec PBKDF2-SHA-256 à 600 000 itérations
- Fichiers de la Library
- Leur propre clé pour chaque version, scellée en morceaux de 8 Mio
- Ce que détient le serveur
- Texte chiffré, clés enveloppées, ID du compte, horodatages et tailles
- Une clé de coffre aléatoire de 256 bits est créée dans le navigateur à l'activation de la synchronisation. Les éléments sont chiffrés en AES-GCM avec une clé de 256 bits et un nouveau nonce de 96 bits à chaque enregistrement, avec le nom de la section et la version liés comme données authentifiées supplémentaires.
- La clé de coffre ne quitte jamais l'appareil sans être chiffrée. Elle est enveloppée avec AES-GCM par chaque clé d'accès qui prend en charge l'extension WebAuthn PRF, avec une clé dérivée de la sortie PRF par HKDF-SHA-256, et par une clé de récupération de 128 bits aléatoires montrée une seule fois à la personne, avec PBKDF2-SHA-256 à 600 000 itérations.
- Le serveur stocke les clés enveloppées, les éléments chiffrés, l'ID du compte, les horodatages et les tailles. Il ne détient aucune clé capable de les déchiffrer : Snowkit ne peut donc rien récupérer. Si toutes les clés d'accès et la clé de récupération sont perdues, personne ne peut ouvrir les données synchronisées.
- Les fichiers de la Library ne sont synchronisés que lorsque la synchronisation est activée. Chaque version de fichier est scellée avec sa propre clé aléatoire de 256 bits en morceaux de 8 Mio, chaque morceau lié à l'ID de son objet, sa position et son nombre, et stocké sous un ID d'objet aléatoire. Les clés par fichier, les noms, les types et les projets n'existent qu'à l'intérieur de l'index chiffré de la Library : le serveur ne voit donc que des ID opaques, des tailles et des horodatages.
- Les fichiers qui sont seulement ouverts dans un outil ne sont jamais synchronisés. Chaque compte a une limite de stockage ; quand elle est atteinte, les envois s'arrêtent et rien n'est supprimé. Désactiver la synchronisation supprime la copie chiffrée du serveur.
Un nom affiché et une photo de profil facultative sont des informations de compte, pas des données de synchronisation. La photo est redimensionnée dans le navigateur et stockée non chiffrée avec le compte, servie uniquement à ce compte connecté avec une mise en cache privée, et supprimée avec le compte.
Ce que nous voyons
Comme tout site web, notre hébergeur traite des données de requête standard comme les adresses IP pour livrer les pages. Nous comptons les pages vues par chemin, sans cookies et sans stocker d'adresses IP. Gap Radar compte les recherches sans résultat, les questions sans réponse à Kitsune, les pages introuvables et les courts codes d'erreur en totaux quotidiens seulement, sans cookie, identifiant ni adresse IP ; le texte de recherche est nettoyé sur l'appareil, et un texte rare qui n'est pas apparu 5 fois en 28 jours n'est jamais montré et est supprimé. Les messages envoyés par le formulaire de commentaires parviennent à l'équipe Snowkit par e-mail. Voir la politique de confidentialité pour le détail.
Signaler une vulnérabilité
Écrivez à [email protected] avec les détails et les étapes pour reproduire. Nous accuserons réception de votre signalement et vous tiendrons informé pendant la correction. Notre security.txt indique le même contact.
Contact sécurité : [email protected] · security.txt