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

VB.NET Discussion :

Questions de sécurité


Sujet :

VB.NET

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Décembre 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Décembre 2014
    Messages : 18
    Points : 9
    Points
    9
    Par défaut Questions de sécurité
    Bonjour à tous et à toutes !

    Voilà, j'ai plusieurs questions en tête, j'ai bien sûr cherché, mais j'ai pas été entièrement satisfais des réponses trouvées

    Je compte concevoir un petit programme (login) qui utilisera une base de donnée (MySQL).

    Ce programme en question sera installé sur le pc des utilisateurs.

    Pour que mon programme accède à la BDD, je vais devoir utiliser le MySQL distant, donc y stocker les identifiants de connexion dans le code (Programme obfusqué).

    Voici donc ma première question.

    Les identifiants/données peuvent-ils être "sniffer" via un logiciel tel que Wireshark ?

    Vu que je n'aime absolument pas mettre des identifiants dans un code, j'ai envisagé une autre solution.

    Prendre un VPS, y développer un programme "server" et "client" (mon programme de base).

    Le programme "client" enverra les données via sockets au "server" et celui-ci ce chargera de traiter les informations (insert BDD, ect...).

    Donc impossible de voler les identifiants SQL.


    Je me suis renseigné sur les sockets, je sais qu'on peut les sniffer voir même les modifier.
    Pour régler ce problème, je compte utiliser le système RSA (clé publique/privée) pour crypter les échanges.

    J'en viens donc à ma seconde question,

    Quelles méthodes choisir parmi ces deux là ? Comment bien communiquer avec sa BDD distante ? (sécurité, fluidité)

    Je vous remercie d'avance

  2. #2
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    MySQL autorise les connexions sécurisées via SSL.
    Ca me parait être le plus simple...
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

  3. #3
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Bonjour,

    Il n'a pas été nécessaire de poursuivre la lecture de ton message puisque déjà à cet endroit ça coince :

    Pour que mon programme accède à la BDD, je vais devoir utiliser le MySQL distant, donc y stocker les identifiants de connexion dans le code (Programme obfusqué)
    Il ne fait pas croire qu'obfusquer ton programme rendra impossible la récupération des données sensibles.
    Il faut effectivement éviter ce point qui vise à stocker "en clair" l'identifiant de connexion à ta DB dans ton programme côté client..... C'est une grosse faille de sécurité.
    Concernant la sécurité Server Side, il existe ce vieux projet pour t'en inspirer éventuellement : LiteCode

    @mactwist69 :


    ++

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Décembre 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Décembre 2014
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par mactwist69 Voir le message
    MySQL autorise les connexions sécurisées via SSL.
    Ca me parait être le plus simple...
    Simple, mais les identifiants sont stockés en clair :/

    Citation Envoyé par wallace1 Voir le message
    Bonjour,

    Il n'a pas été nécessaire de poursuivre la lecture de ton message puisque déjà à cet endroit ça coince :



    Il ne fait pas croire qu'obfusquer ton programme rendra impossible la récupération des données sensibles.
    Il faut effectivement éviter ce point qui vise à stocker "en clair" l'identifiant de connexion à ta DB dans ton programme côté client..... C'est une grosse faille de sécurité.
    Concernant la sécurité Server Side, il existe ce vieux projet pour t'en inspirer éventuellement : LiteCode

    @mactwist69 :


    ++

    Je savais que l'obfuscation permet en gros de ralentir ou d'éliminer quelques rigolo mais ne protégeait pas à 100%, c'est pour cela que j'ai envisager la deuxième solution.

    Merci de ton exemple, je ne connaissais pas du tout :o Pour le moment j'allai utiliser cette exemple. C'est à peu près la même chose si j'utilise le cryptage RSA à chaque échange ?

    De plus je maîtrise plus le VB, le C# j'apprend

  5. #5
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    le cryptage si tu as la clé dans ton code ca reste moyen aussi ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Décembre 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Décembre 2014
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    le cryptage si tu as la clé dans ton code ca reste moyen aussi ...
    Je ne compte pas stocker de clé dans le code, vu que c'est un système de login, donc chaque utilisateur aura ses clés (public/privée). Encore savoir où les stocker...

    Quelle méthode est la plus adéquate/sécurisée ?

  7. #7
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    moi je n'y connais pas grand chose en sécurité, je suis toujours parti du principe que rien était sécurisable en .net
    il y en a bien qui parlent du fichier de config avec partie sécurisable, mais ca me laisse perplexe (ex: http://www.codeproject.com/Articles/...indows-Forms-A)

    après uwp étant compilé en natif d'autres disent que là ca commence à être sécurisable
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  8. #8
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 048
    Points : 2 201
    Points
    2 201
    Par défaut
    Au niveau de l'exécutable il n'y a pas grand chose de sécurisable. L'obfuscation a surtout pour objectif de protéger la logique métier dans ton code et en aucun cas les ressources de type mot de passe. Et ceci concerne aussi bien les applications natives que les .net qui peuvent aussi faire l'objet d'une ingénieurie inverse (c'est juste le niveau de difficulté qui change)

    Il est possible par contre d'utiliser les mécanisme de Windows pour stocker un login/un mot de passe entré par l'utilisateur lors de la 1ère utilisation de façon sécurisée.

    Si tu considère que l'utilisateur ne doit pas avoir accès à cette information (tu veux pas gérer les droits par utilisateur dans la base de données ou que l'utilisateur ne doit pas avoir accès directement à la base). Ton problème se situe au niveau de ton architecture tels que tu nous la décrite.

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Décembre 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Décembre 2014
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    Merci de vos réponses.
    Après quelques recherches, je pense utiliser cette méthode (via sockets) pour une connexion par exemple :

    (le programme client possède la clé public du programme server)

    - le programme "client" génère 1 paire de clé, chiffrement asymétrique. (public/privée)
    - le programme génère aléatoirement une clé, chiffrement symétrique
    - le programme chiffre cette clé avec la clé public du programme "server"
    - le programme re-chiffre avec sa propre clé privée
    - le programme envoi sa clé public + le chiffrement

    - le programme "server" déchiffre avec sa clé privé
    - le programme déchiffre avec la clé public du programme "client"
    - le programme possède maintenant la clé symétrique du programme "client"

    Maintenant les échanges entre server et client seront chiffrés par la clé symétrique.

    Est-ce que cette méthode est bonne ? Y-a-t-il des failles ou autres ?

    Il est possible par contre d'utiliser les mécanisme de Windows pour stocker un login/un mot de passe entré par l'utilisateur lors de la 1ère utilisation de façon sécurisée.
    S'agit-il de la classe ProtectedData ?
    Si non, est-il possible d'avoir plus de détails ? merci

  10. #10
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 048
    Points : 2 201
    Points
    2 201
    Par défaut
    S'agit-il de la classe ProtectedData ?
    Si non, est-il possible d'avoir plus de détails ? merci
    Gestion des informations d'identification à l'aide du .NET Framework 2.0

    Après mes développement utilise l'authentification windows de l'utilisateur pour se connecter à la base de données (SQL Server), donc je peux pas t'aider plus loin.

Discussions similaires

  1. [Sécurité] question de sécurité
    Par aymen85 dans le forum Langage
    Réponses: 6
    Dernier message: 26/06/2007, 16h56
  2. [Sécurité] Question de sécurité
    Par jc_cornic dans le forum Langage
    Réponses: 5
    Dernier message: 22/12/2006, 09h27
  3. Réponses: 5
    Dernier message: 22/09/2006, 03h13
  4. [Sécurité] Diverses questions de sécurité
    Par altadeos dans le forum Langage
    Réponses: 3
    Dernier message: 07/08/2006, 00h09
  5. Question difficile.(sécurité ACCESS)
    Par Jahprend dans le forum Sécurité
    Réponses: 11
    Dernier message: 09/06/2006, 15h26

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