Introducción A Secure Shell
mrwil_2821 de Septiembre de 2013
4.966 Palabras (20 Páginas)247 Visitas
Introducción a Secure Shell
Javier Smaldone
http://www.smaldone.com.ar
Versión 0.2 - 20 de enero de 2004
Resumen
Este texto tiene como objetivo servir de guía introductoria al uso de Secure Shell. No se trata de una
descripción exhaustiva acerca de sus posibilidades, aunque trataré de explorar algunas de sus características
y funciones más útiles. También realizaré una breve descripción de los métodos de cifrado1, en
particular de los sistemas de cifrado asimétrico y de RSA.
No soy experto en cifrado ni en seguridad informática. Sólo he intentado escribir un pequeño texto
de ayuda a quienes, como yo, comienzan a utilizar esta herramienta.
Índice
1. Introducción 2
1.1. ¿Qué es la “seguridad”? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2. ¿Qué es el Secure Shell? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3. Algoritmos de cifrado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3.1. Cifrado simétrico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3.2. Cifrado asimétrico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2. Secure Shell. Principios y funcionamiento 5
2.1. Descripción general del funcionamiento de SSH . . . . . . . . . . . . . . . . . . . . . . . 5
2.2. Métodos de autenticación de usuarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2.1. Autenticación con contraseña: . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2.2. Autenticación con clave pública: . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3. Configuración de OpenSSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3.1. Archivo sshd_config . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3.2. Archivo ssh_config . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3.3. Otros archivos: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3.4. El servidor de SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3.5. El cliente de SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3. Usando Secure Shell 10
3.1. Iniciando una sesión remota con contraseña . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2. Iniciando una sesión remota con clave pública . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2.1. Generando las claves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2.2. Transfiriendo la clave pública al servidor . . . . . . . . . . . . . . . . . . . . . . 12
3.2.3. Iniciando la sesión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2.4. Asegurando la clave privada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2.5. ssh-agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.2.6. Usando ssh-agent en el shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.2.7. Usando ssh-agent en X-Window . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1La palabra inglesa “crypt” suele traducirse como “criptografía” o “encripción”, vocablos inexistentes en el idioma español. El
término correcto es “cifrado”.
1
3.3. Ejecución de comandos remotos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.4. Transfiriendo archivos con Secure Copy . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.5. Aplicaciones X11 a través de SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.6. Túneles IP cifrados con SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4. Acerca de este documento 14
4.1. Copyright . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
A. El algoritmo RSA (Rivest-Shamir-Adleman) 15
A.1. Descripción del algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
A.2. Un ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1. Introducción
1.1. ¿Qué es la “seguridad”?
Hace un par de años asistí a un curso de seguridad del que, si algo aprendí, fue una frase muy clarificadora
respecto de la seguridad: “La seguridad no es un producto, es un proceso”. Muchas veces, decimos
que “el software X es seguro” o que “el protocolo Y es seguro”, siendo que lo correcto sería decir que “tal
sistema ofrece tal o cual mecanismo que permite asegurar la seguridad en tal o cual sentido”. Es asombroso
ver en la actualidad a supuestos “expertos” en seguridad que venden soluciones mágicas (“seguridad
en cajas”). Para que un sistema sea considerado seguro en determinado grado, deben definirse, respetarse
y revisarse continuamente políticas y procedimientos tendientes a lograr ese objetivo.
Si a lo largo de este texto usted encuentra que en algún momento digo que algo “es seguro”, le pido que
lo tome como una forma abreviada de decir lo que he expresado en el párrafo precedente.
1.2. ¿Qué es el Secure Shell?
Secure Shell, también llamado SSH, es un protocolo utilizado para login y ejecución de procesos remotos.
Resumiendo (quizás demasiado) SSH nos permite:
Iniciar sesiones (login) en servidores remotos.
Ejecutar comandos remotamente.
Copiar archivos entre distintos hosts.
Ejecutar aplicaciones X11 remotamente.
Realizar túneles IP cifrados.
Divertirnos2.
SSH no es solo un reemplazo de telnet, rlogin, rexec, ftp, XDMCP y otros. Además de brindar todas
estas posibilidades con, básicamente, un único programa, brinda comunicaciones seguras (cifradas) entre
el cliente y el servidor.
1.3. Algoritmos de cifrado
Trataré de explicar muy brevemente (dado mis pobres conocimientos al respecto) los principios básicos
del cifrado de información.
Las técnicas de cifrado consisten en manipular la información de manera de asegurar las siguientes
propiedades:
2¡Nunca debemos olvidarnos de esto!
2
Figura 1: Cifrado simétrico
1. Confidencialidad: No puede acceder a la información nadie que no sea su legítimo destinatario.
2. Integridad: La información no puede ser alterada (sin ser esto detectado) en el tránsito desde el
emisor hacia el destinatario.
3. No repudio: El creador o emisor de la información no puede dejar de reconocer su autoría.
4. Autenticación: Tanto el emisor como el receptor pueden confirmar la identidad de la otra parte involucrada
en la comunicación.
En particular, para lo que nos interesa, prestaremos atención a tipos de algoritmos: los de cifrado simétrico
(con clave compartida) y los de cifrado asimétrico (con clave pública y clave privada).
1.3.1. Cifrado simétrico
Esta técnica consiste en el uso de una clave que es conocida tanto por el emisor como por el receptor
(y, se supone, por nadie más). La figura 1 muestra un esquema de este tipo:
E y R conocen la clave K. El emisor, E, desea transmitir el mensaje Mensa je a R. Para ello, utilizando
determinado algoritmo de cifrado simétrico y la clave K, genera el mensaje Mensa jeK, que es transmitido
a R. Éste, aplicando la misma clave y el algoritmo inverso, obtiene nuevamente el mensaje original.
Al respecto del algoritmo utilizado, es deseable que cumpla varias propiedades, entre ellas:
Que sea muy difícil descifrar el mensaje sin conocer la clave.
Que la publicidad del algoritmo de cifrado/descifrado no tenga influencia en la seguridad del mismo.
(¡Nunca un algoritmo de cifrado puede basarse en la suposición de que nadie conoce exactamente
cómo funciona!)
Que una mínima alteración de la clave, produzca grandes cambios en el mensaje cifrado.
Quizás el ejemplo más simple de cifrado simétrico sea el juego de niños de desplazar las letras del mensaje
una determinada cantidad de posiciones: Por ejemplo, cifrar el mensaje “Hola Mundo” como “Ipmb
Nvñep”, desplazando las letras una posición. En este caso, la clave que ambas partes deben conocer es la
cantidad de posiciones que se desplazaron las letras. (De todas formas, esto no es muy difícil de averiguar,
¿no?)3.
La principal desventaja del cifrado simétrico consiste en que ambas partes deben conocer la clave: Un
secreto compartido no es un secreto por mucho tiempo.
Entre los algoritmos de cifrado simétrico más utilizados podemos nombrar 3DES, Blowfish, IDEA,
CAST128 y Arcfour
3Una variante de este algoritmo, conocida como ROT13 dado que desplaza las letras 13 posiciones, es muy utilizada para cifrar
textos de forma simple.
3
Figura 2: Confidencialidad mediante cifrado asimétrico
Figura 3: Autenticidad mediante cifrado asimétrico
1.3.2. Cifrado asimétrico
Las técnicas de cifrado asimétrico se basan en el uso de dos claves: una pública y otra privada.
En el ejemplo de la figura 2, R posee dos claves: KR (su clave privada, conocida sólo por él) y KRP (su
clave pública,
...