Traduit de Anglais vers Français - www.onlinedoctranslator.
com
Programmation réseau et sécurité
Noureddine Boujnah
Université de la ville de Dublin, Irlande
Faculté des Sciences deGabès
Introduction
• Les échanges de données nécessitent une compréhension de base des architectures et protocoles
réseau
• Le réseau comprend des ordinateurs personnels, des routeurs, des commutateurs, des serveurs, un câble
RJ45, un câble croisé, un câble optiquefibre,sfacteur de forme de centre commercial enfichable(SFP),…
• Les protocoles ont été conçus pour prendre en charge divers services tels que l’audio, la voix, la vidéo, les
données sensibles à l’image, les e-mails…
• Les protocoles sont utilisés pour la transmission de données, la planification,la réservation des
ressources, le formatage des trames et des paquets et la synchronisation.
• Les langages de programmation tels que : C, C++, Python et Java ont été mis à niveau pour prendre en
charge la communication réseau telle que le chat en temps réel, l'échange de données.
• Différents niveaux de sécurité sont nécessaires pour protéger les données contre les pirates
informatiques, Man-In-the-Middle (MIM) et différents types d'attaques.
• A la fin de ce cours, les étudiants comprendront et se familiariseront avec :
• Protocoles de communication réseau : UDP et TCP
• Principe de prise
• Installation de l'environnement Java et de l'IDE et premier test du socket client/serveur
• Sécurité Internet
Programmation réseau et sécurité
Chapitre I
Fondamentaux du réseau
Architecture en couches
1.Couche physique:Au bas du modèle OSI, la couche physique offre les composants matériels
réels et la transmission physique des faits. Il englobe des aspects tels que les types de câbles, les
connecteurs, la signalisation et la modulation des alertes. Les câbles Ethernet, les fibres
optiques et les indicateurs Wi-Fi tombent tous sous ces résidus.
2.Couche de liaison de données:Au-dessus de la couche physique, la couche liaison de
données est spécialisée dans la mise en place d'un lien hypertexte fiable entre deux nœuds
immédiatement liés. Il utilise régulièrement des adresses MAC pour l'identification des
appareils et comprend des mécanismes de détection et de correction des erreurs. Les protocoles
Ethernet et Wi-Fi fonctionnent sur ce résidu.
3.Couche réseau:La couche réseau est responsable du routage des faits entre les réseaux. Il
gère l'adressage logique (ainsi que les adresses IP), détermine le meilleur chemin pour les
paquets d'informations et gère le routage des paquets via les routeurs. IP (Internet Protocol) est
un protocole distinct de couche réseau.
Architecture en couches
4. Couche de transport :Au-dessus de la couche réseau, la couche transport garantit un transfert de
données fiable entre deux hôtes. Il propose des offres comprenant la segmentation des faits, la
détection des erreurs et la gestion du flux. TCP (Transmission Control Protocol) et UDP (User
Datagram Protocol) sont des protocoles clés de la couche de transport.
5.Couche de session :La couche session offre un contrôle de consultation entre les packages. Il
établit, conserve et met fin aux classes, garantissant que les échanges de statistiques entre les packages
sont coordonnés et fiables. Cette couche est beaucoup moins courante dans les réseaux modernes,
mais est devenue particulièrement pertinente dans les modèles de réseau antérieurs.
7. Couche de présentation :Située au-dessus de la couche session, la couche présentation se
concentre sur la traduction et le cryptage des faits. Il garantit que les enregistrements échangés entre
des systèmes extraordinaires sont présentés dans une présentation qu'ils peuvent comprendre. Le
cryptage et le déchiffrement, la compression des informations et le codage des caractères font partie
des fonctions de cette couche.
Couche d'application:La couche la plus élevée, la couche application, s'interface sans délai avec les
programmes du consommateur final. Il présente de nombreuses offres et protocoles réseau, tels que
HTTP pour la navigation sur Internet, SMTP pour le courrier électronique et FTP pour le transfert de
Applications
1.Navigation sur le Web
2.Communication par courrier électronique
3.Appels VoIP
4.Cloud computing
5.Internet des objets (IoT)
6.Suite de protocole Internet (TCP/IP)
7.Communication sans fil
8.Ethernet
9.Centres de données
10.Streaming vidéo
11.Réseaux blockchain.
Pile de protocoles d'objets intelligents dans l'IoT
Communication
Communication à un seul saut
Tâches en réseau :
• Contrôle de flux : la transmission des
Lien : lien câble/sans fil données à la source doit être la même
Source Destination
à la destination
• Adressage et routage: chaque
machine/appareil a une identité, ses
Mise en réseau : machines et appareils données peuvent suivre un chemin
interconnectés • Récupération de données: si une
échanger des données et des signaux interruption se produit, le système
devrait pouvoir récupérer
• Formatage des messages: un message
entre éléments du réseau doit être
formaté dans une forme standard
• Sécurité des communications :mesures
pour protéger les données lors de leur
transmission
Couche réseau : adresse IP
Classe A 1.0.0.0 à 126.255.255.255, inclus. Environ 16 millions d'adresses IP dans une classe A
domaine.
Classe B 128.1.0.0 à 191.254.255.255, inclus. Environ 64 000 adresses IP dans un
domaine de classe B.
Classe C 192.0.1.0 à 223.255.254.255, inclus. 256 adresses IP dans un domaine de classe C.
Classe D 224.0.0.1 à 239.255.255.255 inclus désignent des groupes de multidiffusion.
Classe E 240.0.0.0 à 254.255.255.255, inclus. Réservé pour une utilisation future.
L'adresse IP 127.0.0.1 est spéciale et est réservée pour représenter le bouclage ouAdresse "localhost".
Évolution d'IPv4 vers IPv6
• L'adressage via les protocoles Internet est
nécessaire pour connecter les machines
au réseau
• Epuisement des adresses IPv4 limité à 232
• Version IPv6 avec moins de champs dans
l'entête, plus d'adresses(2128)
• Pénurie d'adresses en IPv4 en raison de
l'émergence de nouvelles technologies
telles que l'IoT et la 5G
• Le réseau IPv6 peut prendre en charge de
nouveaux services et flux de trafic
IPv6 et au-delà prendront en charge une multitude de services, de
flux de trafic et de connectivité. Les nouvelles opportunités de
recherche peuvent être :
• Réduire les OPEX/CAPEX des réseaux industriels tout en utilisant
IPv6 à l'aide de la solution All IP, couches d'adaptation
• Amélioration
14/11/2022
des métriques QoS d'IPv6 et au-delà pour prendre en 10
charge un débit de données ultra-élevé et un délai ultra-faible
Manipulation de l'adresse Internet et du numéro de port en Java
Les adresses Internet sont manipulées en Java par l'utilisation duAdresse
Inetclasse.Adresse Inets'occupe de la recherche et de la recherche inversée du
système de noms de domaine (DNS) ; Les adresses IP peuvent être spécifiées soit
par le nom d'hôte, soit par l'adresse IP brute.Adresse Inetfournit des méthodes
pourobtenirByName(),getAllByName(),obtenirLocalHost(),obtenirAdresse(), etc.
Le champ du numéro de port d'un paquet IP est spécifié sous la forme d'un entier
non signé de 16 bits. Cela signifie que les numéros de port valides vont de 1 à
65535. (Le numéro de port 0 est réservé et ne peut pas être utilisé).
Les numéros de port 1 à 255 sont réservés par IP pour les services connus
Couche transport : protocoles TCP/IP
TCP/IP définit la manière dont les informations circulent de l'expéditeur au destinataire
Les programmes d'application envoient des messages ou des flux à :
• Protocole de datagramme utilisateur (UDP)
• Protocole de contrôle des transports (TCP)
TCP et UDP appartiennent à la couche Transport, les messages sont encapsulés dans des
paquets et envoyés à la couche Réseau.
Caractéristiques
TCP UDP
Fiable : TCP est un protocole fiable car il suit Sans connexion
le mécanisme de contrôle des flux et des L'UDP est un protocole sans connexion car il
erreurs. Il prend également en charge le ne crée pas de chemin virtuel pour transférer
mécanisme d'accusé de réception, qui vérifie les données. Il n'utilise pas le chemin virtuel,
l'état et l'arrivée sonore des données. Dans le donc les paquets sont envoyés sur des
mécanisme d'accusé de réception, le chemins différents entre l'expéditeur et le
destinataire envoie un accusé de réception destinataire, ce qui entraîne la perte des
positif ou négatif à l'expéditeur afin que celui- paquets ou leur réception dans le désordre.
ci puisse savoir si le paquet de données a été
reçu ou doit être renvoyé.
L'ordre des données est conservé : La livraison commandée des données n'est
Ce protocole garantit que les données pas garantie
parviennent au destinataire prévu dans le Dans le cas d'UDP, les datagrammes envoyés
même ordre dans lequel elles sont envoyées. dans un certain ordre seront reçus dans le
Il ordonne et numérote chaque segment afin même ordre, ce qui n'est pas garanti car les
Caractéristiques
TCP UDP
Port : Port :
la plage des numéros de port est de 0 à Le protocole UDP utilise différents numéros
65535 de port afin que les données puissent être
La plage de 0 à 1 023 numéros de port est envoyées vers la bonne destination. Les
réservée aux protocoles standard et les autres numéros de port sont définis entre 0 et 1023.
numéros de port sont définis par l'utilisateur.
retransmission : est un mécanisme utilisé par Plus grostransmission:
des protocoles tels queTCPpour assurer une UDP permet une transmission plus rapide car
communication fiable. Ici, une communication il s'agit d'un protocole sans connexion, c'est-
fiable signifie que le protocole garantit la à-dire qu'aucun chemin virtuel n'est requis
livraison du paquet même si le paquet de pour transférer les données. Mais il existe un
données a été perdu ou endommagé. risque que chaque paquet soit perdu, ce qui
affecte la qualité de la transmission. D'un
autre côté, si le paquet est perdu lors de la
connexion TCP, ce paquet sera renvoyé,
Réseau physique : câblage
Câblage réseau
Fibre optique
SFP
Câblage réseau
Câblage croisé
Pilotes et interfaces réseau
• La carte d'interface réseau connecte l'ordinateur au
réseau
• La carte réseau est équivalente à la couche liaison de
données et à la couche physique
• Antenne NIC sans fil fonctionnant en MW, connexion ou
prise RJ45 femelle pour NIC filaire
• Sans fil : Wi-Fi, Bluetooth, 4G/5G
• Pour chaque matériel chauffeur
Exemple de codage de ligne (LC)
Séance de laboratoire
Ouvrez le fichier doc dans le dossier LAB
Un groupe est composé de 1,2 ou 3 étudiants
La première partie est décrite et comprend 5 tâches, la date limite pour soumettre
le rapport pour la première phase est le 30/04/2024.
Des questions?
Commandes réseau (ajouter ? Pour voir l'aide et essayer des
exemples)
et outils
outils
commandes
netsh Requin filaire
nslookup Tshark
tracer
Iperf
cheminement
Performance nette
netstat
netCPS
itinéraire
chat net(Linux)
mstsc(appuyez sur
ENTRÉE)
pour bien comprendre les protocoles, vous avez besoin de
Wireshark
Utiliser iperf3
Après avoir configuré les deux machines, chaque machine peut désormais être identifiée par son adresse
IP
Premier test en utilisant le test ping
Installez l'outil IPERF3 sur la première machine en tant que serveur et la deuxième machine en tant que
client
Il fonctionne sous UNIX et Windows, il peut être installé localement, cependant il n'a pas de grande utilité
pratique
Démarrer le premier test pour TCP et UDP
Le test nécessite de lancer côté serveur pour « écouter » les flux ou datagrammes provenant du client
La couche transport et la couche réseau sont impliquées dans ce test
Les tests Iperf3 sont un bon début pour comprendre les sockets
En parallèle,Tsharkou Wireshark peut être lancé
Exemple :iperf3 -c 172.16.0.1 -u -b 0,5m -t 20
Modèle client-serveur
Un programme envoie une requête et attend une réponse
Côté serveur, un programme différent qui écoute un canal ou un « port » donné
Le modèle peut être déployé localement ou en réseau
Il s'agit de 1 machine, 2 ou plus
Modèle client/serveur en TCP/IP :
Utilisation de l'appel de procédure à distance (RPC)
L'appel de procédure à distance (RPC) est un protocole de communication entre processus qui
permet à une machine d'exécuter des procédures spécifiques en utilisant les paramètres d'une
autre machine sur un réseau..Mis en œuvre pour assurer la communication entre deux machines
physiquement séparées
RPC utilise des sockets pour assurer la communication
Les paramètres d'appel sont intégrés et adaptés aux programmes et au réseau,
transmis à l'appelé (de l'appelant) et exécutésaprèsprogrammé, enfin renvoyer les
résultats au client
RPC utilise une bande passante dédiée et d'autres exigences réseau pour la
communication afin de garantir la qualité de service
Exemple:gRPC
https://grpc.io/docs/what-is-grpc
Programmation réseau et sécurité
Chapitre II
Les bases de la programmation
réseau Java
Java pour les réseaux
• Il vise à disposer de ressources pour le partage de données entre deux
machines distantes
• Le package java.net prend en charge deux protocoles de communication :
• TCP :Le protocole de contrôle de transmission fournit une communication fiable
entre l'expéditeur et le destinataire. TCP est utilisé avec le protocole Internet appelé
TCP/IP.
• UDP :Le protocole de datagramme utilisateur fournit un service de protocole sans
connexion en permettant aux paquets de données d'être transférés sur deux nœuds ou
plus.
Terminologie
• Adresse IP
• Protocole
• Numéro de port
• Adresse Mac
• Communication orientée connexion et sans connexion
• Prises
Cours pour java.net
•Authentificateur •Prise multidiffusion •Sélecteur de proxy •Chargeur de classe
•Demande de cache •InetSocketAddress •Cache de réponse d'URL
•Réponse en cache •Adresse Inet •Réponse SecureCache •URLConnexion
•Gestionnaire de •Inet4Adresse •ServeurSocket •Décodeur d'URL
contenu •Adresse Inet6 •Prise •Encodeur d'URL
•Gestionnaire de •IDN •AdresseSocket •Gestionnaire de flux
cookies •HttpURLConnexion •SocketImpl d'URL
•Gestionnaire de •HttpCookie •SocketPermission
cookies •Autorisation réseau •Options de prise standard
•DatagrammePacket •Interface réseau •URI
•DatagrammeSocket •Authentification par mot •URL
•DatagrammeSocketI de passe •Chargeur de classe
mpl •Procuration d'URL
•Adresse d'interface
•JarURLConnexion
Merci de prendre le temps de découvrir les classes java.net et les méthodes
associées
Interfaces pour java.net
•ContentHandlerFactory • Qu'est-ce que la gestion des
•Politique des cookies fichiers ?
•Magasin de cookies Comment l'exprimer en java : si
•DatagramSocketImplFactory vous avez des connaissances
•CarteNomFichier préalables en python, il vous suffit
•Option de prise<T> d'utiliser une syntaxe appropriée
•Options de socket • Qu'est-ce que les cookies ?
•SocketImplFactory Comment gérer les cookies en
•URLStreamHandlerFactory Java
•ProtocoleFamille
Forfaits associés
importerjava.io.*;
importerjava.net.*;
importer java.util.Scanner;
Programmation réseau et sécurité
Chapitre III
Les bases de la programmation
réseau Java
Datagramme UDP et segment TCP
* UDP : non fiable et rapide
Pas de numéro de séquence
Aucun accusé de réception requis
Moins de surcharge que le segment
TCP
* TCP fiable et lent
Numéro de séquence en segments
Connexion requise avant la
transmission
Prises
introduit au début des années 2 types de prise
1980
pourinterprocessuscommunicati
on via IP, Internet Pro
Prise de flux (prise Prise de datagramme
TCP) (prise UDP)
Les sockets sont un moyen
d'utiliser IP pour communiquer Service fiable et sans Service peu fiable et
entre les machines. Les sockets erreur au mieux
constituent donc une Paquet séquentiel Le datagramme peut
fonctionnalité majeure qui livré arriver dans le
permet à Java d'interagir avec
les systèmes existants en Telnet/SSH, HTTP, désordre
communiquant simplement avec HTTPS Diffusion
les serveurs existants en audio/vidéo en
utilisant leurs paramètres direct
prédéfinis.protocole.tocol
serveur UDP
1. CréerDatagrammeSocket: Le serveur UDP crée unDatagrammeSocketsur le port 1234, indiquant qu'il est
prêt à écouter les datagrammes entrants.
jeport nt = 1234 ;
Prise DatagramSocket = nouveau DatagramSocket(port);
2. Démarrer la boucle d'écoute : le serveur entre dans une boucle infinie où il écoute en permanence les
datagrammes entrants.
3. RecevoirDatagrammePacket: Lerecevoirméthode duDatagrammeSocketattend qu'un paquet de
datagramme soit reçu. Les données reçues sont stockées dans lerecevoir des donnéestableau
d'octets, les messages supposés ne pas dépasser 2024 octets
octet[] tampon = nouvel octet[1024];
DatagrammePacketpaquet = nouveauDatagrammePacket(tampon,tampon.longueur);
serveur UDP
4. Afficher le message avec l'en-tête du journal : le serveur affiche le message reçu ainsi qu'un en-tête de
journal comprenant un horodatage, une adresse IP du client et un port.
5. Extraire les détails du client : leDatagrammePacketcontient l'adresse IP et le port du client. Ces détails
sont extraits à l'aide duobtenirAdresse()etobtenirPort()méthodes.
// Bloquer à la réception()
socket.recevoir(paquet);
// Découvrez d'où vient le paquet afin que nous puissions répondre au même
hôte/portAdresse Inet hôte distant=paquet.getAddress();
intport distant=paquet.getPort(); // Extrait les données du paquet
octet[] données =paquet.getData();
serveur UDP
6. Convertir des octets en chaîne : les données reçues sont converties d'octets en chaîne à l'aide
duChaîneconstructeur.
Client UDP
1. Allouez d’abord de l’espace pour contenir les données que nous envoyons et créez une instance
deDatagrammePacketpour conserver les données.
octet[] tampon = nouvel octet[1024];
port entier = 1234 ;
Adresse Inethôte =InetAddress.getByName("127.0.0.1");
DatagrammePacketpaquet = nouveauDatagrammePacket(tampon,tampon.longueur, port hôte);
2. CréerDatagrammePacketet tableau d'octets : ADatagrammePacketest un conteneur contenant des données à
envoyer ou à recevoir via une connexion UDP. Un tableau d'octets nomméenvoyer des donnéesest créé pour
contenir le message à envoyer.
3. CréerDatagrammeSocket: UNDatagrammeSocketest établi pour le client. Il fait office de point final pour l'envoi et
Client UDP
1. Démarrer la boucle de saisie utilisateur : le code entre dans une boucle infinie où l'utilisateur peut saisir des
messages à envoyer au serveur. Si l'utilisateur saisit « QUIT », le socket client est fermé et le programme se
termine.
2. Convertir une chaîne en octets : le message d'entrée de l'utilisateur (cmd) est converti en octets à l'aide
deobtenir des octets()méthode.
3. CréerDatagrammePacket: Un nouveauDatagrammePacketest créé avec les octets du message, l'adresse IP de
destination ("127.0.0.1") et le numéro de port (5001).
4. EnvoyerDatagrammePacket: LeenvoyerLa méthode du socket client est utilisée pour envoyer le paquet de
datagramme au serveur.
serveur TCP
Pour créer un serveur TCP, procédez comme suit :
1. Créer unServeurSocketattaché à un numéro de port.
ServeurSocketserveur = nouveauServeurSocket(port);
2. Attendez les connexions des clients demandant des connexions à ce port.
// Bloquer lors de l'acceptation()
Canal de prise =serveur.accepter();
Vous obtiendrez un objet Socket à la suite de la connexion.
3. Obtenez les flux d’entrée et de sortie associés au socket.
sorti = nouveauImprimerWriter(canal.getOutputStream());
lecteur = nouveauLecteur de flux d'entrée(canal.getInputStream());
dans = nouveauBufferedReader(lecteur);
Vous pouvez désormais lire et écrire sur le socket, communiquant ainsi avec le client.
Données de chaîne =dans.readLine();out.println("Hé ! Je t'ai entendu sur cette prise !");
Lorsqu'un serveur invoque la méthode accept() duServeurSocketPar exemple, le thread principal du serveur
se bloque jusqu'à ce qu'un client se connecte au serveur ; il ne peut alors pas accepter d'autres connexions
client jusqu'à ce que le serveur ait traité la demande du client. C'est ce qu'on appelle un serveur itératif,
Client TCP
Pour créer un client TCP, procédez comme suit :
1. Créez un objet Socket attaché à un hôte distant, un port.
Client Socket = nouveau Socket (hôte, port);
2. . Obtenez les flux d’entrée et de sortie associés au socket.
sorti = nouveauImprimerWriter(client.getOutputStream());
lecteur = nouveauLecteur de flux d'entrée(client.getInputStream());
dans = nouveauBufferedReader(lecteur);
3. Vous pouvez désormais lire et écrire sur le socket, communiquant ainsi avec le serveur.
out.println("Bonjour!" + "Mon ami);
Données de chaîne =dans.readLine();
Multidiffusion dans la programmation réseau
Prise multidiffusionest une sous-classe deDatagrammeSocketqui représente un socket UDP
avec des capacités permettant de rejoindre des groupes de multidiffusion sur Internet.
• Communiquer avec un groupe de multidiffusion
1. Construisez un socket multicast
2. Rejoignez un groupe de multidiffusion (pour recevoir)
3. Envoyer/recevoir des données vers/depuis le groupe de multidiffusion
4. Quittez le groupe
Protocoles de communication sécurisés
Couche de socket sécurisée (SSL)
SSL est un protocole de communication qui crée une connexion sécurisée entre deux
appareils ou applications dans un réseau
Sécurité de la couche de transport (TLS) :
La version mise à niveau de SSL
Ilpermet le cryptage et l'authentification
Principales caractéristiques des protocoles SSL et TLS
Prises de contact SSL/TLS
Processus d'authentification pour vérifier les certificats SSL/TLS
Après une authentification réussie, les deux parties en communication échangent des clés de sécurité
Messages d'alerte :
Deux messages d'alerte pour SSL et des alertes supplémentaires pour TLS, car les messages TLS sont cryptés
Authentification des messages
SSL et TLS utilisent des codes d'authentification de message (MAC), une technique cryptographique permettant de vérifier
l'authenticité et l'intégrité des messages. En utilisant une clé secrète, le protocole d'enregistrement génère le MAC sous forme de
code de longueur fixe et le joint au message d'origine.
Le protocole SSL utilise l'algorithme MD5, désormais obsolète, pour la génération MAC. TLS utilise le code d'authentification de
message basé sur le hachage (HMAC) pour une cryptographie et une sécurité plus complexes.
Suites de chiffrement
Une suite de chiffrement est un ensemble d'algorithmes qui créent des clés pour chiffrer les informations entre un navigateur et un
serveur. En règle générale, une suite de chiffrement comprend un algorithme d'échange de clés, un algorithme de validation, un
algorithme de chiffrement en masse et un algorithme MAC. Plusieurs algorithmes TLS ont été mis à niveau à partir de SSL en
raison de problèmes de sécurité.
Principales caractéristiques des protocoles SSL et TLS :
Suite Cypher pour TLS1.0
Accord d'échange de Authentification Chiffrement par Message
clés bloc/flux authentification
DH DH RC4 MD5 basé sur le
RSA RSA Triple DES hachage
Courbe elliptique Diffie – Elliptique Standard d'encryptage Algorithme de hachage
Hellman (ECDH) CourbeSignature avancé(AES) sécurisé
Protocole de mot de numériqueAlgorithme(E Algorithme international
passe distant CDSA) de cryptage des
sécurisé(PDS) données(IDÉE)
Norme de cryptage des
données(DES)
JSSE (extension Java Secure Socket)
Un ensemble de packages Java qui permettent des communications Internet sécurisées.
– Implémente une version Java des protocoles SSL (Secure Sockets Layer) et TLS (Transport Layer
Security)
– Inclut des fonctionnalités de cryptage des données, d'authentification du serveur, d'intégrité des
messages et d'authentification client facultative.
Exemples de forfaits :
–javax.net.ssl:Package qui fournit des classes pour le socket sécurisé,
Prise SSL: Cette classe s'étendServeurSockets et fournit des sockets de serveur sécurisés à l'aide de
protocoles tels que Secure Sockets Layer (SSL) ou Transport Layer Security (TLS)
–java.sécurité.cert:Il prend en charge les certificats X.509 v3 et les CRL X.509 v2.
JSSE sur le Web :
http://www.oracle.com/technetwork/java/javase/tech/index-jsp-136007.html
http://download.oracle.com/javase/8/docs/technotes/guides/security/
Programmation réseau et sécurité
Chapitre IV
Sécurité
Programmation réseau et sécurité
Chapitre V
Considérations supplémentaires