Pourquoi la sécurité par l'obscurité une mauvaise idée?
Je suis récemment tombé sur un système où tous les DB connexions ont été gérés par des routines obscurci par divers moyens, y compris le codage en base 64, md5sums et diverses autres techniques.
Est-ce juste moi, ou est-ce exagéré? Quelles sont les alternatives?
- Vraiment, les gars? Franchement, vous vous allez vous asseoir ici et dites-moi et le monde que l'obscurité est une mauvaise idée? Ce n'est pas une mauvaise idée et il ne DEVRAIT PAS ÊTRE le total de votre plan pour la protection contre les accès non autorisés. Un grand plan de sécurité devrait plaider en faveur de l'obscurité, fort de mot de passe, le cryptage, et la fermeture de portes arrière, qu'ils sont découverts.
- /etc/shadow est de fournir à l'ajout de la sécurité avec l'obscurité. Avant /etc/shadow le hash /etc/passwd qui tout utilisateur peut lire, ce qui les rend vulnérables à l'arc-en-ciel de la table des attaques. Les mettre dans /etc/shadow qui ne peut être lu que par root obscurcit les hashs d'utilisateurs non privilégiés.
- L'application de contrôle d'accès est généralement écrou considéré comme "l'obscurité" (ni est hachage de mot de passe si c'est fait correct).
Vous devez vous connecter pour publier un commentaire.
La sécurité par l'obscurité serait d'enterrer votre argent sous un arbre. La seule chose qui fait que c'est sûr, personne ne sait qu'il est là. Véritable sécurité, c'est de le mettre derrière un verrou ou une combinaison, par exemple dans un coffre-fort. Vous pouvez mettre la sécurité sur le coin de la rue, car ce qui le rend sûr, c'est que personne ne peut pénétrer à l'intérieur, mais vous.
Comme mentionné par @ThomasPadron-McCarty ci-dessous dans un commentaire ci-dessous:
La sécurité par l'obscurité peut être dit d'être mauvaise, parce qu'elle implique souvent que l'obscurité est le principal moyen de sécurité. L'obscurité est bien jusqu'à ce que l'on découvre, mais une fois que quelqu'un a travaillé votre particulier l'obscurité, alors votre système est vulnérable à nouveau. Compte tenu de la persistance des attaquants, ce qui équivaut à pas de sécurité du tout.
L'obscurité ne doit jamais être utilisé comme une alternative appropriée des techniques de sécurité.
L'obscurité comme un moyen de cacher votre code source pour empêcher la copie est un autre sujet. Je suis plutôt divisés sur ce sujet; je peux comprendre pourquoi vous pourriez le faire, personnellement je n'ai jamais été dans une situation où il serait voulu.
La sécurité par l'obscurité est un sujet intéressant. Il est (à juste titre) décrié comme un substitut pour une sécurité efficace. Un typique principe de la cryptographie est qu'un message est inconnue, mais le contenu ne le sont pas. Algorithmes pour encyrption sont généralement largement publié et analysé par les mathématiciens et, après un temps, une certaine confiance dans leur efficacité, mais on ne peut jamais garantir qu'ils sont efficaces.
Certaines personnes se cachent les algorithmes cryptographiques, mais cela est considéré comme une pratique dangereuse, car alors ces algorithmes n'ont pas traversé la même attention. Seuls les organismes comme la NSA, qui ont un important budget et le personnel des mathématiciens, peuvent s'en tirer avec ce genre d'approche.
L'un des plus intéressants développements au cours des dernières années a été le risque de la stéganographie, qui est la pratique est de cacher le message des images, des fichiers audio ou quelque autre moyen. Le plus gros problème dans steganalysis est de déterminer si oui ou non un message est là ou pas, ce qui rend cette sécurité par l'obscurité.
L'année dernière, je suis tombé sur une histoire qui Des chercheurs de Calculer la Capacité d'un Canal Stéganographiques mais la chose vraiment intéressante à ce sujet est:
En d'autres termes, plus les algorithmes que vous utilisez pour identifier les messages les moins efficaces, il devient, ce qui va à l'encontre de la normale à la critique de la sécurité par l'obscurité.
Des choses intéressantes.
La principale raison, c'est une mauvaise idée, c'est qu'il ne permet pas de RÉSOUDRE les problèmes sous-jacents, tente de les cacher. Tôt ou tard, les problèmes seront découverts.
Aussi, cryptage supplémentaire entraînera une charge supplémentaire.
Enfin excessive de l'obscurité (comme l'utilisation des sommes de contrôle) rend la maintenance d'un cauchemar.
L'amélioration de la sécurité des alternatives est d'éliminer les faiblesses potentielles dans votre code comme les entrées pour éviter les attaques par injection.
Un facteur de la capacité à récupérer d'une violation de la sécurité. Si quelqu'un découvre votre mot de passe, juste le réinitialiser. Mais si quelqu'un découvre votre obscur schéma, vous êtes arrosé.
À l'aide de l'obscurité que tous ces gens sont d'accord n'est pas la sécurité, ses achetez-vous du temps. Qui a dit avoir une vie décente système de sécurité mis en œuvre, puis ajouter une couche supplémentaire de l'obscurité est toujours utile. Disons que demain quelqu'un trouve une imbattables crack/trou dans le service ssh qui ne peut pas être corrigée immédiatement.
En règle générale j'ai mis en place dans la maison... tous les publics confrontés à des serveurs d'exposer uniquement les ports nécessaires ( http/https ) et rien de plus. Un public en face de serveur sera ensuite ssh exposés à l'internet à un obscur haute numérotés de port et un port de numérisation configuration de déclenchement pour bloquer toutes les IP qui tentent de trouver.
L'obscurité a sa place dans le monde de la sécurité, mais pas comme la première et la dernière ligne de défense. Dans l'exemple ci-dessus, je n'obtiens aucun script/bot attaque sur ssh parce qu'ils ne veulent pas passer du temps à chercher une non-standard ssh port de service et si elles le font, leur peu de chances de le trouver avant qu'une autre couche de mesures de sécurité et les coupe.
Toutes les formes de sécurité qui sont en fait des formes de la sécurité par l'obscurité. Chaque méthode augmente en complexité et offre une meilleure sécurité, mais elles reposent toutes sur un algorithme et une ou plusieurs clés pour restaurer les données chiffrées. "La sécurité par l'obscurité", comme la plupart d'appel, c'est quand quelqu'un choisit le moyen le plus simple et le plus facile à craquer algorithmes.
Des algorithmes tels que le caractère de déplacement sont faciles à mettre en œuvre et facile à craquer, c'est pourquoi ils sont une mauvaise idée. C'est probablement mieux que rien, mais il va, tout au plus, seul l'arrêt occasionnel coup d'œil sur les données d'être facile à lire.
Il existe d'excellentes ressources sur l'Internet que vous pouvez utiliser pour vous informer sur toutes les méthodes de cryptage disponibles et leurs forces et faiblesses.
La sécurité est au sujet de laisser les gens ou de les garder hors fonction de ce qu'ils savent qui ils sont ou ce qu'ils ont. Actuellement, la biométrie ne sont pas bonnes à trouver qui vous êtes, et il ya toujours des problèmes avec elle (lecteurs d'empreintes digitales pour quelqu'un qui a été dans un grave accident, forgé les empreintes digitales, etc.). Donc, en fait, une grande partie de la sécurité est d'environ ôtant quelque chose.
Une bonne sécurité est sur le fait de garder les choses que vous avez à garder le secret à un minimum. Si vous avez correctement chiffré AES canal, vous pouvez laisser les méchants de tout voir à ce sujet l'exception du mot de passe, et vous êtes en sécurité. Cela signifie que vous avez un endroit beaucoup plus petit ouvert à l'attaque, et peut se concentrer sur la sécurisation des mots de passe. (Non pas que c'est trivial.)
Pour ce faire, vous devez avoir confiance en tout, mais le mot de passe. Cela signifie normalement à l'aide de la norme de l'industrie crypto que de nombreux experts ont regardé. N'importe qui peut créer un algorithme de chiffrement qu'ils ne peuvent pas briser, mais pas tout le monde peut faire un chiffrement par Bruce Schneier ne peut briser. Puisqu'il y a une complète absence de fondements théoriques de l'algorithme de chiffrement de sécurité, la sécurité d'un algorithme de chiffrement est déterminée par le fait d'avoir beaucoup de très intelligent et de spécialistes essayez de venir avec les attaques, même s'ils ne sont pas pratiques (attaques sur les algorithmes toujours mieux, jamais pour le pire). Cela signifie que l'algorithme de chiffrement doit être connu de tous. J'ai une très forte confiance dans l'Advanced Encryption Standard, et presque aucun dans un algorithme propriétaire Joe a écrit et obscure.
Cependant, il y a eu des problèmes avec des implémentations des algorithmes de chiffrement. Il est facile de par inadvertance laisser des trous par lequel la clé peut être trouvé, ou autre méfait accompli. Il est arrivé avec un autre champ de signature pour PGP, et les faiblesses avec SSL mis en œuvre sur Linux Debian. Il est même arrivé à OpenBSD, qui est probablement le plus sécurisé du système d'exploitation facilement disponible (je pense que c'est à deux exploits en dix ans). Par conséquent, ils doivent être faits par une entreprise digne de confiance, et je me sentirais mieux si la mise en œuvre de l'open source. (À code source fermé de ne pas arrêter une personne déterminée, mais il sera plus difficile pour aléatoire bon gars pour trouver des trous à être fermé.)
Donc, si je voulais de la sécurité, je vais essayer d'avoir mon système aussi fiable que possible, ce qui signifie aussi ouvert que possible, sauf pour le mot de passe.
La superposition de la sécurité par l'obscurité sur le dessus d'un système de sécurité peut aider certains, mais si le système est sécurisé, il ne sera pas nécessaire, et si c'est l'insécurité, la meilleure chose est de le rendre sécuritaire. Penser à l'obscurité comme les moins avouables formes de "médecine alternative" - il est très peu probable que beaucoup d'aide, et tandis qu'il est peu probable que mal de choses par lui-même, il peut rendre le patient de moins de chances de voir un médecin compétent ou de l'ordinateur spécialiste de la sécurité, selon.
Enfin, je voudrais faire un complètement non sollicités et désintéressé de la bougie pour Bruce Schneier blog, comme rien de plus qu'un lecteur intéressé. J'ai appris beaucoup de choses au sujet de la sécurité d'elle.
L'un des meilleurs moyens d'évaluation, de test ou de l'amélioration d'un produit de sécurité est de l'avoir fait ramoner par un gros malin groupe de pairs.
Produits qui s'appuient pour leur sécurité, sur le fait d'être une "boîte noire" ne peut pas avoir l'avantage de ce genre de test. Bien sûr, étant une "boîte noire" invite toujours le soupçon (souvent justifiée) qu'ils ne feraient pas le poids face à ce genre de regard, de toute façon.
Je l'ai soutenu dans un cas que la protection par mot de passe est vraiment la sécurité par l'obscurité. La seule sécurité, je pense, qui ne sera pas de la STO est une sorte de sécurité biométrique.
D'ailleurs que peu de sémantique et de la cueillette nit, STO (la Sécurité par l'obscurité) est évidemment mauvais dans tous les cas où vous avez besoin d'une véritable sécurité. Toutefois, il pourrait y avoir des cas où il n'a pas d'importance. Je vais souvent XOR tampon, un fichier texte, je ne veux pas que quiconque de la lecture. Mais je n'ai pas vraiment de soins s'ils le font, j'aurais préférer qu'il ne soit pas lu. Dans ce cas, il n'a pas d'importance, et un XOR pad est un parfait exemple de facile de trouver de la STO.
Il est presque jamais une bonne idée. C'est la même chose-à-dire, est-ce une bonne idée de conduire sans ceinture de sécurité? Bien sûr, vous pouvez trouver des cas où il s'inscrit, mais la réponse due à l'expérience semble évident.
De chiffrement faibles ne décourager les moins motivés pirates, de sorte qu'il n'est pas sans valeur, il n'est pas très utile, en particulier lorsque le chiffrement fort, comme AES, est disponible.
La sécurité par l'obscurité est basée sur l'hypothèse que vous êtes intelligent et que vos utilisateurs sont stupides. Si cette hypothèse est basée sur l'arrogance, et non pas sur des données empiriques, alors à vos utilisateurs - et les pirates-- permettra de déterminer comment appeler le caché de la méthode, amener la non reliées page, décompiler et d'en extraire le texte en clair le mot de passe de la .dll, etc.
Cela dit, en fournissant des méta-données pour les utilisateurs n'est pas une bonne idée, et le recouvrement est parfaitement valide technique aussi longtemps que vous le sauvegarder avec le cryptage, d'autorisation, d'authentification et de tous les autres principes de sécurité.
Si le système d'exploitation est Windows, regardez à l'aide de l'API de Protection des Données (DPAPI). Ce n'est pas la sécurité par l'obscurité, et c'est un bon moyen de stocker les informations d'identification pour un processus en mode sans assistance. Comme à peu près tout le monde dit ici, la sécurité par l'obscurité ne vous donne pas beaucoup de protection.
http://msdn.microsoft.com/en-us/library/ms995355.aspx
http://msdn.microsoft.com/en-us/library/ms998280.aspx
Le seul point que j'ai à ajouter qui n'a pas été touché encore, c'est l'incroyable capacité de l'internet pour casser la sécurité par l'obscurité.
Comme cela a été démontré maintes et maintes fois, si votre seul moyen de défense est que "personne ne connaît la porte arrière/bug/exploit est là", puis il suffit qu'une personne de tomber sur elle et, en quelques minutes, des centaines de personnes le savent. Le lendemain, à peu près tout le monde qui veut savoir, sera. Ouch.