MINISTERE DE L’ENSEIGNEMENT REPUBLIQUE TOGOLAISE
SUPERIEUR ET DE LA RECHERCHE Travail – Liberté – Patrie
PROJET DE CLASSE
Domaine : Science et Technologie
Option : Génie logiciel
THEME :
DEVELOPPEMENT D'UN OUTIL SFTP EN
PYTHON 3 POUR LE TRANSFERT
SECURISE DE FICHIERS
Rédigé et presenté par :
KAKANOU Israel & KOUTON Ange
Etudiant à DEFITECH
Chargée du cours :
GARA IDRISSOU
Enseignant a DEFITECH
Projet de classe L3-DEFITECH
DEDICACE
A nos parents,
La reconnaissance que nous vous devons est très grande. Vos sacrifices pour notre
éducation et notre bien-être ont toujours été notre principale source de motivation.
Merci pour votre soutien
sFTP avec Python | KAKANOU & KOUTON
1
Projet de classe L3-DEFITECH
REMERCIEMENTS
Nous tenons tout avant tout à remercier Dieu Tout-Puissant pour nous avoir donné
la force, la santé et le courage nécessaire à la réalisation de ce projet.
Nous tenons également à remercier :
➢ M. AMOUZOU Joachin, Fondateur de l'institut polytechnique DEFITECH pour
sa foi en cet institut et pour tous les efforts qu'il y déploie ;
➢ M. GARA IDRISSOU Abdoul-Rachidou, le chargé de notre cours ;
sFTP avec Python | KAKANOU & KOUTON
2
Projet de classe L3-DEFITECH
LISTE DES PARTICIPANTS AU PROJET
Ci-dessous un tableau présentant l’équipe technique du projet.
Nom et Prénoms Poste Rôle
KAKANOU Israël Étudiant en 3ème année Concepteur et réalisateur
Génie Logiciel à
DEFITECH
KOUTON Ange Étudiant en 3ème année Concepteur et réalisateur
Génie Logiciel à
DEFITECH
GARA IDRISSOU Enseignant à DEFITECH Charge du cours
Abdoul-Rachidou
sFTP avec Python | KAKANOU & KOUTON
3
Projet de classe L3-DEFITECH
SOMMAIRE
DEDICACE..................................................................................................................
.
REMERCIEMENTS ..................................................................................................
SOMMAIRE................................................................................................................
LISTE DES PARTICIPANTS AU PROJET .............................................................
LISTE DES FIGURES…………………………..…..................................................
LISTE DES TABLEAUX ………..…......................................................................
I. INTRODUCTION....................................................................................................
II. FONDEMENT DE sFTP …………………………………………………………
A. Qu'est-ce que sFTP ?.....................................................................................
B. Avantages de l'utilisation de sFTP ……………………………………….
C. Différences entre sFTP et FTP/FTPS ………………………………….
III. PRESENTATION DE L’OUTIL PYTHON ………………………………….
A. Choix de Python 3 pour le développement ……………………………….
B. Bibliothèque Python pour sFTP : Paramiko …………………………….
C. Installation de Paramiko ………………………………………………..
sFTP avec Python | KAKANOU & KOUTON
4
Projet de classe L3-DEFITECH
IV. FONCTIONNALITE DE L’OUTILS ………………………………………….
A. Téléchargement de fichiers depuis un serveur distant …………………..
B. Chargement de fichiers vers un serveur distant ……………………….
C. Gestion avancée des fichiers : suppression, renommage, etc….………
V. SECURITE ………………………………………………………………………
Méthodes de sécurisation des transferts …………………………………….
VI. IMPLEMENTATION PRATIQUE …………………………………………..
A. Configuration de l'environnement de développement ……..…………….
B. Exemples de code pour le téléchargement et le chargement de fichiers ….
VII. BONNES PRATIQUES ET RECOMMENDATIONS ………………………
A. Sécurité : utilisation de mots de passe forts ……………..……………….
B. Gestion des connexions et des sessions …………………………………..
C. Optimisation des performances ……………………………………………
IX.CONCLUSION ………………………………………………………………….
X. ANNEXES ……………………………………………………………………….
IX. BIBLIOGRAPHIE ……………………………………..……………………….
sFTP avec Python | KAKANOU & KOUTON
5
Projet de classe L3-DEFITECH
I. INTRODUCTION
Dans l'ère numérique actuelle, où les échanges de données sont monnaie courante,
le contexte et l'importance du transfert sécurisé de fichiers sont devenus des
éléments essentiels dans la préservation de la confidentialité, de l'intégrité et de la
fiabilité des informations échangées. Des entreprises aux organismes
gouvernementaux, des établissements de santé aux institutions financières, tous
dépendent de mécanismes de transfert sécurisé pour protéger leurs données
sensibles contre les menaces potentielles telles que le piratage, l'interception et la
manipulation. Cette introduction explorera les tenants et aboutissants du transfert
sécurisé de fichiers, mettant en lumière son contexte dans un monde interconnecté
et son importance cruciale dans la préservation de la confiance et de la sécurité des
données à l'ère du numérique.
II. Fondements de sFTP
A. Qu'est-ce que sFTP ?
Le protocole de transfert de fichiers sécurisé (sFTP) est un protocole de réseau
sécurisé utilisé pour transférer des fichiers de manière sécurisée sur un réseau
informatique. Contrairement à FTP (File Transfer Protocol) et FTPS (FTP over
SSL/TLS), qui utilisent des canaux de données et de contrôle distincts, sFTP utilise
un seul canal sécurisé pour toutes les communications, offrant ainsi une meilleure
sécurité.
B. Avantages de l'utilisation de sFTP
1. Sécurité : sFTP chiffre toutes les données transférées, assurant ainsi la
confidentialité des informations.
sFTP avec Python | KAKANOU & KOUTON
6
Projet de classe L3-DEFITECH
2. Intégrité : sFTP intègre des mécanismes pour vérifier l'intégrité des données
transférées, garantissant qu'elles n'ont pas été altérées en transit.
3. Authentification : sFTP offre des options robustes pour l'authentification des
utilisateurs, garantissant que seules les personnes autorisées peuvent accéder aux
fichiers.
4. Fiabilité : En utilisant un canal de communication sécurisé, sFTP réduit les
risques d'erreurs et de pertes de données lors du transfert de fichiers.
C. Différences entre sFTP et FTP/FTPS
1. Sécurité : sFTP chiffre toutes les données, tandis que FTP et FTPS peuvent ne
chiffrer que les informations d'authentification.
2. Port utilisé : sFTP utilise le port 22 par défaut, tandis que FTP utilise le port 21
et FTPS utilise généralement le port 990.
3. Architecture : sFTP utilise un seul canal sécurisé pour toutes les
communications, tandis que FTP et FTPS utilisent des canaux distincts pour les
données et le contrôle.
III. Présentation de l'outil Python
A. Choix de Python 3 pour le développement
Image python
sFTP avec Python | KAKANOU & KOUTON
7
Projet de classe L3-DEFITECH
Python 3 est choisi pour le développement en raison de sa simplicité, de sa
flexibilité et de sa popularité croissante dans le domaine de l'automatisation des
tâches et du développement d'applications réseau.
B. Bibliothèque Python pour sFTP : Paramiko
Paramiko est une bibliothèque Python open-source qui implémente le protocole
sFTP, permettant ainsi aux développeurs d'interagir avec des serveurs sFTP de
manière sécurisée et efficace.
Image Paramiko
C. Installation de Paramiko
Paramiko peut être installé via le gestionnaire de paquets Python pip en exécutant
la commande `pip install paramiko`.
Image installation
sFTP avec Python | KAKANOU & KOUTON
8
Projet de classe L3-DEFITECH
IV. Fonctionnalités de l'outil
A. Téléchargement de fichiers depuis un serveur distant
L'outil Python développé permet aux utilisateurs de télécharger des fichiers
depuis un serveur distant en utilisant le protocole sFTP. Cette fonctionnalité offre
une méthode sécurisée et efficace pour transférer des données depuis des serveurs
distants vers des machines locales.
B. Chargement de fichiers vers un serveur distant
De manière similaire, l'outil permet également de charger des fichiers vers un
serveur distant via le protocole sFTP. Cela permet aux utilisateurs de transférer des
fichiers locaux vers des serveurs distants de manière sécurisée et fiable.
C. Gestion avancée des fichiers : suppression, renommage, etc.
En plus des opérations de base de téléchargement et de chargement de fichiers,
l'outil offre également des fonctionnalités avancées de gestion des fichiers, telles
que la suppression, le renommage, la création de répertoires, etc. Ces
fonctionnalités permettent aux utilisateurs d'effectuer une gamme étendue
d'opérations de manipulation de fichiers sur des serveurs distants via sFTP.
sFTP avec Python | KAKANOU & KOUTON
9
Projet de classe L3-DEFITECH
V. Sécurité
Méthodes de sécurisation des transferts
Pour garantir la sécurité des transferts de fichiers, l'outil implémente des mesures
de sécurité telles que l'utilisation de connexions chiffrées via sFTP,
l'authentification des utilisateurs à l'aide de clés SSH ou de mots de passe sécurisés,
et la vérification de l'intégrité des données transférées.
Reste a demontrer…
VI. Implémentation pratique
Reste En cours …
A. Configuration de l'environnement de développement
Avant d'utiliser l'outil Python pour le transfert sécurisé de fichiers, les utilisateurs
doivent configurer leur environnement de développement en installant Python 3 et
la bibliothèque Paramiko.
B. Exemples de code pour le téléchargement et le chargement de fichiers
L'outil fournit des exemples de code détaillés pour illustrer comment utiliser la
bibliothèque Paramiko afin de mettre en œuvre le téléchargement et le chargement
de fichiers via sFTP. Ces exemples de code servent de guide pratique pour les
développeurs souhaitant intégrer la fonctionnalité de transfert sécurisé de fichiers
dans leurs propres applications Python.
sFTP avec Python | KAKANOU & KOUTON
10
Projet de classe L3-DEFITECH
VII. Bonnes pratiques et recommandations
A. Sécurité : utilisation de mots de passe forts
Il est recommandé d'utiliser des mots de passe forts et des méthodes
d'authentification sécurisées, telles que les clés SSH, pour renforcer la sécurité des
connexions sFTP et éviter les accès non autorisés.
B. Gestion des connexions et des sessions
Pour optimiser les performances et éviter les problèmes de ressources, il est
recommandé de gérer efficacement les connexions et les sessions sFTP en les
fermant correctement après leur utilisation et en évitant les connexions persistantes
inutiles.
C. Optimisation des performances
Pour améliorer les performances du transfert de fichiers, il est recommandé
d'optimiser les paramètres de configuration du serveur sFTP, tels que la taille des
tampons et la compression des données, en fonction des besoins spécifiques de
l'application.
sFTP avec Python | KAKANOU & KOUTON
11
Projet de classe L3-DEFITECH
IX. Conclusion
Le transfert sécurisé de fichiers via sFTP est un élément crucial dans de
nombreux environnements informatiques, offrant une méthode fiable et sécurisée
pour échanger des données sensibles entre des serveurs distants et des clients
locaux. En utilisant des outils comme Paramiko en Python, les développeurs
peuvent facilement intégrer cette fonctionnalité dans leurs propres applications,
tout en suivant les bonnes pratiques de sécurité et en optimisant les performances
pour une expérience utilisateur optimale.
sFTP avec Python | KAKANOU & KOUTON
12
Projet de classe L3-DEFITECH
X. ANNEXES
sFTP avec Python | KAKANOU & KOUTON
13
Projet de classe L3-DEFITECH
XI. BIBLIOGRAPHIE
sFTP avec Python | KAKANOU & KOUTON
14