2010-04-15 10 views

Odpowiedz

5

Wystarczy za pomocą gniazd nie daje żadnych zabezpieczeń w ogóle. Właściwy wybór zależy od aplikacji, systemów, z których korzystasz i od tego, jak użytkownicy rozumieją, co powinni zrobić, aby z niego skorzystać. Na przykład, jeśli masz interakcję z serwerem internetowym w bezpieczny sposób, prawdopodobnie skończy się to używaniem TLS/SSL. Jeśli przesyłasz dane między dwoma systemami, używanie ssh może być najwygodniejszym sposobem.

Kiedy mówisz "bezpieczeństwo", czy szukasz szyfrowanych danych w sieci? Uwierzytelnianie komunikatorów? Obie?

Inną alternatywą jest używanie TLS/SSL, prawdopodobnie z zestawem narzędzi OpenSSL (i tam są moduły Perla z powiązaniami). Programowanie jest bardziej skomplikowane niż z ssh, i będziesz musiał wykonać więcej pracy nad uwierzytelnianiem dla to, więc wraca do tego, co próbujesz zrobić.

Również FTP nie jest bezpieczny sam.

+0

Mam na myśli zaszyfrowane dane w sieci. – Space

+2

@Octopus Nie ma szyfrowania danych za pomocą gniazd tcp/udp bezpośrednio (chyba że twoi gospodarze również używają np. IPSec lub dane są tunelowane przez jakiś zaszyfrowany kanał). – nos

2

Wszystkie programy sieciowe wykorzystują gniazda pod maską. Więc to raczej kwestia protokołów, których używasz.

Generalnie, jeśli chcesz być bezpieczny zalecana tunel komunikację za pomocą protokołu SSL (https, SFTP, FTPS)

1

SSH/SFTP/SCP - wszystkie używają gniazd pod programowaniem gniazd. Jeśli nie masz lepszego algorytmu (dla bezpieczeństwa), niż zapewnia to SSH, użyj modułu SSH dla Perla.

1

Gniazda z gniazdami nie są zabezpieczone. Dane są przesyłane w postaci nieprzetworzonej z punktu A do punktu B.

Dodanie SSL zwiększa bezpieczeństwo. Wiele protokołów obsługuje protokół SSL. W szczególności kilka smaków protokołu FTP i HTTP obsługuje SSL.

FTPS jest szeroko obsługiwany na wielu platformach i przez wielu klientów. Nawet jeśli piszesz niestandardowego klienta, posiadanie innych klientów, takich jak FileZilla pod ręką do testowania, jest miłe.

Gdybym miał zacząć od zera na takim systemie, użyłbym FTPS.

1

SSH to protokół zdalnej powłoki i sam w sobie nie jest używany do przesyłania plików (np. FTP). Protokół przesyłania plików SCP był częścią SSH1, ale ponieważ SSH1 jest przestarzały i wadliwy, SCP nie jest zalecany do użytku. W SSH2 (używany we wszystkich nowoczesnych systemach) używany jest protokół SFTP (SSH File Transfer Protocol).

Sam FTP (RFC 959) nie zapewnia żadnych zabezpieczeń. Istnieją rozszerzenia, które umożliwiają uruchamianie FTP przez SSL/TLS (albo niejawnie, na wstępnie zaszyfrowanym kanale, albo jawnie, przez TLS jako część protokołu FTP). FTP przez SSL nazywa się FTPS (nie mieszaj go z SFTP).

Możesz przeczytać detailed descriptions of pros and cons of FTPS and SFTP here.

+1

Nie wiem o twoich implementacjach, ale mój scp obsługuje protokół w wersji 2 i honoruje domyślną wersję protokołu wybraną przez serwer i/lub .ssh_config. Mój sftp obsługuje również wersję protokołu 1. Żadna nie jest powiązana z określoną wersją protokołu ssh. –

+0

Oznacza to, że aplikacje nie używają SCP ani SFTP jako części protokołu SSH, ale używają niestandardowego podsystemu SSH jako przezroczystego transportu dla swoich danych. Może to działać w pewnych szczególnych przypadkach (np. W niektórych systemach uniksowych), ale nie jest to zgodne ze standardami i nie będzie działać w innych środowiskach. Innymi słowy, jest to szczególny przypadek, który obserwujesz, a nie reguła. –

0

uważam trzy główne opcje:

  • FTPS (FTP over SSL/TLS) - to odpowiednik HTTPS, który w prostych słowach oznacza to zaszyfrowana wersja zwykłego protokołu FTP. Myślę, że świetnie nadaje się do pobierania przez Internet z odległych i prawdopodobnie publicznych maszyn. Oferuje doskonały mechanizm uwierzytelniania w postaci certyfikatów X.509. Występują problemy z zaporami ogniowymi, ponieważ używają one, tak jak FTP, dwóch połączeń. Jeśli Twoim celem jest uniemożliwienie oglądania tego, co pobierasz, jest to idealne rozwiązanie IMHO. Używam tego protokołu do uzyskiwania dostępu do komputerów, nad którymi nie sprawuję kontroli.

  • SFTP (SSH FTP) - to dobry protokół, może trochę lepszy od FTPS, ale moim zdaniem lepiej nadaje się do kontrolowanego środowiska. Będę używać tego protokołu, gdy chcę pobrać plik z mojego konta na jednym komputerze na drugi. Lub kiedy chcę przesłać nowy skrypt na serwer. To dla mnie zdalny odpowiednik mojego przejścia do komputera z napędem flash i zalogowaniem się na maszynie.

  • VPN - jeśli te maszyny są naprawione, że tak powiem - zawsze łączysz się z tymi samymi komputerami - rozważałbym użycie VPN do zapewnienia bezpieczeństwa. Transmisje są chronione przed osobami z zewnątrz, serwer zachowuje się jak w tej samej sieci i mogę używać dowolnego protokołu, jaki chcę.

Powiązane problemy