Existen varios tipos de he­rra­mie­n­tas y te­c­no­lo­gías a di­s­po­si­ción de todo aquel que quiera tra­n­s­fe­rir datos entre dos or­de­na­do­res. Los usuarios menos ex­pe­ri­me­n­ta­dos o sin ninguna ex­pe­rie­n­cia previa tienen a su di­s­po­si­ción una gran variedad de programas cliente y de pro­to­co­los. Este abanico de opciones puede hacer co­m­pli­ca­do encontrar la solución adecuada para llevar a cabo una tra­n­s­fe­re­n­cia de datos pla­ni­fi­ca­da. En pa­r­ti­cu­lar, cuando lo que se envían son datos sensibles, pues se trata de algo más que una simple tra­n­s­fe­re­n­cia de A a B. En este caso, solo entran en juego aquellos métodos que ofrecen una seguridad adecuada.

Uno de esos métodos es la tra­n­s­fe­re­n­cia de datos a través de Secure Copy Protocol (SCP), diseñado es­pe­cí­fi­ca­me­n­te para la tra­n­s­fe­re­n­cia segura de in­fo­r­ma­ción digital. El artículo a co­n­ti­nua­ción revela qué se esconde tras el SCP protocol y cómo funciona exac­ta­me­n­te.

¿Qué es SCP?

Secure Copy Protocol (SCP), a menudo de­no­mi­na­do si­m­ple­me­n­te Secure Copy, es un protocolo para sistemas in­fo­r­má­ti­cos, que garantiza la tra­n­s­fe­re­n­cia segura de datos entre un equipo local (host local) y un equipo remoto (host remoto) o, al­te­r­na­ti­va­me­n­te, entre dos equipos remotos. Se basa en los comandos RCP, (remote copy), que se pu­bli­ca­ron en 1982 como parte de los “comandos r” de la Uni­ve­r­si­dad de Ca­li­fo­r­nia (Berkeley). Permiten el control de la tra­n­s­mi­sión de datos a través de la línea de comandos.

SCP ofrece un método de au­te­n­ti­ca­ción entre los dos equipos, así como un cifrado de la tra­n­s­mi­sión. Por lo tanto, el protocolo no solo garantiza la seguridad, sino también la au­te­n­ti­ci­dad de los datos tra­n­s­fe­ri­dos. En ambos me­ca­ni­s­mos de seguridad el SCP protocol se basa en SSH (Secure Shell), que también se utiliza en pro­to­co­los al­te­r­na­ti­vos de tra­n­s­mi­sión como FTP (o SFTP). El puerto TCP que utiliza para la tra­n­s­fe­re­n­cia a través de SCP es el puerto estándar SSH 22.

Secure Copy es mu­l­ti­pla­ta­fo­r­ma: existen apli­ca­cio­nes y programas para los sistemas ope­ra­ti­vos más conocidos, como Windows, macOS y Linux, así como para Android y iOS.

¿Cómo funciona la tra­n­s­mi­sión con el SCP protocol?

Secure Copy requiere una au­te­n­ti­ca­ción de los dos equipos in­vo­lu­cra­dos. Para que se pueda realizar la tra­n­s­mi­sión a través del protocolo, habrá que es­ta­ble­cer, en primer lugar, una conexión SSH desde el equipo local al equipo de destino remoto. Para ello se necesitan, o bien los datos de acceso SSH o una clave au­to­ri­za­da para la au­te­n­ti­ca­ción con clave pública.

Nota

Si se utiliza SCP para la tra­n­s­fe­re­n­cia de archivos entre dos or­de­na­do­res remotos, será necesaria una conexión SSH del sistema local que ejecuta el cliente SCP en el ordenador remoto, que en este caso actúa como equipo fuente.

Una vez que se establece la conexión SSH entre los dos equipos, el cliente SCP inicia un proceso de copia segura en la que están di­s­po­ni­bles dos modos di­fe­re­n­tes:

  • Modo fuente: una solicitud SCP en modo fuente lee archivos en el sistema de destino y los envía de vuelta al cliente.
  • Modo sink: se utiliza en las so­li­ci­tu­des a través del SCP protocol en páginas de clientes del modo sink, le indica al sistema remoto que se trata de datos entrantes y que deben es­cri­bi­r­se en el sistema.

Los clientes CPS suelen utilizar el indicador -f (del inglés from, “de”), con el fin de activar el modo de fuente. Si se inicia el modo sink para enviar datos al equipo de destino, se utilizará en su lugar el indicador -t (del inglés to, “a”).

Nota

La in­ter­ac­ción entre Secure Copy y Secure Shell puede verse in­te­rru­m­pi­da por posibles mensajes de bie­n­ve­ni­da cuando se produzca un inicio de sesión SSH. Como SCP no está preparado para mensajes de texto, los in­te­r­pre­ta como mensajes de error y bloquea en co­n­se­cue­n­cia la tra­n­s­fe­re­n­cia.

¿Dónde y cómo se utiliza SCP (con ejemplo)?

Secure Copy es co­m­pa­ti­ble de serie con todos los sistemas ope­ra­ti­vos pri­n­ci­pa­les y, gracias a la in­co­r­po­ra­ción de SSH, ofrece un excelente paquete de seguridad. La co­m­bi­na­ción de au­te­n­ti­ca­ción y cifrado lo sitúa a la par con el popular protocolo SFTP, que también aprovecha los me­ca­ni­s­mos de pro­te­c­ción de Secure Shell. Puesto que SCP también aventaja a la variante FTP en términos de velocidad de tra­n­s­mi­sión, el protocolo es una excelente al­te­r­na­ti­va cuando se trata de tra­n­s­fe­rir archivos de forma segura y rápida a un servidor web o de compartir datos sensibles en una red de área local (por ejemplo, en una red co­r­po­ra­ti­va).

Nota

En 2019, el Instituto Nacional de Es­tá­n­da­res y Te­c­no­lo­gía es­ta­dou­ni­de­n­se publicó un informe oficial de seguridad que puso sobre la mesa las vu­l­ne­ra­bi­li­da­des de las di­fe­re­n­tes apli­ca­cio­nes SCP. Trata, sobre todo, el riesgo potencial de un ataque de hombre in­te­r­me­dio durante la tra­n­s­fe­re­n­cia SCP que permita a los atacantes so­bre­s­cri­bir los archivos en el di­re­c­to­rio de destino o in­tro­du­cir malware cla­n­de­s­ti­na­me­n­te. Entre los clientes afectados se en­cue­n­tran, entre otros, Putty PSCP, OpenSSH y WinSCP.

Además de los citados clientes, que se pueden descargar y utilizar de forma gratuita desde la web, MacOS, Windows y Linux también están equipados de serie con un cliente Secure Copy llamado scp. El recorrido desde la solicitud de entrada o terminal es, por lo tanto, la solución más rápida y sencilla para la tra­n­s­fe­re­n­cia de datos a través del SCP protocol, tal como ilustran los dos ejemplos de entrada si­guie­n­tes:

scp archivo de origen test@host:directorio/archivo de destino

Con este comando, cada archivo de origen se copia en el di­re­c­to­rio es­pe­ci­fi­ca­do en el equipo de destino, en el que el usuario debe haber iniciado sesión a través de SSH con el nombre “test”. Si un archivo de un sistema remoto se tra­n­s­fie­re en el pa­r­ti­ci­pa­n­te SCP local, el comando sería el siguiente:

scp test@host:directorio/archivo de destino

Los pri­n­ci­pa­les comandos SCP de un vistazo

La sintaxis básica de las líneas de los comandos para controlar el cliente de SCP nativo en Windows y en los demás sistemas ope­ra­ti­vos ya ha quedado clara en los ejemplos an­te­rio­res. Sin embargo, ambos ejemplos de código solo muestran un proceso de copia sencillo que no incluye opciones adi­cio­na­les que la he­rra­mie­n­ta SCP sí ofrece. Si estas opciones forman parte de un comando, preceden a la in­fo­r­ma­ción sobre los archivos y los equipos, de manera que la es­tru­c­tu­ra si­n­tá­c­ti­ca completa quedaría de la siguiente manera:

scp [Opcion(es)] [archivo de origen] [usuario@host:directorio/archivo de destino]
scp [Opcion(es)] [usuario@host:directorio/archivo de origen] [archivo de destino]

Las pri­n­ci­pa­les opciones para pe­r­so­na­li­zar las consultas Secure Copy con SCP se resumen en la siguiente tabla:

Opción SCP Función
-1 Da la orden de utilizar la versión 1 del SCP protocol
-2 Da la orden de utilizar la versión 2 del SCP protocol
-C Activa la co­m­pre­sión GZIP de la conexión SSH en­cri­p­ta­da
-B Inicia la sesión sin solicitar la co­n­tra­se­ña
-l limit Establece un límite de ancho de banda (kbps) para la tra­n­s­fe­re­n­cia de archivos
-o ssh_option Permite la de­fi­ni­ción de opciones SSH concretas, como el cifrado
-P port Es­pe­ci­fi­ca el puerto en el sistema remoto a través del que se debe es­ta­ble­cer la conexión
-p Conserva los metadatos del archivo original (como los cambios y los tiempos de acceso)
-q Oculta los ma­r­ca­do­res de progreso durante la tra­n­s­fe­re­n­cia
-r Copia todo el di­re­c­to­rio de forma recursiva, incluidos los su­b­di­re­c­to­rios
-S programa Es­pe­ci­fi­ca el programa que debe uti­li­zar­se para la conexión cifrada (el programa debe ser co­m­pa­ti­ble con las opciones SSH)
Ir al menú principal