IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Sécurité et service REST


Sujet :

Android

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 256
    Par défaut Sécurité et service REST
    Bonjour,
    Je voudrais faire suite à un sujet que j'ai lancé il y a quelques jours, concernant les échanges entre un tel android et un serveur externe.

    La notion de sécurité à été abordée, mais cela n'a pas répondu à toute mes questions..

    Je souhaite créer un jeu de clef RSA et un certificat pour pouvoir échanger mes données en SSL (donc lancer des requêtes en HTTPS depuis le telephone, vers le serveur).
    Pour commencer, je ne souhaite pas enregistrer la signature de mon certificat, je vais donc créer un certificat auto-signé.

    première question :
    A partir d'un navigateur web, pour le cas d'un certificat auto-signé, on doit lever une exception qui nous oblige a confirmer qu'on veut bien accéder à la page. Pour ce qui est d'une application android, comment ça se passe ?
    Pour faire simple, que va effectuer le téléphone sera https://monserveur/connexion/?id=monid&pass=monpass
    Je suppose que ça ne fonctionnera pas tel quel : il faut d'abord que j'installe le certificat dans mon application... comment ça se passe ?

    NB : Bien évidement, l'id et le pass ne circuleront pas en clair, ils seront hashés.

    Deuxième question:
    Pour améliorer encore la sécurité, je voudrais mettre en place un système de "terminal de confiance". Pour faire simple, en plus du certificat pour échanger avec le serveur, il faudra que le téléphone soit connu du serveur. Comme ça, si l'application est installés sur un autre téléphone, elle ne fonctionnera pas si le téléphone n'est pas connu.
    Pour faire ça, je pensais récupérer le numéro de série du téléphone, (le hasher) et l'enregistrer sur le serveur. Chaque échange avec le serveur ne sera possible qu'après vérification du terminal.
    Est ce que "utiliser le numéro de série" est une bonne manière de procéder ?

    Merci d'avance

  2. #2
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    Pour installer un key-store (en réalité un "truststore"), c'est assez simple:
    http://developer.android.com/referen...etFactory.html
    et aussi par exemple:
    http://blog.synyx.de/2010/06/android...-certificates/

    Identifier le téléphone par numéro de série est une des possibilités.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 256
    Par défaut
    Super
    Merci encore à toi nicroman

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 256
    Par défaut
    Citation Envoyé par poussinvert Voir le message
    [...] en plus du certificat pour échanger avec le serveur, il faudra que le téléphone soit connu du serveur. Comme ça, si l'application est installés sur un autre téléphone, elle ne fonctionnera pas si le téléphone n'est pas connu.
    Pour faire ça, je pensais récupérer le numéro de série du téléphone, (le hasher) et l'enregistrer sur le serveur. Chaque échange avec le serveur ne sera possible qu'après vérification du terminal.
    Après renseignements, voici un article à lire !

  5. #5
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Je bosse actuellement sur la mise en place d'un webservice et j'ai un peu approfondie les solutions de sécurités.

    Pour ma part j'ai choisi la combinaison de 3 solutions

    - https (évidemment)
    - Une clé API , unique par client
    - Une signature de chaque requête avec une clé privée, qui permet de vérifier la légitimité d'une requête.

    La clé API et la signature sont passées dans des entêtes personnalisé. La clé API permet d'identifier le client et donc de connaitre la clé qui va servir à la signature.
    La signature s'effectue sur certains paramètres prédéfinie et un timestamp.

    Si la clé API et la signature son correcte => on accède à la ressource demandé , sinon on considère la requête comme frauduleuse.

    La seule contrainte c'est que celà impose d'insérer la clé privée et la clé api dans le client.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Sécurité des données d'un Web Service REST
    Par ahmeddrira dans le forum Services Web
    Réponses: 1
    Dernier message: 21/05/2012, 10h39
  2. [CXF][Spring][Tomcat][Débutant] Créer un service REST
    Par cowa dans le forum Services Web
    Réponses: 5
    Dernier message: 31/10/2010, 12h20
  3. Implémentation d'un service REST simple en Java
    Par Invité dans le forum REST
    Réponses: 5
    Dernier message: 31/10/2010, 10h40
  4. Sécurité des services !
    Par kiristo dans le forum Windows Communication Foundation
    Réponses: 0
    Dernier message: 06/12/2008, 19h17
  5. Sécuriser un service REST
    Par Invité dans le forum REST
    Réponses: 2
    Dernier message: 01/06/2008, 19h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo