web-dev-qa-db-fra.com

Différence entre SSH et SSL, en particulier en termes de "SFTP" par rapport à "FTP sur SSL"

Mis à part les options d'authentification améliorées offertes par SSH, y a-t-il une différence entre le fonctionnement de base des protocoles SSH et SSL?

Je demande car nous pouvons utiliser SFTP ou FTP sur SSL, les deux nécessiteraient une authentification.

41
np-hard

SSH et SSL sont des protocoles similaires qui utilisent tous deux la plupart des mêmes primitives cryptographiques sous le capot, ils sont donc tous les deux aussi sûrs l'un que l'autre. Un avantage de SSH est que l'utilisation de l'authentification par paire de clés est en fait assez facile à faire et intégrée directement dans le protocole.

Avec SSL, c'est un peu un gâchis impliquant des certificats CA et d'autres choses. Une fois la PKI en place, vous devez également configurer vos services pour utiliser la PKI pour l'authentification au lieu de sa base de données de mots de passe interne; c'est un cauchemar pour certains services et un morceau de gâteau pour d'autres. Cela signifie également que vous devez vous tracasser pour signer toutes les clés de vos utilisateurs afin qu'ils puissent se connecter avec eux.

La plupart des utilisateurs compétents peuvent grogner des clés SSH en un rien de temps, mais il faut un peu plus de temps pour se familiariser avec les clés SSL (les certificats CA et les certificats de clés supplémentaires m'ont confondu lorsque je l'ai découvert pour la première fois).

Choisissez ce qui est supportable. SSH + SFTP est idéal pour les personnes Unix, mais FTP sur SSL est probablement plus facile à faire si vos utilisateurs sont basés sur Windows et ne savent pas quoi que ce soit d'autre qu'Internet Exploiter (et cela ne vous dérange pas de risquer que vos utilisateurs choisissent des mots de passe non sécurisés ).

19
Adam Hawes

Quelle est la différence entre SSH et SSL et pourquoi nous en soucierions-nous?

SSL signifie "Secure Sockets Layer" . Nous nous soucions car il permet aux navigateurs de transmettre des données vers et depuis un serveur Web de manière cryptographique sécurisée pour rendre la vie difficile aux espions tiers surveillant tout le trafic Internet.

SSH signifie "Secure Shell". Nous nous soucions car il permet à un ordinateur en réseau 1 de fournir un accès à un shell sur un ordinateur en réseau 2. L'utilisateur peut avoir un niveau de confiance que les espions écoutant le canal non sécurisé ne peuvent pas décrypter les données envoyées entre les ordinateurs en réseau.

SSL et SSH ont tous deux à voir avec la fourniture d'un système pour crypter et décrypter les données sur un canal non sécurisé.

Lorsqu'un navigateur visite une URL qui commence par "https: //", le navigateur parle HTTP via une connexion SSL.

Les serveurs Web compatibles SSL (par exemple Apache HTTP Server ) peuvent être configurés pour utiliser SSL pour devenir un "serveur Web sécurisé". Un site Web géré par un serveur Web sécurisé obligera les utilisateurs à accéder à l'URL via le protocole "https: //" au lieu de "http: //". Avec le protocole https, les utilisateurs peuvent avoir un niveau de confiance que les espions tiers surveillant le canal Internet ne recevront que du contenu crypté.

SSL est un protocole qui pourrait être implémenté dans la 6ème couche (couche Présentation) du modèle OSI .

SSH a son propre protocole de transport indépendant de SSL, ce qui signifie que SSH N'utilise PAS SSL sous le capot.

Cryptographiquement, Secure Shell et Secure sockets Layer sont tous deux également sécurisés.

Un proxy de terminaison SSL peut gérer les connexions SSL entrantes, déchiffrer le SSL et transmettre la demande non chiffrée à d'autres serveurs.

SSL vous permet d'utiliser un PKI (infrastructure à clé publique) via des certificats signés. Avec SSH, vous devez échanger manuellement les empreintes digitales clés via un autre protocole tel que ftp ou pigeon voyageur.

47
Eric Leschinski

La principale différence est que SSL vous permet d'utiliser une PKI (via des certificats signés). Dans SSH, vous devez échanger les empreintes digitales clés hors bande. Mais vous voudrez peut-être vous passer de PKI de toute façon, auquel cas c'est une égalité.

Pour une explication intéressante, voir http://www.snailbook.com/faq/ssl.auto.html

26
sleske

Cryptographiquement, ils sont tous deux également sécurisés (étant donné que les mêmes chiffres sont utilisés). A part ça, ce sont des protocoles entièrement différents ...

20
Serguei

Tout d'abord, l'authentification du serveur TLS est facultative car son protocole prend en charge l'authentification du serveur entièrement anonyme. En SSH, cela est obligatoire.

TLS utilise des certificats X.509 pour l'authentification des clients et des serveurs, ce qui nécessiterait une sorte de PKI. SSH n'évolue pas à ce stade mais propose une gamme plus large de méthodes d'authentification: mot de passe, clé publique, etc.

Une autre différence est que SSH autorise plusieurs connexions et prend en charge l'exécution de programmes à distance, la gestion des terminaux, le tunneling TCP et ainsi de suite).

5
FrankH