|
| Empreinte numérique d'une classe du projet |
| Iniciado por mpoty, 14,ene. 2020 11:23 - 3 respuestas |
| |
| | | |
|
| |
| Publicado el 14,enero 2020 - 11:23 |
Bonjour,
dans le cadre de la certification LNE de mon outil d'encaissement, je rencontre une difficulté. Je dois prouver que certaines fonctions de mon application n'ont pas été modifiées entre la déclaration au LNE, et l'utilisation dans le programme final.
Toutes les fonctionnalités concernées sont regroupées dans une classe. Je pensais procéder de cette manière : - A la sortie d'une nouvelle version du logiciel, je génère un hash du fichier de ma classe que j'envoie au LNE - Dans mon programme, j'ajoute dans une fenêtre A PROPOS, un champ contenant le hashage de ce fichier, ce dernier étant généré dynamiquement à partir de la bibliothèque de l'exécutable Le contrôleur pourra donc aisément vérifier que les 2 hashes correspondent (hashage déclaré VS hashage dans fenêtre A PROPOS).
J'avais bêtement pensé que fExtraitRessource() me suffirait à extraire la classe dans un répertoire temporaire, pour en calculer le hashage. Hors ce n'est pas possible...
La seule solution à laquelle je pense, serait de déporter ma classe dans un composant (interne ou externe), qui serait intégré dans mon application. Avec ce système, je pourrai accéder au composant qui se trouvera dans le répertoire de l'exécutable pour en calculer un hash.
Le problème est que ma classe tel qu'elle est codée aujourd'hui, fait appel à énormément d’élément du projet (variables, constantes, procédures globales, classes, connexion SQL...). ll faudrait donc réécrire une bonne partie de cette classe pour qu'elle devienne autonome. De plus, le composant n'étant pas intégré dans l'exécutable, je vais devoir géré sa mise à jour à part, en plus de celle de l'exécutable. Pour finir, j'utilise des transactions SQL pour lesquels une première requête viendrait du projet, et le reste du composant. Il faudrait donc que mon objet qui communique avec la base SQL soit partagé entre le projet et le composant.
Mon audit est dans 2 semaines, je suis large... 
N'hésitez pas à me demander si je ne suis pas clair dans mes explications.
Merci pour votre aide.
Mike. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 1.640 mensajes |
|
| Publicado el 14,enero 2020 - 15:20 |
Hello,
Une piste : Si utilise le GDS, tu peux fournir la date de dernière modif ainsi que tout l'historique d'une classe, composant etc..
Apres je ne connais pas le fonctionnement de cette certification mais ... montrer qu'une classe na pas bougé, ne veut pas dire qu'on a pas modifié l'interprétation des données générées ... donc je vois pas trop l’intérêt pour le coup... ce n'est pas parce-que ma méthode me renvoi 2 que je ne peux pas afficher 2+1 a l'utilisateur (et donc les données ne seront pas valides)
Ou alors, fournir un un hash de l'exe complet.. mais du coup plus de mises à jour ?..
Le mieux serait de voir avec eux comment ça se présente d'habitude non ?Mensaje modificado, 14,enero 2020 - 15:20 |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 324 mensajes |
|
| Publicado el 14,enero 2020 - 15:36 |
>Le problème est que ma classe tel qu'elle est codée aujourd'hui, fait appel à énormément d’élément du projet (variables, constantes, procédures globales, classes, connexion SQL...). ll faudrait donc réécrire une bonne partie de cette classe pour qu'elle devienne autonome.
Donc c'est pas une classe, c'est juste une collection de procédure globale déguisé dans un objet.
Je dois prouver que certaines fonctions de mon application n'ont pas été modifiées entre la déclaration au LNE, et l'utilisation dans le programme final.
Perso ce que je fais c'est un composant externe qui intégre la classe qui contient toute les fonctions et UNIQUEMENT les fonctions que le LNE veut garantir, et vous leur filer la version compiler du composant avec son HASH et fini, le reste du logiciel pourra évoluer comme il veut sans impacter la partie sensible. Et ce composant est dans le soft, sinon faut leur donner le .WDC qui correspond à la classe et fournir la source du soft avec votre release et là tranquille.
Fin bref faut voir avec eux ce qu'ils veulent exactement et fini, c'est plus simple. |
| |
| |
| | | |
|
| | |
| |
| Publicado el 14,enero 2020 - 15:41 |
Merci pour ton retour.
Je n'utilise pas le GDS sur ce projet pour le moment.
En fait il y a 2 cas : - la mise à jour ne touche pas aux fonctions de sécurisation, donc la signature de l'EXE est modifiée et transmise, et la signature des fonctions de sécurisation reste la même que la version précédente. - la mise à jour touche aux fonctions de sécurisation, donc la signature de l'EXE et celle des fonctions de sécurisation sont modifiés et transmises. Dans ce cas, la mise à jour doit être à nouveau certifiée.
Donc je veux pouvoir faire des mises à jour simple (hors fonctions de sécurisation) sans devoir faire une nouvelle certification (audit + $$$ à chaque fois...).
Le LNE ne nous aide pas beaucoup... A nous de proposer une solution, qu'ils valideront ou non, mais il ne prenne pas le temps de nous dire comment faire... |
| |
| |
| | | |
|
| | | | |
| | |
|