Protocolli SFTP è FTPS

Prélude

Solu una settimana fà, aghju scrittu un essai nantu à u tema indicatu in u titulu è era affruntatu cù u fattu chì, dicemu, ùn ci hè micca tanta infurmazione educativa in Internet. A maiò parte di fatti secchi è struzzioni di stallazione. Per quessa, aghju decisu di curregà un pocu u testu è pubblicà cum'è un articulu.

Cosa hè FTP

FTP (File Transfer Protocol) hè un protokollu per trasferimentu di fugliali nantu à una reta. Hè unu di i protokolli Ethernet basi. Apparsu in u 1971 è inizialmente hà travagliatu in e rete DARPA. Attualmente, cum'è HTTP, u trasferimentu di u schedariu hè basatu annantu à un mudellu custituitu da un inseme di protokolli TCP / IP (Protokollu di cuntrollu di trasmissione / Protocollo Internet). Definitu in RFC 959.

U protocolu definisce i seguenti:

  • Cumu serà realizatu u cuntrollu di errore?
  • Metudu di imballaggio di dati (se l'imballu hè adupratu)
  • Cumu l'apparechju di mandatu indica chì hà finitu un missaghju?
  • Cumu l'apparechju di ricezione indica chì hà ricevutu un missaghju?

A cumunicazione trà u cliente è u servitore

Fighjemu un ochju più vicinu à i prucessi chì si verificanu durante l'operazione FTP. A cunnessione hè inizializzata da l'interprete di protokollu di l'utilizatore. U scambiu hè cuntrullatu via un canale di cuntrollu in u standard TELNET. I cumandamenti FTP sò generati da l'interprete di protokollu di l'utilizatori è mandati à u servitore. I risposti di u servitore sò ancu mandati à l'utilizatori via u canali di cuntrollu. In generale, l'utilizatore hà a capacità di stabilisce u cuntattu cù l'interprete di protokollu di u servitore è per mezu altru ch'è l'interprete di l'utilizatore.

A funzione principale di FTP hè chì usa cunnessione duale. Unu di elli hè utilizatu per mandà cumandamenti à u servitore è si trova per automaticamente via u portu TCP 21, chì pò esse cambiatu. A cunnessione di cuntrollu esiste sempre chì u cliente cumunicà cù u servitore. U canali di cuntrollu deve esse apertu quandu u trasferimentu di dati trà e macchine. S'ellu hè chjusu, a trasmissione di dati si ferma. Attraversu u sicondu, trasferimentu di dati direttu accade. Si apre ogni volta chì un trasferimentu di file si trova trà u cliente è u servitore. Se parechji schedari sò trasferiti simultaneamente, ognunu apre u so propiu canali di trasmissione.

FTP pò operà in modu attivu o passiu, a scelta di quale determina cumu si stabilisce a cunnessione. In u modu attivu, u cliente crea una cunnessione di cuntrollu TCP cù u servitore è manda u so indirizzu IP è un numeru di portu arbitrariu di u cliente à u servitore, è dopu aspetta chì u servitore principia una cunnessione TCP cù questu indirizzu è u numeru di portu. In casu chì u cliente hè daretu à un firewall è ùn pò micca accettà una cunnessione TCP entrante, u modu passiu pò esse usatu. In questu modu, u cliente usa u flussu di cuntrollu per mandà un cumandamentu PASV à u servitore, è dopu riceve u so indirizzu IP è u numeru di portu da u servitore, chì u cliente poi usa per apre un flussu di dati da u so portu arbitrariu.

Hè pussibule chì i dati ponu esse trasferiti à una terza macchina. In questu casu, l'utilizatore urganizeghja un canale di cuntrollu cù dui servitori è urganizeghja un canali di dati diretti trà elli. I cumandamenti di cuntrollu passanu per l'utilizatori, è i dati passanu direttamente trà i servitori.

Quandu si trasmette dati nantu à una reta, quattru rapprisentazioni di dati ponu esse aduprate:

  • ASCII - utilizatu per u testu. I dati sò, se ne necessariu, cunvertiti da a rapprisintazioni di caratteri nantu à l'ospiti di mandatu à "ottu-bit ASCII" prima di a trasmissione, è (di novu, se ne necessariu) à a rapprisintazioni di caratteri nantu à l'ospiti di ricezione. In particulare, i caratteri newline sò cambiati. In u risultatu, stu modu ùn hè micca adattatu per i fugliali chì cuntenenu più di u testu chjaru.
  • Modu binariu - u dispositivu di mandatu manda ogni schedariu byte per byte, è u destinatariu guarda u flussu di byte dopu a ricivuta. U supportu per questu modu hè statu cunsigliatu per tutte l'implementazioni FTP.
  • EBCDIC - usatu per trasfiriri testu chjaru trà ospiti in codificazione EBCDIC. Altrimenti, stu modu hè simile à u modu ASCII.
  • Modu locale - permette à dui computers cù paràmetri identichi per mandà dati in u so propiu formatu senza cunvertisce in ASCII.

U trasferimentu di dati pò esse realizatu in qualsiasi di trè modi:

  • Modu Stream - i dati sò mandati cum'è un flussu cuntinuu, liberendu FTP da fà qualsiasi trasfurmazioni. Invece, tuttu u prucessu hè fattu da TCP. L'indicatore di a fine di u schedariu ùn hè micca necessariu eccettu per a separazione di dati in registri.
  • Modu di bloccu - FTP rompe i dati in parechji blocchi (bloccu di header, numeru di bytes, campu di dati) è poi li trasmette à TCP.
  • Modu di cumpressione - i dati sò cumpressi cù un unicu algoritmu (di solitu codificandu e lunghezze di corsa).

U servitore FTP hè un servitore chì furnisce a capacità di utilizà u Protocolu di Trasferimentu di File. Hà certe caratteristiche chì u distinguenu da i servitori web convenzionali:

  • L'autentificazione di l'utilizatori hè necessaria
  • Tutte e operazioni sò realizate in a sessione attuale
  • Capacità di fà diverse azzioni cù u sistema di fugliale
  • Un canale separatu hè utilizatu per ogni cunnessione

U cliente FTP hè un prugramma chì permette di cunnette à un servitore remotu via FTP è ancu fà l'azzioni necessarii nantu à ellu cù elementi di u sistema di fugliale. U cliente pò esse un navigatore, in a barra di l'indirizzu di quale duvete inserisce l'indirizzu, chì hè a strada per un repertoriu specificu o un schedariu nantu à u servitore remotu, in cunfurmità cù u diagramma generale di l'URL:

ftp://user:pass@address:port/directory/file

Tuttavia, utilizendu un navigatore web in questu cuntestu vi permetterà solu di vede o scaricate i schedari di interessu. Per utilizà tutte e vantaghji di FTP, duvete aduprà un software specializatu cum'è cliente.

L'autentificazione FTP usa un schema di nome d'utilizatore / password per dà accessu. U nome d'utilizatore hè mandatu à u servitore cù u cumandimu USER, è a password hè mandata cù u cumandimu PASS. Se l'infurmazione furnita da u cliente hè accettata da u servitore, u servitore mandarà un invitu à u cliente è a sessione principia. L'utilizatori ponu, se u servitore sustene sta funzione, accede senza furnisce credenziali, ma u servitore pò dà solu un accessu limitatu per tali sessioni.

L'ospite chì furnisce u serviziu FTP pò furnisce un accessu FTP anonimu. L'utilizatori sò generalmente login cù "anonimatu" (pò esse sensible à u casu in certi servitori FTP) cum'è u so nome d'utilizatore. Ancu se l'utilizatori sò generalmente dumandati à furnisce u so indirizzu email invece di una password, nisuna verificazione hè veramente realizata. Parechji ospiti FTP chì furnisce l'aghjurnamenti di u software supportanu l'accessu anonimu.

Schema di u protocolu

L'interazzione cliente-servitore durante una cunnessione FTP pò esse visualizata cusì:

Protocolli SFTP è FTPS

FTP sicuru

L'FTP ùn era micca urigginariamente destinatu à esse sicuru, postu chì era destinatu à cumunicazioni trà parechje installazioni militari è agenzie. Ma cù u sviluppu è a diffusione di l'Internet, u periculu di l'accessu micca autorizatu hà aumentatu parechje volte. Ci era bisognu di prutezzione di i servitori da parechji tipi di attacchi. In u maghju di u 1999, l'autori di RFC 2577 riassuntu i vulnerabili in a seguente lista di prublemi:

  • Attacchi nascosti (attacchi di rimbalzo)
  • Attacchi spoof
  • Attacchi di forza bruta
  • Cattura di pacchetti, sniffing
  • A robba di portu

FTP regulare ùn hà micca a capacità di trasfiriri dati in forma criptata, per via di quale i nomi d'utilizatori, password, cumandamenti è altre informazioni ponu esse facilmente è facilmente interceptati da l'attaccanti. A suluzione abituale à stu prublema hè di utilizà versioni "sicure", protette da TLS di u protocolu vulnerabile (FTPS) o un altru protokollu più sicuru, cum'è SFTP / SCP, furnitu cù a maiò parte di l'implementazione di u protocolu Secure Shell.

FTPS

FTPS (FTP + SSL) hè una estensione di u protocolu di trasferimentu di file standard chì aghjunghje à a so funziunalità basica a creazione di sessioni criptate cù u protocolu SSL (Secure Sockets Layer). Oghje, a prutezzione hè furnita da u so TLS analogicu più avanzatu (Transport Layer Security).

SSL

U protocolu SSL hè statu prupostu da Netscape Communications in u 1996 per assicurà a sicurità è a privacy di e cunnessione Internet. U protocolu supporta l'autentificazione di u cliente è di u servitore, hè indipendente da l'applicazione, è hè trasparente à i protokolli HTTP, FTP è Telnet.

U protocolu SSL Handshake hè custituitu di duie fasi: l'autentificazione di u servitore è l'autentificazione di u cliente opzionale. In u primu stadiu, u servitore risponde à a dumanda di u cliente mandendu u so certificatu è i parametri di criptografia. U cliente poi genera una chjave maestra, a cripta cù a chjave publica di u servitore, è a manda à u servitore. U servitore decripta a chjave maestra cù a so chjave privata è s'autentifica à u cliente rinviendu un missaghju autentificatu da a chjave maestra di u cliente.

I dati successivi sò criptati è autenticati cù e chjave derivate da sta chjave maestra. In u sicondu passu, chì hè facultativu, u servitore manda una dumanda à u cliente, è u cliente s'autentifica à u servitore rinviendu a dumanda cù a so propria firma digitale è un certificatu di chjave publica.

SSL supporta una varietà di algoritmi criptografici. Durante u stabilimentu di a cumunicazione, u sistema di criptu di chjave publica RSA hè utilizatu. Dopu à u scambiu di chjave, sò usati assai cifri diffirenti: RC2, RC4, IDEA, DES è TripleDES. MD5 hè ancu utilizatu - un algoritmu per creà un digest di missaghju. A sintassi per i certificati di chjave publica hè descritta in X.509.

Unu di i vantaghji impurtanti di SSL hè a so indipendenza cumpleta di a piattaforma software. U protokollu hè sviluppatu nantu à i principii di portabilità, è l'ideulugia di a so custruzzione ùn dipende micca di l'applicazioni in quale hè utilizatu. Inoltre, hè ancu impurtante chì l'altri protokolli ponu esse superposti in modu trasparente nantu à u protocolu SSL; sia per aumentà più u gradu di prutezzione di i flussi d'infurmazioni di destinazione, o per adattà e capacità criptografiche di SSL per qualchì altru compitu ben definitu.

cunnessione SSL

Protocolli SFTP è FTPS

U canali sicuru furnitu da SSL hà trè proprietà principali:

  • U canali hè privatu. A criptografia hè aduprata per tutti i missaghji dopu un dialogu simplice chì serve per determinà a chjave secreta.
  • U canali hè autenticatu. U latu di u servitore di a cunversazione hè sempre autentificata, mentre chì u latu di u cliente hè autentificatu opzionalmente.
  • U canali hè affidabile. U trasportu di u messagiu include u cuntrollu di integrità (utilizandu u MAC).

Caratteristiche di FTPS

Ci hè dui implementazioni di FTPS, utilizendu diversi metudi di furnisce a sicurità:

  • U metudu implicitu implica l'usu di u protocolu SSL standard per stabilisce una sessione prima di mandà dati, chì, à u turnu, rompe a cumpatibilità cù i clienti è i servitori FTP regulari. Per a cumpatibilità inversa cù i clienti chì ùn supportanu micca FTPS, u portu TCP 990 hè utilizatu per a cunnessione di cuntrollu è 989 hè utilizatu per u trasferimentu di dati. Stu metudu hè cunsideratu obsolet.
  • L'esplicito hè assai più convenientu, postu chì usa cumandamenti FTP standard, ma cripta i dati quandu risponde, chì vi permette di utilizà a stessa cunnessione di cuntrollu per FTP è FTPS. U cliente deve esse dumandate esplicitamente u trasferimentu di dati sicuru da u servitore, è dopu appruvà u metudu di criptografia. Se u cliente ùn dumanda micca un trasferimentu sicuru, u servitore FTPS hà u dirittu di mantene o chjude a cunnessione micca sicura. Un mecanismu di negoziazione di autentificazione è di sicurezza di dati hè statu aghjuntu sottu RFC 2228 chì include u novu cumandamentu FTP AUTH. Ancu s'ellu ùn definisce micca esplicitamente i meccanismi di sicurezza, ùn specifica chì una cunnessione sicura deve esse iniziata da u cliente utilizendu l'algoritmu descrittu sopra. Se e cunnessione sicure ùn sò micca supportate da u servitore, un codice d'errore di 504 deve esse tornatu i clienti FTPS ponu uttene infurmazioni nantu à i protokolli di sicurezza supportati da u servitore utilizendu u cumandamentu FEAT, però, u servitore ùn hè micca necessariu di divulgà i livelli di sicurezza. sustegnu. I cumandamenti FTPS più cumuni sò AUTH TLS è AUTH SSL, chì furnisce a sicurezza TLS è SSL, rispettivamente.

SFTP

SFTP (Secure File Transfer Protocol) hè un protokollu di trasferimentu di file di strata di l'applicazione chì corre nantu à un canale sicuru. Ùn deve esse cunfusu cù (Simple File Transfer Protocol), chì hà a stessa abbreviazione. Se FTPS hè solu una estensione di FTP, allora SFTP hè un protokollu separatu è senza relazione chì usa SSH (Secure Shell) cum'è a so basa.

Secure shell

U protocolu hè statu sviluppatu da unu di i gruppi IETF chjamatu Secsh. A documentazione di travagliu per u novu protocolu SFTP ùn hè micca diventatu un standard ufficiale, ma hà cuminciatu à esse attivamente utilizatu per u sviluppu di l'applicazioni. In seguitu, sei versioni di u protocolu sò state liberate. In ogni casu, l'aumentu graduali di funziunalità in questu hà purtatu à u fattu chì u 14 d'aostu di u 2006, hè statu decisu di piantà di travaglià nantu à u sviluppu di u protokollu per via di a fine di u compitu principale di u prugettu (sviluppu di SSH) mancanza di livellu espertu abbastanza per passà à u sviluppu di un protokollu di sistema di file remoti cumpletu.

SSH hè un protokollu di rete chì permette u cuntrollu remota di u sistema operatore è u tunneling di e cunnessione TCP (per esempiu, per u trasferimentu di file). Simile in funziunalità à i protokolli Telnet è rlogin, ma, à u cuntrariu di elli, cripta tuttu u trafficu, cumprese i password trasmessi. SSH permette una scelta di diversi algoritmi di criptografia. I clienti SSH è i servitori SSH sò dispunibuli per a maiò parte di i sistemi operativi di rete.

SSH permette di trasferisce in modu sicuru quasi ogni altru protokollu di rete in un ambiente micca assicuratu. Cusì, ùn pudete micca solu travaglià remotamente in u vostru urdinatore attraversu u cumandamentu di cumanda, ma ancu trasmette un flussu audio o video (per esempiu, da una webcam) nantu à un canale criptatu. SSH pò ancu aduprà a compressione di dati trasmessi per a criptografia sussegwente, chì hè cunvene, per esempiu, per lancià remotamente i clienti X WindowSystem.

A prima versione di u protocolu, SSH-1, hè stata sviluppata in u 1995 da u ricercatore Tatu Ulönen da l'Università di Tecnulugia di Helsinki (Finlandia). SSH-1 hè statu scrittu per furnisce più privacy chì i protokolli rlogin, telnet è rsh. In u 1996, una versione più sicura di u protocolu, SSH-2, hè stata sviluppata, chì hè incompatibile cù SSH-1. U protokollu hà guadagnatu ancu più popularità, è in u 2000 hà avutu circa dui milioni d'utilizatori. Attualmente, u terminu "SSH" generalmente significa SSH-2, perchè A prima versione di u protokollu hè avà praticamente micca utilizatu per via di difetti significativi. In u 2006, u protocolu hè statu appruvatu da u gruppu di travagliu IETF cum'è standard Internet.

Ci hè duie implementazioni cumuni di SSH: cummerciale privatu è open source gratuitu. L'implementazione libera hè chjamata OpenSSH. In u 2006, 80% di l'urdinatori in Internet anu utilizatu OpenSSH. L'implementazione proprietaria hè sviluppata da SSH Communications Security, una filiale interamente di proprietà di Tectia Corporation, è hè gratuita per un usu micca cummerciale. Queste implementazioni cuntenenu quasi u listessu settore di cumandamenti.

U protokollu SSH-2, à u cuntrariu di u protokollu telnet, hè resistente à l'attacchi di u trafficu di u trafficu ("sniffing"), ma ùn hè micca resistente à l'attacchi man-in-the-middle. U protokollu SSH-2 hè ancu resistente à l'attacchi di session hijacking, postu chì hè impussibile di unisce o di dirotta una sessione digià stabilita.

Per prevene l'attacchi di l'omu in u mediu quandu si cunnetta à un òspite chì a chjave ùn hè ancu cunnisciuta da u cliente, u software di u cliente mostra à l'utilizatore una "impronta chjave". Hè ricumandemu di verificà currettamente a "snapshot key" mostrata da u software di u cliente cù l'snapshot di chjave di u servitore, preferibile ottenuta per canali di cumunicazione affidabili o in persona.

U supportu SSH hè dispunibule nantu à tutti i sistemi UNIX-like, è a maiò parte anu un cliente è servitore ssh cum'è utilità standard. Ci hè parechje implementazioni di i clienti SSH per i SO non-UNIX. U protokollu hà guadagnatu una grande popularità dopu à u sviluppu generalizatu di l'analizzatori di trafficu è i metudi per disrupting u funziunamentu di e rete lucali, cum'è una soluzione alternativa à u protocolu Telnet insecure per a gestione di nodi impurtanti.

A cumunicazione cù SSH

Per travaglià via SSH, avete bisognu di un servitore SSH è un cliente SSH. U servitore ascolta e cunnessione da e macchine cliente è, quandu una cunnessione hè stabilita, eseguisce l'autentificazione, dopu chì principia à serve u cliente. U cliente hè utilizatu per accede à una macchina remota è eseguisce cumandamenti.

Protocolli SFTP è FTPS

Comparazione cù FTPS

A cosa principal chì distingue SFTP da FTP standard è FTPS hè chì SFTP codifica assolutamente tutti i cumandamenti, nomi d'utilizatore, password è altre informazioni cunfidenziale.

I protokolli FTPS è SFTP utilizanu una cumminazione di algoritmi asimmetrici (RSA, DSA), algoritmi simmetrici (DES/3DES, AES, Twhofish, etc.), è ancu un algoritmu di scambiu chjave. Per l'autentificazione, FTPS (o per esse più precisu, SSL / TLS over FTP) usa certificati X.509, mentri SFTP (protokollu SSH) usa chjavi SSH.

I certificati X.509 includenu una chjave publica è qualchì infurmazione nantu à u certificatu di u pruprietariu. Sta infurmazione permette, invece, di verificà l'integrità di u certificatu stessu, l'autenticità è u pruprietariu di u certificatu. I certificati X.509 anu una chjave privata currispundente, chì generalmente hè almacenata separatamente da u certificatu per ragioni di sicurezza.

A chjave SSH cuntene solu a chjave publica (a chjave privata currispundente hè guardata separatamente). Ùn cuntene micca infurmazione nantu à u pruprietariu di a chjave. Certi implementazioni SSH utilizanu certificati X.509 per l'autentificazione, ma ùn verificanu micca a catena di certificati entera - solu a chjave publica hè aduprata (chì rende tale autentificazione incompleta).

cunchiusioni

U protocolu FTP, senza dubbitu, ghjoca sempre un rolu impurtante in l'almacenamiento è a distribuzione di l'infurmazioni nantu à a reta malgradu a so età venerable. Hè un protokollu convenientu, multifunzionale è standardizatu. Molti archivi d'archivi sò stati custruiti nantu à a so basa, senza quale u travagliu tecnicu ùn saria micca cusì efficace. Inoltre, hè faciule d'installà, è i prugrammi di u servitore è di u cliente esistenu per quasi tutte e plataforme attuali è micca cusì attuali.

In turnu, i so versioni prutetti risolve u prublema di cunfidenziale di dati almacenati è trasmessi in u mondu mudernu. I dui protokolli novi anu i so pro è i contra è serve un rolu ligeramente sfarente. In quelli spazii induve un archiviu di fugliale hè necessariu, hè preferibile aduprà FTPS, soprattuttu se FTP classicu hè digià statu usatu prima. SFTP hè menu cumuni per a so incompatibilità cù u vechju protocolu, ma hè più sicuru è hà più funziunalità, postu chì hè parti di u sistema di gestione remota.

Lista di fonti

Source: www.habr.com

Add a comment