Catégorie : Infrastructure

Par Deke Li, le 22 mai 2013

Grep pour windows

Connaissez-vous grep sous Unix ? Si non, voir la définition sur Wikipédia

Sous Windows, il n’existe pas un utilitaire permettant la recherche d’une chaîne de caractère comme grep. Vous pouvez utiliser la recherche standard de Windows.

Lire la suite
Par Thibaut ALEXANDRE, le 12 mai 2013

Profiler Windows - Introduction

Nous avons souvent besoin de surveiller notre système afin de savoir ce que consomment nos applications en processeurs, mémoires, accès disque, etc…
Il existe en fonction des technologies différents moyens que je ne détaillerais pas ici d'obtenir au moins une partie de ces informations.

Si la machine est une machine virtuelle, les hyperviseurs tels qu’eSXI ou Hyper-V intègrent également de quoi « monitorer » les machines. Nous aurons alors des informations mais plus générales, ce que "voit" l’hyperviseur de la machine.

Il existe pourtant un moyen très simple et rapide d’obtenir ce genre d’informations sur une machine Windows, le système intégrant (presque) tout ce dont nous pourrions avoir besoin en terme d’indicateurs.

Lire la suite
Par Johann Glantenay, le 14 décembre 2012

Cryptographie en java 2/3 : Mise en oeuvre sous linux avec openssl

Création et utilisation de mes clés

Création de la clé publique et de la clé privée

Rien de tel que la ligne de commande pour mieux comprendre comment tout s'articule.

Voici la commande la plus basique pour créer une clé. Il y a de nombreuses options, notamment pour modifier la taille de la clé et donc augmenter la sécurité.

openssl genrsa -out macle

J'obtiens un fichier "macle" qui contient les informations suivantes :

-----BEGIN RSA PRIVATE KEY-----
MIIBOwIBAAJBAKXu5nR7bqwMw2YKOs6VGBn1+WIi/rR5Rxk+VFc7dBhKtZ6usUSy
YdgzeRjHcMyulwvZzxkpIZ1ixBvNKAZEV60CAwEAAQJASqcx3aQOxa80VfsyO/EO
F9f3a/SMnUuW9j95mIlyEN8KXcshx2xI3uz7qPi9Th9SIv/6eoaTQcGu2Ynxb+3I
LQIhANGquiLFVCYsmPn7erd6gq14Is1+SgBE/hxTeLBL5ee/AiEAypoSKtGoviN9
t9HJGvSfQ6dnz2PwDdm3v8vLx/r4+5MCIQC7A2Vzjj84rZ7lmwIilgvpXrbsRDEN
fHyMF4gW+BvhUQIhAKbZg6SnzWPpLpu3tPryAkdhEmkFUKjXaDAX0db7pRjpAiBp
rOD5SA3Wq/GDzB0w9ffhXgKw+8rpkMW8/VkECEuKVg==
-----END RSA PRIVATE KEY-----

C'est sous cette forme que se présente une clé privée la plupart du temps.

Une fois que j'ai obtenu ma clé privée, il me faut extraire ma clé publique pour pouvoir l'envoyer à mes correspondants :

openssl rsa -in macle -pubout -out macle.pub

A nouveau je n'utilise aucune option de manière à avoir la commande la plus simple possible, j'obtiens ainsi le fichier "macle.pub" suivant :

-----BEGIN PUBLIC KEY-----
MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKXu5nR7bqwMw2YKOs6VGBn1+WIi/rR5
Rxk+VFc7dBhKtZ6usUSyYdgzeRjHcMyulwvZzxkpIZ1ixBvNKAZEV60CAwEAAQ==
-----END PUBLIC KEY-----

C'est ce fichier que j'envoie à mes correspondants.

Signature et vérification de la signature

Déjà il me faut un fichier à signer. Si vous n'en avez pas un sous la main, la commande suivante devrait vous dépanner :

echo "Bonjour tout le monde" > clair.txt

J'utilise la sous-commande dgst pour signer le fichier "clair.txt" à l'aide de ma clé privée "macle" :

openssl dgst -sign macle clair.txt > clair.sig

J'envoie ensuite à mon correspondant le fichier original et le fichier de signature. Il utilisera alors ma clé publique "macle.pub" pour vérifier ma signature. Ce qui est vraiment vérifié, c'est à la fois que le fichier clair.sig à bien été généré avec ma clé privée et également que le fichier clair.txt n'a pas été modifié depuis la signature.

openssl dgst -verify macle.pub -signature clair.sig clair.txt

Si tout est correct, la commande répond "Verified OK". Si le fichier original ou la signature a été modifiée, on obtient "Verification Failure".

Cryptage et decryptage d'un fichier

Pour crypter un fichier à l'aide de la clé publique :

openssl rsautl -encrypt -pubin -inkey macle.pub -in clair.txt -out crypte.enc

Le fichier crypte.enc n'est pas un fichier texte. Il est obligatoire de posséder la clé privée pour décrypter :

openssl rsautl -decrypt -inkey macle -in crypte.enc -out decrypte.dec

On obtient bien deux fichiers identiques : decrypte.dec = clair.txt !

Gestion des certificats

Pour me relier à ma clé publique, Il faut que je demande à une autorité de certification de ... certifier ma clé publique et de la lier à mes informations personnelles. Pour cela je dois générer une demande de certificat en utilisant ma clé privée :

openssl req -new -key macle > macle.csr

Pour créer ma demande, je dois répondre à quelques questions :

Country Name (2 letter code) [AU]:FR  
State or Province Name (full name) [Some-State]:ILE-DE-FRANCE
Locality Name (eg, city) []:PARIS
Organization Name (eg, company) [Internet Widgits Pty Ltd]:NETAPSYS
Organizational Unit Name (eg, section) []:POLE JAVA
Common Name (e.g. server FQDN or YOUR name) []:netapsys.com
Email Address []:contact@netapsys.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:monpassword
An optional company name []:MA COMPAGNIE

J'envoie ensuite ce fichier à l'autorité de certification.

Pour les besoins du test, nous allons personnifier l'autorité de certification et ainsi signer nous même notre certificat. Evidemment ce certificat ne sera pas automatiquement accepté par les logiciels mais il restera utilisable la plupart du temps en créant une exception dans le logiciel. On parle de certificat auto-signé.

Je crée donc la clé de l'autorité de certification, puis le certificat :

openssl genrsa -out ca
openssl req -new -x509 -days 365 -key ca > ca.crt

On remplit nos propres informations :

Country Name (2 letter code) [AU]:FR
State or Province Name (full name) [Some-State]:ILE-DE-FRANCe
Locality Name (eg, city) []:PARIS
Organization Name (eg, company) [Internet Widgits Pty Ltd]:CERTIF NETAPSYS
Organizational Unit Name (eg, section) []:CERTIFICATION
Common Name (e.g. server FQDN or YOUR name) []:certif-netapsys.com
Email Address []:certif@netapsys.com

On peut maintenant valider la demande de certificat avec la cle privée de notre autorité de certification.

openssl x509 -req -in macle.csr -out macle.crt -CA ca.crt -CAkey ca -CAcreateserial -CAserial ca.srl

Le fichier macle.crt contient notre certificat, que nous allons pouvoir intégrer dans notre Keystore dans une troisième partie consacrée plus spécifiquement à JAVA.

Par Johann Glantenay, le 23 novembre 2012

Cryptographie en java 1/3 : Notions de base

Trois billets pour expliquer les notions élémentaires de cryptographie, comment les mettre en œuvre sous linux puis dans une application JAVA.

Clé privée / clé publique

La clé privée et la clé publique sont similaires dans leur présentation (un fichier contenant une longue chaîne de caractères) mais diffèrent par leur utilisation. La seule différence est le fait qu'on peut générer la clé publique à partir de la clé privée, alors que l'inverse est évidemment faux. Pour le reste il est possible de crypter un fichier avec l'une des deux clés, et ce message pourra être décrypté avec l'autre clé.

Les autres différences résident dans l'utilisation qui est faite de ces clés, la clé publique est destinée à être distribuée alors que la clé privée doit rester à l'usage exclusif de son propriétaire.

La clé privée a trois usages :

  • Générer la clé publique
  • Signer un document
  • Décrypter un fichier crypté avec la clé publique

La clé publique a deux usages :

  • Crypter un fichier
  • Vérifier la signature d'un document signé à l'aide de la clé privée

En pratique cette paire de clé est utilisée pour deux raisons :

  • Crypter un fichier avec la clé publique, cela permet permet de garantir que seule la personne qui possède la clé privée pourra lire le message.
  • Crypter un fichier avec la clé privée et envoyer à la fois le fichier crypté et le fichier en clair. Cela permet à toute personne possédant la clé publique d'utiliser cette clé pour décrypter le message et de comparer le résultat avec le fichier en clair. Si les deux fichiers sont identiques, on est certain que le fichier original a été crypté par quelqu'un possédant la clé privée. Les mécanismes de signature électronique sont basés sur ce principe.

Certificats électroniques

Un certificat est destiné à lier une clé publique à son propriétaire. Je dois demander à un organisme spécialisé, appelé autorité de certification, de signer ma clé publique en utilisant sa clé privée. Le rôle de l'autorité de certification est de vérifier mon identité avant de procéder à la signature.

Le résultat de cette signature, clé publique + clé publique cryptée, est placé dans un fichier appelé certificat. Ainsi toute personne possédant la clé publique de l'autorité de certification peut confirmer que cette autorité de certification a "validé" ma clé publique. Je peux donc distribuer mon certificat et chacun pourra vérifier que la clé que je distribue m'appartient bien.

Il est également possible de vérifier auprès de l'autorité de certification si le certificat est toujours valide. Si je sais que quelqu'un a eu accès à ma clé privée, il me suffit d'avertir l'autorité de certification qui après avoir vérifié mon identité va révoquer mon certificat. Mon certificat sera donc ajouté à une "liste noire".

Chaîne de certificats

Si une autorité de certification se fait dérober sa clé privée, tous les certificats créés à l'aide de cette clé sont suspects, car toute personne possédant la clé privée a la possibilité de créer un certificat. Dans un cas pareil, l'autorité de certification déclare que sa clé est compromise. Les éditeurs de logiciels vont alors mettre à jour la liste des autorités de certification acceptées dans les navigateurs (ou tout autre logiciel nécessitant une authentification). Les faux certificats, comme les vrais, seront donc refusés par les navigateurs.

Pour éviter que tous les certificats d'une autorité particulière ne soient invalidés d'un coup, on utilise une chaîne de certificat. Une clé privée unique permet de certifier un certain nombre de clés publiques. On parle alors de certificat intermédiaire. Les clés privées liées à ces clés publiques sont à leur tour utilisées pour certifier d'autres clés et ainsi de suite. Ainsi la compromission d'une clé à de moins grandes conséquences. La clé "Racine" est par ailleurs relativement facile à protéger car on n'en a plus besoin sauf pour créer éventuellement d'autres certificats intermédiaires.

Evidemment le problème de la validité de la clé "Racine" se pose. C'est aux éditeurs de logiciels de décider à quelles autorités de certifications ils font confiance et d'ajouter les clés publiques correspondantes dans leurs logiciels. Pour JAVA par exemple, les certificats racine sont stockés dans le fichier "jre/lib/security/cacerts".

Par Thierry Paret, le 30 octobre 2012

[Git] Nouvelle version

Une nouvelle version de Git vient de sortir et donc passer en version 1.8.0.

Je vous invite à vous rendre sur le site web Git. Vous trouverez également des informations sur les interfaces graphiques : Git GUI.

Scott Chacon a écrit un livre sur Git que je vous encourage à acheter... mais il est possible de le récupérer sur le site en ePub, mobi ou même en PDF dont voici le lien Livre Pro Git.

Bon Git ;-)

Par Guillaume PAPIN, le 09 juillet 2012

Passer de SVN à Git

Ce post a pour objectif de présenter les fonctionnalités du logiciel de gestion de versions Git (http://git-scm.com/) en assumant que SVN est connu du lecteur. Aucune commande Git ne sera présentée ici, seulement des fonctionnalités et des outils.

Lire la suite
Par Alexandre Lacroux, le 14 juin 2012

Weblogic : JVM utilisée

Sur un serveur Weblogic, deux JVM sont installées : celle de Sun et celle d'Oracle (JRockit). Il peut alors être nécessaire de vouloir choisir celle qu'utilise Weblogic.

Par défaut, Weblogic utilise JRockit. Voici comment procéder pour passer de l'une à l'autre :

Lire la suite
Par Thibaut ALEXANDRE, le 01 juin 2012

Windows Astuces 1 - Démarrage multi-core

Windows est un système destiné aux professionnels mais aussi au grand public. Microsoft s’arrange donc pour qu'il soit compatible avec la plupart des configurations matérielles.

Cela entraine un nivellement par le bas (les plus grosses machines ne sont pas exploitées complètement), mais surtout la configuration par défaut de Windows ne convient pas forcément aux utilisateurs particuliers que sont les développeurs et autres professionnels IT.

Je vais essayer de vous guider pour améliorer cet état à travers une série de petits billets. 

Les postes que nous avons aujourd’hui sont presque tous équipés de processeurs multi-cœurs. Nivellement par le bas oblige, Windows n’en utilise qu’un pour démarrer. Nous allons expliquer à Windows qu’il a le droit de prendre tous les cœurs disponibles pour accélérer son démarrage.

Pour commencer, appuyez sur la touche Windows + R pour ouvrir la fenêtre d’exécution :

img_execution

Dans la fenêtre, tapez « msconfig » puis validez, ce qui vous ouvre la « Configuration du système »

Sélectionnez l’onglet « Démarrer », dans lequel vous trouverez le bouton « Options avancées… »

config_systeme

 

Dans la nouvelle fenêtre « Options avancées du fichier boot », cochez la case « Nombre de processeurs » et sélectionnez la valeur max :

options_avancees_boot

Validez en cliquant sur « OK » sur les 2 fenêtres.

Et voilà un 1er pas de réalisé ! Vous verrez que le gain n’est pas forcément très sensible (cela dépend surtout de votre configuration et du nombre de services que Windows doit démarrer). Mais petit à petit, votre poste y gagnera en réactivité.

A très bientôt pour la 2ème astuce !

Par Fabian Piau, le 13 juillet 2011

Gagner de l’espace disque avec Chrome / Chromium (ou comment ne pas en perdre…)

chrome-chromium-hard-disk.png

Le navigateur Chrome / Chromium a la fâcheuse habitude de conserver l’historique de ses versions sur le système. Utile pour revenir à une version antérieure en cas d’échec d’installation de la nouvelle, ces anciennes versions s’accumulent rapidement et finissent par diminuer votre espace disque. Sachant qu’une version du navigateur fait environ 80 Mo, le calcul est vite fait !

Lire la suite
Par Fabian Piau, le 18 juin 2011

Emmener vos fichiers partout avec vous grâce à Dropbox

dropbox_logo.png

Dropbox est une “boite” partagée que l’on peut utiliser pour y déposer tout type de fichier. C’est en quelque sorte un mini SVN personnel…

Les fichiers enregistrés sur votre Dropbox seront automatiquement enregistrés sur vos ordinateurs (et même votre smartphone), ainsi que sur le site Web de Dropbox.

Lire la suite