Cette question a une question de suivi ici: Comment crypter de manière sécurisée des données avec un système de cryptage de clé publique-privé, mais également permettre le déchiffrement si la clé privée est perdue?
TL; DR:
Puis-je utiliser des mots de passe en plainte pour un périphérique qui ne contient aucune donnée sensible?
[.____] Non, parce que le mot de passe réutilise.
[.____] D'accord, puis-je utiliser des mots de passe pré-éclairés pour un périphérique qui ne contient aucune donnée sensible?
[.____] non, car les administrateurs de base de données peuvent toujours utiliser les mots de passe pré-blasés pour avoir accès.
[.____] alors que puis-je utiliser?
Pour autant que je sache, les mots de passe en clair ne sont pas sécurisés.
Pourtant, je ne vois pas un moyen de les utiliser.
J'ai deux questions:
Nous développons de nouvelles caméras à utiliser pour la surveillance et la sécurité des maisons privées.
Je vais sauter leurs utilisations, mais ils ne voulaient pas aussi que des caméras de sécurité contre des choses comme des ruptures, mais aussi pour d'autres utilisations nationales (comme vérifier si vos enfants sont toujours au lit et ne se promènent pas dans la soirée).
Le plan de sécurité est en tant que tel:
Jusqu'à présent, je ne vois personnellement aucun problème de sécurité. Oui, nous stockons des mots de passe en clair, mais ils n'autorisent pas l'accès sur les caméras configurées. Ils permettent uniquement d'accéder aux caméras qui sont branchées mais non encore configurées. Il faudrait un scanner puissant pour détecter et prendre la caméra qui vient de brancher, mais pas encore configuré. Même s'il a été repris, le client pourrait simplement réinitialiser l'appareil et réessayer.
Maintenant, pour le prochain changement ...
Nous souhaitons simplifier l'accès des caméras sur plusieurs périphériques (tablette, téléphone, PC?).
Pour ce faire, nous stockons le mot de passe personnalisé dans notre base de données.
Quand on souhaite accéder à leur appareil photo, ils se connectent à notre plate-forme (ce mot de passe que nous ne stockons pas en clair). Ils peuvent récupérer une liste de caméras et de mots de passe en plainte. Ils peuvent ensuite utiliser ces mots de passe pour se connecter à la caméra. Le traitement des mots de passe en plainte se produit automatiquement dans une application, mais avec un périphérique enraciné, il doit être facile de déterminer les données que vous recevez.
Stocker ces mots de passe en clair, il devient soudain possible, en cas de violation de la base de données, d'accéder à toutes les caméras configurées de n'importe où. Est-ce un risque de sécurité? Le pire que l'on puisse faire est de formater la carte SD (et de contrôler la caméra comme n'importe quelle autre caméra PTZ). On pourrait même commencer le processus de mise à jour, mais tout ce qui ferait est d'installer des mises à jour à partir du ou des serveurs de mise à jour. À moins que vous soyez à proximité de la caméra pour intercepter le trafic et modifier le micrologiciel reçu, la caméra ne sera que la mise à jour de notre dernière version.
Si un attaquant a un accès physique à l'appareil, peu importe la sécurité que nous avons; Ils pourraient réinitialiser l'usine, configurer leur propre mot de passe, puis mettre à jour à partir de la carte SD. Le résultat est une caméra qui peut faire tout ce que sa putain de bien plaise.
Je suis disposé à autoriser une prise de contrôle réussie (non recouvert; par exemple la brique de la caméra) Tentative de piratage uniquement par accès physique. Ceci parce que nous ne pouvons pas faire résister aux caméras aux armes - si quelqu'un peut détruire une caméra avec une bonne utilisation d'un marteau, la protection contre les vecteurs d'attaque physique est un point de théâtre.
Modifier: Une suggestion qui a été faite est de rendre les mots de passe personnalisés hachés. Cela supprime un risque que, en cas de violation de la base de données, les gens subiraient des violations d'accès via la réutilisation du mot de passe.
@ Victor a souligné que le plan de sécurité actuel permet aux employés d'accéder aux caméras. La suppression de la fonctionnalité de synchronisation de mot de passe nous permet de supprimer le mot de passe de la base de données, en supprimant le risque de sécurité.
Cependant, nous souhaitons faire un service de stockage vidéo en ligne pour permettre la lecture vidéo en cas de vol de caméra. Cela nécessite un mot de passe de la caméra. Passer ce mot de passe et le stocker dans une base de données ouvre la situation de sauvegarde des employés à l'aide des mots de passe de la base de données pour accéder aux caméras clientes.
Un nouveau plan que je pense impliquer de disposer du client à l'aide de l'application pour, via une connexion locale avec l'appareil photo, générer un jeton d'accès qui permet, de n'importe où, mais uniquement avec un compte spécifique (dont seule la société connaît le mot de passe. ), accès au flux vidéo uniquement. Cela permet un tel service de stockage vidéo en ligne. Cependant, il permet également d'utiliser ce jeton d'accès et le compte spécial à une fois, encore une fois, accéder à l'alimentation de la caméra. Et nous sommes de retour à un risque de sécurité. Je ne sais pas comment résoudre ce problème ...
Edit: En combinant toutes vos suggestions (merci beaucoup), j'ai pu rédiger un nouveau plan de sécurité. Pour empêcher de déplacer les poteaux de but, j'ai créé une nouvelle question pour cela:
C'est une longue question mais je pense que votre point principal est-ce:
Nous souhaitons simplifier l'accès des caméras sur plusieurs périphériques (tablette, téléphone, PC?).
Premièrement, cherchez comment fonctionne les clés SSH. Cela fonctionnerait pour vous surtout tel quel.
Au début, la clé publique des clients est ajoutée à sa caméra pendant la configuration initiale. Il peut s'authentifier à l'aide de sa clé privée qui est stockée sur son appareil. Tous ses appareils (PC, tablette, mobile, ...) ont sa propre clé.
S'il aime accéder à son appareil photo d'un nouvel appareil, il démarre une demande de cet appareil avec la clé publique de son appareil. Retourne à son premier appareil et accorde la demande en ajoutant la clé publique à la caméra. À partir de maintenant, les deux clients peuvent accéder. Vous pouvez révoquer l'accès en supprimant une clé. Vous pouvez également stocker des niveaux d'accès avec la clé.
Vous pouvez stocker toutes les clés publiques sur votre serveur.
Si votre serveur est piraté, seules les clés publiques peuvent être volées. Toutes les caméras sont toujours sécurisées.
Si un client est piraté, il révoque sa clé publique sur votre serveur, effectue une réinitialisation d'usine sur ses caméras et ajoute sa nouvelle clé.
Vous devriez au moins hachage les mots de passe.
Utilisez une fonction de hachage sécurisée, par ex. SHA-256 à HASH Un mot de passe et stockez-le comme ça.
Lors de la génération d'un nouveau mot de passe, vous pouvez envoyer à l'utilisateur le nouveau mot de passe, mais le hachage et stocker la version hachée dans la caméra/la base de données.
Lorsque vous vérifiez si le mot de passe est correct, HASH Le mot de passe qui a été entré et le comparer à la valeur hachée du mot de passe correct.
Ceci est important, comme si quelqu'un réussissait à accéder aux mots de passe, ils pourraient aller et essayer de réutiliser ces mots de passe sur des comptes en ligne appartenant au propriétaire de la caméra/compte et le montant de la réutilisation de mot de passe se passe, probablement réussir.
Ce que je considérerais, un design approprié est celui dans lequel les services que vous organisez et que le matériel que vous vendez ne sont pas trop liés les uns sur les autres. Les clients devraient pouvoir utiliser ces deux produits séparément s'ils le souhaitent, et je ne voudrais pas acheter un morceau de matériel que je ne pouvais plus utiliser si la société qui la vendait a été faite de l'entreprise (ou a décidé ne plus supporter le produit).
En outre, il sera très difficile pour vous de vérifier si une personne particulière a un accès légitime à utiliser une caméra spécifique. Alors, comment déciderez-vous si vous allez dire à quelqu'un ce que le mot de passe par défaut est pour leur caméra particulière?
Au lieu de cela, je prendrais l'approche que si vous avez un accès physique à la caméra, vous pouvez également réinitialiser le mot de passe.
Vous voudrez peut-être un sentier d'audit. Ce que je considérerais la partie la plus importante du sentier d'audit pour une caméra de sécurité est qu'avant de pouvoir vous rapprocher de l'appareil photo pour la toucher, une photo de vous a déjà été capturée et envoyez à un emplacement distant.
De plus, je suggère que la réinitialisation du mot de passe va également remplacer une partie de la clé de la caméra avec une nouvelle clé aléatoire telle que tous les serveurs de la caméra communiquent avec peuvent savoir que le mot de passe a été réinitialisé.
Le plus grand danger des mots de passe par défaut est si les personnes laissent le mot de passe par défaut sur l'appareil et les utilisateurs non autorisés peuvent y accéder sur Internet. Pour éviter ce risque, je suggère ces deux approches:
Je recommande d'utiliser IPv6 pour cette étape initiale pour quelques raisons différentes:
Je peux penser à deux approches différentes de ce que vous devez faire lorsque vous avez un accès physique à la caméra afin d'activer le mot de passe par défaut. Soit vous devez appuyer sur un bouton (généralement, cela est installé de telle sorte que vous devez utiliser la pointe d'un stylo pour l'atteindre), ou vous devez utiliser une interface de réseau de gestion distincte, qui n'est pas connectée en fonctionnement normal. Pour une sécurité supplémentaire contre l'accès occasionnel, vous pouvez localiser ce bouton ou tout port de telle que la caméra doit être détachée du mur afin d'y accéder.
Ce sont les approches que je peux trouver pour éviter les problèmes liés à une utilisation non autorisée du mot de passe par défaut. Avoir un mot de passe par défaut séparé par périphérique est probablement une mauvaise idée pour des raisons de support. Outre les clients ne devraient pas avoir à compter sur vous afin de continuer à utiliser le matériel qu'ils ont acheté.
Je peux voir quelques questions de suivi qui peuvent être intéressantes à poser en relation avec votre question et ma réponse:
Je ne sais pas si ces questions ont déjà été posées sur ce site, sinon vous voudrez peut-être leur demander également.
est-ce peu sûr? Oui.
est-ce évitable? Non. Vous avez besoin d'un moyen de fournir à l'utilisateur son mot de passe.
il est gérable? Oui: interdire l'accès à distance avec un jeu de mots de passe par défaut. À ce stade, vous pourriez aussi bien revenir à l'utilisation d'un mot de passe par défaut normalisé. Cela vous ferait économiser beaucoup de travaux de service des tracas et des services à la clientèle. Notez que votre solution offre plus de sécurité au cas où votre accès local utilise la technologie sans fil. Avec des mots de passe par défaut, des attaques errantes sont une possibilité.
est-ce non sécurisé? Oui, très.
est-ce évitable? Pas avec vos contraintes.
est-il gérable? Oui. Utilisez l'authentification multi-facteurs.
Une option que je vois consiste à joindre votre mot de passe avec un jeton d'authentification. Vous pouvez créer une simple application locale qui nécessiterait une proximité physique de l'enregistrer sur la caméra à l'aide de Bluetooth, WiFi, en appuyant sur une touche physiquement sur la caméra ou quelque chose de similaire. Une fois inscrit que vous vous associez le jeton avec le mot de passe personnalisé pour permettre un accès global. Vous pouvez intégrer le jeton avec votre application mobile bien sûr (côté client stocké).
Au lieu de stocker des mots de passe personnalisés de manière centralisée sur vos serveurs, envisagez de les stocker à la place du côté client. Les utilisateurs doivent uniquement configurer leur application une fois en se connectant à leurs caméras (ou le nœud de la caméra si un système/appareil photo central contient toutes les caméras installées/autres). Vraisemblablement d'autres mécaniciens d'authentification ou de jetons peuvent être utilisés après la première connexion pour éviter d'enregistrer le mot de passe. L'inconvénient est que vous ne seriez pas en mesure d'accéder aux caméras des points d'accès public sans connaître leurs mots de passe. L'utilisation d'un nœud central ne nécessite qu'un seul mot de passe permettant de l'atténuer quelque peu.
Si vous souhaitez empêcher vos propres employés d'accéder à la caméra ou à des flux enregistrés sans la permission du client, vous devez chiffrer le flux vidéo avant que le flux ne soit envoyé à votre serveur pour un stockage distant sur votre serveur. Le flux doit être crypté avec une clé de session, la clé de session est ensuite cryptée à nouveau, une fois pour chacune des clés publiques du client. Maintenant, le serveur ne peut pas déchiffrer le flux, mais quiconque a la clé privée correspondant à l'une de ces clés de session cryptées pourra déchiffrer la clé de session et donc déchiffrer le flux. Vos serveurs stockent uniquement le flux crypté et les clés de session cryptées, qui sont par elles-mêmes inutiles sans une clé privée correspondante.
Pour permettre à votre employé un accès limité à une section du flux, le client sur le périphérique du client ou la caméra de l'autorisation du client devra télécharger la clé publique de l'employé et rebriger les clés de session pour les sections de la vidéo qu'il souhaite partager avec le clé publique de l'employé. La caméra doit changer la clé de session régulièrement (environ chaque minute) car la granularité que le client peut partager que leur vidéo est basée sur la fréquence à laquelle les changements de clé de session (à partager avec une granularité plus fine nécessiteraient de reprendre le flux lui-même, ce qui est. indésirable).
Pour terminer la permission sur un flux en direct, la caméra ne doit que modifier la clé de session et informer tous les clients en direct qui sont toujours autorisés à afficher le flux de la nouvelle clé de session cryptée. Notez qu'une fois qu'une section d'un flux est partagée avec une personne, cette section du flux sera décodable par cette personne pour toujours. Cependant, la personne ne sera pas en mesure de déchiffrer une partie passée ou future du flux.
En ce qui concerne la configuration initiale, je pense qu'il est raisonnable d'exiger que la configuration initiale de la caméra doit provenir d'un accès physique. Vous pouvez utiliser NFC ou Bluetooth ou vous pouvez installer un écran sur l'appareil pour faciliter l'échange de clé entre la caméra et le périphérique client.
Crypter le flux avant de l'envoyer résout également le problème du réseau local non sécurisé.