Les principales failles de sécurité des applications web actuelles, telles que recensées par l'OWASP: principes, parades et bonnes pratiques de développement( Télécharger le fichier original )par Guillaume HARRY Conservatoire national des arts et métiers - Ingénieur 2012 |
3. APPLICATIONS WEB3.1 Architecture3.1.1 Le réseau Internet et ses protocolesComme évoqué précédemment, le Web repose sur le réseau Internet et comme tous les réseaux informatiques, il repose sur des couches de protocoles de communication. Le paquet est l'unité de base de la transmission de données sur Internet. L. Shklar et R. Rosen [2] font la description suivante de la couche de protocoles pour Internet dont le couple TCP/IP est la fondation : Figure 1 - Transfert des données à travers la pile de protocoles d'Internet La couche « Réseau » est la couche responsable de la transmission physique des données. Elle peut être implémentée par les lignes téléphoniques, par le GSM ou par du réseau Ethernet par exemple. L'information peut cheminer sur différents supports avant d'atteindre la destination. La couche « Internet » est la couche qui indique où les données doivent être envoyées, sans garantie que la destination sera bien atteinte. Elle peut utiliser les protocoles IP (Internet Protocol) et ICMP (Internet Control Message Protocol). ICMP permet de vérifier que des messages peuvent être échangés et de gérer les erreurs de transmission. Il est particulièrement utilisé par des outils tels que « ping » et « traceroute ». IP est utilisé pour la plupart des communications sur Internet. Il prend les données issues des couches supérieures, décrites ci-dessous, et les divise en paquets de taille prédéterminée pour faciliter leur transmission sur le réseau [4]. Ainsi, si un paquet est corrompu durant la transmission, il n'est nécessaire de réémettre tout le message, mais uniquement le paquet. Chaque paquet est transmis individuellement et peut emprunter un chemin différent des autres. A l'arrivée la couche Internet réassemble l'ensemble des paquets pour reformer le message original. La couche « Transport » repose sur deux protocoles : TCP et UDP (User Datagram Protocol). TCP s'assure que les paquets sont reçus dans le même ordre qu'ils ont été envoyés et que les paquets perdus sont à nouveau envoyés. TCP est donc un moyen de transmission fiable puisqu'il s'assure que les paquets sont arrivés. Comme indiqué par G.Florin et S.Natkin [5], UDP est un protocole simplifié. Cela permet d'utiliser des moyens de communication à plus faible débit puisqu'il y a finalement moins d'informations transmises. UDP est utilisé notamment par NFS (Network File System) et les applications Web sur smartphone puisqu'elles ne disposent que d'un faible débit. La couche « Application » est celle qui permet aux utilisateurs finaux de communiquer sur Internet avec des protocoles tels que telnet pour agir sur un serveur, FTP (File Transfer Protocol) pour la transmission de fichiers, SMTP (Simple Mail Tranfert Protocol) pour l'envoi de courrier électronique et http pour le Web. Http est un protocole de messages de type texte basé sur le paradigme « requête/réponse ». L'utilisateur envoie via son navigateur un message, la requête, au serveur http. Chaque requête est traitée individuellement et de façon unique. Ensuite le serveur renvoie un message, la réponse, au navigateur. Http est un protocole déconnecté, c'est-à-dire que le protocole ne permet pas d'établir des communications entre requêtes pour partager des informations, alors qu'une application Web a besoin de conserver les réponses des différentes requêtes d'un utilisateur pour avoir le même comportement qu'avec une application non-Web. C'est pourquoi la plupart des navigateurs intègrent le système de « cookie » qui permet de conserver le résultat d'une requête. Figure 2 - Pile de protocoles d'Internet |
|