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

Langage Delphi Discussion :

securisation de logiciel


Sujet :

Langage Delphi

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    857
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 857
    Points : 267
    Points
    267
    Par défaut securisation de logiciel
    bonjour,

    Suite à la réalisation en interne d'une gestion commerciale spécifique à notre sociéte, mon employeur me demande de sécuriser mon logiciel.
    Le logiciel est connecté à une base Firebird.

    Sa reflexion de départ est la suivante: si un employé emporte l'executable chez lui , il ne doit pas pouvoir s'en servir.

    La première idée qui me vient est la suivante: comme nous sommes sur un domaine, je peux l'identifier au lancement du logiciel.

    Avez vous d'autre piste ? Clé logiciel ? Blocage sur racine d'adresse IP ?

    Je précise que les employés ne sont pas des crack en informatique, donc pas besoin de faire des protections trop complexes. Déja si la client Firebird n'est pas installé sur le poste, le logiciel plantera dès le départ.


    Merci

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 736
    Points : 25 645
    Points
    25 645
    Par défaut
    Citation Envoyé par looping Voir le message
    Suite à la réalisation en interne d'une gestion commerciale spécifique à notre sociéte, mon employeur me demande de sécuriser mon logiciel.


    Citation Envoyé par looping Voir le message
    Le logiciel est connecté à une base Firebird.
    Sur un Serveur de TA Société ?
    Un Serveur accessible depuis les locaux mais probablement pas depuis l'extérieur ! non ?

    Citation Envoyé par looping Voir le message
    Sa reflexion de départ est la suivante: si un employé emporte l'executable chez lui , il ne doit pas pouvoir s'en servir.
    Il faudrait qu'il soit assez doué pour prendre aussi les dépendances comme les DLL, les BPL, mettre ce qu'il faut dans des Ini, la Base de Registre ...

    Citation Envoyé par looping Voir le message
    La première idée qui me vient est la suivante: comme nous sommes sur un domaine, je peux l'identifier au lancement du logiciel.
    Sur un domaine ?
    un employé chez lui peut-il avoir accès au domaine ?
    Vous avez monté prévu du VPN pour du télétravail ?
    Sinon je vois pas comment quelqu'un pourrait avoir accès au serveur de base de données !
    Pense au LDAP de ton ActiveDirectory, tu peux utiliser le même login\pw que celui pour le LDAP
    Dans le LDAP, tu peux associer à chaque personne, un user de ta DB :
    - soit un user pour chaque, pénible à gérer
    - soit un user pour un groupe, permet de limiter les risques de DELETE\UPDATE sur les tables sensibles

    Souvent, on a juste un user général pour l'application, toutes les instances utilisant le même, où je suis c'est le choix qui a été fait, c'est beaucoup plus simple mais nul en sécurité

    Et c'est une table de la DB qui contient les login\pw et le niveau d'habilitation, un grand classique

    Citation Envoyé par looping Voir le message
    Avez vous d'autre piste ? Clé logiciel ? Blocage sur racine d'adresse IP ?
    FireBird, je ne connais pas

    Je peux te faire un parallèle avec ce que je connais sur MySQL
    Mais MySQL on peut limité par user une plage d'IP, par exemple, root uniquement accessible en localhost ou depuis un terminal réservé à un admin

    On en revient à la gestion des users ... Application avec Firebird : méthode de connexion ?

    On peut renforcer la sécurité avec
    - SSL : Using SSL for Secure Connections
    - SSH : Connexion à MySQL à distance avec Windows et SSH

    Voir ce que propose FireBird à ce sujet :
    How to protect the connection over insecure networks ... - Firebird FAQ

    Firebird doesn't have anything built in for that. There is a discussion of possibility to use SSL, and perhaps it will be implemented in some future version. In the meantime, you can use some generic tunneling software like SSH, SSL or ZeBeDee.
    Citation Envoyé par looping Voir le message
    Je précise que les employés ne sont pas des crack en informatique, donc pas besoin de faire des protections trop complexes. Déja si la client Firebird n'est pas installé sur le poste, le logiciel plantera dès le départ.
    C'est ce que je disais !
    Même si le client était installé, faudrait un acces sur le serveur, je doute que ton SGBD soit accessible depuis l'extérieur du réseau d'entreprise sauf dans deux cas :
    - Tunnel SSH pour VPN
    - un adminstrateur réseau incompétent

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 306
    Points : 41 792
    Points
    41 792
    Billets dans le blog
    65
    Par défaut
    C'est l'exe qu'il faut sécuriser ou la BDD ? je n'ai pas compris parce que un exe seul n'ayant pas accès a à la BDD ne servira a rien !

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    857
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 857
    Points : 267
    Points
    267
    Par défaut réponse
    Bonjour,

    C'est l'exe que je veux securiser.
    Mais comme vous l'indiquez, un exe sans base ne sert à rien donc ca va limiter le problème.
    De plus j'ai concu ma base comme vous le préconiser: la base User/Pass est séparé de la base principale.

    Pour compléter, je vais donc ajouter un filtrage sur le nom de domaine et sur la plage d'adresse IP au cas ou un petit stagiaire calé en informatique viendrait copier la base.

    Merci pour vos réponses

  5. #5
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 786
    Points : 5 918
    Points
    5 918
    Par défaut
    Bonjour,
    Citation Envoyé par looping Voir le message
    C'est l'exe que je veux securiser.
    Personnellement, ce seraient les données que je m'attacherais à protéger si j'étais à votre place et/ou à celle de votre employeur, si tant est que votre exécutable soit doté d'une interface ou de fonctionnalités exceptionnelles...
    Citation Envoyé par looping Voir le message
    Mais comme vous l'indiquez, un exe sans base ne sert à rien donc ca va limiter le problème.
    Par contre une base même sans exécutable conserve sa valeur, surtout si elle touche à la gestion commerciale de votre entreprise !
    Citation Envoyé par looping Voir le message
    Pour compléter, je vais donc ajouter un filtrage sur le nom de domaine et sur la plage d'adresse IP au cas ou un petit stagiaire calé en informatique viendrait copier la base.
    Ce qui est, je me permets d'insister, futile !

    Attachez vous plutôt à protéger votre base sur votre serveur (fichier seulement accessible par "l'utilisateur" qui fait tourner le SGBD, "l'utilisateur" chargé des sauvegardes et l'administrateur. Et que l'accès à ces utilisateurs ne soit pas ouvert à tous les vents !
    Tant que n'importe quel quidam peut accéder au fichier de base de données, il y a faille...

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 306
    Points : 41 792
    Points
    41 792
    Billets dans le blog
    65
    Par défaut
    Bonjour,
    C'est un des points a déplorer avec Firebird : le non cryptage des données . Quoique avec un peu d'acharnement une bonne dose de patience et une bonne qualification C il est toujours possible de prendre les sources de Firebird et en faire une version "personnelle" comme cela est expliqué dans certaines discussions/papiers sur le site de Firebirdsql.org (désolé pas de lien, j'ai lu cela il y a déjà longtemps, je ne fais que régurgiter ce qu'il me reste de ces lectures).

    [Edit] après avoir poster ces réflexions je me suis souvenu d'une traduction de FAQ Firebird que j'avais faite et qui n'a peut être jamais été mise dans ces dernières . heureusement je l'avais cité in extenso dans un post

    Pour complètement faire le tour du sujet , j'ajouterais quelques lectures sur ZEBEEDEE en ce qui concerne le VPN et l'approche multi-tiers (datasnap) cependant nulle protection ne sera parfaite contre les "pays au comportement voyou" (je suis sur que vous savez a quels pays je cite et pense) C'est fou ce qu'un simple petit serveur ftp peut subir comme attaque (je parle d'expérience) à croire qu'ils n'ont que ça a faire ! noyons les dans des mégatonnes de données inutiles

  7. #7
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 266
    Points
    3 266
    Par défaut
    Bonjour,

    Ph. B. : Tant que n'importe quel quidam peut accéder au fichier de base de données, il y a faille...
    Pour compléter la sécurisation il y a aussi la possibilité d'inclure dans le code de l'exe et plus exactement dans le FormCreate de l'unité principale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure TFormMain.FormCreate(Sender: TObject);
    begin
     if not FileExists('F:\Doss1\Doss2\Doss3\...\FichierVerrou.dat')
      then Application.Terminate;
    end;
    dans cet exemple 'F:\Doss1\Doss2\Doss3\...\FichierVerrou.dat' désigne un fichier quelconque stocké en permanence dans un sous-répertoire du labyrinthe de l'ordinateur central de l'entreprise.
    Donc même si un quidam copie l'exe et la base de données utilisée par l'exe il y a peu de chances que sur son ordi perso il ait également le même chemin d'accès au fichier 'FichierVerrou.dat' ... sauf cas fort improbable que le quidam reproduise chez lui la copie intégrale du contenu de l'ordi central de l'entreprise.
    (on peut être encore plus radical en remplaçant Application.Terminate par DeleteFile(Application.ExeName) ... à voir)

    A+.

  8. #8
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 786
    Points : 5 918
    Points
    5 918
    Par défaut
    Bonjour,
    Citation Envoyé par Gilbert Geyer Voir le message
    ...dans cet exemple 'F:\Doss1\Doss2\Doss3\...\FichierVerrou.dat' désigne un fichier quelconque stocké en permanence dans un sous-répertoire du labyrinthe de l'ordinateur central de l'entreprise.
    Donc même si un quidam copie l'exe et la base de données utilisée par l'exe il y a peu de chances que sur son ordi perso il ait également le même chemin d'accès au fichier 'FichierVerrou.dat' ... sauf cas fort improbable que le quidam reproduise chez lui la copie intégrale du contenu de l'ordi central de l'entreprise.
    (on peut être encore plus radical en remplaçant Application.Terminate par DeleteFile(Application.ExeName) ... à voir)
    Et bien moi, je prends mon éditeur hexadécimal et je remplace 'F:\Doss1\Doss2\Doss3\...\FichierVerrou.dat' par 'C:\Autoexec.bat' par exemple, et le tour est joué ! plus de verrou !

  9. #9
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 266
    Points
    3 266
    Par défaut
    Re-bonjour,

    Ph. B. : Et bien moi, je prends mon éditeur hexadécimal et je remplace 'F:\Doss1\Doss2\Doss3\...\FichierVerrou.dat' par 'C:\Autoexec.bat' par exemple, et le tour est joué ! plus de verrou !
    Oui sauf qu'à coté de Ph. B. il est marqué Expert Confirmé
    ... alors que dans l'introduction de cette discussion il est dit :
    Je précise que les employés ne sont pas des crack en informatique, donc pas besoin de faire des protections trop complexes.
    A+.

  10. #10
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 306
    Points : 41 792
    Points
    41 792
    Billets dans le blog
    65
    Par défaut
    soyons fous , ajoutons un Alternate Data Stream au fichier .dat
    cela ne changera pas le fond du problème

  11. #11
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 786
    Points : 5 918
    Points
    5 918
    Par défaut
    Citation Envoyé par Gilbert Geyer Voir le message
    Oui sauf qu'à coté de Ph. B. il est marqué Expert Confirmé
    ... alors que dans l'introduction de cette discussion il est dit :
    Citation Envoyé par looping Voir le message
    Je précise que les employés ne sont pas des crack en informatique, donc pas besoin de faire des protections trop complexes.
    C'est sous estimer les employés qui ne manqueront pas de faire appel à plus expérimentés qu'eux...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Quel logiciel (EDI) pour débuter en programmation ?
    Par mimosa69 dans le forum Débats sur le développement - Le Best Of
    Réponses: 13
    Dernier message: 17/01/2016, 17h45
  2. Logiciel et Progiciel
    Par Toine dans le forum Autres Logiciels
    Réponses: 10
    Dernier message: 10/04/2012, 14h28
  3. Securisation de logiciel
    Par Pepson dans le forum Sécurité
    Réponses: 11
    Dernier message: 11/09/2007, 22h27
  4. logiciel de programmation en Algorithmique
    Par Thomas Lebrun dans le forum Algorithmes et structures de données
    Réponses: 11
    Dernier message: 08/11/2002, 23h18
  5. Cours, tutoriels, logiciels, F.A.Q,... pour le langage SQL
    Par Marc Lussac dans le forum Langage SQL
    Réponses: 0
    Dernier message: 04/04/2002, 11h21

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