IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Discussion :

Transférer des gros fichiers, choix technologique?


Sujet :

Développement

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 24
    Points : 19
    Points
    19
    Par défaut Transférer des gros fichiers, choix technologique?
    Bonjour à tous,

    J'ai une application distribuée sur 5 machines. Une de ces machines est responsable de l'archivage de vidéos en vue d'un traitement.

    Mon but: transférer de la machine d'archivage à celle de traitements de gros fichiers (plusieurs Go par fichier).

    Problème technologique: chaque machine tourne sous windows (je n'y peux rien, j'ai pas eu le choix), l'ensemble du système étant programmé en python. Je n'arrive pas à trouver un produit gratuit faisant cela efficacement.

    Choix envisagés jusqu'ici:
    • FTP: pas sécurisé, interdit sur le réseau en question
    • Partage samba: pas sécurisé et selon les cas les machine speuvent ne pas être sur le même réseau. VPN est interdit.
    • SCP: opensshd sous windows n'est pas fiable, et lorsqu'il plante nécessite le redémarrage de la machine.
    • SFTP: pourquoi pas?
    • Petit protocole en UDP: une idée à creuser
    • P2P: tous les logiciels de ce type sont interdits sur le réseau.
    Je cherche donc vos lumières, vos expériences en la matière.
    Mon cahier des charges: le système ne doit pas être interdit (donc être issu d'un protocole réputé sûr, les firewalls bloquant un peu tout), il doit être fiable, et idéalement, en cas de panne, un téléchargement doit pouvoir reprendre.

    Merci d'avance pour toutes vos idées!

  2. #2
    zul
    zul est déconnecté
    Membre éclairé Avatar de zul
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    498
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 498
    Points : 699
    Points
    699
    Par défaut
    Tu va avoir le même problème avec sftp que scp, l'implémentation la plus commune étant OpenSSHD.

    Tu peux essayer de voir du coté de ftp + ssl mais ca va être galère au niveau des parefeu. Le plus simple serait surement de monter un ftp over ipsec ou un sambe over ipsec mais tout ca a l'air interdit .

    Si tu ecris un protocole maison, je te deconseille udp pour le transfert de fichier ( à moins que tu ai envie de remettre les paquets dans l'ordre à la main ). Base toi plutot sur tcp ( tu peux écrire un sous-ensemble de ftp si il s'agit juste de transférer des fichiers ). Mais les solutions entreprises ne sont pas gage de sécurité ( bien au contraire je dirai ).

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 24
    Points : 19
    Points
    19
    Par défaut
    Merci beaucoup de ta (très rapide) réponse!

    Je n'avais pas pensé que j'étais obligé d'utiliser opensshd également pour le SFTP, j'imaginais qu'il existait un petit soft gratuit juste pour créer un serveur SFTP (faut dire que je viens du monde Mac, que je travaille habituellement sous Linux, alors j'espère l'existence de logiciels gratuits et open source à chaque fois...

    Pour ce qui est d'IPSEC tout risque d'être interdit (une des bizzareries de mon employeur, l'interdiction de VPN)

    Pour la solution à faire clés en main, je me disais qu'avec le TCP, le risque serait d'envoyer de minuscules paquets avec un enrobage énorme... Effectivement, résoudre le sproblèmes d'ordre des paquets risque d'être très pénible en UDP, et si TCP soutient la charge, ça me va nickel...

    Je suis ouvert à toute proposition

    Merci encore!

  4. #4
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 119
    Points
    28 119
    Par défaut
    Bonjour,

    En résumé, tu souhaites transférer d'importantes quantités de données d'une manière totalement sécurisée entre plusieurs machines.

    Le plus sécurisé reste de graver les données sur un support (DVD, bandes, ...), puis de transférer ce support à la main avec un ou plusieurs gardes armés autour pour sécuriser le transfert.

    Sinon, le plus simple est que tu listes les protocoles qui te sont autorisés, et à partir de là il sera possible de te proposer une solution.

    La solution à peu près sécurisée est la suivante :
    Ecriture d'un protocole de transfert des données. Les données seront transmises via des communications sécurisées, par exemple via SSL (Secured Socket Layer).
    Afin d'éviter les attaques de type "Man in the middle", il faut bien évidemment que les machines puissent toutes s'authentifier les unes avec les autres. pour ce faire, il te faut mettre en place un système de certificats bi-partis (le client reconnait que le serveur est valide, et le serveur reconnait que le client est valide).
    Je ne pense pas que ceci existe dans l'offre logicielle actuellement, à moins de pouvoir pasesr par un browser. Vu que cela te sera probablement interdit, tu ouoblies, et tu écris toi-même cette application.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  5. #5
    Membre expérimenté
    Avatar de Aramis
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 493
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 493
    Points : 1 638
    Points
    1 638
    Par défaut
    Bonjour,

    cela fait quelque jours que je suis ce sujet et je dois bien dire que apres reflections, je n'ai rien compris.

    Tout d'abord, il n'y a aucune idincation sur "qui fait quoi". Par exemple, nous savons que de gros fichiers doivent etre transferes, cependant, a mes yeux, il est impossible de determiner si 5 machines envoient les fichiers qui seront traites par une seule machine. Ou bien, il faut acheminer les fichiers vers une premiere machine qui elle sera chargee de distribuee les taches de calcul/autre aux 5 autres. En d'autres mots, a t on un probleme de 1 vers n ou bien n vers 1.

    Ensuite, je ne suis pas un partisant de "crypter = securiser" car la securite des applications et des donnees ne se limite pas une formule mathematique. Dans un reseau local, le protocol FTP est tout a fait acceptable. A partir du moment ou toutes les applications sont controllees et les appereils reseaux hors d'acces de l'utilisateur lambda, je me demande qui peut bien determiner la substence d'un echange par FTP (en particulier sur un reseau commute).

    Nous avons le droit a une liste de protocols/applications qui sont prohibe(e)s, cela prouve que l'employeur possede une strategie de securite, mais celle ci est elle bien comprise ? Dans mon organisation, FTP est un service que le departement IT prefererai que nous ne l'utilisions pas. Cependant, il est ecrit dans notre strategie de securite qu'il est interdit d'offrir un service FTP pour l'exterieur (toutes nos IPs sont routables). Cependant, de Subnet a subnet c'est possible. Il en va de meme pour le reste des technologies citees, samba par exemple.

    En ce qui concerne IPSec/VPN, il semblerai que l'employeur soit tres bien informe ! En effet, il arrive trop souvent que les utilisateurs activent le VPN de leur machine vers la machine distante plutot que du router/server VPN a la pointe du reseau (Edge router/VPN service Gateway), jusqu'a l'appareil similaire a l'autre bout de la connexion. Les fournisseurs/constructeurs preconnisent la seconde methode. La premiere ne permet pas au systeme de detection reseaux (Snort et etc.) de trouver virus et autre probleme a cause des donnees cryptees. Les donnees sont donc "protegees" durant leur passage a travers les reseaux publics mais redeviennent visibles de chaque cote de la communication et donc peuvent etre verifiees et filtrees.

    Comme GangSoleil l'a souligne, l'attaque Man in The Middle est l'attaque qui se joue tres facilement des systemes de cryptage (cf. l'article de John Viega "Security; Problem Solved" publie dans le journal ACM Queue 2005). Cependant, tant que nous ne savons quelle architecture reseau est utilisee, notre capacite a aider est limitees. Les donnees doivent elle travers l'Internet, ou seulement le reseau local? Est il possible de deployer un subnet separe et etc. Je pense que cela rejoins ma premiere observation.

    Je suis d'avis que developper sa propre application n'est pas une bonnee, a longterms beaucoup de maintenance et peut etre peu evolutif. Utiliser des applications/protocols deja etablis assurera un deployment plus aiser et des coups reduit en maintenance (c a d raler au pres du developpeur )

    Pour terminer, la beaute des reseaux locaux et de l'Internet, est que les principes dominent les implementations. C'est pourquoi je doute que la mention "les 5 machines tournent sous Windows, j'y peux rien" fasse avancer le shimlblick. L'interet est de trouver une solution au niveau du reseaux et du choix du type des applications, mais il est tres improbable qu'une bonne solution devienne caduc parce que tel ou tel plateforme est utiliser. Si c'etait (souvent) le cas alors les reseaux n'auraient pas le succes qu'ils ont aujourd'hui

    Ar@mi$
    Avant de Poster Lire les Regles! Merci
    -------------------------------------------------
    "The only Way for Evils to Triumph is for Good Men to Do Nothing"
    Edmund Burke (1729 - 1797)

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 24
    Points : 19
    Points
    19
    Par défaut
    merci mille fois de ta réponse que je viens seulement de découvrir...

    Je vais tenter de donner plus de précisions:

    Le produit dévelloppé est un système dédié au e-learning. Il s'agit d'acquisition de vidéo depuis plusieurs sources, et de traitements de ces vidéos (détection d'événements particuliers, par exemple, changement de slides dans une conférence utilisant powerpoint).

    Ce produit peut être distribué sur plusieurs machines. Chaque bloc fonctionnel est appelé module. J'ai un module qui s'occupe de l'archivage de vidéos et qui doit être accédé depuis les autres. On a donc une machine faisant la tâche de contrôleur, qui va coordoner les missions des autres.

    Scénario typique:
    Une machine s'occupe de faire de l'acquisiton vidéo. A la fin de sa tâche, elle reçoit l'ordre par le contrôleur d'envoyer ses fichiers sur l'archivage.
    A un moment décidé par le contrôleur, une machine servant à l'analyse récupère, notamment, ces vidéos. Parallèlement à cela, la machine d'archivage transpose ces vidéos dans d'autres formats.
    Une analyse pourra se faire en plusieurs étapes, voire plusieurs fois. D'autres machines peuvent encore avoir besoin d'accéder de manière ponctuelle à l'archivage.

    Du point de vue du réseau, il ne s'agit pas d'un projet interne à une entreprise, il faut donc prévoir plusieurs cas de figure. Il n'est donc pas exclu que la machine d'archivage ne se trouve pas du tout sur le même réseau que les autres.

    Par contre, le projet a pour but premier d'être exploitable chez deux clients. La politique de sécurité du premier (réseau de classe B, toutes adresses publiques) est de bannir purement et simplement certains protocoles de son réseau, ce qui est le cas du FTP.
    Il ne s'agit en fait nullement d'une volonté de ce projet de se sécuriser (les documents et vidéos échangées sont du domaine public), mais d'un impératif dû à des restrictions du milieu dans lequel il sera déployé.

    Mon problème majeur est que le produit final doit être gratuit (et open source), et donc qu'une implémentation payante d'un protocole est exclue.

    Le projet a donc commencé en utilisant SCP. Comme nous sommes contraints d'utiliser windows, la seule implémentation libre d'un serveur SSH est, à ma connaissance, opensshd. Malheureusement, ce dernier ne m'a pas rassuré quant à sa robustesse. En effet, il m'a été impossible d'arrêter ou de rédémarrer son processus après qu'il a planté. La seule solution ce jour là fut de redémarrer la machine complète.

    J'aurai préféré travailler sur cette machine avec Linux, car l'association des deux produits me semble plus fiable (il est vrai que je travaille majoritairement sur Linux ou MacOSX et donc que je suis rarement rassuré avec l'utilisation d'un OS Redmondien).

    La raison pour laquelle la machine d'archivage doit utiliser windows est une incapacité de realmedia à fournir un producteur de fichiers .rm qui fonctionne correctement avec des DivX en entrée sous Linux.

    Je cherche donc toute idée de protocole apte à remplir cette mission (je doute qu'un serveur HTTP tienne le coup, par exemple). Si je peux éviter de développer mon propre système, cela m'arrangerait bien évidemment.

  7. #7
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 119
    Points
    28 119
    Par défaut
    Si j'essaye de résumer ce que j'ai compris, j'obtiens ceci :

    Transfert de ficheirs de plusieurs Go.
    Transfert de 1 vers 1 à chaque fois, mais qui peut arriver plusieurs fois (pas entre les mêmes machines, nous sommes bien d'accord).
    Seul Protocol autorisé : SSH (que ce soit pour du sftp ou du scp), ou alors écriture d'un protocole maison.

    Seule implémentation de SSH trouvée sous Windows : OpenSSH, dans lequel tu n'as pas confiance.


    Si j'ai bien résumé, je vois pas bien pourquoi tu poses la question :
    Soit tu as le temps et la possibilité d'écrire ton protocole, soit pas.

    Je crains qu'il n'existe pas de solutions miracles à ton problème.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 24
    Points : 19
    Points
    19
    Par défaut
    je suis tout à fait d'accord... toutefois, je n'ai pas une connaissance vaste en matière de réseaux et protocoles (je suis ingénieur en informatique, pas en télécom, j'ai donc des connaissances dans d'autres domaines cibles), et je me demandais déjà s'il existait un protocole de transfert de fichier autre que ceux auxquels je pensais, ou s'il existait une autre implémentation de SSH qui marche à merveille sous windows...

    Notons qu'une dernière solution serait de passer cette machine sous linux, mais cela nécessiterait pas mal de changements au niveau de l'architecture.

    Un exemple de solution que je n'ai pas expérimenté, parce que je m'en méfie – peut-être à juste titre, peut-être pas – est le bête transfert par HTTP. Apache tiendrait-il la charge en transférant des fichiers de plusieurs Go? Peut-on demander par HTTP de ne lire qu'une partie d'un fichier (c'est possible par FTP)?

    En fait si je suis venu ici, c'est que j'ai une vague idée de ce qui peut marcher, mais que je n'ai aucune expérience dans le domaine, et que je suppose que bon nombre d'entre vous sont experts en la matiére

    Merci en tous cas de tous les éléments que vous m'avez déjà apporté!

  9. #9
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 119
    Points
    28 119
    Par défaut
    Re,

    Si on t'interdit FTP, alors oublies HTTP. A moins que tu ne te bases sur HTTPS, avec identification respective du client et du serveur.

    Pour ce qui est de la robustesse d'Apache, je n'en ai très honnètement aucun idée.

    Mais globalement, lorsqu'on détourne un produit (en l'occurence un protocole) de son utilisation première, il est rare d'obtenir des performances mirobolantes, ni même une quelité de service élevée...
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

Discussions similaires

  1. Solution pour transférer des gros fichiers par HTTP
    Par manu_71 dans le forum Général Conception Web
    Réponses: 3
    Dernier message: 29/07/2009, 12h02
  2. [XML][ENCRYPTION] encoder des gros fichiers avec AES_128
    Par marcsaker dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 29/09/2006, 09h18
  3. [FOP 0.92 beta] support des gros fichiers ?
    Par massambius dans le forum XML/XSL et SOAP
    Réponses: 8
    Dernier message: 07/08/2006, 15h43
  4. Upload par FTP avec des gros fichiers
    Par __fabrice dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 8
    Dernier message: 07/06/2006, 12h08
  5. Peut-on lire des gros fichiers(100k) avec "TClientSocke
    Par Fred LEM dans le forum C++Builder
    Réponses: 3
    Dernier message: 20/12/2004, 14h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo