Php sso (single sign on) en appli

cs_Diablo62 Messages postés 25 Date d'inscription samedi 27 décembre 2003 Statut Membre Dernière intervention 25 août 2011 - 24 août 2011 à 21:40
alvinemambele Messages postés 72 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 31 mai 2013 - 29 août 2011 à 18:03
Bonjour,

Je sais pas où mettre cette question par conséquent je fais aussi une proposition :)
Peut on créer un thème PHP/sécurité ?

Ma question porte sur une sorte de SSO (single sign on)
Je développe un portail en php qui va donner accès à plusieurs application.
Un utilisateur arrive sur ce portail, il se connecte avec ces identifiants, il a plusieurs liens vers des appli web qui ont besoin d'une authentification.
Donc j'ai besoin de vos lumieres pour me donner des conseils au niveau securité

J'ai pensé faire comme ceci :
- supprimer la page d'auth de l'application destination
- faire un lien du type application.dom.fr/auth.php?auth=true&shared=kjkjgslkjgkdsjlkgjsdkjkfds&id_user=32
- shared serait par exemple un md5() de id_user + un secret qui serait identique entre le portail et l'application.

J'ai besoin d'un niveau de sécurité assez important alors si qq'un a une idée ou des conseils pour améliorer, je prends :)

Merci

4 réponses

JulSoft Messages postés 354 Date d'inscription dimanche 3 juin 2001 Statut Membre Dernière intervention 11 mars 2013
25 août 2011 à 01:14
Une idée qui vaut ce qu'elle vaut... Mais qui me passe par la tête...

En lisant le mécanisme utilisé par OpenID, il est fait mention de la création d'un secret partagé entre l'application et le client.
Du coup, je me disais pourquoi ne pas utiliser un échange de clés type RSA pour décoder tes données sensibles. Un truc du genre:

L'application (A) fourni au client sa clé publique.
Le client s'authentifie sur le serveur d'authentification (S), qui lui renvoie en échange sa clé privée (celle du client donc).

Le client fourni alors la clé privée qui vient de lui être transmis à (A) qui peut s'en servir pour décoder par exemple les identifiants (dans son propre système) du client. Ces identifiants ont été obtenus lors de la première connexion (cryptés avec la clé privée de (S) et la clé publique du client, connue de (S)).

C'est peut être plus dur à contrefaire qu'un simple token. Après, il faut vraiment sécuriser l'échange de clés...
0
cs_Diablo62 Messages postés 25 Date d'inscription samedi 27 décembre 2003 Statut Membre Dernière intervention 25 août 2011
25 août 2011 à 21:48
Merci d'avoir répondu, ta solution me parait pas mal du tout, j'ai cependant quelques petites questions :
- le cryptage symétrique des valeurs importantes serait peut etre suffisant ?
- la différence au niveau qualité de la sécurité en cryptage asymétrique et symétrique est elle importante ?
- et si dans mon cas j'utilise un token + id_users je le crypte de facon symétrique et que je post les valeurs en https. Ce serait assez sécurisé ?

Merci
0
JulSoft Messages postés 354 Date d'inscription dimanche 3 juin 2001 Statut Membre Dernière intervention 11 mars 2013
25 août 2011 à 21:56
Je suis de loin pas un expert en sécurité... L'idée était la suivante:

L'idée de la clé asymétrique c'est de dire au service "c'est moi, et ça ne peut pas être quelqu'un d'autre" genre lui transmettre un id crypté, du coup seul le vrai client peut donner cet id là.

Tu ne peut utiliser une "clé" que sur un serveur deja connu du serveur d'authentification. Cryptage symétrique ou pas, je pense que l'asymétrique est mieux pour garantir l'intégrité de ta clé (seul le service à laquelle elle est destinée ne peut la décoder), mais peut être que quelqu'un me donnera tord.

Je pense que de toute façon il faut transmettre les valeurs à travers une couche de SSL. Peut être qu'on peut rajouter quelque chose, mais ça me semble deja pas mal.
0
alvinemambele Messages postés 72 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 31 mai 2013 15
29 août 2011 à 18:03
pour quelques lumière sur chiffrement RSA consulter
http://villemin.gerard.free.fr/Crypto/RSA.htm
http://fr.wikipedia.org/wiki/Rivest_Shamir_Adleman
http://www.primenumbers.net/Renaud/fr/crypto/RSA.htm


Un orateur trop long est comme une horloge qui sonne les minutes!
0
Rejoignez-nous