EVALUATION SOMMATIVE DUREE 6 HEURES

Documents pareils
TP JAVASCRIPT OMI4 TP5 SRC

Couche application. La couche application est la plus élevée du modèle de référence.

NanoSense. Protocole Modbus de la sonde Particules P4000. (Version 01F)

Mise en place d un serveur Proxy sous Ubuntu / Debian

Devoir Surveillé de Sécurité des Réseaux

Manuel d'installation

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Manuel des logiciels de transferts de fichiers File Delivery Services

How To? Sécurité des réseaux sans fils

Installation / Sauvegarde Restauration / Mise à jour

Application de lecture de carte SESAM-Vitale Jeebop

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Skype (v2.5) Protocol Data Structures (French) Author : Ouanilo MEDEGAN

Serveurs de noms Protocoles HTTP et FTP

Durée estimée :1 journée Date de la réalisation : Description Fournisseur Référence Nombre PU HT LM35CZ, LM35AZ LM35DZ

Association UNIFORES 23, Rue du Cercler LIMOGES

Cisco Certified Network Associate

IUT BREST UN LOGICIEL SCADA : PC VUE 2010 DEP.GMP

Outils de traitements de logs Apache

Services Réseau SSH. Michaël Hauspie. Licence Professionnelle Réseaux et Télécommunications

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Programmation Objet - Cours II

titre : CENTOS_CUPS_install&config Système : CentOs 5.7 Technologie : Cups Auteur : Charles-Alban BENEZECH

Le serveur web Windows Home Server 2011

Étudiant : Nicolas Favre-Félix IFIPS Info 3. Les One Time Passwords, Mots de passe à usage unique

HMI target Visu / PLC HMI. Pour réaliser une interface homme machine avec PLC control

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

Les commandes relatives aux réseaux

LAB : Schéma. Compagnie C / /24 NETASQ

Projet Matlab : un logiciel de cryptage

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

SQL Parser XML Xquery : Approche de détection des injections SQL

TP 1. Prise en main du langage Python

Approche Contract First

Initiation à html et à la création d'un site web

Portail EDL. Energiedienstleistung

Gilles.Roussel univ-mlv.fr HTTP/1.1 RFC 2068

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

Mieux comprendre les certificats SSL THAWTE EST L UN DES PRINCIPAUX FOURNISSEURS DE CERTIFICATS SSL DANS LE MONDE

Recherche dans un tableau

Serveur Linux : FTP. Mise en place d un service FTP sous Linux. Bouron Dimitri 20/04/2014

SAGEM Wi-Fi 11g USB ADAPTER Guide de mise en route rapide pour Mac OS X

Algorithme. Table des matières

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

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

WinTask x64 Le Planificateur de tâches sous Windows 7 64 bits, Windows 8/ bits, Windows 2008 R2 et Windows bits

Présentation du langage et premières fonctions

IV- Comment fonctionne un ordinateur?

Chapitre 7. Sécurité des réseaux. Services, attaques et mécanismes cryptographiques. Hdhili M.H. Cours Administration et sécurité des réseaux

STID 2ème année : TP Web/PHP

Capture, Filtrage et Analyse de trames ETHERNET avec le logiciel Wireshark. Etape 1 : Lancement des machines virtuelles VMWARE et de Wireshark

Sécurisez votre serveur Web Internet Information Services de Microsoft (MS IIS) avec un certificat numérique de thawte thawte thawte thawte thawte

Le langage C. Séance n 4

RÉALISATION D UN SITE DE RENCONTRE

Module BD et sites WEB

Manuel de référence des commandes SMS Advisor Advanced

Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai.

_ PARAMETRE DU COMPTE _ ACCEUIL. 1 ere Etape «Créer un compte principal» Créer un compte secondaire. Ouvrir un compte principal

IPS-Firewalls NETASQ SPNEGO

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

Module http MMS AllMySMS.com Manuel d intégration

TP3 : Manipulation et implantation de systèmes de fichiers 1

L'accès aux ressources informatiques de l'ufr des Sciences

18 TCP Les protocoles de domaines d applications

Solution Pro pour l Envoi de SMS direct opérateurs PUSH SMV MODE HTTP. Documentation Technique

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


IV. La sécurité du sans-fil

Algorithmique et Programmation, IMA

Sécurité des réseaux wi fi

Exemple PLS avec SAS

INF4420: Éléments de Sécurité Informatique

Créer un site Web : mode d emploi Sous SPIP, avec le squelette «établissement» de l académie de Versailles

TP réseaux 4 : Installation et configuration d'un serveur Web Apache

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Algorithmique et programmation : les bases (VBA) Corrigé

Sécurité des applications web. Daniel Boteanu

Déploiement d'une application Visual Studio Lightswitch dans Windows Azure.

INSTALLATION DE WINDOWS 2000 SERVER POUR BCDI3. par. G.Haberer, A.Peuch, P.Saadé

TP 6 : Wifi Sécurité

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin

SSL. Secure Socket Layer. R. Kobylanski janvier version 1.1 FC INPG. Protocole SSL Application avec stunnel

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

Cahier des charges. driver WIFI pour chipset Ralink RT2571W. sur hardware ARM7

Stockage du fichier dans une table mysql:

Logiciel de Base. I. Représentation des nombres

Tunnels. Plan. Pourquoi? Comment? Qu est-ce? Quelles solutions? Tunnels applicatifs ESIL INFO 2005/2006. Sophie Nicoud

Les premiers pas. Manuel

Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.

Algorithmique avec Algobox

Conservation des documents numériques

FileMaker Server 12. publication Web personnalisée avec XML

Note Technique Sécurité. Système d'authentification. Authentification hors APN LuxGSM Authentification 3G/APN. Système de notification

SQUID P r o x y L i b r e p o u r U n i x e t L i n u x

TP4 : Firewall IPTABLES

I. Programmation I. 1 Ecrire un programme en Scilab traduisant l organigramme montré ci-après (on pourra utiliser les annexes):

Programmation système I Les entrées/sorties

Transcription:

EVALUATION SOMMATIVE DUREE 6 HEURES TP de mise en œuvre d une solution Consignes : 1. Aucune communication n est autorisée pendant l évaluation sommative. 2. Tout Document peut être consulté. 3. La configuration de l Interface Homme Machine (IHM ) est à réaliser selon votre convenance. I/ Expression du besoin Pérenniser le maintien à domicile des personnes vulnérables Pérenniser le maintien à domicile des personnes vulnérables Capteurs de présence Lien Wifi ou Zigbee Serveur des alarmes Capteur 1 Capteur 2 Capteur n Réseau Internet Réseau domestique Maisons/Appartements Poste de supervision L objectif du projet est de contribuer à pérenniser le maintien à domicile des personnes vulnérables en leur offrant un environnement sûr. Dans le cadre d un service type téléalarme pour personne âgée seule à domicile, l objectif principal est de déterminer si elle est en état de détresse. Des capteurs de présence en wifi seront installés au salon, chambres, couloir, salle de bain, et cuisine. En fonctionnement nominal, une personne qui se trouve dans une des pièces "surveillées", est considérée par défaut en état "normal". Si aucun des capteurs ne détecte la personne, après un certain temps, on envoie une alarme au poste de supervision. Ce dernier appelle la personne au téléphone pour vérifier si elle est dans un état "normal" ou dans un état de détresse (une chute dans un couloir par exemple). Le logiciel devra utiliser les informations de détection ou non détection des capteurs, associées à une gestion du temps pour affiner son analyse avant d envoyer une alarme. 1

I/ PREMIERE PARTIE: Sécuriser l'accès à l'application (6points) Dans cette partie, nous nous intéresserons à la programmation d une partie de l application du poste de supervision. Le poste de supervision, reçoit les alarmes par le réseau Internet, ces dernières sont envoyées à partir du système de surveillance situé dans l appartement de la personne vulnérable. Un surveillant appelle immédiatement la personne par téléphone, si elle ne répond pas, il contacte les services de secours. Travail demandé : Dès le début de leur service, les surveillants doivent s authentifier avant d accéder aux différentes options de l application. On se propose de réaliser cette partie. L interface Homme Machine (IHM ) proposée à chaque question, est donnée à titre indicatif. Q1) Programmation HTML : Réaliser la page d accueil suivante: Q2) Programmation en PHP Pour sécuriser une application informatique, on procède comme suit : L administrateur génère des mots de passe 1) L administrateur crypte les mots de passe en utilisant un algorithme de cyptage. 2) Il envoie à utilisateur son identifiant et le mot de passe (non crypté) 3) Authentification: Le principe de l'authentification est le suivant: L utilisateur saisit son identifiant et son mot de passe (non crypté), l application crypte le mot de passe et le compare à celui mémorisé dans le programme pour savoir s'il est autorisé à accéder à cette dernière. 2

Algorithme de cryptage : Pour crypter les mots de passe des surveillants je vous propose de traduire l algorithme suivant en langage PHP : Algorithme de cryptage : remplacer chaque chiffre du code à crypter par (la somme de ce chiffre et de 7) modulo 10; ensuite il faut permuter le premier chiffre et le troisième ainsi que le deuxième et le quatrième. Données de départ : code : entier de 4 chiffres Sorties : code crypté : entier de 4 chiffres Début // Les données de départ Lire (code) // Les traitements m code / 1000 // Division entière en PHP: m=(int)(code/1000); c (code/100) modulo 10 // Le modulo = le reste de la division entière // utiliser la caractère % d (code/10) modulo 10 u code modulo 10 m (m+7) modulo 10 c (c+7) modulo 10 d (d+7) modulo 10 u (u+7) modulo 10 codecrypte d*1000+u*100+m*10+c; // Les sorties fin Afficher (codecrypte) ; Q2.1 ) Traduire cet algorithme en PHP et générer deux mots de passe. 3

Il faut ensuite communiquer aux surveillants les codes et les identifiants suivants : Surveillant 1 : Identifiant = DENIS, mot de passe = 4571 Surveillant 2 : Identifiant = WALLET, mot de passe = 1304 Q2.2) Retour au poste de supervision: Pour accéder à l application de supervision, le surveillant doit s authentifier. Votre code PHP ne doit pas contenir le mot de passe non crypté. En effet, en cas de piratage de votre serveur, on peut voir le ditmot de passe. Voici la procédure à suive : On saisit l identifiant et le mot de passe non crypté On crypte le mot de passe en appliquant l algorithme de la question 2.1 On compare le résultat obtenu au mot de passe crypté enregistré dans le code Ecrire un progarmme PHP pour pouvoir tester l identifiant et le mot de passe des deux surveillants. En cas d'erreur de mot de passe et/ou de l'identifiant afficher "Vérifier votre mot de passe ou votre identifiant", sinon afficher "Bienvenue M. DENIS". 2.3 ) Le langage PHP propose une fonction (MD5) pour réaliser le cryptage des mots de passe. Utiliser cette fonction pour crypter les mots de passe des 2 surveillants. Description string md5 ( string str) : md5 calcule le MD5 de la chaîne de caractères str en utilisant l'algorithme RSA Data Security, Inc. MD5 Message-Digest Algorithm, et retourne le résultat. Le résultat est un nombre de 32 caractères hexadécimaux. En utilisant la fonction md5, crypter les mots de passe suivants. Login Mot de passe Mot de passe Crypté DENIS 4571 WALLET 1304 Reprendre votre programme et remplacer l algorithme de la question 2.2, par la fonction md5(). 4

I/ DEUXIEME PARTIE: SUIVI DES ALARMES (12 points) Les capteurs de présence répartis au domicile (salon, chambre, salle de bain, cuisine), ont pour tâche de détecter la présence d une personne. Si aucun des capteurs ne détecte la personne, après un certain temps, le système doit envoyer une alarme au poste de superviseur. Pour lever le doute, l opérateur fait sonner le téléphone du domicile de la personne, pour vérifier si elle est toujours dans un état "normal" ou dans un état de détresse (une chute dans un couloir par exemple). Lorsque le superviseur se connecte au système d'acquisition des capteurs, ce dernier lui permet de visualiser la pièce ou se trouve la personne. On se propose dans cette partie d intégrer des images sur une IHM afin de visualiser les informations des capteurs de présence. Description de l'information délivrée par un capteur de présence Cas 1 : pas de présence ( valeur du capteur 0 ) $ ISNP01,0,U*00<CR> <LF> Valeur du checksum Valeur mesuré par le capteur, suivi de l unité(u) Entête caractérisant la nature du capteur : ISN = Initiales du capteur --- : Trois caractères pour désigner le capteur : P01 = Capteur de présence pièce 1 Début de trame $ Cas 2 : présence dans une pièce ( valeur du capteur 1 ) $ ISNP01, 1, U *00<CR> <LF> Valeur du checksum Valeur mesuré par le capteur, suivi de l unité(u) Entête caractérisant la nature du capteur : ISN = Initiales du capteur --- : Trois caractères pour désigner le capteur : P01 = Capteur de présence pièce 1 Début de trame $ 5

Pour cette deuxième partie nous allons simuler les capteurs par un saisie au clavier. Exemple de trames $trame = "\$ISNP01,0,*35\r\n"; $trame = "\$ISNP01,1,*34\r\n"; $trame = "\$ISNP02,0,*36\r\n"; $trame = "\$ISNP02,1,*37\r\n"; $trame = "\$ISNP03,0,*37\r\n"; $trame = "\$ISNP03,1,*36\r\n"; $trame = "\$ISNP04,0,*30\r\n"; $trame = "\$ISNP04,1,*31\r\n"; $trame = "\$ISNP05,1,*31\r\n"; $trame = "\$ISNP05,0,*31\r\n"; $trame = "\$ISNP06,1,*33\r\n"; $trame = "\$ISNP06,0,*32\r\n"; $trame = "\$ISNP07,0,*33\r\n"; $trame = "\$ISNP07,1,*32\r\n"; $trame = "\$ISNP08,0,*3C\r\n"; $trame = "\$ISNP08,0,*3D\r\n"; A votre disposition un dossier images comportant 9 images : maison0.gif à maison8.gif... maison0.gif maison1.gif... maison8.gif 1.1) Construire l IHM ci-dessous, pour saisir la trame d un capteur. On peut faire une saisie statique : <input type="text" name="typecapt" value ="$ISNP01,0,*35\r\n" size="20">. 1.2) Ecrire un script en PHP permettant d'afficher la trame du capteur Afficher l image et un message correspondants 6

1.3) Compléter votre script en analysant le capteur suivant <input type="text" name="typecapt" value ="$ISNP07,1,*32\r\n" size="20"> 7

Le checksum permet de vérifier l'intégrité de la trame. Description of approved Sentences $ HEX24 start of sentence <Adresse field> TALKER identifier and sentence formatter [, <data field>] Zero or more data fields [, <data field>] * <checksum field> <CR><LF> Checksum field HEX 0D 0A- End of sentence Checksum field: The absolute value calculates by exclusive-or ing the 8 data bits of each character in the sentence, between, but excluding $ and *. The hexadecimal value of the most significant and least significant 4 bits of the result are converted to two ASCII characters ( 0-9,A-F (upper case)) for transmission. The most significant character is transmitted first. The checksum field is required in all tranmitted sentences. Algorithme : Calcul d un checksum Données de départ : trame : Sorties : Début fin tableau de chaine de caractères checksumlu : un entier en base 16 ( hexadécimal) sumhex : un entier en base 16 ( hexadécimal) message : chaine de caractères // Les Entrées Lire (trame) // Traitement pos strpos(trame, * ) // recherche du caractère * checksumlu substr(trame,pos+1, 2) // Extraire deux caractères à partir de * // Calcul du checksum Sum 0; Pour i=1 à (pos-1) faire sum sum ^ ord(trame[i]) // OU EXCLUSIF finpour sumhex dechex(sum); SI (sumhex= checksumlu) alors message "trame reçu est valide Sinon message "trame Invalide finsi // Les sorties (résultats) afficher (checksumlu) afficher(sumhex) afficher (message) Rappel de quelques fonctions dont vous pourriez avoir besoin en php Description int strpos ( string $haystack, mixed $needle) Cherche la position numérique de la première occurrence de needle dans la chaîne de caractères haystack. 8

Description string substr ( string $string, int $start, int $length ) Retourne le segment de string défini par start et length. Description string dechex ( int $number ) Retourne une chaîne contenant la représentation hexadécimale de l'argument number Description int ord ( string $string ) Retourne le code ASCII du premier caractère de string. int strtoupper( string $string ) Retourne la chaîne string en majuscule. 1.4 ) Ecrire un programme qui compare le checksum calculé avec celui de la trame lue. Conclure (Voir ci-dessus l'algorithme du calcul du cheksum) <input type="text" name="typecapt" value ="$ISNP07,1,*32\r\n" size="20"> CAS d'une trame invalide 9

Evaluation Atteintes des objectifs du point de vue client Que devra-t-on observer à la fin qui témoignera de l'atteinte des objectifs fixés, du point de vue du client : 1) Accès sécurisé à l'application: Le technicien doit donner le bon mot de passe pour accéder à la page de supervision ( 6 points ) 2) A partir des informations contenues dans la trame d'un capteur (ex:"$isnp01,0,*35\r\n") on affiche l'image correspondante ( 6 points ) 3) A partir des informations contenues dans la trame d'un capteur (ex:"$isnp01,0,*35\r\n") on vérifie la validité de trame avant d'afficher l'image correspondante ( 6 points ) 4) La qualité de l'ihm (2points) Transfert de votre programme sur le serveur : A l aide d un logiciel de transfert de fichier (FTP), télécharger votre code source sur le serveur. Connectez-vous au serveur et tester le bon fonctionnement de votre programme. Information pour se connecter au serveur FTP : Hôte = 172.16.1.238 Utilisateur = 1SNIR Mot de passe = USER Port = 4451 Créer ensuite dans votre répertoire un répertoire EVAL1, et transférer vos codes. 1SNIR votre_nom EVAL1 script.htm script.php et images.gif Pour tester votre programme (depuis le Lycée) : http://172.16.1.238:4450/ Pour tester votre programme (depuis l'extérieur) : http:// 195.221.154.52 :4450/ 10