Protection de pages Web PHP
Transcription
Protection de pages Web PHP
Guide d’intégration Protection de pages Web en PHP avec DinkeyWeb Contact commercial : Tél. : 02 47 35 70 35 Email : [email protected] Contact Technique : Tél. : 02 47 35 53 36 Email : [email protected] Version 3.01 du 10/07/2008 La Foltière - 37270 AZAY SUR CHER Tél. 33(0)2 47 35 70 35 - Fax 33(0)2 47 35 70 25 - e-mail : [email protected] Guide d’intégration DinkeyWeb PHP 1. Intoduction ................................................................................................................................................. 3 2. Descriptif .................................................................................................................................................... 3 2.1. Les modules DDInet :....................................................................................................................... 3 3. Installation du module DDINET sur la machine locale .............................................................................. 3 3.1. Pour Windows : ................................................................................................................................ 3 3.2. Pour MACOSX : ............................................................................................................................... 4 3.3. Pour LINUX : .................................................................................................................................... 4 4. Protégez vos pages Internet avec DinkeyWeb......................................................................................... 5 5. Paramètres de DDProtCheck .................................................................................................................... 6 6. Variables .................................................................................................................................................... 6 7. Précisions .................................................................................................................................................. 7 zz 2 Guide d’intégration DinkeyWeb PHP 1. Intoduction Afin de vous aider dans les premiers pas de la pose de protection sur vos pages Internet, vous trouverez dans ce guide de prise en main rapide l’essentiel des commandes et fonctionnalités pour la bonne utilisation de DinkeyWeb. 2. Descriptif 2.1. Les modules DDInet : DDInet.dll permet le test d’un dongle à partir d’une page web en utilisant du code PHP, une applet java et un module de type DLL que nous fournissons. Ce module peut varier en fonction des OS des postes clients. _ Pour Windows -> DDinet.dll _ Pour Mac OSx -> libDDInet.jnilib _ Pour Linux -> libDDInet.so 3. Installation du module DDINET sur la machine locale 3.1. Pour Windows : 1) Vous devez utiliser DDInet.DLL. Ce fichier est fourni dans le dossier modules de l’installation de DinkeyDongle. 2) Renommez DDInet.DLL du nom de votre choix (conservez toutefois l’extension DLL). Ceci vous permettra de protéger, si vous le souhaitez, des pages différentes avec des dongles différents et d’éviter d’éventuels conflits avec d’autres DLL que des développeurs pourraient fournir. 3) Protégez la DLL avec DDADD selon les étapes suivantes : • Lancez DDADD • Dans l’onglet Général cochez le type de clé Dinkey2 puis saisissez un code produit de votre choix • Dans l’onglet Plus de détails choisissez de protéger le logiciel et le dongle et Protéger un programme avec un dongle portant mon SDSN • Dans l’onglet Programmes cliquez sur Ajouter puis sélectionnez DDInet.DLL en méthode objet • Dans l’onglet Protéger cliquez sur Protéger Remarque : la fonction d’algorithme de protection n’est pas supportée par DDInet 4) Copiez la DLL protégée dans le dossier Windows\System32 (pour Windows NT/2000/XP) de la machine locale. Cette opération doit être réalisée sur chacune des machines pour lesquelles vous souhaitez autoriser l’accès à vos pages web sécurisées. 5) Le pilote des clés Dinkey doit être installé sur la machine du poste client. Une simple exécution du fichier SETUPDRV.EXE fourni dans le dossier DRIVERS de l’installation de Dinkey suffit. 6) Les utilisateurs doivent disposer de Java sur leur machine. Très souvent fourni avec le navigateur, celui-ci peut toutefois être téléchargé sur http://www.java.com. 7) Le navigateur des utilisateurs doit comporter l’option Java activée. zz 3 8) Lorsque les utilisateurs se connectent pour la première fois aux pages web sécurisées, un message d’avertissement s’affiche pour leur demander s’ils souhaitent utiliser l’applet. Ils doivent cliquer sur Oui pour simplement accéder à la page ou sur Toujours pour accéder à la page et ne plus voir ce message. 9) Lorsque les utilisateurs se connectent pour la première fois aux pages web sécurisées, un message d’avertissement s’affiche pour leur demander s’ils souhaitent utiliser l’applet. Ils doivent cliquer sur Oui pour simplement accéder à la page ou sur Toujours pour accéder à la page et ne plus voir ce message. 3.2. Pour MACOSX : 1) Vous devez utiliser libDDInet.jnlib. Ce fichier est fourni dans le dossier Mac de l’installation de DinkeyDongle. 2) Renommez le module libDDInet.jnlib du nom de votre choix (il doit juste commencer par lib et avoir la même extension). Cela afin d’éviter tout conflit avec des modules d’autres développeurs. 3) Protégez la librairie avec DDADD selon les étapes suivantes : • Lancez DDADD • Dans l’onglet Général cochez le type de clé Dinkey2 puis saisissez un code produit de votre choix • Dans l’onglet Plus de détails choisissez de protéger le logiciel et le dongle et Protéger un programme avec un dongle portant mon SDSN • Dans l’onglet Programmes cliquez sur Ajouter puis sélectionnez libDDInet.jnlib en méthode objet • Dans l’onglet Protéger cliquez sur Protéger Remarque : la fonction d’algorithme de protection n’est pas supportée par DDInet 4) Copiez la librairie ainsi protégée dans Library | Java | Extensions folder. Vous pouvez réaliser cette opération avec Safari qui effectuera le chargement de la librairie. Cette opération doit être réalisée sur chacune des machines pour lesquelles vous souhaitez autoriser l’accès à vos pages web sécurisées. 5) Le pilote des clés Dinkey doit être installé sur la machine du poste client. Le driver doit être installé pour que le dongle soit reconnu. 5.a) Localiser le package ddUsbKeyDrivers1.4.1.pkg dans le repertoire mac à la racine du CD-ROM. 5.b) Double cliquer sur ce fichier pour installer les pilotes (Si vous avez déjà exécuter le package d’installation mac le pilote est déjà installer mais il faudra prévoir cette étape pour sur vos postes clients). Note sur l’installation du pilote : Copier le fichier ddUSBKeyDriver.kext dans le répertoire System | Library | Extensions folder. Note sur la désinstallation du pilote : Supprimer le fichier ddUSBKeyDriver.kext du repertoire System | Library | Extensions folder. 6) Les utilisateurs doivent disposer de Java sur leur machine. Très souvent fourni avec le navigateur, celui-ci peut toutefois être téléchargé sur http://www.java.com. 7) Le navigateur des utilisateurs doit comporter l’option Java activée. 8) Lorsque les utilisateurs se connectent pour la première fois aux pages web sécurisées, un message d’avertissement s’affiche pour leur demander s’ils souhaitent utiliser l’applet. Ils doivent cliquer sur Oui pour simplement accéder à la page ou sur Toujours pour accéder à la page et ne plus voir ce message. 3.3. Pour LINUX : 1) Vous devez utiliser libDDInet.so. Ce fichier est fourni dans le dossier Mac de l’installation de DinkeyDongle. 2) Renommez le module libDDInet.so du nom de votre choix (il doit juste commencer par lib et avoir la même extension). Cela afin d’éviter tout conflit avec des modules d’autres développeurs. 3) Protégez la librairie avec DDADD selon les étapes suivantes : • Lancez DDADD • Dans l’onglet Général cochez le type de clé Dinkey2 puis saisissez un code produit de votre choix zz 4 • Dans l’onglet Plus de détails choisissez de protéger le logiciel et le dongle et Protéger un programme avec un dongle portant mon SDSN • Dans l’onglet Programmes cliquez sur Ajouter puis sélectionnez libDDInet.so en méthode objet • Dans l’onglet Protéger cliquez sur Protéger Remarque : la fonction d’algorithme de protection n’est pas supportée par DDInet 4) Installez la librairie libDDInet.so sur chaque station client 5) Instructions d'installation pour la détection des clés Dinkey sous Linux : a)Pré-requis ============ a.1) Sous-système USB (Permet au port USB de fonctionner correctement) a.2) Fichiers systèmes proc et usbfs installés (Les scripts d’installation le vérifie) a.3) Le package libusb doit être installé Sous Redhat: rpm -Uhv <nom complet de la librairie libusb> Sous Debian: apt-get install libusb-0.1-4 (à moins q’une version plus récentes soit disponible) La version minimale requise de libusb est 0.1.8. A moins d’utiliser une distribution Linux très ancienne cela devrait systématiquement être le cas. Si vous disposez malgré tout d’une version trop ancienne de libusb vous pouvez obtenir une actualisation de votre distribution ou une mise à jour de libusb sur le site http://libusb.sourceforge.net Dans la plupart des cas la déclaration de la gestion des clés DinkeyDongle USB est très facile à mettre en œuvre. Il ne s’agit pas réellement d’un driver au sens strict du terme mais d’un script permettant à LINUX de reconnaître les clés DinkeyDongle attachées. Donc a moins que le système Linux ne soit très vieux tout ce qu’il y a à faire est de placer les dossiers ’inst’, ‘uninst’, ‘ft.rules’ dans 1 répertoire de la machine puis : b)Pour déclarer DinkeyDongle ========================= b.1) Connectez-vous en tant qu’utilisateur root b.2) Exécuter : sh inst c) Pour désactiver la détection DinkeyDongle =========================== c.1) Connectez-vous en tant qu’utilisateur root c.2) Exécuter : sh uninst NB ddusbkey.o n’a absolument rien avoir avec la déclaration de détection de clé sous LINUX. 6) Les utilisateurs doivent disposer de Java sur leur machine. Très souvent fourni avec le navigateur, celui-ci peut toutefois être téléchargé sur http://www.java.com. 7) Le navigateur des utilisateurs doit comporter l’option Java activée. Lorsque les utilisateurs se connectent pour la première fois aux pages web sécurisées, un message d’avertissement s’affiche pour leur demander s’ils souhaitent utiliser l’applet. Ils doivent cliquer sur Oui pour simplement accéder à la page ou sur Toujours pour accéder à la page et ne plus voir ce message. 4. Protégez vos pages Internet avec DinkeyWeb L'exemple PHP propose deux exemples de pages web protégées : index.php et index2.php. Chacune d'elle doit inclure l'"include file" nommé DDInetInc.php. Ceci constitue l'essentiel du test de la protection. Vous n'avez pas à vous soucier du contenu de ce fichier. Ne le modifiez pas. Inspirez-vous simplement du code exemple des fichiers index.php et index2.php. Vos pages web protégées devront utiliser le même format que ces pages. Il vous suffit de modifier les variables dans ces pages et d'ajouter le code que vous souhaitez afficher à l'utilisateur. Remarque - Vous pouvez paramétrer ce système pour que chaque page teste la présence du dongle (paramétrez la variable timeout à 0). Vous pouvez également paramétrer le timeout pour que l'utilisateur puisse consulter les pages pendant X secondes entre deux tests du dongle. zz 5 Les informations suivantes expliquent le code des fichiers index.PHP et index2.PHP. Le test de la protection est réalisé par la fonction DDProtCheck(). 5. Paramètres de DDProtCheck $DDSessionID ID de session. Vous n'avez pas à initialiser cette variable dans votre code PHP. Elle sera vierge par défaut. Vous devez passer cette variable entre toutes les pages protégées par le dongle. Ne réinitialisez pas et ne modifiez pas cette variable. Le code exemple illustre son utilisation. $Timeout Timeout de la session en secondes. Après ce délai, un appel de DDProtCheck() vérifiera la présence du dongle. S'il est paramétré à 0, chaque page vérifiera la présence du dongle. $WebFunction Fonction de vérification de la protection (reportez-vous au manuel pour plus d'information). ex : paramétrez webfunction à 1 pour écrire dans la zone de données. $WebSDSN Valeur de votre SDSN (ex : 10101 pour le SDK de démo). $WebDLL Initialisé avec le nom de votre fichier DDInet.DLL renommé. Ne doit pas inclure l'extension .dll. $WebData Initialisez avec les données que vous souhaitez écrire dans la zone de données (si vous utilisez cette fonctionnalité). (Remarque - assurez-vous d'avoir initialisé $WebFunction à 1 pour écrire les données). $WebSite Initialisez avec le dossier URL du site web dans lequel la page est enregistrée. (Remarque - de terminez pas cette valeur par un anti-slash). $WebPage Initialisez avec le nom de la page (ex : index.PHP). $WebPageError Initialisez avec le nom de la page (ex : Error.php) si vous souhaitez que cette page soit appeler lors de la détection d’une erreur par la fonction DDProtCheck. Si vous laisser ce champ vide ou non renseigné la page appelé sera $WebPage. Ce champ vous permet de personnaliser le traitement des codes d’erreur. $WebFlags Flags pour le test de la protection. Paramétrez à 1 pour supprimer les messages, sans quoi DDInet.dll pourrait afficher des boîtes de dialogue. $WebDataOffSet Initialisez à l'offset de la zone de données où vous souhaitez lire/écrire des données (si vous utilisez cette fonctionnalité). $WebDataLength Initialisez à la longueur des données que vous souhaitez lire/écrire dans la zone de données (si vous utilisez cette fonctionnalité). DDProtCheck() retournera 0 pour une interrogation de la protection avec succès ou retournera un code erreur. 6. Variables $Gretcode Le code retourné par le test de la protection (0 = succès, sinon il contiendra le code erreur). Cette valeur devra toujours être testée par votre code PHP. Si le test échoue, la page ne doit pas être affichée (le code exemple montre cela). $Gdongle_no Numéro de série du dongle. zz 6 $Gsdsn SDSN stocké dans le dongle. $Gprodcode Code produit stocké dans le dongle. $Gexecs Nombre d'exécutions autorisées par le dongle (-1 pour illimité). $Gexp_day Jour de la date d'expiration (31/15/2107 pour illimité). $Gexp_month Mois de la date d'expiration (31/15/2107 pour illimité). $Gexp_year Année de la date d'expiration (31/15/2107 pour illimité). $Gfeatures Mot de fonction stocké dans le dongle. $Gupdate Prochain numéro de mise à jour stocké dans la clé. $Gmaxnetusers Nombre maximum d'utilisateurs réseaux simultanés autorisé. $Gusb Type de dongle : 1 - port parallèle, 2 - USB. $Gdata Valeur de la chaîne de caractères contenue dans la zone de données. $Gmodel Modèle de dongle : 1 Dinkey 1, 2 - Dinkey 1S, 3 - Dinkey 2, 4 - DinkeyNet. Remarque: Tous les liens ou formulaires chargeant des pages complémentaires DOIVENT également passer la variable $DDSessionID. A défaut, chaque page vérifiera la présence du dongle. 7. Précisions 1) La fonction d'algorithme de protection n'est pas supportée par DDInet. 2) Vous pouvez lire et écrire des données dans la zone de données sécurisée du dongle (seulement avec les Dinkey2/Net) mais vous pouvez seulement lire/écrire des chaînes de caractères, pas des données brutes (fichiers). 3) Si vous souhaitez que certaines pages décrémentent le compteur d'exécutions ou écrivent dans la zone de données sécurisée, vous devez initialiser la valeur du timeout à 0 (vérifier le dongle sur chaque page). A défaut, la page pourra être consultée avant le timeout de la session et le dongle ne sera pas testé. 4) Compatibilité avec FIREFOX. Sur PC -> Activer JAVA et désactiver JAVASCRIPT dans ‘Outils’ ‘Options’ onglets ‘Contenu’ de FIREFOX. Sur MAC -> Dans propriétés systèmes désactiver JAVASCRIPT puis Activer JAVA et désactiver JAVASCRIPT dans ‘Outils’ ‘Options’ onglets ‘Contenu’ de FIREFOX zz 7 La Foltière - 37270 AZAY/CHER Tél. 02 47 35 70 35 - Fax 02 47 35 70 25 e-mail : [email protected] www.aplika.fr zz 8