2009-07-23 6 views
5

Je suis nouveau en SSL, tout ce que je lis et je sais que son certificat numérique payant et après avoir utilisé SSL dans le site Web https: // le transfert de données est sécurisé à la couche réseau.Informations de connexion sécurisées sans SSL

Dans mon application, je n'ai pas beaucoup de problèmes de sécurité sauf nom d'utilisateur et mot de passe.

Est-il possible de protéger Idenfitiant et mot de passe sans utiliser https SSL: //

+1

Oui, mais ce n'est pas une bonne protection. Une attaque de l'homme du milieu pourrait facilement casser ce mécanisme de sécurité. –

Répondre

3

Il existe un certain nombre de schémas d'authentification qui peuvent fonctionner de manière sécurisée sur HTTP simple. Le plus commun d'entre eux est Digest, qui est pris en charge par tous les principaux navigateurs Web et pratiquement tous les cadres de programmation Web.

Le bas-côté de l'utilisation Digest pour les sites web est que:

  • L'authentification est gérée par le navigateur lui-même plutôt que d'une page de connexion sur le site web, qui ne regarde pas presque aussi belle , et ne vous permet pas d'avoir toutes les fonctions d'aide environnantes comme "oublié votre mot de passe?" que nous attendons de nos jours. Si vous n'avez pas de connexion SSL, les utilisateurs avisés peuvent craindre d'envoyer leur mot de passe de manière non sécurisée (même s'ils ne le sont pas) parce qu'ils ont été formés pour rechercher une connexion SSL lors de la saisie des informations d'identification.

Il existe d'autres systèmes tels que OAuth qui sont également sans danger sur HTTP simple, mais qui est vraiment plus pour les API que les sites Web, donc probablement pas ce que vous voulez.

+2

Le résumé n'est pas exactement sécurisé. Quelqu'un qui peut voir le trafic entre les ordinateurs peut toujours intercepter le mot de passe digéré, et simuler/modifier une requête HTTP en utilisant le mot de passe digéré et accéder encore au site Web. – tschaible

+0

Des problèmes similaires se posent avec la plupart des autres schémas d'authentification. L'authentification par jeton, telle que l'émission de cookies d'authentification, peut également être interceptée et usurpée. la façon dont les deux sont atténués est d'avoir un jeton expirant (Digest le fait avec le nonce). Rien n'est vraiment sûr à moins que toutes les connexions sont faites sur SSL (et même alors, ce n'est pas vraiment sécurisé!). –

+0

Ohh j'ai eu une réponse, ça me va. Nous pouvons générer la valeur de hachage du mot de passe (chiffré) au client en utilisant l'algorithme MD5. et pour ce serveur doit passer une clé de valeur aléatoire au client quand il y a une demande de page de connexion en utilisant cette clé du côté client, nous pouvons chiffrer le mot de passe et l'envoyer au serveur. En tant que serveur connaître la clé et peut donc le décrypter. Je pense que cette solution est bonne. Quelle est ton opinion? –

1

Le certificat peut être un auto-signé un. Pas nécessairement pour être payé :)

+0

Monsieur, pouvez-vous me donner plus de détails afin que je puisse utiliser le certificat numérique gratuit sur mon site web. Aussi comment puis-je le configurer pour le site Web –

+1

Il y a aussi cacert.org ils émettent des certificats gratuits. Ils ne sont pas approuvés par les navigateurs par défaut, mais c'est mieux que la signature automatique. – stribika

1

Vous pouvez également essayer StartSSL.Org J'utilise qu'actuellement et il fonctionne très bien même, mais en quelque sorte la même chose que cacert.org, par défaut

2

ils ne sont pas la confiance des navigateurs Il y a pas d'alternative à La sécurité HTTP dans un navigateur autre que l'utilisation de SSL pour chaque page où l'utilisateur est connecté. Toutes les autres techniques sont complètement non sécurisées et ne sont que des couches d'obscurité.

Toute solution homebrew via HTTP est toujours vulnérable aux attaques MITM, entre autres vulnérabilités.

Même avec SSL, le mécanisme de session de connexion & doit être sécurisé ou il peut être fissuré en utilisant d'autres exploits.

0

hors sujet, vous pouvez obtenir votre propre certificat (auto-signé) en utilisant openssl.

Vous devez d'abord générer une clé RSA et une RSC pour générer un certificat autosigné. Sur une machine linux avec OpenSSL installé:

openssl genrsa -des3 -out mydomain.key 1024 

openssl req -new -key mydomain.key -out mydomain.csr // fill in the details 

mv mydomain.key mydomain.key.org 

openssl rsa -in mydomain.key.org -out mydomain.key  // creates passphraseless key 

openssl x509 -req -days 365 -in mydomain.csr -signkey mydomain.key -out mydomain.crt 
0

Hmmm, la haine d'ouvrir un vieux fil, mais je ne vois pas cela comme précis. Je reconnais qu'il est difficile de battre un certificat vérifiable, mais très souvent, les gens utilisent des certificats auto-signés pour les sites de test. Je suis à peu près sûr qu'une solution homebrew simple pourrait être aussi bonne qu'un certificat auto-signé.Heck, je dirais même qu'avec un peu de pré-partage de clés (ou quelque chose comme gpg) ça pourrait être tout aussi sécurisé.

+0

Pourriez-vous s'il vous plaît fournir des références sauvegardant vos réclamations? Si c'est vrai, ils seraient très intéressants. – Lizz

Questions connexes