Freitag, 25. April 2008

Links SSH und SFTP in C#

Wie im vorherigen schon erwähnt beschäftige ich mich gerade mit SFTP und SSH. Leider gibt es nicht viel an Vorlagen in C#, darum trage ich mal alles zusammen, was ich an interessantem gefunden habe.

Erstmal auf ein Phänomen das ich oft treffe, SFTP und FTPS werden brachial durcheinandergeschmissen. Daher kurz:
SFTP - ein Paketbasiertes Protokoll das auf SSH aufsetzt
FTPS - ein Komandobasiertes Protokoll das auf FTP aufsetzt und einen SSL verschlüsselten Kanal verwendet

Weitere Infos gibt es übersichtlich hier: http://winscp.net/eng/docs/protocols#protocol_comparison
und hier: http://searchsecurity.techtarget.com/expert/KnowledgebaseAnswer/0,289625,sid14_gci1232457,00.html

Daraus ergeben sich 2 Umstände:
1. FTPS ist schneller als SFTP
2. Die FTP Beispiel Implementierung von Mircosoft funktioniert nicht für SFTP (es ist ein anderes Basis Protokoll!)

FTP sendet Daten (auch Passwörter) unverschlüsselt durchs Web zum Server, darum kann man mit FTPS eine SSL Verbindung etablieren, die diesen Verkehr verschlüsselt. Unter Unix is SSH etabliert und hier muss ich auf einen SFTP Server zugreifen. Doch dummerweise ist gerade SSH in .NET nicht implementiert von Microsoft.

Schnell will ich die Liste der kommerziellen Produkte abhaken, dazu hab ich zwei interessante Links gefunden:
- http://www.trilead.com/Products/Trilead-SSH/ (scheint aus JAVAs Ganymed hervorgegangen zu sein)
- http://www.eldos.com/sbb/sftpcompare.php (wobei dieser Vergleich mit etwas Vorsicht zu geniessen ist da schließlich Eldos sein Produkt besonders pushen möchte, dennoch ein erster Überblick und Startpunkt)

Nun was gibt es auf der Open Source Seite? Da sieht es ein wenig arg düster aus irgendwie:
- Granados - Der japanische Hersteller Routrek bietet eine Open Source Implementierung von SSH unter der liberalen Apache License zur Verfügung: http://www.routrek.co.jp/en/product/varaterm/granados.html
- SharpSsh - Der israelische Entwickler Tamir Gal hat einen Port von Jsch programmiert und stellt dies unter der ebenfalls liberalen BSD License zur Verfügung: http://www.tamirgal.com/home/dev.aspx?Item=SharpSsh
Dazu hat er noch einen Beitrag auf Codeproject verfasst.
- SharpSsh bedient sich dabei der GPL freien Kryptographie Libraries von Mentalis: http://www.mentalis.org/soft/projects/crypto/

Eine Recherche via Googles Codesearch endete darin, dass alle von mir gefundenen Implementierungen auf Tamir Gals Port aufsetzen.

Keine Kommentare: