¿Qué es el SCP protocol?

Existen varios tipos de herramientas y tecnologías a disposición de todo aquel que quiera transferir datos entre dos ordenadores. Los usuarios menos experimentados o sin ninguna experiencia previa tienen a su disposición una gran variedad de programas cliente y de protocolos. Este abanico de opciones puede hacer complicado encontrar la solución adecuada para llevar a cabo una transferencia de datos planificada. En particular, cuando lo que se envían son datos sensibles, pues se trata de algo más que una simple transferencia 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 transferencia de datos a través de Secure Copy Protocol (SCP), diseñado específicamente para la transferencia segura de información digital. El artículo a continuación revela qué se esconde tras el SCP protocol y cómo funciona exactamente.

¿Qué es SCP?

Secure Copy Protocol (SCP), a menudo denominado simplemente Secure Copy, es un protocolo para sistemas informáticos, que garantiza la transferencia segura de datos entre un equipo local (host local) y un equipo remoto (host remoto) o, alternativamente, entre dos equipos remotos. Se basa en los comandos RCP, (remote copy), que se publicaron en 1982 como parte de los “comandos r” de la Universidad de California (Berkeley). Permiten el control de la transmisión de datos a través de la línea de comandos.

SCP ofrece un método de autenticación entre los dos equipos, así como un cifrado de la transmisión. Por lo tanto, el protocolo no solo garantiza la seguridad, sino también la autenticidad de los datos transferidos. En ambos mecanismos de seguridad el SCP protocol se basa en SSH (Secure Shell), que también se utiliza en protocolos alternativos de transmisión como FTP (o SFTP). El puerto TCP que utiliza para la transferencia a través de SCP es el puerto estándar SSH 22.

Secure Copy es multiplataforma: existen aplicaciones y programas para los sistemas operativos más conocidos, como Windows, macOS y Linux, así como para Android y iOS.

¿Cómo funciona la transmisión con el SCP protocol?

Secure Copy requiere una autenticación de los dos equipos involucrados. Para que se pueda realizar la transmisión a través del protocolo, habrá que establecer, 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 autorizada para la autenticación con clave pública.

Nota

Si se utiliza SCP para la transferencia de archivos entre dos ordenadores 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 disponibles dos modos diferentes:

  • 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 solicitudes 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 escribirse 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 interacción entre Secure Copy y Secure Shell puede verse interrumpida por posibles mensajes de bienvenida cuando se produzca un inicio de sesión SSH. Como SCP no está preparado para mensajes de texto, los interpreta como mensajes de error y bloquea en consecuencia la transferencia.

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

Secure Copy es compatible de serie con todos los sistemas operativos principales y, gracias a la incorporación de SSH, ofrece un excelente paquete de seguridad. La combinación de autenticación y cifrado lo sitúa a la par con el popular protocolo SFTP, que también aprovecha los mecanismos de protección de Secure Shell. Puesto que SCP también aventaja a la variante FTP en términos de velocidad de transmisión, el protocolo es una excelente alternativa cuando se trata de transferir 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 corporativa).

Nota

En 2019, el Instituto Nacional de Estándares y Tecnología estadounidense publicó un informe oficial de seguridad que puso sobre la mesa las vulnerabilidades de las diferentes aplicaciones SCP. Trata, sobre todo, el riesgo potencial de un ataque de hombre intermedio durante la transferencia SCP que permita a los atacantes sobrescribir los archivos en el directorio de destino o introducir malware clandestinamente. Entre los clientes afectados se encuentran, 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 transferencia de datos a través del SCP protocol, tal como ilustran los dos ejemplos de entrada siguientes:

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

Con este comando, cada archivo de origen se copia en el directorio especificado 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 transfiere en el participante SCP local, el comando sería el siguiente:

scp test@host:directorio/archivo de destino

Los principales 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 operativos ya ha quedado clara en los ejemplos anteriores. Sin embargo, ambos ejemplos de código solo muestran un proceso de copia sencillo que no incluye opciones adicionales que la herramienta SCP sí ofrece. Si estas opciones forman parte de un comando, preceden a la información sobre los archivos y los equipos, de manera que la estructura sintáctica 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 principales opciones para personalizar 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 compresión GZIP de la conexión SSH encriptada
-B Inicia la sesión sin solicitar la contraseña
-l limit Establece un límite de ancho de banda (kbps) para la transferencia de archivos
-o ssh_option Permite la definición de opciones SSH concretas, como el cifrado
-P port Especifica el puerto en el sistema remoto a través del que se debe establecer la conexión
-p Conserva los metadatos del archivo original (como los cambios y los tiempos de acceso)
-q Oculta los marcadores de progreso durante la transferencia
-r Copia todo el directorio de forma recursiva, incluidos los subdirectorios
-S programa Especifica el programa que debe utilizarse para la conexión cifrada (el programa debe ser compatible con las opciones SSH)