Php sso (single sign on) en appli

Signaler
Messages postés
25
Date d'inscription
samedi 27 décembre 2003
Statut
Membre
Dernière intervention
25 août 2011
-
alvinemambele
Messages postés
72
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
31 mai 2013
-
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

Messages postés
354
Date d'inscription
dimanche 3 juin 2001
Statut
Membre
Dernière intervention
11 mars 2013

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...
Messages postés
25
Date d'inscription
samedi 27 décembre 2003
Statut
Membre
Dernière intervention
25 août 2011

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
Messages postés
354
Date d'inscription
dimanche 3 juin 2001
Statut
Membre
Dernière intervention
11 mars 2013

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.
Messages postés
72
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
31 mai 2013
5
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!