Ce wiki explique une variante automatisée des étapes 1, 2 et 3 du wiki suivant : certificats
Pourquoi ce script de génération des clef .cer et .pfx ?
Le 5 Décembre 2007, Free a mis à disposition sur son site les certificats destinés à nos compte SIP permettant de configurer notre pocket PC / GSM compatible SIP :
Le but ? Permettre à chacun d’entre nous d’utiliser le réseau wifi freephonie des freebox des autres pour pouvoir téléphoner de n’importe où.
Or le problème, c’est qu’une fois les 3 fichiers de clefs récupérés sur le site de free, il faut générer les certificats afin d’accéder au réseau wifi freephonie.\ Pour celà, il faut :
Correctement formatter les 3 fichiers des certificats et clef privée/publique issus du site de free
Générer le fichier pfx qu’il faudra importer sur votre pda (ou autre)
Générer le fichier cer qu’il faudra importer sur votre pda (ou autre)
Ceci en utilisant Openssl.
Les certificats sont à régénérer tous les 2 mois, ce travail, un petit script est capable de le faire automatiquement.
Problème : le script bat sous windows est très limité !
Il existe un programme, CScript (de base sous windows) qui permet d’exécuter du vbscript et de faire des choses assez complexes.
Ici, grâce à des expressions régulières le script récupère et reformatte les clefs privée/publique/root(racine) directement à partir d’un copier/coller de la page web ou de sa sauvegarde, plus la peine de l’éditer et de remettre en forme manuellement.
Ensuite le script génère via Openssl les fichiers .pfx et .cer (ou directement le .pfx contenant le .cer)...
Sur la ligne de commande on peut spécifier des options permettant de donner les noms des fichiers générés ou des fichiers d’entrés.
A utiliser sous windows... c’est du vbscript
Télécharger le fichier “GenerateFreeCertificates.vbs” dont le lien de téléchargement est situé en bas de la page.
Depuis la version 1.4 la double clic sur le fichier “GenerateFreeCertificates.vbs” le lance automatiquement en mode wizard(assistant).
Pour utiliser ce script de génération du certificat Free :
Attention : à partir de la version 2.0, les points (1) (2) (3) (4) (5) (8) sont exécuté par le script qui récupère lui même le fichier freephonie.txt, permet de crypter les certificats, etc.
Attention : à partir de la version 2.1, le point (6) peut être exécuté à partir de l’interface graphique qui se charge de télécharger la version Win32 Light de OpenSSL et lance l’installation qui est alors à faire par l’utilisateur.
1) Aller sur le site de Free (http://subscribe.free.fr/login).
2) Se logguer sur le site de free.
3) Dans l’interface de gestion, cliquez sur “Gestion de mon compte SIP“
4) Cliquez sur Afficher les certificats pour votre pocket PC / Smartphone
5) Faire (a) ou (b) ou tout autre façon pour récupérer les clefs SIP dans un fichier texte (pas la peine de le reformatter correctement sinon le script perd une grande partie de son intérêt)
a) Faire copier / coller de la page web en prenant bien soin de copier indiquant les 3 clefs SIP nécessaires pour se connecter sur le réseau freephonie. Le copier dans un fichier texte (sans remise en forme) de votre choix.
b) Dans l’explorateur, faire ficher / enregistrer sous... et enregistrer la page.
Par défaut on appelera ce fichier Freephonie.txt (on peut en choisir un autre avec l’option -i)
6) Installer le programme openssl.
http://gnuwin32.sourceforge.net/downlinks/openssl-bin.php (v 0.9.7c)
ou
http://www.grandville.net/download/OpenSSL.0.9.8g.exe (v 0.9.8g)
ou
http://www.slproweb.com/download/Win32OpenSSL-0_9_8g.exe (v Win32 0.9.8g)
ou
http://www.slproweb.com/download/Win32OpenSSL_Light-0_9_8g.exe (v Win32 Light 0.9.8g)
Le script va rechercher en base de registre où il a été installé
7) Lancer le script en double-cliquant dessus.
8) Le script demande :
Enter Export Password: Tappez ENTER
Verifying - Enter Export Password: Tappez ENTER
Les clefs sont alors correctement générées
NB) Pour importer le fichier cer sous wm5 il faut télécharger l’utilitaire pfximprt disponible à l’adresse : http://www.jacco2.dds.nl/networking/pfximprt.zip
Attention, pour le login / password : le certificat free doit être utilisé mais le login wifi n’est pas votre n° de téléphone, c’est le n° “Octroyé à” dans les détails du certificat free.
Si après connexion au réseau freephonie il est impossible de se connecter via sjphone : Partout où il faut entrer freephonie.net il faut le remplacer par l’adressr IP 172.17.20.241 et là on arriver à se connecter au SIP, c’est comme si il cherche le serveur freephonie.net et que le DNS ne fonctionne pas : en remplaçant par l’adresse IP directement, ça devrait fonctionner !
Explications sur les fichiers cer et pfx :
Fichier .cer = le certificat de l’autorité de certification: le supérieur hiérarchique qui génère tous les certificats (aussi appelé racine ou root).
Fichier .pfx = combinaison du certificat personnel (donc signé par la racine précédemment citée) + la clé privée qui permet de prouver que le certificat nous appartient bien.
Puis, lancer une commande cmd (ou avec un fichier bat) : CSCript //Nologo GenerateFreeCertificates.vbs -help
Le fichier d’entrée (Freephonie.txt) doit être au même endroit que le fichier vbscript !
Plusieurs questions de sécurité ont été posées par les utilisateurs du script :
Une fois le certificat généré, le script pourrait transférer les certificats, les identifiants et mot de passe du compte Free sur un site ou une adresse quelconque pour être utilisé à des fins frauduleuses.
Ce certificat permet de téléphoner par
SIP via le compte Freebox, et d’appeler des mobiles en 06, ou des communications vers l’étranger.
Pourquoi ce script de génération est-il fiable ?
Lors du développement, Feneck91 a fait très attention aux problèmes de sécurité car le script demande les login / mot de passe Free pour récupérer les certificats, automatiquement sur le site de Free.
Feneck91 a développé 100% de ce script et certifie qu’il n’y a aucun détournement des identifiants / mot de passe ou certificats ni par mail, ni par n’importe quel autre moyen.
Comme vous n’êtes pas obligé de croire Feneck91. Le script n’a pas été développé en langage compilé mais en script et à ce titre, le fichier est un fichier texte lisible par tous. S’il y avait des espions d’autres l’auraient remarqué et signalés à Freephonie.
En regardant l’historique, la version 2.1 indique
“Récupération des certificats sur le site de Free par un POST et non plus en passant en clair les login/mot de passe dans l’URL (problème de sécurité).”. Le script ne passe plus les identifiants / mot de passe directement par l’
URL mais par post, de la même façon que lorsque c’est l’utilisateur qui va sur le site de free et qui se loggue.
Le fichier GenerateFreeCertificates-<n° Version>.ini contient les informations des logins et des mots de passe Free (entre autre) (exemples : FreeLogin=C55123E4E89C094ABE0B / FreePassword=06942128E865AF ) : les logins / mot de passe sont cryptés / mélangé, ils ne sont valable que sur le PC qui les a générés, si ce fichier est copié sur un autre PC, il ne sera pas lisible.
Les deux fonctions qui sont utilisées pour dialoguer avec le net sont WGet et DownloadHTTPFile. Aucune n’envoie des informations sur le net sauf pour se logguer sur la page de Free. C’est la fonction RetrieveCertificats qui récupère les certificats en envoyant des requêtes sur le site de Free.
Si vous ne faites pas confiance à ce script, vous pouvez toujours (pour ne pas donner vos identifiants au script) sauver la page web contenant les certificats sous n’importe quel nom et aller chercher ce fichier sauvegardé dans le champ Chemin du fichier des certificats en cliquant sur le bouton Parcourir....
Avec vos identifiants et mot de passe :
On ne peut pas modifier ce mot de passe freephonie à partir des identifiants donnés au script, car n’étant pas derrière la Freebox correspondant aux identifiants, toute modification du mot de passe Freephonie se solde par le message :
Erreur : Adresse IP origine invalide. Pour des raisons de sécurité les modifications concernant votre compte téléphonie SIP ne sont possible que depuis votre Freebox.
On pourrait modifier beaucoup de paramètres de la Freebox de l’abonné, et l’empécher d’utiliser correctement sa freebox, je n’en dirais pas plus à ce sujet pour ne pas donner des idées à des personnes malveillantes.
Avec votre certificat :
Donner les certificats permet juste de se connecter sur une autre freebox sur le réseau freephonie, pas d’utiliser freephonie sans le mot de passe ! C’est ce mot de passe qui protège le compte
SIP !
On peut se connecter sur le réseau freephonie mais pas utiliser votre freephonie puisqu’il y a un mot de passe spécifique pour l’utiliser et ça le script ne te le demande pas.
On ne peut pas appeler l’étranger, Free l’interdit depuis des années.
Autre gage de sérieux du script : il contient le nom / prénom de Feneck91 ainsi qu’une adresse mail où il est joignable. Si le script détournait les identifiants, il n’aurait pas mis son nom.
Que faire pour limiter les risque ?
Chaque nouvelle version du script est postée sur le site de ti1ca par Feneck91 puis le wiki est modifié pour donner cette
URL.
Ce wiki, pour des problèmes de sécurité (modification des URLs données par Feneck91 pour pointer vers des scripts frauduleux), a été bloqué : seuls Feneck91 et les administrateurs du site ont le droit de le modifier.
Ne téléchargez ce script qu’a partir des liens donnés sur ce wiki !! Tout autre source n’est pas fiable.
Version 2.5
Version 2.4x
Version 2.4d
Version 2.4c
Correctif pour l’affichage de la durée de validité du dernier certificat généré : s’il était obsolète, la durée de validité n’était plus affichée.
Modification Symbian par Symbian/iPhone dans l’IHM car la génération des certificats pour l’iPhone nécessite aussi un mot de passe.
Version 2.4b
Version 2.4a
Détection OpenSSL version 0.9.8i.
Correction liens morts pour le téléchargement de OpenSSL.
Les informations concernant la version de OpenSSL à télécharger (url/version) sont maintenant récupérés dynamiquement.
Modification d’une partie de code empéchant les anti-virus de considérer ce script comme un virus.
Version 2.4
Version 2.3
Détection de la version 0.9.8h du 28 May 2008 qui est incompatible (crash pendant la génération).
Génération correcte des fichiers Freephonie_Personnal.pfx et Freephonie_Root.cer : les deux certificats étaient inversés (le certificat racine contenait le certificat personnel et inversement).
Version 2.2x
Version 2.2b
Version 2.2a
Version 2.2
Ajout des onglets Installation et Historique.
Récupération des certificats par l’utilisation du programme WGet.exe permettant de récupérer les certificats même sous Windows Vista (Bug version 2.1 et antérieurs).
Version 2.1
Détection de la version openssl v0.9.8.g Win32 Light.
Prise en compte des check box pour ne pas générer le certificat personnel ou le certificat root racine (bug de la version 2.0).
Ajout de l’option -readini chemin_du_fichier_ini Lecture des paramètres à partir du fichier ini + bouton sauver/supprimer les paramètres dans l’interface graphique.
Détection automatique et téléchargement des nouvelles du script + bouton détails pour voir les nouveautés + affichage de messages perso en bas de la fenêtre.
Optimisation du temps de chargement au démarrage de la version graphique (beaucoup plus rapide) et ajout d’une barre de progression du chargement de la page.
La fenêtre de script est maintenant lancée cachée, il n’y a donc plus la fenêtre DOS visible pendant l’exécution du script.
Téléchargement & Installation de OpenSSL directement à partir d’un bouton ‘installer’ si OpenSSL n’est pas détecté.
Récupération des certificats sur le site de Free par un POST et non plus en passant en clair les login/mot de passe dans l’
URL (problème de sécurité).
Détection de toutes les versions de OpenSSL sous Windows Vista.
Bugg restant : problème de récupération des certificats sur le site de free pour Windows Vista.
Version 2.0
Version graphique permettant de choisir le type de génération, de récupérer les certificats directement depuis le site de Free, de vérifier si les certificats ont changés.
-g ou -graphic Permet de lancer l’IHM au lieu d’utiliser la ligne de commande.
Le type de génération (option -cerintopfx) a changé, remplacé par -rootintopersonnal.
-password mot_de_passe Permet de générer les certificats avec un mot de passe (Symbian).
-getfromfree login mot_de_passe Permet de récupérer les clef des certificats directement sur le site de free avec ces identifiants / mot de passe.
-checkonly Doit être associée à l’option -getfromfree et permet de vérifier s’il y a eu des mises à jour des certificats sur le site de free.
Meilleurs détection de OpenSSL sous Vista.
Version 1.5
Plus de demande de mot de passe (pour ceux qui en ont besoin, utilisez la v1.4)
Meilleurs gestion du nom convivial des certificats une fois importé sur le Pocket PC / SmartPhone
Version 1.4
Gestion de openssl v0.9.8g Win32 + affichage des messages d’erreur d’Openssl lorsque la génération des certificats échoue.
Ajout option -wizard, le script pose des questions pour demander :
le nom du fichier d’entrée (option -i).
le type de génération (option -cerintopfx ou pas).
le chemin du fichier OpenSSL s’il n’est pas détecté automatiquement.
Double clic sur le vbs fonctionne → passage en mode Wizard (plus besoin de .bat).
Version 1.2
Vérification de la génération des fichier .pem : il y a + de message d’erreur ce qui évite de se creuser la tête quand le script ne fonctionne pas.
Maintenant, le script fait plus de tests lorsqu’il fait la génération donnant ainsi un diagnostic plus fin à l’utilisateur lorsque celle-ci échoue.
Test le code retour openssl ce qui lui permet de savoir si les certificats ont été correctement générés.
Le code du script v2.5 est maintenant disponible ici
Le code du script v2.4d est maintenant disponible ici
Le code du script v2.4c est maintenant disponible ici
Le code du script v2.4b est maintenant disponible ici
Le code du script v2.4a est maintenant disponible ici
Le code du script v2.4 est maintenant disponible ici
Le code du script v2.3 est maintenant disponible ici
Le code du script v2.2b est maintenant disponible ici
Le code du script v2.2a est maintenant disponible ici
Le code du script v2.2 est maintenant disponible ici
Le code du script v2.1 est maintenant disponible ici
Le code du script v2.0 est maintenant disponible ici
Le code du script v1.5 est maintenant disponible ici
Le code du script v1.4 est maintenant disponible ici
Le thread de discussion sur ce script est disponible ici
L’installateur win32 d’Openssl 0.9.7c est disponible ici, d’autres versions et informations sur http://www.openssl.org/
Auteur du script : Feneck91