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
    839
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 839
    Points : 262
    Points
    262
    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 459
    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 459
    Points : 24 873
    Points
    24 873
    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
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    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 !
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

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

    Informations forums :
    Inscription : Mai 2007
    Messages : 839
    Points : 262
    Points
    262
    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 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    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 784
    Points : 5 915
    Points
    5 915
    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...
    Philippe.

  6. #6
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    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
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  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 263
    Points
    3 263
    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+.
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  8. #8
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    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 784
    Points : 5 915
    Points
    5 915
    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 !
    Philippe.

  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 263
    Points
    3 263
    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+.
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  10. #10
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    soyons fous , ajoutons un Alternate Data Stream au fichier .dat
    cela ne changera pas le fond du problème
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  11. #11
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    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 784
    Points : 5 915
    Points
    5 915
    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...
    Philippe.

+ 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, 16h45
  2. Logiciel et Progiciel
    Par Toine dans le forum Autres Logiciels
    Réponses: 10
    Dernier message: 10/04/2012, 13h28
  3. Securisation de logiciel
    Par Pepson dans le forum Sécurité
    Réponses: 11
    Dernier message: 11/09/2007, 21h27
  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, 22h18
  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, 10h21

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