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

Sécurité Discussion :

géneration objet Unique - protection de données


Sujet :

Sécurité

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Novembre 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2009
    Messages : 11
    Points : 8
    Points
    8
    Par défaut géneration objet Unique - protection de données
    Bonjour,

    mon objectif c'est de générer un objet unique, de tel façon qu'il serait impossible de régénérer un autre objet identique.
    L'objet en question est un ensemble de procédures (fonctions) et de données.

    L'objet en question pourra être graver en dure dans l'eeprom, un programme cabler, être stocker comme donnée dans une base, un disque dur (fichier), ou une instance (processus) exécuter dans un cache ou mémoire.

    Autres condition, mon objet sera considérer comme null (sa valeur est vide, ou inexistant) si jamais l'instance dans laquelle il s’exécute s’arrête ( arrêt du processus, éteindre la machine, etc ...)

    Je suppose que n'importe quel technologie ou méthode pour sécuriser cet objet a ce qu'il ne soit pas altérable n'existe pas. Je suppose par défaut qu'on peut trouver une manière de le modifier.

    C'est dans le but de protéger ces fonction et ses données contre la modification, que je me dis que si j'arrive à produire des entités de cet objet, et que chaque entité soit unique (numéro de série par exemple ou un champs id qui comporte un code crypter).
    Mais comme je vous ai dis, je ne veux pas qu'on puisse régénérer un objet semblable en utilisant les mêmes données d'initialisation du premier, à l'aide du crack du cryptage ou l'utilisation du reverse ingeniering par exemple ou autres techniques.

    Grosso modo, je ne veux pas avoir la situation suivante.
    J'ai un objet O1 d'identifiant ID1 avec la donnée D1 de valeur V1, et procédure P1 de valeur F1

    Si jamais quelqu'un puisse :
    Créer un O2 d'identifiant ID1 avec la donnée D1 de valeur V2, et procédure P1 de valeur F2
    ou Modifier O1 avec D1 de valeur V2, et procédure P1 de valeur F2

    En soumettant le O2 ou O1 modifier, mon système (application) sache qu'il ne s'agit pas du premier O1 qu'on a créer.

    Quelle serait d'après-vous la/les solutions pour arriver a cet objectif ?
    Merci.

  2. #2
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 432
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 432
    Points : 43 059
    Points
    43 059
    Par défaut
    Peut-être en incorporant à l'objet une clé unique type GUID. Peut être aussi incorporer un checksum sur certains champs( ou tous), ce checksum pouvant être ensuite crypté avec un algorithme type SHA/MD5. Attention, si tu utilises le checksum sur des champs susceptibles d'être modifiés, il faudra régénérer celui-ci à chaque modification.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Novembre 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2009
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Bonjour chrtophe,
    Merci pour votre réponse.
    Les champs ne seront jamais modifier, justement c'est mon objectif.

    Question 1 - le faites de vérifier le checksum de tout les champs de l'objet, est ce que ça ralentirais le système , impact sur les performances ?

    Question 2 - Théoriquement et pratiquement parlé, est ce que le cryptage SHA/MD5 pourra être cassé ou deviner par itération ?

    Je vais voir ce que c'est le type GUID, jamais utilisé.

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Novembre 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2009
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    je vous donne un cas d'exemple pour illustrer mon besoin de protéger mes donnés contre la modification et d'avoir un objet unique.

    Supposons que je suis une société qui fabrique des éléments boitier X pour gérer l'accès de personnes à une salle (zone)
    Mes données (incorporer dans le boitier) statiques a protéger : c'est la liste des personnes autorisé à accéder

    Risque
    Un tiers pourra fabriquer un boitier semblable Y en se passant par X, est modifier la liste des personnes autorisé, par exemple ajouter d'autres personnes qui ne devrais pas figurer sur la liste. De ce fais le système en acceptant d'utiliser le boitier Y (sachant qu'il crois utiliser X) comme boitier confiant sera trompé et leurré

    Vous allez me dire comment un tiers pourra fabriquer et imiter à l'identique le boitier X, je vous réponds que mon projet est open source et qu'il est libre (gratuit ou payant), l'essentiel c'est que tout le monde aura accéder au code et au modèle du projet. Mon objectif ce n'est pas de rendre mon modèle secret pour le commercialisé après, non, le but c'est de créer un système fiable qui va obligé son utilisateur (le créateur du boitier) à ne pas avoir des objets altérable.

    Je ne sais pas si je me suis bien expliquer, mais jusqu'à maintenant, le seul système que je connais qui fabrique créer des objets UNIQUE, c'est l'a procruation humaine, chaque personne dans ce monde (on est 6,5 milliards je crois) est unique. Je veux arriver a un objet informatique semblable dans l'unicité, cad à l'instant que je créer (initialise) X, je ne peux jamais créer un Y qui est le même que X.

    Si vous taper ds la calculette 1+1 ca vous donner toujours 2, ou bien si f(a)=b A T=t1 , vous aurez toujours f(a)=b A T=t2
    moi je veux f(a)=b1 A T=t1 , la deuxième création f(a)=b2 A T=t2

    Je pense à deux solutions :
    1- J'ai un générateur qui va créer les boitier et qui connais les codes crypter de chaque boitier et les mets dans sa base interne
    Donc on aura plusieurs générateurs dans plusieurs pays et à la possession de plusieurs personnes, un ensemble de boitiers crées se réfère à un générateur donnée, il suffit de sécurisé c'est générateurs physiquement parlé, pour laisser leur base de code interne secrète.

    2- Centralisé la génération de boitier, donc obligé le créateur de l'objet à se connecter à un système réseau internet (donc à un serveur ou des serveur distribuées), et c'est ce serveur qui va fournir le ou les codes crypté pour chaque objet créer, on aura donc une seule base. les inconvénients dans cette approche : il faut être connecté + sécurisation de la liaison entre le serveur et le générateur + sécurisation de la base centrale.

  5. #5
    Membre émérite
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Points : 2 793
    Points
    2 793
    Par défaut
    Bonjour,

    Ce que tu cherches à faire ressemble surtout à de la signature numérique (en gros tu cherches à authentifier un boîtier si j'ai compris). En gros ton générateur a une clé privée qui va servir à signer les données stockées sur l'appareil que tout le monde (en l'occurence ton serveur) pourra vérifier à l'aide de la clé publique du serveur (en gros n'importe qui possédant la clé publique pourra vérifier que les données n'ont pas été corrompues en fait) mais seul ton boîtier pourra émettre une signature.

    Pour plus d'informations, tu peux regarder ici, et normalement n'importe quel bibliothèque de crypto potable (OpenSSL/LibreSSL) gère les signatures numériques (et il faut surtout éviter de faire une solution "maison", qui sont plus enclintes à introduire des vulnérabilités, notamment les attaques par canaux cachés si ce n'est pas carrément le protocole en lui-même qui est vulnérable).
    Toute question technique envoyée en MP ira directement à la poubelle

    Un code ne marchera jamais, il n'a jamais reçu la capacité de se déplacer.
    Inutile donc de dire "ça marche pas", donnez plutôt des informations précises afin de mieux pouvoir vous aider.


    Grand gourou de la -attitude

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Novembre 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2009
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Bonjour
    Donc je peut implémenter la solution suivante :
    Signé tout les données de mon boitier (y compris son ID) par une méthode de clés privé/public (cryptographie asymétrique).
    Et mon système de génération créera un certificat unique (clé public/clé privé) pour chaque boitier généré

    De nos jours on ne peut plus avoir confiance, a chaque fois un organisme de certification / sécurité nous sorte qu'il était la cible d'une attaque d'envergure qui a pu récupérer tout les certificats et clés privés de leurs client !

    Est ce qu'il ne serais pas judicieux d'utiliser des clés générées localement dans mon serveur/PC sans passer par une autorité de certification

    Quelle sont les algorithme / techniques les plus sure :
    Cryptolog - EJBCA (Open source) - MetaPKI - NewPKI (Open source) - OpenCA (Open source) - OpenTrust - openWebPKI - Rooster (Open source) - Vulture-PKI (Open source)

  7. #7
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    Citation Envoyé par supersnail Voir le message
    qui sont plus enclintes à introduire des vulnérabilités
    enclines*

  8. #8
    Membre émérite
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Points : 2 793
    Points
    2 793
    Par défaut
    Bonjour,

    Pour le coup aucune idée de qui est le meilleur, désolé (le mieux est de te renseigner par toi-même, lire les différents avis, etc )

    Sinon je pense que faire une autorité de certification me semble un peu overkill pour ce que tu veux faire (l'organisme de certification est un organisme "de confiance" qui sert à certifier que tu es bien celui que tu prétends être, souvent moyennement finances). Mais logiquement si tu fais une clé pour chaque appareil (le récepteur ayant sa propre clé, il peut vérifier que les données du boitier ne sont pas altérées)et comme visiblement c'est toi qui visiblement distribue les clés, tu fais déjà autorité de certification sans le vouloir :þ
    Toute question technique envoyée en MP ira directement à la poubelle

    Un code ne marchera jamais, il n'a jamais reçu la capacité de se déplacer.
    Inutile donc de dire "ça marche pas", donnez plutôt des informations précises afin de mieux pouvoir vous aider.


    Grand gourou de la -attitude

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Novembre 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2009
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Bonjour,
    Justement la clés sera à la disposition du client / récepteur / système de contrôle.
    Il a la possibilité de controler l'authenticité du boitier

    Par contre je ne veux pas créer un organisme de certification
    je vais juste créer les clés en interne

    maintenant je penche sur le meilleur outils pour avoir des clés impénétrables

    Merci pour vos réponses

  10. #10
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 242
    Points : 13 457
    Points
    13 457
    Par défaut
    Bonjour

    Ne pas confondre 3 méthodes:
    • Le chiffrement
    • La signature
    • Les empreintes de fichiers.


    Ce sont bien les empreintes de fichiers qui résolvent le problème comme indiqué par chrtophe (MD5 ou autres). C'est la méthode qui est utilisée par les dépôts Linux pour s'assurer que le logiciel n'a pas été frauduleusement transformé ou mal téléchargé.
    La signature est compliquée car il faut générer des clés, un certificat, etc et en plus le calcul risque d'être plus long que pour une empreinte.

    Quand à la régénération impossible, il suffit d'insérer un bout de fichier aléatoire.


    Pour aller plus loin, il faut dire que plusieurs fichiers bien différents peuvent avoir la même empreinte. Deux fichiers presque identiques peuvent avoir des comportements proches. Mais il est impossible de trouver 1 fichier "proche" ayant la même signature qu'un autre. C'est là que l'empreinte est bonne. Et c'est le cas ici. (je ne sais pas si c'est clair)
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Novembre 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2009
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Bonjour Flodelarab
    Est ce que avec l'empreinte j'aurais :
    Si quelqu'un modifie le boitier, il ne peut pas générer une empreinte identique à la précédente ?
    Je ne peut pas avoir 2 boitier différents de même empreinte ?

  12. #12
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 242
    Points : 13 457
    Points
    13 457
    Par défaut
    Si quelqu'un modifie le boitier, il ne peut pas générer une empreinte identique à la précédente ?
    Oui. C'est le principe de l'empreinte.
    Je ne peut pas avoir 2 boitier différents de même empreinte ?
    C'est le paradoxe des anniversaires. Si tu cherches, dans une foule de 50 personnes, une personne qui a la même date d'anniversaire que toi, la probabilité est très faible. Mais si tu cherches 2 personnes ayant la même date de naissance, dans cette même foule, tu auras une bonne probabilité de réussite.
    Si tu étais malfaisant, tu "pourrais" (avec de gros guillemets, car c'est très dur) fabriquer 2 fichiers qui ont la même empreinte. Mais si tu crées un premier fichier naïvement, impossible d'en créer un deuxième ressemblant avec la même empreinte. Des systèmes comme MD5 sont faits pour que la modification d'un bit de données transforme au moins la moitié de l'empreinte obtenue.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  13. #13
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    Citation Envoyé par Flodelarab Voir le message
    Si tu étais malfaisant, tu "pourrais" (avec de gros guillemets, car c'est très dur) fabriquer 2 fichiers qui ont la même empreinte. (...) Des systèmes comme MD5 sont faits pour que la modification d'un bit de données transforme au moins la moitié de l'empreinte obtenue.
    c'est pas si difficile que ça -enfin... c'est relatif évidemment mais- des outils existent permettant de trouver les collisions et MD5 s'y prête justement très bien, je me souviens l'avoir eu expérimenté pour un simple challenge y'a déjà 5/6 ans (le propos était de générer 2 outputs différents en brainfuck ayant la même empreinte md5 de mémoire)

  14. #14
    Futur Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Novembre 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2009
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Pour moi, la solution pour rester cohérent avec mes contrainte :
    Utiliser la signature + l'empreinte

    Avec la signature je serais sure que les boitiers crées par moi même seront SURE et ne comporteront pas des données falsifiés.

    Maintenant , si un tiers décide de modifier les données "primitives" (qui ne devrai pas être changer), qu'il le fassse, l'essentiel il créera une signature qui n'est pas la mienne. Le récepteur prendra touts les risques en connaissance de cause, il sait que ce boitier n'émane pas de mon entité.

Discussions similaires

  1. [XSLT extension]XML et protection de données
    Par trent94 dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 23/10/2006, 12h39
  2. [Collections]Tableaux d'objets uniques.
    Par Invité dans le forum Collection et Stream
    Réponses: 30
    Dernier message: 22/03/2006, 13h20
  3. Exposition d'un objet en utilisant des données externes
    Par ocroquette dans le forum OpenGL
    Réponses: 2
    Dernier message: 21/11/2005, 21h49
  4. Protection des données de excel
    Par napegadie dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 16/11/2005, 12h25
  5. Réponses: 3
    Dernier message: 24/10/2005, 10h07

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