Encryption ?

22:41 modifié dans API AppKit #1
Bonsoir,

Je cherche un moyen simple et efficace d'encore une simple donnée afin que NSUnarchiver ne suffise pas pour décoder la donnée.
Existe-t-il un moyen simple d'encoder cette donnée ? Je ne m'y connais absolument pas dans ce domaine et c'est quelque chose de malheureusement nécessaire pour la plupart des utilisateurs de SerialSticker

Réponses

  • schlumschlum Membre
    22:41 modifié #2
    Qui dit "encodage" dit "clé"... La clé, tu comptes la stocker quelque-part ? Ou la demander à  l'utilisateur (comme le trousseau de Mac OS X par exemple).
    Après, il a plusieurs bibliothèques d'encodage... openssl par exemple.
  • 22:41 modifié #3
    En fait pour mon logiciel je compte demander à  l'utilisateur de choisir un mot de passe pour la base de données. Ensuite j'aimerai encoder ce mot de passe comme ça il n'y a pas de risque que quelqu'un qui aurait récupérer la base de données d'un autre utilisateur puisse décoder ce mot de passe si j'étais passé par un simple NSArchiver
  • AliGatorAliGator Membre, Modérateur
    mars 2007 modifié #4
    Le "souci" ici c'est qu'il te faut à  la fois encrypter les données et pouvoir les décrypter.
    Ce qui n'est pas le cas de tous les algorithmes de cryptages*.

    --> Parce que tu peux juste mettre un mot de passe pour accéder à  ta base (et tu stockes sont MD5 dans le fichier de la base par exemple) et dans ton soft tu demandes le mot de passe et s'il est bon, tu authorises à  ouvrir la base. Mais ce genre de système (one-way, encodage d'un mdp sans décodage) ne portège que l'accès à  ta base (Rien n'empêche un petit malin de créer un code Cocoa qui utilise un NSUnarchiver pour lire ta base sans vérifier le mot de passe d'accès ;))

    Donc ce qu'il faut savoir c'est (cf doc openssl) que tout ce qui est Message Digests, ce ne sont que des algos "one-way". Pour toi il faut plutôt regarder du côté des Ciphers si tu veux un truc qui marche dans les 2 sens (à  la fois cryptage & décryptage des infos/n°s de série de ta base).

    Parmi les ciphers les plus connus, tu as blowfish, mais surtout le fameux DES. Y'a de quoi faire côté fonctions (si tu tapes "man des" par exemple...) mais côté DES il y a aussi normalement tout ce qu'il faut (sans s'embêter à  découper ta chaà®ne en blocs, etc) dans <unistd.h> avec les fonctions crypt & compagnie


    *[size=8pt]Ce n'est pas gênant d'avoir des algos à  sens unique, même si on ne peux pas décrypter les données, pour des contrôles d'accès : quand on demande de choisir un mdp, on stocke cryptage(mdp) dans notre fichier, et quand on veut vérifier l'accès, on demande le mdp et on vérifie que ce qui est dans notre fichier est identique à  cryptage(mdp_rentré) : pas besoin de savoir décoder (et il vaux même mieux pas, pour pas que quelqu'un ayant la forme cryptée puisse retrouvée la forme "en clair"[/size]
  • 22:41 modifié #5
    Ce cryptage est très intéressant en effet, mais je devrais malheureusement décoder la base de données aussi car comme tu le dis, le gars s'en fout du mdp et décrypte directement la base de données avec un simple logiciel Cocoa.
    Je vais me documenter sur tout ça, merci
  • Eddy58Eddy58 Membre
    22:41 modifié #6
    Je voudrais souligner une fois de plus l'existence du SSCrypto framework qui facilite quand même bien la tâche !! :)
  • aranaudaranaud Membre
    22:41 modifié #7
    dans 1173908222:

    Je voudrais souligner une fois de plus l'existence du SSCrypto framework qui facilite quand même bien la tâche !! :)

    En effet, pourquoi réinventé l'eau chaude.
  • 22:41 modifié #8
    On est peut être encore aux francs en Belgique, mais nous au moins on a déjà  inventé la roue.

    OK, je sors.
Connectez-vous ou Inscrivez-vous pour répondre.