Protocols SFTP i FTPS

Prefaci

Fa només una setmana que estava escrivint un assaig sobre el tema indicat al títol i em vaig trobar davant del fet que, diguem-ne, no hi ha tanta informació educativa a Internet. Principalment fets secs i instruccions de configuració. Per tant, vaig decidir corregir lleugerament el text i publicar-lo com a article.

Què és FTP

FTP (File Transfer Protocol) és un protocol per transferir fitxers a través d'una xarxa. És un dels protocols bàsics d'Ethernet. Va aparèixer el 1971 i va treballar inicialment a les xarxes DARPA. Actualment, com HTTP, la transferència de fitxers es basa en un model que consisteix en un conjunt de protocols TCP/IP (Protocol de control de transmissió/Protocol d'Internet). Definit a RFC 959.

El protocol defineix el següent:

  • Com es realitzarà la comprovació d'errors?
  • Mètode d'embalatge de dades (si s'utilitza l'embalatge)
  • Com indica el dispositiu que envia que ha acabat un missatge?
  • Com indica el dispositiu receptor que ha rebut un missatge?

Comunicació entre client i servidor

Fem una ullada més de prop als processos que es produeixen durant l'operació FTP. La connexió és inicialitzada per l'intèrpret de protocol de l'usuari. L'intercanvi es controla mitjançant un canal de control de l'estàndard TELNET. Les ordres FTP són generades per l'intèrpret de protocols de l'usuari i enviades al servidor. Les respostes del servidor també s'envien a l'usuari a través del canal de control. En general, l'usuari té la possibilitat d'establir contacte amb l'intèrpret de protocol del servidor i per mitjans diferents de l'intèrpret de l'usuari.

La característica principal d'FTP és que utilitza connexions duals. Un d'ells s'utilitza per enviar ordres al servidor i es produeix per defecte mitjançant el port TCP 21, que es pot canviar. La connexió de control existeix mentre el client es comuniqui amb el servidor. El canal de control ha d'estar obert quan es transfereixen dades entre màquines. Si està tancat, la transmissió de dades s'atura. A través del segon, es produeix la transferència directa de dades. S'obre cada vegada que es produeix una transferència de fitxers entre el client i el servidor. Si es transfereixen diversos fitxers simultàniament, cadascun d'ells obre el seu propi canal de transmissió.

FTP pot funcionar en mode actiu o passiu, l'elecció del qual determina com s'estableix la connexió. En mode actiu, el client crea una connexió de control TCP amb el servidor i envia la seva adreça IP i un número de port de client arbitrari al servidor, i després espera que el servidor iniciï una connexió TCP amb aquesta adreça i número de port. En cas que el client estigui darrere d'un tallafoc i no pugui acceptar una connexió TCP entrant, es pot utilitzar el mode passiu. En aquest mode, el client utilitza el flux de control per enviar una ordre PASV al servidor i després rep del servidor la seva adreça IP i el seu número de port, que el client utilitza per obrir un flux de dades des del seu port arbitrari.

És possible que les dades es transfereixin a una tercera màquina. En aquest cas, l'usuari organitza un canal de control amb dos servidors i organitza un canal de dades directe entre ells. Les ordres de control passen per l'usuari i les dades passen directament entre els servidors.

Quan es transmeten dades a través d'una xarxa, es poden utilitzar quatre representacions de dades:

  • ASCII: s'utilitza per al text. Les dades es converteixen, si cal, de la representació de caràcters a l'amfitrió enviador a "ASCII de vuit bits" abans de la transmissió i (de nou, si cal) a la representació de caràcters a l'amfitrió receptor. En particular, es canvien els caràcters de nova línia. Com a resultat, aquest mode no és adequat per a fitxers que contenen més que un text senzill.
  • Mode binari: el dispositiu enviador envia cada fitxer byte per byte i el destinatari emmagatzema el flux de bytes en rebre'l. S'ha recomanat suport per a aquest mode per a totes les implementacions FTP.
  • EBCDIC: s'utilitza per transferir text sense format entre hosts en la codificació EBCDIC. En cas contrari, aquest mode és similar al mode ASCII.
  • Mode local: permet que dos ordinadors amb configuracions idèntiques enviïn dades en el seu propi format sense convertir-los a ASCII.

La transferència de dades es pot dur a terme en qualsevol de les tres maneres:

  • Mode de flux: les dades s'envien com un flux continu, alliberant FTP de qualsevol processament. En canvi, tot el processament el fa TCP. L'indicador de final de fitxer no és necessari excepte per separar les dades en registres.
  • Mode de bloc: FTP divideix les dades en diversos blocs (bloc de capçalera, nombre de bytes, camp de dades) i després les transmet a TCP.
  • Mode de compressió: les dades es comprimeixen mitjançant un únic algorisme (normalment mitjançant la codificació de longituds d'execució).

El servidor FTP és un servidor que ofereix la possibilitat d'utilitzar el protocol de transferència de fitxers. Té certes característiques que el distingeixen dels servidors web convencionals:

  • Es requereix autenticació d'usuari
  • Totes les operacions es realitzen dins de la sessió actual
  • Capacitat de realitzar diverses accions amb el sistema de fitxers
  • S'utilitza un canal independent per a cada connexió

El client FTP és un programa que us permet connectar-vos a un servidor remot mitjançant FTP i també realitzar-hi les accions necessàries amb elements del sistema de fitxers. El client pot ser un navegador, a la barra d'adreces del qual hauríeu d'introduir l'adreça, que és la ruta a un directori o fitxer específic del servidor remot, d'acord amb el diagrama de blocs d'URL general:

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

Tanmateix, utilitzar un navegador web en aquest context només us permetrà visualitzar o descarregar els fitxers d'interès. Per aprofitar al màxim tots els avantatges de l'FTP, hauríeu d'utilitzar programari especialitzat com a client.

L'autenticació FTP utilitza un esquema de nom d'usuari/contrasenya per concedir accés. El nom d'usuari s'envia al servidor amb l'ordre USER i la contrasenya amb l'ordre PASS. Si la informació proporcionada pel client és acceptada pel servidor, llavors el servidor enviarà una invitació al client i comença la sessió. Els usuaris poden, si el servidor admet aquesta funció, iniciar sessió sense proporcionar credencials, però el servidor només pot concedir un accés limitat per a aquestes sessions.

L'amfitrió que proporciona el servei FTP pot proporcionar accés FTP anònim. Els usuaris solen iniciar sessió amb "anònim" (pot ser que distingeix entre majúscules i minúscules en alguns servidors FTP) com a nom d'usuari. Tot i que normalment se'ls demana als usuaris que proporcionin la seva adreça de correu electrònic en lloc d'una contrasenya, en realitat no es realitza cap verificació. Molts amfitrions FTP que proporcionen actualitzacions de programari admeten l'accés anònim.

Diagrama de protocol

La interacció client-servidor durant una connexió FTP es pot visualitzar de la següent manera:

Protocols SFTP i FTPS

FTP segur

L'FTP no estava pensat originalment per ser segur, ja que estava pensat per a comunicacions entre múltiples instal·lacions i agències militars. Però amb el desenvolupament i la difusió d'Internet, el perill d'accés no autoritzat ha augmentat moltes vegades. Hi havia una necessitat de protegir els servidors de diversos tipus d'atacs. El maig de 1999, els autors de la RFC 2577 van resumir les vulnerabilitats en la següent llista de problemes:

  • Atacs ocults (atacs de rebot)
  • Atacs de parodia
  • Atacs de força bruta
  • Captura de paquets, olor
  • Robatori de port

L'FTP normal no té la capacitat de transferir dades en forma xifrada, com a resultat de la qual cosa els atacants poden interceptar els noms d'usuari, les contrasenyes, les ordres i altra informació fàcilment i fàcilment. La solució habitual a aquest problema és utilitzar versions "segures" protegides per TLS del protocol vulnerable (FTPS) o un altre protocol més segur, com SFTP/SCP, proporcionat amb la majoria de les implementacions del protocol Secure Shell.

FTPS

FTPS (FTP + SSL) és una extensió del protocol estàndard de transferència de fitxers que afegeix a la seva funcionalitat bàsica la creació de sessions xifrades mitjançant el protocol SSL (Secure Sockets Layer). Avui dia, la protecció la proporciona el seu TLS analògic més avançat (Transport Layer Security).

SSL

El protocol SSL va ser proposat per Netscape Communications l'any 1996 per garantir la seguretat i la privadesa de les connexions a Internet. El protocol admet l'autenticació de client i servidor, és independent de l'aplicació i és transparent als protocols HTTP, FTP i Telnet.

El protocol SSL Handshake consta de dues etapes: autenticació del servidor i autenticació de client opcional. En la primera etapa, el servidor respon a la sol·licitud del client enviant el seu certificat i els paràmetres de xifratge. Aleshores, el client genera una clau mestra, la xifra amb la clau pública del servidor i l'envia al servidor. El servidor desxifra la clau mestra amb la seva clau privada i s'autentica davant el client retornant un missatge autenticat per la clau mestra del client.

Les dades posteriors s'encripten i s'autentiquen amb claus derivades d'aquesta clau mestra. En el segon pas, que és opcional, el servidor envia una sol·licitud al client, i el client s'autentica al servidor retornant la sol·licitud amb la seva pròpia signatura digital i un certificat de clau pública.

SSL admet una varietat d'algoritmes criptogràfics. Durant l'establiment de la comunicació, s'utilitza el sistema criptogràfic de clau pública RSA. Després de l'intercanvi de claus, s'utilitzen molts xifratges diferents: RC2, RC4, IDEA, DES i TripleDES. També s'utilitza MD5, un algorisme per crear un resum de missatges. La sintaxi dels certificats de clau pública es descriu a X.509.

Un dels avantatges importants de SSL és la seva total independència de la plataforma de programari. El protocol es desenvolupa sobre els principis de la portabilitat, i la ideologia de la seva construcció no depèn de les aplicacions en què s'utilitzi. A més, també és important que altres protocols es puguin superposar de manera transparent al protocol SSL; ja sigui per augmentar encara més el grau de protecció dels fluxos d'informació objectiu, o per adaptar les capacitats criptogràfiques de SSL per a alguna altra tasca ben definida.

Connexió SSL

Protocols SFTP i FTPS

El canal segur proporcionat per SSL té tres propietats principals:

  • El canal és privat. El xifratge s'utilitza per a tots els missatges després d'un diàleg senzill que serveix per determinar la clau secreta.
  • El canal està autenticat. El costat del servidor de la conversa sempre s'autentica, mentre que el costat del client s'autentica opcionalment.
  • El canal és fiable. El transport de missatges inclou la comprovació d'integritat (utilitzant el MAC).

Característiques de FTPS

Hi ha dues implementacions d'FTPS, que utilitzen diferents mètodes per proporcionar seguretat:

  • El mètode implícit consisteix a utilitzar el protocol SSL estàndard per establir una sessió abans d'enviar dades, cosa que, al seu torn, trenca la compatibilitat amb els clients i servidors FTP habituals. Per a la compatibilitat amb clients que no admeten FTPS, s'utilitza el port TCP 990 per a la connexió de control i s'utilitza el 989 per a la transferència de dades. Això conserva el port estàndard 21 per al protocol FTP. Aquest mètode es considera obsolet.
  • L'explícit és molt més convenient, ja que utilitza ordres FTP estàndard, però xifra les dades quan respon, la qual cosa us permet utilitzar la mateixa connexió de control tant per a FTP com per a FTPS. El client ha de sol·licitar explícitament la transferència de dades segura des del servidor i després aprovar el mètode de xifratge. Si el client no demana una transferència segura, el servidor FTPS té dret a mantenir o tancar la connexió no segura. S'ha afegit un mecanisme d'autenticació i negociació de seguretat de dades sota RFC 2228 que inclou la nova comanda FTP AUTH. Tot i que aquest estàndard no defineix de manera explícita els mecanismes de seguretat, sí que especifica que el client ha d'iniciar una connexió segura mitjançant l'algorisme descrit anteriorment. Si el servidor no admet connexions segures, s'ha de retornar un codi d'error de 504. Els clients FTPS poden obtenir informació sobre els protocols de seguretat admesos pel servidor mitjançant l'ordre FEAT, però, el servidor no està obligat a revelar quins nivells de seguretat té. suports. Les ordres FTPS més habituals són AUTH TLS i AUTH SSL, que proporcionen seguretat TLS i SSL, respectivament.

SFTP

SFTP (Secure File Transfer Protocol) és un protocol de transferència de fitxers de capa d'aplicació que s'executa sobre un canal segur. No s'ha de confondre amb (Simple File Transfer Protocol), que té la mateixa abreviatura. Si FTPS és simplement una extensió d'FTP, aleshores SFTP és un protocol independent i no relacionat que utilitza SSH (Secure Shell) com a base.

Secure Shell

El protocol va ser desenvolupat per un dels grups de l'IETF anomenat Secsh. La documentació de treball del nou protocol SFTP no es va convertir en un estàndard oficial, sinó que es va començar a utilitzar activament per al desenvolupament d'aplicacions. Posteriorment, es van publicar sis versions del protocol. No obstant això, l'augment gradual de la funcionalitat en ell va provocar que el 14 d'agost de 2006 es va decidir deixar de treballar en el desenvolupament del protocol a causa de la finalització de la tasca principal del projecte (desenvolupament SSH) i la manca de d'un nivell d'expert suficient per passar al desenvolupament d'un protocol de sistema de fitxers remot complet.

SSH és un protocol de xarxa que permet el control remot del sistema operatiu i el túnel de connexions TCP (per exemple, per a la transferència de fitxers). Funcionalitat semblant als protocols Telnet i rlogin, però, a diferència d'ells, xifra tot el trànsit, incloses les contrasenyes transmeses. SSH permet triar entre diferents algorismes de xifratge. Els clients SSH i els servidors SSH estan disponibles per a la majoria de sistemes operatius de xarxa.

SSH us permet transferir de manera segura gairebé qualsevol altre protocol de xarxa en un entorn no segur. Així, no només podeu treballar de forma remota a l'ordinador mitjançant l'intèrpret d'ordres, sinó que també podeu transmetre un flux d'àudio o vídeo (per exemple, des d'una càmera web) a través d'un canal xifrat. SSH també pot utilitzar la compressió de les dades transmeses per al xifratge posterior, cosa que és convenient, per exemple, per llançar de manera remota els clients X WindowSystem.

La primera versió del protocol, SSH-1, va ser desenvolupada l'any 1995 per l'investigador Tatu Ulönen de la Universitat Tecnològica d'Hèlsinki (Finlàndia). SSH-1 es va escriure per proporcionar una privadesa més gran que els protocols rlogin, telnet i rsh. El 1996 es va desenvolupar una versió més segura del protocol, SSH-2, que és incompatible amb SSH-1. El protocol va guanyar encara més popularitat i l'any 2000 ja tenia aproximadament dos milions d'usuaris. Actualment, el terme "SSH" sol significar SSH-2, perquè La primera versió del protocol ara pràcticament no s'utilitza a causa de mancances importants. L'any 2006, el grup de treball de l'IETF va aprovar el protocol com a estàndard d'Internet.

Hi ha dues implementacions comunes de SSH: comercial privada i codi obert gratuït. La implementació gratuïta s'anomena OpenSSH. L'any 2006, el 80% dels ordinadors d'Internet utilitzaven OpenSSH. La implementació patentada la desenvolupa SSH Communications Security, una filial de propietat total de Tectia Corporation, i és gratuïta per a ús no comercial. Aquestes implementacions contenen gairebé el mateix conjunt d'ordres.

El protocol SSH-2, a diferència del protocol telnet, és resistent als atacs d'escoltes de trànsit ("sniffing"), però no és resistent als atacs de l'home del mig. El protocol SSH-2 també és resistent als atacs de segrest de sessions, ja que és impossible unir-se o segrestar una sessió ja establerta.

Per evitar atacs de l'home del mig quan es connecta a un amfitrió la clau del qual encara no és coneguda pel client, el programari del client mostra a l'usuari una "empremta digital clau". Es recomana comprovar acuradament la "instantània de la clau" que mostra el programari client amb la instantània de la clau del servidor, preferiblement obtinguda a través de canals de comunicació fiables o en persona.

El suport SSH està disponible en tots els sistemes semblants a UNIX, i la majoria tenen un client i un servidor ssh com a utilitats estàndard. Hi ha moltes implementacions de clients SSH per a sistemes operatius que no són UNIX. El protocol va guanyar gran popularitat després del desenvolupament generalitzat d'analitzadors de trànsit i mètodes per interrompre el funcionament de les xarxes locals, com a solució alternativa al protocol Telnet insegur per a la gestió de nodes importants.

Comunicació mitjançant SSH

Per treballar mitjançant SSH, necessiteu un servidor SSH i un client SSH. El servidor escolta les connexions de les màquines client i, quan s'estableix una connexió, realitza l'autenticació, després de la qual comença a donar servei al client. El client s'utilitza per iniciar sessió en una màquina remota i executar ordres.

Protocols SFTP i FTPS

Comparació amb FTPS

El principal que distingeix SFTP d'FTP i FTPS estàndard és que SFTP xifra absolutament totes les ordres, noms d'usuari, contrasenyes i altra informació confidencial.

Tant els protocols FTPS com SFTP utilitzen una combinació d'algorismes asimètrics (RSA, DSA), algorismes simètrics (DES/3DES, AES, Twhofish, etc.), així com un algorisme d'intercanvi de claus. Per a l'autenticació, FTPS (o, per ser més precisos, SSL/TLS sobre FTP) utilitza certificats X.509, mentre que SFTP (protocol SSH) utilitza claus SSH.

Els certificats X.509 inclouen una clau pública i alguna informació sobre el certificat del propietari. Aquesta informació permet, d'altra banda, verificar la integritat del propi certificat, l'autenticitat i el propietari del certificat. Els certificats X.509 tenen una clau privada corresponent, que normalment s'emmagatzema per separat del certificat per motius de seguretat.

La clau SSH només conté la clau pública (la clau privada corresponent s'emmagatzema per separat). No conté cap informació sobre el propietari de la clau. Algunes implementacions SSH utilitzen certificats X.509 per a l'autenticació, però en realitat no verifiquen tota la cadena de certificats; només s'utilitza la clau pública (la qual cosa fa que aquesta autenticació sigui incompleta).

Conclusió

El protocol FTP, sens dubte, encara juga un paper important en l'emmagatzematge i distribució d'informació a la xarxa malgrat la seva venerable edat. És un protocol còmode, multifuncional i estandarditzat. Sobre la seva base s'han construït molts arxius d'arxius, sense els quals el treball tècnic no seria tan efectiu. A més, és fàcil de configurar i existeixen programes de servidor i client per a gairebé totes les plataformes actuals i no tan actuals.

Al seu torn, les seves versions protegides resolen el problema de la confidencialitat de les dades emmagatzemades i transmeses al món modern. Tots dos nous protocols tenen els seus pros i contres i compleixen funcions lleugerament diferents. En aquelles àrees on es necessita un arxiu de fitxers, és preferible utilitzar FTPS, sobretot si ja s'ha utilitzat l'FTP clàssic abans. SFTP és menys freqüent per la seva incompatibilitat amb el protocol antic, però és més segur i té més funcionalitats, ja que forma part del sistema de gestió remota.

Llista de fonts

Font: www.habr.com

Afegeix comentari