web-dev-qa-db-fra.com

Stocker des mots de passe en plainte pour caméras - préoccupations de sécurité?

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:

  • Dans la situation suivante, l'utilisation de mots de passe en clair est-il insécurisé?
  • Dans la situation suivante, l'utilisation de mots de passe en plainte est-il inévitable?

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:

  • Chaque caméra a un mot de passe par défaut (susceptible d'être unique). Le mot de passe est généré par caméra, mais des doublons sont possibles.
  • Nous stockons les mots de passe par défaut dans une base de données pour assistance (tests et "Vous avez perdu votre carte de mot de passe par défaut, mais ont reçu une réception de l'achat, voici votre mot de passe par défaut").
  • Chaque caméra est accessible depuis n'importe où dans le monde avec une installation minimale.
  • Avec le mot de passe par défaut, on peut accéder à la caméra et modifier le mot de passe.
  • Avec un mot de passe personnalisé, on peut accéder à la caméra et afficher le flux de la caméra.
  • Le mot de passe par défaut est rejeté si un mot de passe personnalisé est défini.
  • Le mot de passe par défaut n'autorise pas la visualisation du flux de caméra.
  • Avec un accès physique à la caméra, il est possible d'alimenter l'appareil photo. Cela efface le mot de passe personnalisé et rétablit le mot de passe par défaut.

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.

  • Nous stockons également des mots de passe personnalisés dans la base de données.
  • Les mots de passe personnalisés sont extraits après l'authentification de la plate-forme (via des informations d'identification correctement gérées).
  • Les mots de passe personnalisés sont stockés par utilisateur; Si deux personnes ajoutent le même appareil photo à leur compte avec le même mot de passe, cela fonctionnera. Si l'un d'entre eux modifie ensuite le mot de passe de la caméra, l'autre obtiendra une boîte de dialogue "Entrez un mot de passe" lors de la prochaine utilisation d'accéder à la caméra.

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.


  • Dans la situation décrite, est l'utilisation des mots de passe en texte non sécurisé?
  • Dans la situation décrite, est l'utilisation de mots de passe en plainte inévitable?

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:

Comment crypter de manière sécurisée des données avec un schéma de cryptage de clé publique-privé, mais permet également de décrypter si la clé privée est perdue?

11
Pimgd

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é.

23
PiTheNumber

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.

8
Michal Paszkiewicz

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:

  • Après avoir réinitialisé au mot de passe par défaut, vous ne pouvez rien faire d'autre avec le périphérique jusqu'à ce que vous ayez choisi votre propre mot de passe pour l'appareil.
  • Le mot de passe par défaut ne peut être utilisé que lors de la communication avec le périphérique à l'aide d'une adresse de liaison locale.

Je recommande d'utiliser IPv6 pour cette étape initiale pour quelques raisons différentes:

  • C'est le protocole le plus futur d'utiliser.
  • Tous les périphériques ont une adresse Link-local (ce n'est pas le cas pour IPv4).
  • L'adresse Link-local peut être basée sur l'adresse MAC et restez statique même si le réseau est reconfiguré. Vous pouvez imprimer cette adresse IPv6 sur la caméra.
  • Le système d'exploitation moderne dans la configuration par défaut peut utiliser des adresses Link-local IPv6 sans avoir besoin d'un routeur, d'un serveur DHCP ou d'un autre équipement à présenter sur le lien.

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:

  • Comment un service pourrait-il être conçu pour gérer l'accès à plusieurs caméras de sécurité indépendantes sans avoir besoin de chaque caméra pour voir le mot de passe en plainte de chaque utilisateur?
  • Comment un service pourrait-il être conçu pour collecter des flux vidéo à partir de caméras de sécurité tels que des enregistrements d'un incident ne sont pas perdus en raison du sabotage ou du vol d'équipements?

Je ne sais pas si ces questions ont déjà été posées sur ce site, sinon vous voudrez peut-être leur demander également.

6
kasperd

Stocker les mots de passe par défaut dans ClearText

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é.

Stocker des mots de passe personnalisés dans ClearText

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é).

Alternative

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.

4
Lilienthal

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é.

2
Lie Ryan