Bonjour,
Je me pose une question relative à la sécurité des assemblies.
Actuellement, je travaille avec plusieurs assemblies (1 exe + des DLLs), dépendants les uns des autres (de façon arborescente je vous rassure).
J'utilise la signature d'assemblies pour garantir l'intégrité des DLLs, elles ne peuvent être changées à l'insu de l'exe.
Mais qu'est-ce qui empêcherait quelqu'un, par exemple, de prendre ces DLLs, et des les utiliser pour lui sans les modifier ? En fait, le code peut être utilisé très facilement, il n'est pas protégé ?
À première vue, ce n'est pas choquant. Depuis des années, une bibliothèque peut être linkée par n'importe qui... par contre, sans documentation on ne s'en sortait pas. Alors que là, les assembly auto-descriptifs permettent de lister classes, méthodes, types, avec une facilité déconcertante.
Bref, je me demande si l'on peut appliquer un traitement aux assemblies pour vérifier, par exemple, l'identité de l'assembly appelant (GetCallingAssembly...)
Exemple : j'ai deux assemblies, A et B; et B est dépendant de A (il l'inclut dans le projet; recompiler A entraîne la recompilation de B)
Problème : pour connaître l'identité de B, il faut le compiler; donc il faut compiler A avant. Et une fois connue l'identité de B, il faudrait modifier A pour l'y inclure, donc recompiler B, ce qui ferait changer son identité...
Il y a une technique, ou pas ?
+
Chacha
Partager