Pourquoi signer ses projets ? |
Les différents niveaux de sécurités d'excel:Les documents contenant des macros sont utiles quand ils contiennent des fonctionnalités intéressantes, mais ils peuvent être source de dangers potentiels. En effet une macro peut contenir des instructions système comme Kill pour supprimer un fichier. On peut aussi modifier ou copier du code VBA avec du Code VBA. Et enfin certaines instructions se lancent à l'ouverture d'un document. C'est ainsi que fonctionne le virus macro THUS : il contamine tous les documents ouverts ainsi que le modèle. Puis à une date donnée il lance une instruction Kill sur tous les documents du disque C. Il s'agit donc de séparer les fichiers utiles des fichiers nuisibles. Pour cela on choisit le plus souvent le niveau de sécurité moyen qui permet de choisir à chaque ouverture de fichier si oui ou non on accepte de lui faire confiance. Dans ce cas à l'ouverture de votre document vous aurez ce genre de message Astuce : pour activer les macros sans lancer les programmes automatiques d'ouverture, appuyez sur la touche shift quand vous cliquez sur Activer les macros (utile en phase de développement). Quand de nouveaux utilisateurs reçoivent un document de votre part il peut se produire plusieurs options : Leur niveau de sécurité est élevé :
On voit que dans tous les cas, un risque pour la sécurité peut apparaître. Une solution consiste à utiliser des documents signés numériquement. Quelle est la différence quand on ouvre un fichier signé. (retour)Le message d'ouverture est différent : : On voit une case à cocher Toujours faire Confiance aux macros provenant de cette source. En cochant cette case puis en activant les macros, le message d'activation ne sera plus affiché à l'ouverture que ce soit pour ce document ou pour tous ceux que vous recevrez ayant la même signature. Par contre pour le même document, si une autre personne modifie le programme alors le message d'ouverture se représentera (ou le fichier sera bloqué si le niveau de sécurité est élevé). Cet écran est issu d'excel 2000, avec les versions plus récentes, la case est grisée à la première ouverture, il faut donc installer manuellement le certificat numérique. Pour cela vous cliquez sur la case détails. Quand vous avez terminé la procédure d'installation, vous refermez le document, puis vous réouvrez celui-ci, la case à cocher sera enfin disponible et vous vous retrouverez à l'étape précédente. La procédure est un peu longue, mais on ne la fait qu'une fois. Pour revenir en arrière et révoquer un certificat on va dans excel et toujours dans le menu outils / Macros / Sécurité on a un onglet sources fiables que l'on peut utiliser pour ce faire : Comment signer son programme (retour)Pour pouvoir signer un programme, il faut disposer d'une signature numérique. Les 2 solutions les plus souvent envisagées sont
Après la signature est simple en VBA quand vous êtes dans votre projet, vous allez dans le menu outils / signature électronique. Il vous suffit de choisir OK pour utiliser la signature proposée ou de faire choisir pour en prendre une autre. La simplicité de selfcert cache certaines limites. La plus importante est la gestion de la clef générée. Pour ultra simplifier, une signature numérique se compose en une clef privée pour signer et une clef publique qui permet de vérifier la signature. Or la clef générée par selfcert n'est pas "private exportable" c'est à dire que vous ne pourrez pas exporter la clef privée et donc faire un backup de celle-ci ou l'utiliser pour signer si vous travaillez sur votre portable. La solution : MAKECERT.EXE En fait selfcert ne fait pas grand'chose : il demande un nom, lance makecert avec les paramètres qu'il a prévu et c'est tout. En utilisant Makecert directement, on a accès à beaucoup plus de paramètres dont la possibilité d'exporter la clef privée (-pe). Attention, toutes les versions de makecert ne permettent pas d'exporter la clef privée pour vérifier cela, utilisez l'invite de commande (démarrer / tous les programmes / accessoires) et placez vous dans le répertoire contenant le fichier makecert (utilisez cd pour changer de répertoire cd . pour remonter d'un répertoire...) Une fois dans le bon endroit, saisissez makecert -? La liste des options s'affiche, si elle ne comprend pas -pe, vous ne pourrez pas créer de signature avec une clef privée exportable. Il vous faudra donc utiliser une version plus récente de makecert. La liste des options de makecert est longue, j'ai fait un certain nombre de recherches sur internet pour en retrouver les principales. Je vous propose un classeur avec en premier onglet un résumé qui vous aidera à faire la ligne de commande pour créer un certificat exportable. Dans les autres onglets vous avez différentes informations en vrac avec certaines en français d'autres en anglais. Exporter le certificat. Dans le panneau de configuration, on a options internet et là, il y a un onglet contenu (on accède aussi à cette fenêtre via internet expolorer dans le menu outils). En cliquant sur Certificats, on accède au magasin de certificats où l'on pourra choisir le certificat à exporter. En choisissant une exportation de la clef privée, on aura une étape nous indiquant de choisir un mot de passe qui servira à l'importation du certificat sur un autre ordinateur. L'importation se fait sur le même modèle que l'exportation. On trouve tous les outils pour les signatures chez microsoft dans les Outils du .NET Framework. |