Vous êtes sur la page 1sur 151

Etude de cas

Nouvelles Technologies de
l’Information
Projet TransAzure
• NVOD : Near Video On Demand
– Avantages par rapport à la VOD
• Réseau multicast
– Satellite DVB
– ADSL multicast
• Distribution de films
– Stockage local
– Expérience VOD
Projet TransAzure
• Briques technologiques
– COM / COM
– XML
– Services distribués
– Web Services
– ADO
– Cryptographie
– etc…
PREMIERE PARTIE
Technologies des Systèmes
d’Information
COM
XML
.NET
Web Service
Plan

• COM
• XML
• Web Services
• .NET Framework
• ADO.NET
COM
• Architecture Microsoft
• Component Object Model
• Réutilisation du code binaire
• Black Box
– Objet
– Interfaces
– Evènements
• GUID
– CLSID pour les objets
– IID pour les interfaces
Clients et serveurs

• Serveur COM
– Implémente (héberge) un objet COM
– Inprocess / Executable / Remote
• Client COM
– Appelle les fonctions et propriétés du
serveur
Interface
• Un objet doit supporter au moins une
interface
• L’objet « implémente » l’interface
• Convention d’écriture :
INomInterface
• Chaque interface à un GUID : IID
– Interface Identifier
• Description d’une interface : IDL
– Interface Definition Language
IUnknown
• Interface primordiale de COM
– Toutes les interfaces dérivent de IUnknown
• Méthodes :
– QueryInterface
• Navigation entre les interfaces de l’objet
– AddRef
• incrémentation du compteur de référence
– Release
• décrémentation du compteur de référence
Développement COM
• Visual Studio .NET
• Langages :
– Visual C++
– Visual Basic
– Etc.
• Interopérabilité COM / .NET
– Objet COM utilisable sous .NET
– Utilisation d’un objet .NET en tant que
COM
XML

• Langage de markup
– Tags, sous-tags et attributs
– Fichier texte
• DTD
– Règles de construction du document
– Bien formé / valide
XML

• DTD et XML Schemas


– validation d’un document XML
XML

• DTD
• <!ELEMENT name (#PCDATA)>
<!ELEMENT quantity (#PCDATA)>
<!ELEMENT price (#PCDATA)>
<!ELEMENT item
(name,quantity,price)>
XML

• XML Schema
• <ElementType name="name"/>
<ElementType name="quantity" dt:type="int"/>
<ElementType name="price"
dt:type="fixed.14.4"/>
<ElementType name="item" model="open">
<element type="name"/>
<element type="quantity"/>
<element type="price"/>
</ElementType>
XML
• Parser
– Lecture et écriture d’un document XML
– Modes :
• Parcours récursif des noeuds (arborescence)
• Accès direct aux noeuds (XPath)
• Transformation
– XSLT
• MSXML
Exemple de programmation
XML
• Environnement .NET / C#
• XmlTextReader / XmlTextWriter
Web Services
• Définition :
– Programmable application logic
– Accessible via les protocoles standards Internet
• Combinaison entre :
– La technologie des composants réutilisables
• Black box
– Les technologies de communication sur le web
• Différence avec DCOM et RMI
• Utilisation de HTTP et de XML
Web Services

• Rôle important dans l’architecture


.NET
– L’application interagit avec les web
services
– Les web services fournissent :
• Les données
• Les fonctionnalités
Web Services

• Interface d’un Web Service


– Ensemble des messages acceptés ou
générés
• Clients d’un Web Service
– Consumers
– Implementé avec n’importe quel
langage
Web Services

• Fonctionnalités :
– A standard way to represent data
– A common, extensible, message format
– A common, extensible, service
description language
– A way to discover services located on a
particular Web site
– A way to discover service providers
Web Services

• SOAP : Simple Object Access Protocol


– Lightweight protocol for information
exchange
• Ensemble de règles
– Comment utiliser XML pour représenter
les données
– Format de message et conventions pour
l’appel de fonction distante (RPC)
Web Services
• Contrat
– Ensemble des messages acceptés et générés
• WSDL
– Web Service Description Language
– Contrat basé sur XML
• Découverte des Web Services
– Discovery Protocol
• UDDI
– Universal Description, Discovery, and
Integration
– Rendre public un Web Service
Web Services
• SOAP: The explicit messaging protocol used in Web service message
exchanges. Although HTTP is used by XML Web services to provide the
SOAP message transport protocol, it is not presumed. SMTP may be used
with SOAP as well. XML is the format in which the message is serialized
before being bound to the transport protocol.
• WSDL: Web Service Description Language (WSDL 1.1) is the grammar
describing the location and interfaces that a particular Web service
supports. A Web service uses it to deliver an XML-formatted document to
any requesting client. In the COM world, WSDL can be seen as synonymous
to a type library. WSDL is considered the "contract" for a Web service.
• DISCO: This is a Web Service Discovery mechanism. DISCO is the grammar
used to describe the Uniform Resource Identifier (URI) of a Web service and
contains references to the WSDL location. It usually resides at the root of a
Web application and exists as an XML-formatted file.
• UDDI: Universal Description Discovery and Integration is the directory for
all Web services. This is a protocol that allows businesses to publish their
developed Web services to a central directory so that they can be easily
found and consumed by other business clients.
• XML: Extensible Markup Language is a commonly used language for
Internet-ready documents and development. Data is returned from a Web
service in XML. If the Web service is invoked using SOAP, the parameters
are also sent to the Web service method in XML.
Web Services
Web Services
DataSet

• Elément fondamental de ADO.NET


• Collection de tables et de relations
• Indépendant de la source de données
• Etroite relation entre :
– DataSet
– Schema
– Xml
.NET Framework
• Nouvel environnement
– pour développer
– pour exécuter des applications
• Focus sur les Web Services
• Riche ensemble de services de base
• Interopérabilité
– Inter machines
– Inter langages
.NET Framework

• Fonctionne sous :
– XP, 2000, NT4, 98, ME
• ASP.NET uniquement sur XP/2000
• Pas de développement sur 98/ME
• Projet MONO sous Linux
.NET Framework

• Compilateurs fournis par Microsoft :


– C#
– C++
– VB
– JScript
• Autre langages
– Cobol, Perl, Smalltalk, Python, etc.
.NET Framework

• Common Language Runtime : CLR


– Modèle de programmation orientée
objets
– Modèle de sécurité
– Système de types prédéfinis
– Classes de base .NET
– Exécution et gestion du code
– Traducteurs IL / Natif
.NET Framework

• Serialization
– Convertir un objet en une série d’octets
– Pour le stockage
– Pour le transport
• Types de serialization
– Xml
– Binaire
ADO.NET

• Successeur de ADO
– Architecture complètement différente
– Plus grande abstraction
• Disponible pour tous les langages du
.NET Framework
ADO.NET

• Concepts de base
– DataSet
– DataTable
– DataColumn / DataRow
– DataRelation
ADO.NET
• Utilisation intensive de XML
– Disconnected access to data
• Un DataSet peut être rempli par un
document XML
• Un DataSet peut être structuré avec
un XML Schema
• Idéal pour le partage d’informations
entre tiers
Data Provider
• Connection
– établir la connexion à une source de données
• Command
– exécuter une commande sur une Connection
– avec des Parameters
– dans le cadre d’une Transaction
• DataReader
– Lecture forward-only et read-only
• DataAdapter
– remplir un DataSet
– résoudre les mises à jour sur la source de données
Data Provider

• Data Provider pour SQL Server


• Data Provider pour OLE DB
• Data Provider pour ODBC
• Data Provider pour Oracle
Architecture de ADO.NET
using System;
using System.Data;
using System.Data.SqlClient;

class Sample
{
public static void Main()
{
SqlConnection nwindConn;
nwindConn = new SqlConnection("Data Source=localhost;Initial
Catalog=northwind");

SqlCommand catCMD = nwindConn.CreateCommand();


catCMD.CommandText = "SELECT CategoryID, CategoryName FROM
Categories";

nwindConn.Open();

SqlDataReader myReader = catCMD.ExecuteReader();

while (myReader.Read())
{
Console.WriteLine("\t{0}\t{1}", myReader.GetInt32(0),
myReader.GetString(1));
}

myReader.Close();
nwindConn.Close();
}
ADO.NET

• Notion de DataView
– Tri
– Filtre
DirectX

• Famille de technologies multimedia


– Direct3D / DirectDraw
– DirectShow
– DirectPlay
MSDE

• Microsoft Desktop Engine


• Dérivé de SQL Server 2000
• Limitations
– 25 accès concurrents
– Pas d’outils graphiques d’administration
• Gratuit et redistribuable
• Dernière version MSDE SP3
DirectShow

• Briques élémentaires à combiner


– Filtres DirectShow
– Trois types
• Source Filter
• Transform Filter
• Render Filter
– Chaque filtre a des Pins (input, output)
DirectShow

• Graph Manager (ou Filter Graph)


– Espace de travail virtuel
– Héberge les filtres
– Gère le graphe
• Start / Stop
• Ajout et suppression des filtres
• Connexion des filtres
DirectShow

• Application interactive : Graph Edit


– Fournie avec le SDK de DirectX
– Travail interactif sur le graphe
– Permet de tester les graphes
manuellement
DirectShow

• Programmation via le SDK de DirectX


• Suite d’objets COM
– IFilterGraph
– IFilter
– IPin
– etc.
DirectShow

• Exemples d’utilisation
– Création d’un nouveau filtre
• Codec
• Traitement spécial pour la vidéo et l’audio
– Play d’un fichier multimedia dans une
application
Installation

• Projet de type « setup » dans


VisualStudio.NET
• Application tierce
– InstallShield
Boite à outils

• Visual Studio.NET
• InstallShield
• MSDE / SQL Server 2000
• Visio 2003
DEUXIEME PARTIE
Sécurité des Systèmes
d’Information

Généralités sur la sécurité


Plan du cours
Sécurité
des systèmes d’information
• Problème très ancien
– Message oral / Message écrit
– Intérêt accru ces dernières années
– Médiatisation : pirates, virus
• Opérations fondamentales à
sécuriser
– Stockage
– Traitement
– Transmission
Sécurité
des systèmes d’information
• Problèmes nouveaux et accrus
– Travail à distance
– Systèmes distribués
– Banque électronique
– Internet
• 2 acteurs
– L’attaqué
– L’attaquant : fraudeur, ennemi, etc.
Sécurité
des systèmes d’information
• Importance de la sécurité physique
– Concentrée en un seul point
– Tamper proof systems
• Résistance à l’effraction
• Gestion des clés, calculs cryptographiques,
etc.
Sécurité
des systèmes d’information
• Plan du cours
– Sécurité applicative
• Cryptographie
• Sécurité des applications
• Sécurité des applications web
• Sécurité des services web
– Sécurité des réseaux
• Intranet
• Internet
– Méthodologies de sécurité
TROISIEME PARTIE
Sécurité des Systèmes
d’Information

Eléments de cryptographie
Sécurité
des systèmes d’information
• Stéganographie
– L’information est cachée
• Cryptographie
– L’information est codée, chiffrée,
cryptée
Stéganographie
• Antiquité grecque
– Crâne rasé
• Représentations graphiques
– Support des messages cachés
– Arbre binaire
• Fontes différentes
– Codage binaire
• Encre invisible
– Citron
Cryptographie

• Transformer un message pour qu’il


devienne incompréhensible
• Chiffrement
– Algorithmes : chiffres
• 2 techniques
– Transposition
– Substitution
Chiffres de substitution

• Chiffre de César
– Alphabet cyclique
– Le décalage est la clé
– Recherche exhaustive
– Il existe 25 chiffres
Chiffres de substitution

• Substitutions monoalphabétiques
– Substitution via un alphabet désordonné
– 26! Substitutions = 4x1026
– Analyse statistique
– L’alphabet peut être reconstitué petit à
petit
– Statistiques d’occurrences
Chiffres de substitution
• Substitutions monoalphabétiques
% % % TH THE

E 13.1 D 4.1 G 1.4 HE AND


AN THA
T 9.0 L 3.6 B 1.3
IN ENT
O 8.2 C 2.9 V 1.0
ER ION
A 7.8 F 2.9 K 0.4
RE TIO
N 7.3 U 2.8 X 0.3
ES FOR
I 6.8 M 2.6 J 0.2 ON NDE
R 6.6 P 2.2 Q 0.2 EA HAS
S 6.5 Y 1.5 Z 0.1 TI NCE
H 5.9 W 1.5

Fréquences des lettres en anglais Digrammes/trigrammes les plus fréquents


Chiffres de substitutions

• Substitutions polyalphabétiques
– Plusieurs alphabets désordonnés
– Plus robuste à la cryptanalyse par étude
statistique
– Détermination possible du nombre
d’alphabets
– Codage des alphabets par un mot clé
• EXHAUSTINGBCDFJKLMOPQRVWYZ
Chiffres de substitutions

• Chiffre de Vigenère
Chiffres de transposition

• Transposition simple
– Groupes de 5 lettres
– Clé : 4 1 5 3 2
– Représentation mnémotechnique de la
clé :
• COMPUTER = 14358726
Chiffre de transposition
• Chiffre nihiliste
– Clair : NOWISTHETIMEFORALLGOODMEN
– Crypté : HTEITONWSIEMFRODOMNELALOG

L E M O N

2 1 3 5 4

L 2 O N W S I

E 1 H T E I T

M 3 E M F R O

O 5 L A L O G

N 4 D O M N E
Menaces contre un système
sécurisé
• 2 catégories :
– Menaces actives
• Lire ce qui est transféré ou stocké sans en
altérer le contenu
– Menaces passives
• L’intrus cherche à altérer les données
transférées ou stockées
Services de sécurité

• Chiffrement
• Authentification et intégrité
• Signature
• Non répudiation
Services de sécurité
Authentification et intégrité
• Mêmes risques :
– Message de A modifié de manière
indétectable
– Message qui semble provenir de A mais
n’en provient pas
• Authentification et intégrité sont
liées
Chiffrement à clé publique
• Chiffrement sans transport de clé
– A pose son verrou
– Le message est envoyé à B
– B pose son verrou
– Le message est envoyé à A
– A enlève son verrou
– Le message est envoyé à B
– B enlève son verrou
Algorithmes de chiffrement

• Cryptographie à clé symétrique


– Même clé pour crypter et décrypter
• Cryptographie à clé asymétrique
– Une clé pour crypter
– Une clé pour décrypter
– Couple de clé (publique, privée)
Cryptographie à clé
symétrique
• Exemple : DES
– Data Encryption Standard
– Algorithme militaire
– Combinaison de transpositions et de
substitutions
– Clé de 64 bits
– Blocs de 64 bits
– Même clé pour crypter et décrypter
Cryptographie à clé symétrique
Exemple du DES
• Principe de fonctionnement
Cryptographie à clé symétrique
Exemple du DES
• Modes d’application
– ECB : Electronic Codebook
– CBC : Cipher Bloc Chaining
– CFB : Cipher Feedback
– OFB : Output Feedback
Cryptographie à clé symétrique
Exemple du DES
• Mode ECB : Electronic Codebook
Cryptographie à clé symétrique
Exemple du DES
• Mode CBC : Cipher Bloc Chaining
M = EK ( M i ⊕ M )
i
' '
i −1

M i = DK ( M ) ⊕ M
i
' '
i −1
Cryptographie à clé
asymétrique
• Exemple : RSA
– Problème de factorisation en nombres
premiers
• Une clé pour crypter : clé publique
• Une clé pour décrypter : clé secrète
Fonction de Hash
• Message Digest
• Entrée : données de longueur
quelconque
• Sortie : valeur courte
– Sensible aux modifications sur l’entrée
– Résistant à l’analyse statistique
• Exemple : MD5
• Utilisé dans les signatures et le
contrôle d’intégrité
Signature

• Calcul d’un hash sur le message à


signer
• L’émetteur signe avec sa clé secrète
• Le destinataire vérifie avec sa clé
publique
Gestion des clés

• Aspect critique des clés


– Point faible du système
– Méritent une attention particulière
• Besoins différents
– Stockage de fichiers cryptés
– Échange de données cryptées
Gestion des clés

• Problèmes critiques :
– Distribution des clés
– Stockage des clés
• Hiérarchie de clés
– Clé maître KM
– Clé de terminal KT
– Clé de session KS
Gestion des clés

• Génération des clés


– Cas idéal : répartition uniforme
• Eviter les biais qui permettent une
prédiction
• Eviter toute corrélation facilitant la
cryptanalyse
– Cas réel :
• Faire en sorte que les valeurs ne soient pas
prédictibles
Gestion des clés

• Génération de la clé maître


– Clé changée très rarement
– Tirage à pile ou face ou lancer de dés
• Permet d’éviter tout algo comportant un
biais
• Méthode préconisée par IBM
– Génération d’une clé DES par tirage à pile ou face
Gestion des clés

• Génération des autres clés


– Changement fréquents (clés de session)
– Nécessite une source de nombre
aléatoire
• Véritable source physique de bits aléatoires
– Bruit électronique
• Générateur de nombres pseudo-aléatoires
– Suites mathématiques
– Période très longue
– Dépendent d’un germe
Gestion des clés

• Clés de terminaux et clés de session


– N terminaux dialoguant par paire
• N(N-1) clés différentes
– Intérêt d’utiliser des clés de session
• Évite d’avoir à gérer N(N-1) clés
• Durée de vie limitée, risque limité
Gestion des clés

• Chemins de distribution d’une clé de


session
– 3 entités
• Centre de distribution des clés (CDC)
• Terminal 1 (T1)
• Terminal 2 (T2)
– 2 possibilités
Gestion des clés

• Protocole de distribution d’une clé de


session
– Deux phases
• Dialogue entre T1 et CDC : acquisition de la
clé
– Nécessite une authentification
• Dialogue entre T1 et T2 : transfert de la clé
– Nécessite une authentification
Gestion des clés de
terminaux
• Principes :
– Une clé de terminal ne doit jamais
passer sur le réseau
– Chargement manuel et physique dans le
terminal
• Injecteur de clé (key gun)
• Couplage électronique ou optique
– Changement occasionnel de la clé de
terminal
Vérification de l’identité
• La sécurité d’un système dépend souvent
du problème de l’identification formelle
d’une personne devant un terminal
• Exemple : distributeur automatique de
billets
• Interaction directe entre un humain et un
ordinateur
– Implique des possibilités de fraude
– Usurpation d’identité
Vérification de l’identité
• Plus grande est une population, plus
il est difficile d’identifier ses
éléments
• Exemple :
– PIN à 4 chiffres
– Probabilité de 0.0001
– A mettre sur la balance de l’enjeu
• On n’identifie pas, on vérifie l’identité
déclarée
Vérification de l’identité
• Quatre classes de méthodes :
– Utiliser quelque chose que la personne connaît
• Mot de passe
– Utiliser quelque chose que la personne
possède
• Passeport
– Utiliser une caractéristique physique de la
personne
• Empreinte digitale
– Utiliser le résultat d’une action de la personne
• Signature
QUATRIEME PARTIE
Sécurité des Systèmes
d’Information

Sécurité des réseaux


Sécurité des réseaux
• Périmètre du réseau
– Frontière entre ce qui est contrôlé par
l’entreprise et l’extérieur
– Frontière entre l’intranet et l’internet
• Intranet
– Espace où s’applique le contrôle de l’entreprise
– Espace où le responsable de la sécurité va
appliquer la politique de sécurité
• Attaques
– Externes : venant de l’extérieur du périmètre
– Internes : venant de l’intérieur du périmètre
Sécurité des réseaux
Approches
• Approche passive
– On regarde ce qui se passe
– On fait quelque chose avant qu’il ne soit trop
tard
– Exemple : détection d’intrusion, etc.
– La sécurité passive n’est qu’un complément
• Approche active
– On n’autorise que ce qui est nécessaire
– On interdit par défaut et on journalise
– Exemple : contrôle d’accès, filtrage IP, etc.
Sécurité des réseaux
Détection d’intrusion
• IDS : Intrusion Détection Système
• Plusieurs types :
– Network-based (sniffing)
Sécurité des réseaux

• Exploitation des failles dans les


protocoles basés sur TCP/IP
• Exploitation des services réseaux
ouverts sur une machine
Sécurité et Internet
Comment se protéger
• Se former et former ses équipes
• Privilégier la sécurité active
– Concevoir une passerelle (au sens large)
– Mettre en place cette passerelle
– Administrer cette passerelle
– Déterminer les risques résiduels
• Faire de la sécurité passive
– Veille technologique
– Analyser les journaux de log
– Installer un système de détection d’intrusion
Sécurité et Internet
Comment se protéger
• Concevoir sa passerelle de sécurité
– Utiliser des protocoles reconnus
• HTTP, HTTPS, SMTP, etc.
• Eviter NetBios, H323, RealVideo, etc.
– Auditer les codes sources (CGI par
exemple)
– Surveiller les journaux de log
– Ne pas se limiter à la sécurité
applicative
Virus
• Portion de code bénigne ou maligne capable de
reproduire et de se propager
• Différents types :
– Virus de boot
– Virus dissimulés dans des executables
– Virus sous la forme de macros
• Contamination :
– Disquettes
– Pièces jointes des emails
– Exécutables récupérés sur Internet
– etc.
Virus

• Aucun système d’exploitation n’est


épargné
Vers

• Semblables aux virus mais capables


de propager à d’autres ordinateurs à
travers un réseau
• Exemple : « I love you » via la carnet
d’adresse d’Outlook
Chevaux de Troie

• Exemple :
– Back Orifice : permet la prise de
contrôle à distance
Spyware

• Logiciel espion qui collecte des


informations et les transmet à l’insu
de l’utilisateur
• Etude menée en 2004 :
– 80% des PCs contiennent au moins 1
spyware
– Un PC héberge en moyenne 93
spywares
– 90% des personnes interrogées n’ont
jamais entendu parler des spywares
Spyware

• Contamination :
– Via des software bundle
• KaZaa, DivX
– Via la navigation sur Internet
• Exploitation de failles de IE par exemple
• Installation volontaire d’un logiciel, ActiveX,
etc.
– Via des SPAMs qui incitent à visiter des
sites infestés
Spyware

• Détection
– Comportement anormal de la machine
• Popups
• Modification de la page d’accueil du
navigateur
• Apparitions d’icônes sur le bureau
• Connexions à Internet intempestives
• Trafic réseau anormal
• Désactivation des outils de sécurité locaux
Spyware
• Détection
– Outils de sécurités locaux
• DLLs modifiées (détectables avec un anti-virus)
• Firewall personnel
– Outils de sécurité réseaux
• Connexions récurrentes et/ou nocturnes
• Téléchargements suspects
• Connexion vers des sites non référencés par un DNS
• Connexion vers des sites .ru .tw etc.
SPAM

• Courrier non sollicité envoyé souvent


de manière automatique
• « Pourriel » en français
• Courier basé sur une liste d’adresses
collectées de manière déloyale ou
illicite
• Messages peu couteux à l’envoi mais
couteux pour le destinataire
SPAM

• Protection
– Assez délicate car il ne faut pas rejeter
des emails réels
– Protection au niveau du client de
messagerie
– Protection au niveau du serveur de
messagerie (éviter le Open Relay par
exemple)
– Gestion des listes noires
Ethereal
Introduction
• Analyseur réseau libre
– Licence GPL
– Windows et Unix
– Crée en 1997
• Outil de sécurité indispensable  
– Capture réseau
• Bibliothèque pcap sous Unix
• Bibliothèque winpcap sous Windows
– Lecture de nombreux formats de trace
– Décodage (analyse) de nombreux protocoles
Ethereal
Architecture
• Wiretap
– Récupération des données
– A partir du réseau ou d’un fichier de trace
• Analyseurs
– Modules de décodage d’un protocole spécifique
• Interface utilisateur
– Mode graphique
– Mode ligne de commande
Ethereal
Fonctionnalités
• Réassemblage
– Datagrammes IP, segments TCP, …
• Aperçu rapide du trafic
– Hiérarchie de protocoles
– Conversations et EndPoints
• Filtrage de trames
– Affichage dans des modules spécifiques
• Export
– Ex: sauvegarde d’une image dans un flux HTTP
Ethereal
Mécanismes de décodage
• Appel des modules de décodage
(analyse)
– A partir d’une couche inférieur du
protocole
• Ex: un champ de l’entête spécifie le
protocole supérieur
• Ex : l’analyseur HTTP : dépend de 80/tcp
8080/tcp, etc.
– De manière heuristique
• Essayer de reconnaitre un protocole
– A partir d’autre modules de décodage
Ethereal
Exemples d’utilisation
• Décodage des protocoles Windows
– SMB, MS RPC
• Relecture du trafic Wifi 802.11
– Avec déchiffrement WEP si les clés sont
disponibles
• Décodage des protocoles VoIP
– Famille H323 : H225, H235, H245, …
– Protocole SIP
– Protocoles relatifs aux médias : RTP, RTSP
Ethereal
Développements
• Modèle ouvert
– Nombreux développements autour des
modules d’analyse
– Les constructeurs de matériels
spécifiques fournissent un module
d’analyse pour leurs protocoles
propriétaires
Ethereal
Conclusion
• Nécessité de maitriser un outil
d’analyse réseau
• Ethereal est un outil adapté
– Libre
– Supporte de très nombreux protocoles
– Constamment en cours d’amélioration
Cloisonnement de réseau
Principes
• Découper le réseau en domaines
• Appliquer des filtres IP
• N’autoriser que les flux de services
nécessaires
• Appelé aussi partionnement réseau
• Elimine le trafic non-voulu au plus
près de là où il est généré
Cloisonnement réseau
Niveaux d’application de la
sécurité
Niveau OS et applicatif Niveau TCP/IP

A configurer dans beaucoup A configurer une seule fois dans tout


d’applications le SI

Impact sur beaucoup Impact sur le service de gestion du


d’administrateurs réseau

Difficile à implémenter Facile à implémenter

Manque de cohérence due à la Cohérent de part le concept de


diversité des OS et applications globalité

Appliquer la sécurité sur le réseau d’abord


Cloisonnement réseau
Avantages
• Répond aux besoins de l’utilisateur
– Technique transparente pour eux
– Pas de nouveaux mots de passe
• Répond aux besoins des administrateurs
– Rien de plus à implémenter
• Répond aux besoins des responsables
sécurité
– Vision globale de la politique de sécurité
– Gestion et contrôle centralisés
– Facilité de compréhension
Cloisonnement réseau
Performances du filtrage IP
• Performances faibles
– Routeurs bas-de gamme
– Pas assez de CPU et de mémoire
• Performances élevées
– Filtrage IP programmé en hard
– Intégré dans des routeurs professionnels
Cloisonnement réseau
Limitations du filtrage IP
• Comment faire confiance à l’adresse
IP
• Devient trop complexe si beaucoup
d’entités ont des échanges entre
elles
CINQUIEME PARTIE
Etude de cas
Near Video On Demand
Le projet

• Video On Demand
– Unicast
– Problème de scalability
• Montée en charge
• Bandwidth / cpu
• Near Video On Demand
– Multicast
– Stockage au niveau du device client
Video On Demand

• Formats vidéo
– AVI
– QuickTime
– MPEG-1, MPEG-2
– MPEG-4
– Windows Media (WMV)
– RealMedia (RM)
Video On Demand

• Serveurs de streaming
– Windows Media Server
• Series 9 / Series 10
• Player associé : WMV, MPEG
• DRM
– Real Server
• Player associé : RM, MPEG
Multicast

• 1 émetteur – N récepteurs potentiels


• Notion de groupes multicast
• Programmation winsock
– socket
– bind
– read / write
– join
Transfert de fichier en
multicast
• Problème de la voie de retour
– Pas de canal de control
– Nécessité de définir sa propre stratégie
• Scénario standard
– Redondance
Le système TransAzure
• 3 éléments
– Service provider
– Network operator
– Consumer
• Fonctions
– Digital Asset Management
– Transmission multicast
– User experience (play, transaction, etc.)
Composante A :
Digital Asset Management
• Stockage
• Cataloging / Référencement
• Indexation
Composante B :
Distribution multicast
• Découpage des fichiers en paquets
• Encapsulation (CRC, header, etc.)
• Multithreading pour la transmission
• Redondance paramétrable
• Interlacing des paquets
• Problème du débit de transmission
Composante C :
Consumer
• Application cross-platform
• Windows
– Module de réception multicast
– Module de browsing
– Module de transaction
– Module de play
• Right Enforcement
– Sécurisation des assets
QUATRIEME PARTIE
Réseaux neuronaux
Théorie et pratique
CINQUIEME PARTIE
Programmation pour les
périphériques mobiles

Téléphones portables
Personal Digital Assistant
SIXIEME PARTIE
Qualité et Productivité
Pratiques d’architecture

• Patterns an Best Practices de


Microsoft
• Lecture commentée
Pratiques de codage
• Tracing, Debuging et Profiling
• Cordbg.exe et DbgCLR.exe
• Instrumentation
– monitoring de la performance et du
fonctionnement
– Performance counters
• Code tracing
• Code debugging
Pratiques de codage
Tracing et Debugging
• Classes Trace et Debug
• Namespace System.Diagnostics
• Même fonctions :
– Write
– WriteIf
– WriteLine
– WriteLineIf
– Fail
– Assert
Pratiques de codage
Tracing et Debugging
• TraceListener
– TextWriterTraceListener
– EventLogTraceListener
– DefaultTraceListener
• Exemple :
– System.Diagnostics.Trace.Listeners.Clear();
– System.Diagnostics.Trace.Listeners.Add(new
System.Diagnostics.TextWriterTraceListener(Console.Ou
t));
– TraceSwitch : .TraceError=1 .TraceWarning=2,
.TraceInfo=3, .TraceVerbose=4
• Testing
Déploiement

• Problématique :
– Dépendances complexes
• Librairies internes
• Librairies externes
– Etat du système cible
• Version OS, service packs, etc.
– Cross-platform
• Windows, Mac, Linux
Déploiement

• Setup Project
– Intégré dans Visual Studio
– Adapté aux projets VB,C++,C#,etc.
• InstallShield
– Produit commercial
– Multiplateforme (Windows, Linux, Mac)
Communication intra-projet

• Outils techniques de communication


– Source Control : SourceSafe + Perforce
– Incident Manager : Seapine
Source Control
• Source Safe
– Produit Microsoft
– Intégré dans Visual Studio 6.0 et .NET
• CVS
– Produit Open Source
– Portable sur toutes les plateformes
• Perforce
– Produit commercial
– Disponible sur plusieurs plateformes
Source Control

• Principes généraux
– Centralisation des documents
– Accès client/serveur
– Opérations de base :
• Checkout
• Checkin
• Get Latest Version
• Rollback
Méthodologie de création de
rapports et de documentation
• Rapport d'architecture
– Projet du port
– Fonctionnement de l'application (user
experience)
– Schéma d'architecture
– Argumentation technique
– Fonctionnement interne détaillé
• Rapport de bug
• Documentation de code
– NDoc
Applications distribuées

• Architecture .NET
• Deux technologies maîtresses :
– Web Service
– .NET Remoting
• Objectif :
– développement d’applications
distribuées
Web Services
• Integration cross-platform
• HTTP, XML, SOAP
• Integration business-to-business
• A travers les firewalls
• Indépendance :
– Langage de programmation
– Plateforme
– Device
.NET Remoting

• Interaction « across boundaries »


– Domaines
– Processus
– Machines
• Accès à des ressources distantes
.NET remoting

• Notion de « domain »
– Indépendance vis-à-vis des process et
threads
– Plusieurs domaines dans un process
– Un domain n’existe que dans un seul
process
– .NET Remoting pour le franchissement
– Objet local / Objet remote
– Proxy object
.NET Remoting
• Types de remote objects
– Client activated
• Crée lors du new
– Server activated
• Crée lors du premier appel
• Deux types :
– SingleCall
 Un objet pour chaque appel
 Stateless
– Singleton
 Un objet sert plusieurs clients
 Statefull
Comparaison
• Performance
– TCP channel + binary formatter
• State management
– Web Service
• Stateless
• Utilisation des objets Session et Application (ASP.NET)
– .NET Remoting
• Stateless et statefull
• Possibilité de mixer
Comparaison
• Securité
– Web Service :
• sécurité basée sur IIS et ASP.NET
– .NET Remoting
• aucun framework predefini
• Robustesse
– Web Service :
• Robustesse inhérente à IIS
– .NET Remoting
• Robustesse à gérer soi-même
• Pb hébergement dans un exe ou un service NT
• Aucun problème si hébergement sous ASP
Comparaison

• Extensibilité
– .NET Remoting :
• Création de nouveaux formatters
• Création de nouvelles channels
– Web Service
• Contrôle précis via XmlSerializer
• using System; namespace RemoteClassLib
{
public class MyRemoteObject : System.MarshalByRefObject
{ public MyRemoteObject() { Console.WriteLine("Constructor
called"); } public string Hello(string name)
{ Console.WriteLine("Hello Called"); return "Hello " + name; } } }