mercredi 7 mai 2014

Technique de compilation

Il s’agit dans cet exercice de réaliser une application qui a pour rôle de simuler le mécanisme des automates finis non-déterministes et la reconnaissance des expressions régulières.
En effet, l’application doit:
- lire et accepter une expression régulière
- générer un automate fini déterministe reconnaissant cette expression
           
Structure et stockage dans la mémoire :

            Avant de procéder à la structuration il faut pouvoir préciser le nombre d’états associés à chaque caractère de l’expression régulière.

            Ainsi :
·        a={a-z,A-Z} ;
·        0={0-9} ;
·        *,|,+.
Correspondent à l’ajout de deux états.
·        .,(,).
Ne correspondent à aucun nouvel état.

Ainsi si on prend l’exemple de l’expression régulière suivante :
·        a|(a.0) 

 On peut déduire dès le début le nombre d’états correspondants. Ici, nous avons : 8 états.


Suivant le même exemple on trouve l’AFN qui suit :
Afin de structurer l’ensemble des états et des transitions dans la mémoire, on a vu utile l’utilisation d’une liste chaînée, capable de contenir et de refléter l’ensemble des états et des transitions au sein d’un automate.
            Pour ce faire on doit allouer un espace dans la mémoire dynamique, accessible via des pointeurs (Etat t=*e)  créés dans la mémoire statique.
            Ainsi, une structure va créer les dits tableaux :
                        Structure Etat
                                   debut
                                                T[4] :entier ;
                                    Fin;
            Alors
T[1],T[2],T[3],T[4] correspondent successivement aux adresses  des états correspondants à a,0,ε1,ε2.
            On utilise deux ε ; car on risque d’avoir deux transitions ε.

 Cette structuration, arborescente donne la certitude de bien respecter le passage correcte à l’issu de chaque transition. Ainsi, une structuration pareille permettra de réaliser l’application demandée dans cet exercice .

Utilisation d'une session sécurisée via IPSEC

                  IPsec est un protocole permettant de sécuriser les communications IP grâce à une utilisation de la cryptographie. Cet article présente les notions nécessaires pour comprendre les mécanismes mis en œuvre dans IPsec ainsi que les différentes fonctionnalités offertes par IPsec. Un exemple d'utilisation avec son tp est aussi présenté.

I-Présentation d’IPSEC :

IPsec (Internet Protocol Security), défini par l’IETF comme un cadre de standards ouverts pour assurer des communications privées et protégées sur des réseaux IP, par l'utilisation des services de sécurité cryptographiques, est un ensemble de protocoles utilisant des algorithmes permettant le transport de données sécurisées sur un réseau IP. IPSec se différencie des standards de sécurité antérieurs en n'étant pas limité à une seule méthode d'authentification ou d'algorithme et c'est la raison pour laquelle il est considéré comme un cadre de standards ouverts. De plus IPSec opère à la couche réseau (couche 3 du modèle OSI) contrairement aux standards antérieurs qui opéraient à la couche application (couche 7 du modèle OSI), ce qui le rend indépendant des applications, et veut dire que les utilisateurs n'ont pas besoin de configurer chaque application aux standards IPSec 

II- Les services fournis par IPSEC :
  • Authentification des extrémités : cette authentification mutuelle permet à chacun de s'assurer de l'identité de son interlocuteur. Rappelons tout de même qu'IPSec est un protocole de niveau 3 et qu'il ne fournit donc qu'une authentification de niveau égal, c'est-à-dire une authentification des machines mettant en oeuvre le protocole plutôt que des personnes utilisant réellement la machine. Nous verrons techniquement comme l'authentification est effectuée dans les paragraphes suivants.
  • Confidentialité des données échangées : IPSec permet si on le désire de chiffrer le contenu de chaque paquet IP pour éviter que quiconque ne le lise.
  • Authenticité des données : IPSec permet de s'assurer, pour chaque paquet échangé, qu'il a bien été émis par la bonne machine et qu'il est bien à destination de la seconde machine.
  • Intégrité des données échangées : IPSec permet de s'assurer qu'aucun paquet n'a subit de modification quelconque (attaque dite active) durant son trajet.
  • Protection contre les écoutes et analyses de trafic : IPSec permet de chiffrer les adresses IP réelles de la source et de la destination, ainsi que tout l'en-tête IP correspondant. C'est le mode de tunneling, qui empêche tout attaquant à l'écoute d'inférer des informations sur les identités réelles des extrémités du tunnel, sur les protocoles utilisés au-dessus d'IPSec, sur l'application utilisant le tunnel (timing-attacks et autres)...
  • Protection contre le rejeu : IPSec permet de se prémunir contre les attaques consistant à capturer un ou plusieurs paquets dans le but de les envoyer à nouveau (sans pour autant les avoir déchiffrés) pour bénéficier des même avantages que l'envoyeur initial.

III- le protocole IPSEC :

Les tunnels destinés aux échanges de données vont s'appuyer sur 2 protocoles différents suivant les besoins en sécurité des utilisateurs. Le premier est le protocole AH (Authentication Header, RFC 2402) qui vise à établir l'identité des extrémités de façon certaine. Il ne garantit aucune confidentialité (chiffrement) des données. Le deuxième protocole est le protocole ESP (Encapsulating Security Payload, RFC 2406) qui a pour but de chiffrer les données, avec ou sans les entêtes des paquets si l'on souhaite le mode tunneling. Il garantit également l'authenticité des données et, à ce niveau, peut introduire de la redondance par rapport à AH. Les aspects cryptographiques de ces protocoles seront décrits dans un paragraphe dédié. Ces 2 protocoles, AH et ESP, peuvent d'autre part être utilisés séparément ou combinés, comme expliqué ci-dessous.

IV-Modes de fonctionnement :

Pour chacun des mécanismes de sécurité d’Ipsec, il existe deux mode modes de fonctionnement. Ces deux modes sont choisis en fonction des besoins dans l’entreprise
En mode de transport, seules les données en provenance du protocole de niveau supérieur et transportées par le datagramme ip sont protégées, c’est-à-dire que  les données sont prises au niveau de la couche transport, elles sont cryptées et signées avant d’être transmise à la couche IP.
Dans ce mode l’insertion de la couche ipsec est transparente entre tcp et ip, c.à.d. tcp envoie ses données vers ipsec comme il les enverrait vers ip4. Ce mode n’est utilisable que sur des équipements terminaux. Son inconvénient  réside dans le fait que l’entête exterieur est produit par la couche ip càd sans masquage d’adresses alors que son intérêt réside dans une relative facilité de mise en œuvre.
Pour bien expliquer le fonctionnement en mode transport, on va prendre seulement l’exemple du protocole esp appliqué sur le packet ip, alors comme vous le savez le packet comprend les données correspondant au segment envoyé par la couche transport et l’entête ajouté par la couche réseau, le protocole esp fonctionne suivant le principe de l'encapsulation : les données originales sont chiffrées puis encapsulées c’est à dire qu’après application du protocole  sur la packet, les données seront chiffrées et encapsulées par trois champs esp.


En mode tunnel, les données envoyées par l'application traversent la pile de protocole jusqu'à la couche IP incluse, puis sont envoyées vers le module Ipsec, c.à.d. que l’insertion s’effectue après la couche ip
Dans ce mode les packet ip sont encapsulés dans d’autres packets c.à.d, que le packet sera chiffré en entier
Ce mode est utilisable à la fois sur des équipements terminaux et sur des passerelles de sécurité, il permet d’assurer une protection importante contre l’analyse du trafic, car il masque les adresse de l’expéditeur et du destinataire final
Ce mode permet de crypter les données d'une section non sécurisée d'un réseau. Par exemple, si deux entreprises associées veulent crypter toutes les données FTP entre leurs bureaux. Dans ce cas, il est possible de configurer IPSec pour crypter les données uniquement entre les pare-feu de chaque bureau comme illustré sur le schéma , les données sont chiffrées ainsi que l’entête qui est remplacé par un nouvel entête, ce dernier sert à transporter le packet jusqu’à la fin du tunnel, ou l’entête original est rétabli.

samedi 3 mai 2014

Messagerie électronique

Serveur de MESSAGERIE ELECTRONIQUE
J’ai le plaisir,  de vous proposer un sujet qui occupe une place de choix parmi les applications réseaux les plus utilisées. Il s’agit, bien-entendu de la messagerie électronique. Comme vous le savez, le courrier électronique est aujourd'hui l'une des applications les plus populaires du réseau. Utilisé pour des applications très variées - personnelles, professionnelles, associatives, politiques, etc. -, celui-ci tend à prendre une place de plus en plus prépondérante par rapport aux moyens de communication traditionnels. Outre son faible coût, la messagerie électronique a l'avantage d'optimiser la communication et la diffusion d'informations.
La messagerie électronique est de nos jours devenue l’un des moyens de communication les plus indispensables aux grandes entreprises. Les équipements sont récents, l’internationalisation favorise les échanges et culturellement, l’avènement d’internet a favorisé l’accélération des besoins de communication. Cette forte diffusion en entreprise est le résultat d’une farouche volonté de communiquer de la part des directions générales .Contrairement aux technologies intranet-internet, la demande ne vient en effet pas des directions opérationnelles. Les dirigeants des grandes entreprises ont visé l’efficacité et la productivité : communiquer par messagerie permet cela.
Aujourd’hui, la majorité des postes de travail sont équipés d’une messagerie et la tendance générale est d’équiper tout employé de l’entreprise avec une boîte aux lettres afin que chacun soit accessible personnellement, électroniquement.
La messagerie électronique est un Service de transmission de messages envoyés électroniquement via un réseau informatique dans la boîte aux lettres électronique d’un destinataire choisi par l’émetteur. On peut en faire une analogie avec le service postal, auquel on soumet une lettre avec une adresse de destination, le service postal va ensuite s’occuper à transporter notre lettre de poste en poste, analogiquement de serveur en serveur, jusqu’à la poste où habite notre correspondant, là on passe la lettre au service de livraison, à la seule différence prés que dans le cas de la messagerie électronique, ce n’est pas le facteur qui vous livre à domicile mais c’est vous qui vous vous déplacez pour vérifier si une lettre est arrivée pour la récupérer comme à l’ancienne.
           Pour fonctionner, la messagerie électronique s'appuie principalement sur des serveurs de messagerie, des protocoles de transport ainsi que sur des protocoles de contenu. Serveur de messagerie :   
       Les messages sont transmis d'une machine à l'autre à travers le réseau Internet jusqu'à leur destination finale. Ces machines  qui sont chargées d'acheminer et de réceptionner le courrier électronique sont appelées serveurs de messagerie. Ainsi, une fois parvenu au serveur de messagerie de destination, le message est enregistré dans une boîte aux lettres électronique jusqu'à ce que le destinataire le récupère. Ce serveur remplit, en quelque sorte, le rôle de « bureau de poste ».
Protocoles de transport:
Le fonctionnement du courrier électronique repose aussi sur une série de protocoles de communication destinés à envoyer ses messages, de serveur à serveur, à travers l'Internet. Les principaux protocoles sont les suivants : SMTP, POP3 ou encore IMAP4, chacun jouant un rôle bien précis.
Protocoles de contenu:
Historiquement, la messagerie Internet a été conçue pour transférer du texte en ASCII US (American Standard Code for Information Interchange) simple, c'est-à-dire sur 7 bits. C'est la raison pour laquelle il a fallu trouver des solutions pour transférer des informations binaires (images, sons, etc...) et des messages écrits dans une langue nécessitant plus de 7 bits pour coder son alphabet. Par exemple, l'envoi de textes contenant des accents nécessite un codage sur 8 bits et donc une extension du format ASCII d'origine.
Pour réaliser cette intégration des jeux de caractères 8 bits, divers systèmes d'encodage ont alors vu le jour : BinHex (essentiellement sur Mac), UUencode (essentiellement sur Unix) et surtout MIME (Multi-purpose Internet Mail Extensions) qui s'est imposé comme standard et qui est exploité par la plupart des logiciels de messagerie.
I- Principe de fonctionnement de la messagerie électronique :
I-1: Synoptique
I-2: Architecture
Dans cette architecture chaque client de messagerie (chaque MUA) dialogue avec un serveur de messagerie de rattachement (son MTA, le MTA de son entreprise). Au départ MUA et MTA étaient sur la même machine (le grand système de l'entreprise). Ils sont maintenant sur des postes de travail différents.
Le dialogue entre les MTA n'est pas réalisé comme précédemment par routage à l'intérieur du système de messagerie mais par un acheminement direct (de bout en bout) entre le MTA de rattachement de l'émetteur et le MTA de rattachement du destinataire. Pour pouvoir acheminer ainsi directement un courrier un MTA utilise un service de transport existant qui est typiquement dans l’Internet le protocole TCP. Un courrier électronique est donc acheminé comme des segments de niveau transport. Comme le protocole de transport de niveau 4 utilise un protocole de réseau de niveau 3 sous-jacent (typiquement IP), c’est ce niveau réseau qui effectue des opérations de commutation si elles sont nécessaires.
L'exemple type  de cette architecture est offert par la messagerie Internet et son protocole d'échange de messages SMTP ('Simple Mail Transfer Protocol') utilisé dans sa forme de base. On peut cependant noter des maintenant que la messagerie Internet SMTP permet également de faire du relayage de courriers. Il faut pour cela qu’un MTA Internet accepte de fonctionner en relais ouvert.  Dans ce cas un MTA qui reçoit un courrier d’un autre MTA  le relaye vers son destinataire comme s’il venait de recevoir ce courrier d’un client ou il le relaye vers un autre MTA s’il est configuré pour retransmettre ainsi tout ses courriers en sortie. Il peut enfin relayer un courrier vers un autre MTA s'il trouve dans le courrier des informations de routage.
I-3: Architecture modulaire
Ce schéma donne une vision modulaire plus détaillée d’une architecture de système de messagerie que l’on rencontre actuellement sur l’Internet. Un tel découpage modulaire permet de considérer un système de messagerie comme un ensemble de modules que l’on peut placer sur différents calculateurs d’un système réparti. On peut également remplacer des modules par d’autres pour adapter au mieux les outils d’une entreprise à ses besoins. On peut également de façon plus souple rajouter de nouveaux composants à cette architecture comme des anti-virus des anti spams etc.
           On voit apparaître sur ce schéma cinq éléments principaux, c’est à dire trois modules nouveaux par rapport aux deux modules déjà présentés. Le schéma comporte deux parties associées à l’émetteur et au destinataire, les parties sont encadrées par des rectangles. En plus de la notion de MUA ou client de messagerie et de MTA serveur de messagerie on introduit sur le destinataire la notion de MDA ce qui veut dire Mail Delivery Agent. Un MDA est un logiciel chargé du stockage des courriers sur le site destinataire.  Sur le schéma on a représenté la fonction boite aux lettres du destinataire c’est-à-dire la fonction de stockage des messages avant relève du courrier.
          Il apparaît ensuite la notion de MAA ou Mail Access Agent qui est un module chargé de répondre aux requêtes d’accès à la boite à lettre de courrier. On a porté sur les flèches huit étapes principales dans le cycle de vie d’un message.  On a également porté sur certaines flèches le nom du protocole utilisé comme SMTP, POP ou IMAP. Ils sont détaillés également dans la suite. Cette architecture générique tend à s’imposer. On peut peut-être encore trouver d’autres découpages avec des modes de fonctionnement propriétaires. A condition de respecter le protocole SMTP entre MTA et le format des courriers échangés, une messagerie propriétaire peut participer à la messagerie Internet tout en faisant ce qu'elle veut coté émetteur et coté destinataire.
II- Les protocoles  mis en jeu :
         La messagerie Internet comporte quatre protocoles principaux que l'on a déjà un peu évoqué pour trois d'entre eux.
-         Simple Mail Transfer Protocol (SMTP) est le protocole de base de la messagerie. Maintenant ancien basé il utilise des messages de format caractères pour réaliser les transferts de courriers entre MTA. Normalisé au départ sous la référence RFC 82, il a subi depuis de nombreuses améliorations. L’une des améliorations principale , en fait une révision majeure du protocole SMTP est constituée par le protocole Extended
-         Post Office Protocol (POP) est un protocole  de base pour la relève de courrier. Son mode de fonctionnement principalement visé est le transfert des courriers entre un client de messagerie MUA et un serveur de messagerie dans sa partie MAA suivi d'une destruction du courrier par le MAA. Le courrier n'est alors plus conservé que sur le MUA client de messagerie du destinataire.
-         Internet Message Access Protocol (IMAP) est un autre protocole de relève qui offre des possibilités plus larges que POP (gestion des archives de courrier, limitation des volumes de données échangées …). Son mode de fonctionnement privilégie la gestion des archives de courrier par le MAA destinataire c'est à dire sur le serveur de messagerie destinataire et pas sur le poste client du destinataire.
III- Exemple d’installation et configuration  du serveur de messagerie postfix :
-    Configuration sous  UBUNTU
                                    Le package à installer est : postfix-YYYYMMDD
  • -         Installez les paquets postfix courier-imap en tapant sudo apt-get install postfix courier-imap
  •       Si postfix et courier-imap sont déjà installés, la commande est :  sudo dpkg-reconfigure postfix

¢ L’ensemble des fichiers de configuration se trouvent sous /etc/postfix.
¢ Le fichier principal est /etc/postfix/main.cf, il contient la configuration globale de postfix.
            Postfix va alors vous poser les questions suivantes :

Le fichier /etc/postfix/master.cf est le fichier de configuration du daemon maître master et indique:
§  Comment est lancé chaque daemon Postfix.
§  Nombre maximum d’exécutions simultanées.
§  Fréquence d’exécution.
§  Privilèges.
Le fichier /etc/postfix/aliases.db établit une correspondance entre les adresses mail. 
IMAP : courier-imap
            Le fichier de configuration de courier-imap se situe dans /etc/courier  et se nomme  imapd:
           
             Seulement un point nous intéresse dans cette configuration : le MAILPATH (ou MAILDIRPATH), configurez-le comme suit :
                        MAILPATH=~/Maildir   
 
Retournez ensuite dans votre ~ et tapez ceci:
          maildirmake Maildir
Ceci créera la boite mail Maildir/ dans votre ~, autrement dit, dans votre /home/login
Éditez le fichier /etc/procmailrc

Pour appliquer les changements que vous avez faits sur Postfix et IMAP, procédez comme ceci :

sudo /etc/init.d/postfix restart && sudo /etc/init.d/courier-imap restart && sudo /etc/init.d/courier-authdaemon restart
Exemple de format d’un message

Configuration du client de messagerie



jeudi 1 mai 2014

Corrigé MCD Gestion des Etudes

Corrigé

1.      Règles de gestion et inventaire des entités et propriétés pour la gestion de l’école

Règles de gestion

•         Un enseignant peut intervenir dans différents modules
•         Un élève peut s’inscrire à un  ou plusieurs modules
•         A chaque module correspondent des délais d’inscription
•         Le coefficient d’un module dépend de la filière
•         Les dates des contrôles sont connues une semaine à l’avance
•         A chaque module et à chaque étudiant correspond une moyenne
•         Un module est assuré un ou plusieurs enseignant mais pas pour la même session
•         Un enseignant ne peut cumuler les responsabilités
•         Les absences doivent être représentées
Liste des entités et leurs propriétés

•         Filières                     :   CodeFilière, Intitulé, Description
•         Modules                   :   CodeModule, libellé , Description
•         Divisions                  :   N°Division, NomDiv, …
•         Départements          :   CodeDépart, NomDepart,…
•         Enseignants              :   IdEnseignant, Nom, Prénom, Tél, …
•         Contrôles                 :   N°Contrôle,DateContrôle
2         2.      MCD


Corrigé MCD Gestion Hotelière

Corrigé

   1.  Règles de gestion et inventaire des entités et propriétés pour la gestion hôtelière
Choix de gestion
•         Les arrhes des réservations doivent être effectuées plus de 8 jours avant la date de début de réservation DateArrhes<=DateDébut-8
•         Les arrhes >=  10% du montant total de la réservation
•         Le prix d’une chambre, dépend de la classe d’hôtel, de la catégorie et du  nombre d’occupants.
•         Une réservation ne concerne qu’une seule chambre
•         Les prix des prestations dépendent de chaque hôtel.
•         Les consommations doivent être mémorisées
Liste des entités et leurs propriétés
•         Hôtels                       :   Id Hôtel, Nom Hôtel, AdresseH, CPH,VilleH, TélH 
•         Classes                      :   NbreEtoiles, Caractéristiques
•         Chambres                 :   N°Chambre, N°téléphone
•         Catégories                :   CodeCatégorie, Description
•         Clients                      :   CodeClient, Nom, Prénom , N°CIN , Adresse, Tél , …
•         Réservations            :   N°Réservation, DateDébut, DateFin, DatePayeArrhes,                       MontantArrhes, NbreOccuppants
•         Prestations               :   CodePrestation, Désignation
•         Consommations      :   N°Consommation, DateCons, HeureCons
   2.   Liens entre les entités et leurs propriétés
·  Clients                      ß à Réservations
·  Réservations            ß à  Chambres
·  Chambres                 ß à   Hôtels
·  Hôtels                       ß à   Classes
·  Chambres                 ß à   Catégories
·  Classes                     ß à   Catégories     :   TarifUnitaire
·  Hôtels                       ß à   Prestations    :    PrixPrestation
·  Clients                      ß à    Consommations
·  Consommations      ß à    Prestations
3 3. MCD