2010-09-02 6 views
1

Je crée un service Web pour les utilisateurs finaux qui aura un frontal sous la forme d'une application de bureau Adobe AIR, mais les utilisateurs pourront également accéder à leurs données via le site Web. Les données de l'utilisateur seront synchronisées entre le serveur et le magasin de données local. Le problème est que je ne peux pas obtenir un certificat SSL. Y at-il un moyen de rendre cela plus sûr?Authentification sécurisée sans SSL?

Je pense que je peux utiliser quelque chose comme oAuth à deux jambes ou un système d'authentification de type Amazon S3?
Que recommandez-vous dans une telle situation?

+2

Quoi que vous fassiez, s'il vous plaît [ne pas rouler le vôtre] (http://stackoverflow.com/questions/3604582/which-attacks-are-possible-concerning-my-security-layer-concept/3604619#3604619) – NullUserException

Répondre

4

La première question est: pourquoi ne pas obtenir un certificat SSL? Je pense à deux raisons:

  1. certificats SSL sont trop chers
  2. Vous ne voulez pas avoir un certificat délivré par un tiers

Si votre problème est # 1, StartSSL fournit certificats gratuits avec une validité d'un an ou des frais de 50 $ pour les certificats illimités valables pour 2 ans (y compris les caractères génériques). Ils sont reconnus à la fois par Mozilla et le trust store Microsoft. Si le problème est # 2, pourquoi ne pas émettre un certificat auto-signé et le coder en dur dans votre application? Cela ne compromet pas du tout la sécurité du système (seul votre cert particulier sera accepté par l'application), mais élimine le besoin d'obtenir un certificat SSL d'un autre endroit. Si vous ne pouvez vraiment pas utiliser SSL, regardez les systèmes de challenge-response tels que Kerberos ou les générateurs de matériaux clés anonymes comme Diffie-Helman (avec une clé asymétrique pour la validation de l'identité du serveur). De nombreuses méthodes existent pour l'authentification sécurisée à deux parties sur une ligne non sécurisée. La clé est que l'étape de vérification de l'ID doit être challenge-response au lieu d'un schéma «envoyez-moi votre secret».

+0

Même si le certificat SSl est libre, je n'ai pas accès à une adresse IP statique. – User

+1

@Shubhkarman: Qui vous a dit que vous aviez besoin d'une adresse IP statique pour utiliser SSL? Ils ont tort. Le problème de ne pas avoir d'adresse IP statique est la difficulté à établir la connexion entre le client et le serveur. Mais vous pouvez gérer avec un service DNS dynamique. – Borealid

+1

Certains hôtes exigent que vous ayez une adresse IP statique car les hôtes partagés utilisent la même adresse IP pour tout le monde et vous ne pouvez pas utiliser le port par défaut (443) sur plusieurs sites. – Inigoesdr