Pourquoi ai-je besoin de recompiler apache? Comment recompiler apache? Comment récupérer les entêtes eid en PHP?



Documents pareils
Sessions en ligne - QuestionPoint

Middleware eid v2.6 pour Windows

Compte-rendu de projet de Système de gestion de base de données

TP JAVASCRIPT OMI4 TP5 SRC

Application Web et J2EE

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Application de lecture de carte SESAM-Vitale Jeebop

Projet de Veille Technologique

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

contact@nqicorp.com - Web :

Les rootkits navigateurs

TelSurvey Système CATI pour LimeSurvey 11 novembre Manuel administrateur

TP2 - Conguration réseau et commandes utiles. 1 Généralités. 2 Conguration de la machine. 2.1 Commande hostname

Architectures web/bases de données

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

Déployer les Fonts, Icones, et Images avec Forms Services 11G

Expérience d un hébergeur public dans la sécurisation des sites Web, CCK. Hinda Feriani Ghariani Samedi 2 avril 2005 Hammamet

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Réglages du portail de P&WC

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

BTS SIO SISR3 TP 1-I Le service Web [1] Le service Web [1]

Manuel d'installation de Joomla 1.7

Base de connaissances

Différentes installations sur un serveur Windows 2000 ou 2003.

Stockage du fichier dans une table mysql:

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

[Serveur de déploiement FOG]

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

L envoi d un formulaire par courriel. Configuration requise Mail Texte Mail HTML Check-list

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.

Gestion d'un parc informatique avec OCS INVENTORY et GLPI

L3 informatique TP n o 2 : Les applications réseau

Canvas 3D et WebGL. Louis Giraud et Laetitia Montagny. 9 Avril Université Lyon 1

Réalisation d'une application eid

KWISATZ_TUTO_module_magento novembre 2012 KWISATZ MODULE MAGENTO

NON URGENTE TEMPORAIRE DEFINITIVE. OBJET : FONCTIONNEMENT OmniVista 4760 SUR UN RÉSEAU VPN / NAT

La carte d'identité électronique (eid): manuel d'installation pour Windows

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5

arcopole Studio Annexe 7 Architectures Site du programme arcopole :

SÉCURITÉ DU SI. Mini PKI. Denoun Jérémy De Daniloff Cyril Bettan Michael SUJET (3): Version : 1.0

API SMS HTTP REST. Intégrer facilement le service Envoyer SMS Pro avec votre application métier. Version : Révision : 03/09/2014 Page 1/31

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

INSTALLATION ET CONFIGURATION D'UN SERVEUR WEB SUR MAC OS X

Le stockage local de données en HTML5

contact@nqicorp.com - Web :

Formation : WEbMaster

Tutoriel compte-rendu Mission 1

et Groupe Eyrolles, 2006, ISBN :

Guide de dépannage. 3SKey. Connectivity

Gestion distribuée (par sockets) de banque en Java

Programmation Web. Introduction

DOM - Document Object Model

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

Administration du Client Web

Programmation Web. Madalina Croitoru IUT Montpellier

dmp.gouv.fr Pour en savoir plus DMP Info Service : 24h/24 7j/7

Sage CRM. 7.2 Guide de Portail Client

Ref : Résolution problème d'accès aux supports de cours

Gestion du service des enseignements

Manuel d'utilisation d'apimail V3

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

Service de lettre électronique sécurisée de bpost. Spécificités techniques

INSTALLATION APACHE POUR WINDOWS (XP OU 2000)

Gestion des utilisateurs : Active Directory

Service WEB, BDD MySQL, PHP et réplication Heartbeat. Conditions requises : Dans ce TP, il est nécessaire d'avoir une machine Debian sous ProxMox

Serveur de partage de documents. Étude et proposition d'une solution afin de mettre en place un serveur de partage de documents.

Guide d'initiation aux. certificats SSL. Faire le bon choix parmi les options qui s'offrent à vous en matière de sécurité en ligne. Document technique

PARAMETRER INTERNET EXPLORER 9

Failles XSS : Principes, Catégories Démonstrations, Contre mesures

Présentation, mise en place, et administration d'ocs Inventory et de GLPI

SOREGIES RESEAUX DISTRIBUTION

TUTO 15 : Comment ajouter un ordinateur dans le domaine «Ecole»? École Numérique Rurale. 1.Préparation du poste informatique...1

FileMaker Server 11. Publication Web personnalisée avec XML et XSLT

Dispositif e-learning déployé sur les postes de travail

LA CARTE D IDENTITE ELECTRONIQUE (eid)

Table des matières Hakim Benameurlaine 1

Guide de l administrateur du client pour Java. Client Citrix Presentation Server pour Java, version 9.x Citrix Presentation Server

Installation de la plate-forme Liberacces 2.0 «Intégrale» avec LiberInstall

FAQ Trouvez des solutions aux problématiques techniques.

Module BD et sites WEB

Signature électronique. Romain Kolb 31/10/2008

Exemple : vous voulez tester votre site en local avant de l uploader via FTP chez votre hébergeur externe.

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework

Module http MMS AllMySMS.com Manuel d intégration

Système Normalisé de Gestion des Bibliothèques -SYNGEB : version Réseau-

Le modèle de données

Vulnérabilités et sécurisation des applications Web

SECURIDAY 2013 Cyber War

Pratique et administration des systèmes

TRAVAILLER SUR LES ORDINATEURS DU LYCEE

Infrastructure RDS 2012

Comment Connecter une Base de Données MySQL via un Driver JDBC Avec OpenOffice.org

Intégration e-commerce. Version 0.5

Transcription:

1 Généralité Qu'elle est l'architecture générale d'une application eid en ligne? Client / PC-SC / Reverse Proxy / Serveur applicatif TODO gure architecture JPG A quel niveau se fait/font la/les vérication(s) de certicats? TODO discussion sur la sécurité au niveau général 2 Reverse-Proxy Pourquoi ai-je besoin de recompiler apache? Parce que apache va mettre des en-têtes en plus et vérier la validité OCSP Comment recompiler apache? TODO CFR RAPPORT Comment congurer apache en HTTPS? Doit-on passer par la conguration d'un virtualhost? FICHIER CONFIG - discussion UVCW Qu'est ce que OCSP? Comment l'activer et l'utiliser? OCSP signie "Online Certicate Status Protocol". Ce protocole va véri- er la validité des certicats. Pour l'activer, il faut ajouter la ligne "SS- LUseOCSP on" dans le chier de conguration (httpd.conf) de Apache. TODO ligne en cas de refus Comment creer un certicat pour le site? Pourquoi tant d'étapes lors de la création de certicats? Que fait chacune? CFR RAPPORT 3 Applicatif serveur Comment récupérer les entêtes eid en PHP? $entetes = getallheaders() ; $entete1 = $entetes["ssl_client_s_dn"] ; $entete2 = $entetes["ssl_client_m_serial"] ; $entete3 = $entetes["ssl_client_cert"] ; $entete4 = $entetes["ssl_client_verify"] ; 1

Il ne reste ensuite qu'à les traiter correctement en php. Note : l'en-tête SSL_CLIENT_CERT indique le résultat de l'authentication du client sur le serveur apache. Elle peut donc être utilisée comme un premier moyen de sécurité pour tester si le client passe bien par le reverse-proxy et vérier que le statut de son authentication est bien SUCCESS. Comment résoudre les problèmes d'accent? pending, UTF8 Exemple de problème : la chaîne J\xC3\xA9r\xC3\xB4me devrait s'acher Jérôme, elle reste pourtant elle-même, malgré un décodage utf8. Possibilité de résolution : Voici une fonction en php, qui convertit les représentations des caractères spéciaux posant problème en leur représentation utf8, pour un achage correct : /*Cette fonction prend une chaine "en-tête" envoyée par le reverse proxy, et la retourne, convertie pour un affichage correct en php. Argument : la chaîne "en-tête" Retourne : la chaîne convertie */ function adapt_utf8($chaine){ $ascii = array( "\\xc3\\x80","\\xc3\\x81","\\xc3\\x82","\\xc3\\x83","\\xc3\\x84","\\xc3\\x85", "\\xc3\\x86","\\xc3\\x87","\\xc3\\x88","\\xc3\\x89","\\xc3\\x8a","\\xc3\\x8b", "\\xc3\\x8c","\\xc3\\x8d","\\xc3\\x8e","\\xc3\\x8f","\\xc3\\x90","\\xc3\\x91", "\\xc3\\x92","\\xc3\\x93","\\xc3\\x94","\\xc3\\x95","\\xc3\\x96","\\xc3\\x97", "\\xc3\\x98","\\xc3\\x99","\\xc3\\x9a","\\xc3\\x9b","\\xc3\\x9c","\\xc3\\x9d", "\\xc3\\x9e","\\xc3\\x9f","\\xc3\\xa0","\\xc3\\xa1","\\xc3\\xa2","\\xc3\\xa3", "\\xc3\\xa4","\\xc3\\xa5","\\xc3\\xa6","\\xc3\\xa7","\\xc3\\xa8","\\xc3\\xa9", "\\xc3\\xaa","\\xc3\\xab","\\xc3\\xac","\\xc3\\xad","\\xc3\\xae","\\xc3\\xaf", "\\xc3\\xb0","\\xc3\\xb1","\\xc3\\xb2","\\xc3\\xb3","\\xc3\\xb4","\\xc3\\xb5", "\\xc3\\xb6","\\xc3\\xb7","\\xc3\\xb8","\\xc3\\xb9","\\xc3\\xba","\\xc3\\xbb", "\\xc3\\xbc","\\xc3\\xbd","\\xc3\\xbe","\\xc3\\xbf"); $trad_ascii = array( "\xc3\x80","\xc3\x81","\xc3\x82","\xc3\x83","\xc3\x84","\xc3\x85","\xc3\x86", "\xc3\x87","\xc3\x88","\xc3\x89","\xc3\x8a","\xc3\x8b","\xc3\x8c","\xc3\x8d", "\xc3\x8e","\xc3\x8f","\xc3\x90","\xc3\x91","\xc3\x92","\xc3\x93","\xc3\x94", "\xc3\x95","\xc3\x96","\xc3\x97","\xc3\x98","\xc3\x99","\xc3\x9a","\xc3\x9b", "\xc3\x9c","\xc3\x9d","\xc3\x9e","\xc3\x9f","\xc3\xa0","\xc3\xa1","\xc3\xa2", 2

"\xc3\xa3","\xc3\xa4","\xc3\xa5","\xc3\xa6","\xc3\xa7","\xc3\xa8","\xc3\xa9", "\xc3\xaa","\xc3\xab","\xc3\xac","\xc3\xad","\xc3\xae","\xc3\xaf","\xc3\xb0", "\xc3\xb1","\xc3\xb2","\xc3\xb3","\xc3\xb4","\xc3\xb5","\xc3\xb6","\xc3\xb7", "\xc3\xb8","\xc3\xb9","\xc3\xba","\xc3\xbb","\xc3\xbc","\xc3\xbd","\xc3\xbe", "\xc3\xbf"); $chaine_retour = utf8_decode(str_replace($ascii,$trad_ascii,$chaine)); return $chaine_retour; } 4 Applicatif client Comment lire les données sur la carte via une applet? L'applet doit, avant de commencer toute opération avec la carte, charger la librairie eidlib. Il faut ensuite initialiser la liaison avec le lecteur de cartes. Les données peuvent ensuite être récupérées dans 2 objets : - le premier pour les données d'identité (objet de type BEID_ID_data) - le second pour les données d'adresse (objet de type BEID_Address) Les données se récupèrent ensuite via les méthodes dénies pour ces objets (voir documents eid Belgium). 1. Phase d'initialisation de l'applet : iddata = null; addrdata = null; //chargement de la librairie eidlib java.lang.system.loadlibrary("eidlibj"); //initialisation avec le lecteur de cartes BEID_Long CardHandle = new BEID_Long(); BEID_Status ostatus = eidlib.beid_init("", 0, 0, CardHandle); 2. Démarrage de l'applet //l'objet iddata contiendra les données d'identité iddata = new BEID_ID_Data(); BEID_Certif_Check CertCheck = new BEID_Certif_Check(); //Obtention des données d'identité sur la carte BEID_Status ostatus = eidlib.beid_getid(iddata, CertCheck); //l'objet addrdata contiendra les données de l'adresse 3

addrdata = new BEID_Address(); BEID_Certif_Check CertCheck = new BEID_Certif_Check(); //Obtention des données de l'adresse sur la carte BEID_Status ostatus = eidlib.beid_getaddress(addrdata, CertCheck); 3. Récupération de données d'identité ou d'adresse Il sut maintenant de récupérer les données souhaitées via les méthodes prévues (voir API) à ces objets, exemples : //Récupération du nom de famille dans l'objet iddata via la méthode getname() String nom = iddata.getname() ; //Récupération de la rue dans l'objet addrdata via la méthode getstreet() String rue = addrdata.getstreet() ; Puis-je récupérer la photo? Comment? Oui, le principe est identique à la récupération des données d'identité ou d'adresse, mais on passe ici via un objet BEID_Bytes pour récupérer la photo et pouvoir la traiter ensuite comme un chier ou dans un objet Image. //objet de type BEID_Bytes qui contiendra la photo BEID_Bytes Picture = new BEID_Bytes(); BEID_Certif_Check CertCheck = new BEID_Certif_Check(); BEID_Status ostatus = new BEID_Status(); //Obtention des données de la photo sur la carte ostatus = eidlib.beid_getpicture(picture,certcheck); //création d'un fichier photo.jpg à partir des données de la photo récupérée. FileOutputStream ofile = new FileOutputStream("photo.jpg"); ofile.write(picture.getdata()); ofile.close(); Pourquoi dois-je signer mon applet? Accès à une ressource en dehors de la VM Comment lire sur la carte en javascript? Il faut tout d'abord charger une applet possédant les méthodes nécessaires à la lecture sur la carte eid (l'archive eidlib.jar du middelware possède déjà un applet de ce type : be.belgium.eid.beid_applet.class). Une fois un nom attribué à l'applet (paramètre name dans la balise ap- 4

plet), les récupérations des données s'eectuent comme dans un applet Java, mais dans des balises Javascript. Note : les méthodes dénies pour l'applet du middleware sont disponibles dans le document eid Belgium. //balise applet à appeler dans votre page web <applet codebase = "emplacement_de_votre_archive_eidlig.jar" archive = "eidlib.jar" code = "be.belgium.eid.beid_applet.class" name = "BEIDtest" width = "0" height = "0" hspace = "0" vspace = "0" align = "middle"> <param name="reader" value=""> <param name="ocsp" value="0"> <param name="crl" value="0"> </applet> Il ne reste ensuite qu'à utiliser les méthodes adéquates (voir API) dans des balises Javascript. <script language="javascript"> function GetData() { /*récupération du nom sur la carte grâce à la méthode getname() et copie du résultat dans un champ de formulaire de la page appelé name */ document.getelementbyid('name').value = document.beidcetic.getname(); /*récupération du premier prénom sur la carte grâce à la méthode getfirstname1() et copie du résultat dans un champ de formulaire de la page appelé firstname */ document.getelementbyid('firstname').value = document.beidcetic.getfirstname1( } </script> Comment traiter les erreurs liées à la carte? Existe-t-il une documentation des codes d'erreurs et leur signication? PAS trouvé ex. "-12227" si carte pas dans le lecteur J'ai le problème cannot initialise, library already loaded Il faut malheureusement redémarrer le navigateur. 5

Pas d'autre solution connue pour le moment. Où dois-je héberger mon applet? question de la sécurité Comment gérer une connexion d'une applet vers un serveur d'application? Une solution est de gérer cela via des sockets et l'envoi de messages entre l'applet et un serveur. Le serveur principal crée une instance d'un serveur particulier pour chaque client connecté. L'applet chargée sur le poste de l'utilisateur est l'applet Client. Lorsque l'applet Java utilise un objet certcheck (vérication de certicat), comportement diérent selon le browser : - Firefox : fenêtre vide de demande d'authentication supplémentaire - IE : fenêtre de demande d'authentication supplémentaire contenant les certicats présents dans le navigateur 5 Tests Où puis-je trouver un kit de test? www.eid-shop.be Carte de test, comment se présente-t-elle? Autre truc de test : Appletviewer local ne nécessite pas de signer l'applet pour le test 6 Divers Où puis-je trouver d'autres références? TODO liste des références 6