Protocolo SSH – Secure Shell

Transcrição

Protocolo SSH – Secure Shell
Protocolo SSH
março 8
Sílvio Pereira, Filipe Sousa
SSH - IEEE
Conteúdo
I.
Introdução ..................................................................................................................................................................................1
II.
Descrição do SSH .................................................................................................................................................................1

Autenticação.....................................................................................................................................................................2

Encriptação.......................................................................................................................................................................2

Integridade .......................................................................................................................................................................2
III.
Versões do SSH ....................................................................................................................................................................2

IV.
Camadas lógicas do SSH ......................................................................................................................................................2

SSH Transport Layer Protocol – RFC 4253 .....................................................................................................................2

SSH Authentication Protocol – RFC 4252 .......................................................................................................................2

SSH Connection Protocol – RFC 4254 ............................................................................................................................2
Funcionalidades do ssh .........................................................................................................................................................3
V.

Secure command-shell .....................................................................................................................................................3

Secure File Transfer .........................................................................................................................................................3

Port forwarding ................................................................................................................................................................3
VI.
Segurança no SSH ................................................................................................................................................................3

Autenticação de utilizador ................................................................................................................................................3

Autenticação através de password ....................................................................................................................................4

Autenticação através de Chave Pública............................................................................................................................4

Autenticação do host ........................................................................................................................................................4

Encriptação da informação ...............................................................................................................................................5

Integridade dos dados .......................................................................................................................................................5

Compressão de dados .......................................................................................................................................................5
VII.
Ataques bloqueados pelo SSH ..............................................................................................................................................5

Password Sniffing ............................................................................................................................................................5

Ataque Homem-no-meio, MITM .....................................................................................................................................5

Ataques de Inserção e Repetição ......................................................................................................................................6
VIII.
Aplicações ............................................................................................................................................................................6

Em ambiente Windows ....................................................................................................................................................6

Em ambiente Linux ..........................................................................................................................................................7
IX.
X.
SSH Protocol Architecture – RFC 4251, descreve o todo o design do protocolo. ..........................................................2
Conclusão .............................................................................................................................................................................8

Passwords .........................................................................................................................................................................8

Backups ............................................................................................................................................................................8
Bibliografia ...........................................................................................................................................................................8
7815 - Filipe Sousa
7813 – Silvio Pereira
1
Índice de ilustrações
Ilustração 1 - Fluxo de dados no SSH [3] ..........................................................................................................................................2
Ilustração 2 - Camadas lógicas do SSH dentro do modelo OSI .........................................................................................................2
Ilustração 3 – Modelo de comunicação do SSH [3]...........................................................................................................................3
Ilustração 4 – Exemplo de chave pública gerada pelo ssh-keygen.....................................................................................................4
Ilustração 5 - Exemplo de random art gerado pelo SSH ...................................................................................................................5
Ilustração 6 - Ataque Man-in-the-midle [5] .......................................................................................................................................6
Ilustração 7 - Janela de configuração do Putty ..................................................................................................................................6
Ilustração 8 – Shell do Putty em Windows NT..................................................................................................................................6
Ilustração 9 - FileZilla em Windows .................................................................................................................................................7
Ilustração 10 - Sessão SSH em Ubuntu 12.04 ...................................................................................................................................7
Índice de Abreviaturas
IEEE – Institute of Electrical and Electronics Engineers
LESI_PL – Licenciatura em Engenharia de Sistemas Informáticos
SSH – Secure Shell
SFTP - Secure File Transfer Protocol
RFC – Request for Comments
POP3 – Post Office Protocol
VNC – Virtual Network Computing
FTP - File Transfer Protocol
NAT - Network Address Translation
DMZ - Demilitarized Zone
VNC - Virtual Network Client
Protocolo SSH
S. Pereira, F. Sousa.
Resumo - Comunicações ou ligações pela internet como por
exemplo acesso remoto a computadores, transferências de
ficheiros, serviços bancários on-line, etc., são cada vez mais
comuns. Este facto expõe cada vez mais serviços
extremamente sensíveis a ligações nem sempre seguras. Por
tal, acresce a necessidade de se dispor de mecanismos que
garantam confidencialidade na troca de dados entre
utilizadores. Já que a internet por si só não oferece
qualquer tipo de encriptação de dados, surge a necessidade
de criar métodos que protejam a transmissão de ficheiros,
senhas e/ou qualquer tipo de dados que se pretenda
partilhar. Firewalls e outros meios de controlo de acesso já
não são suficientes para garantir privacidade. Criptografia
forte parece ser a única solução para a segurança da rede e
dos nossos dados. Tendo plena consciência desta
problemática, e em resposta ao desafio colocado na
disciplina de Comunicação de Dados, leccionada no 2º ano
da Licenciatura em Engenharia de Sistemas Informáticos,
o grupo de trabalho acima identificado procurou descrever
uma solução capaz de lhe dar resposta. Essa é a proposta
do protocolo que iremos abordar, o SSH.
Palavras-chave – Comunicação, protocolo, SSH, segurança,
criptografia, ambiente remoto, transferência de dados,
internet.
I. INTRODUÇÃO
Em
1995, Tatu Ylönen, investigador da Universidade
Tecnológica de Helsínquia, Finlândia, desenhou a primeira
versão do protocolo SSH (o SSH-1). O objectivo do SSH foi o
de substituir o rlogin, telnet e rsh, protocolos que não fornecem
autenticação forte nem confidencialidade.
Ylönen disponibilizou a sua aplicação em Julho de 1995, cuja
rapidamente ganhou popularidade. No final desse ano, o
número de utilizadores do SSH tinha crescido para 20 mil
utilizadores em cinquenta países. [1]
O SSH é um protocolo para segurança de rede. Este protocolo
funciona da seguinte forma: quando são enviados dados por
um computador para a rede, o SSH trata de encriptar
automaticamente o conteúdo, quando os dados chegam ao
destinatário, o SSH efectua o processo contrário. O resultado
deste método é transparente, os utilizadores podem trabalhar
normalmente, sem saberem que as comunicações são
encriptadas de modo seguro na rede. Além disso, o SSH utiliza
algoritmos de criptografia seguros e eficazes.
II. DESCRIÇÃO DO SSH
O SSH é simultaneamente um protocolo e aplicação, baseado
na arquitectura cliente/servidor. Um programa servidor SSH,
normalmente instalado e executado por um administrador de
sistema, aceita ou rejeita ligações de entrada para o
computador anfitrião. O utilizadores padrão, geralmente
executam programas SSH cliente, noutros computadores
fazem pedidos ao servidor SSH tais como, "Please log me in",
i.e., por favor faça o login, "Please send me a file", i.e., por
favor envie-me um ficheiro ou "Please execute this command",
i.e., por favor execute este comando. Todas as comunicações
entre clientes e servidores são encriptadas de forma segura e
protegidas de qualquer modificação. [2]
Uma solução baseada em SSH pode incluir clientes, servidores
ou ambos. Geralmente em ambientes Unix existem os dois.
Noutras plataformas, geralmente só estão disponíveis os
clientes, e.g., Putty em Windows. Apesar disto, em ambientes
Windows começam a surgir servidores SSH com maior
frequência.
Embora SSH signifique Secure Shell, não é uma verdadeira
shell como a Unix Bourne Shell e a C Shell, i.e., não é um
interpretador de comandos nem disponibiliza um histórico dos
mesmos. Através do SSH é criado um canal, com encriptação
entre computadores, para executar uma shell no computador
remoto.
O SSH não é uma solução de segurança completa, não protege
os computadores de ataques denial-of-service e não elimina
vírus, trojans e malware. Contudo, disponibiliza encriptação e
autenticação robusta.
SSH é um protocolo que permite, recorrendo a programas,
efectuar uma comunicação segura através da rede. Este
protocolo recorre a autenticação, encriptação e integridade dos
dados transmitidos através da rede, o que se representa na
ilustração 1, na próxima página.
Sílvio Pereira & Filipe Sousa
2
 SSH Protocol Architecture – RFC 4251, descreve o todo o
design do protocolo.
IV. CAMADAS LÓGICAS DO SSH
 SSH Transport Layer Protocol – RFC 4253
Descreve o funcionamento na camada de transporte utilizando
o protocolo TCP/IP e as suas funcionalidades. Aqui são
definidas a privacidade, integridade, autenticação nos
servidores e a protecção contra ataques. Uma vantagem deste
protocolo RFC é que pode ser usado também em outras
aplicações que não usam o protocolo SSH.
Ilustração 1 - Fluxo de dados no SSH [3]
Os atributos chave do SSH são:
 Autenticação
Aqui, é determinada a identidade de alguém. Ao tentar
efectuar o login numa máquina remota, o SSH precisará de
uma prova digital da identidade. Se o teste for passado com
sucesso, poderá ser feito o login. Caso contrário, é rejeitada a
ligação.
 Encriptação
Informação codificada para que seja lida apenas pelos
intervenientes autorizados. Isto protege a informação que passa
pela rede.
 SSH Authentication Protocol – RFC 4252
Define uma framework onde são criados métodos para a
criação de chaves públicas, senhas e autenticações de clientes.
O protocolo SSH usa esta framework para proteger o usuário
quando se conecta com um servidor.
 SSH Connection Protocol – RFC 4254
O protocolo de ligação foi essencialmente desenvolvido para
utilizar as principais funções dos protocolos de transporte e
autenticação. Com a capacidade de prover sessões interactivas
e a execução remota de comandos este protocolo usa apenas
um único túnel de comunicação para todas as conexões. Outra
característica importante do protocolo SSH é o “tunelamento”
que permite encapsular outros protocolos. Esta característica
permite criar um túnel entre o servidor e o cliente SSH e
transportar pacotes de outros protocolos através de um canal
seguro. Isto é muito importante proteger protocolos nãocriptografados, como por exemplo o POP3 e VNC.
 Integridade
Garantia de que a informação enviada pela rede chega
inalterada. Se for capturada e modificada por alguém durante o
transporte, o SSH detecta o ocorrido. Este protocolo efectua
ligações em rede entre computadores, com fortes garantias de
que as partes nas extremidades da ligação são genuínas.
III. VERSÕES DO SSH
A primeira versão, SSH1, permitia a transferência cifrada de
dados em ambas as direcções, upload e download, utilizando o
protocolo SCP.
A segunda versão, SSH2, foi implementada com um sistema
de arquivos remotos, permitindo mais operações sobre os
mesmos, e.g., mover, copiar, etc. O intuito desta versão era de
resolver os problemas sérios de segurança da primeira versão e
melhorar o método de transferência de arquivos utilizando o
SFTP.
Hoje em dia utilizamos a versão SSHv2 que é descrita no
seguinte documento, disponível on-line:
Ilustração 2 - Camadas lógicas do SSH dentro do modelo OSI
Sílvio Pereira & Filipe Sousa
V. FUNCIONALIDADES DO SSH
Neste capitulo descrevem-se as principais funcionalidades
disponibilizadas pelo SSH, são elas:
 Secure command-shell
Linha de comandos como a disponível nos sistemas Unix-like,
Windows ou a familiar prompt do DOS. Disponibilizam a
execução de programas e outros comandos. Uma linha de
comandos segura ou o login remoto permitem editar ficheiros,
ver o conteúdo de directorias e aceder a bases de dados.
Administradores de rede e de sistemas podem iniciar serviços,
cancelar processos, alterar permissões de ficheiros e muito
mais. Tudo o que se pode fazer na linha de comandos da
máquina pode ser feito de casa.
 Secure File Transfer
SFTP é um subsistema do protocolo SSH. É uma camada do
protocolo que permite gerir a transferência de ficheiros. O
SFTP tem várias vantagens quando comparado com o FTP
normal. Primeiro, o SFTP encripta quer o username, quer a
password, bem como a informação transferida. Segundo,
utiliza a mesma porta que o SSH, eliminando assim a
necessidade de abrir outras na firewall ou no router. Ao
utilizar o SFTP também se evita o NAT que por vezes se torna
um problema. Uma das vantagens da utilização do SFTP reside
no facto de ser possível criar extranets seguras ou fortificar um
servidor ou mais servidores, externos à nossa firewall, que são
acedidos remotamente. Uma extranet geralmente é utilizada
para upload e download de ficheiros sendo para isso
necessário que exista um mecanismo seguro para
administração remota. Ter uma extranet que possa ser
remotamente administrada por colaboradores tem vindo a ser
uma solução cada vez mais utilizada, deixando desta forma de
serem utilizados os meios mais tradicionais como o telefone ou
fax. Aliás, o SFTP pode automatizar algumas tarefas e
transacções para que estas possam ocorrer sem intervenção
humana.
Uma extranet segura é uma das formas mais seguras de
disponibilizar informação especifica a cliente, colaboradores e
até funcionários sem expor informação confidencial da
empresa para a rede pública. O uso do SFTP em máquinas da
extranet, restringe o acesso a pessoal autorizado e encripta
usernames, password e ficheiros enviados de e para a DMZ.
3
 Port forwarding
Port forwarding é uma ferramenta poderosa, que disponibiliza
segurança a aplicações TCP/IP incluindo e-mail, bases de
dados e aplicações. Referido algumas vezes como tunneling,
permite que a informação gerada por aplicações desprotegidas
se torne segura. Após o port forwarding ter sido configurado, o
SSH redirecciona o tráfego de um programa, geralmente o
cliente e envia-o através de um túnel encriptado, entregando-o
directamente ao programa de destino, geralmente o servidor.
Várias aplicações podem transmitir informação através de um
único túnel, optimizando o número de ligações necessárias
para comunicar com o exterior.
Para algumas aplicações, uma linha de comandos segura não é
suficiente e o controlo remoto com interface gráfico é
necessário. As capacidades do port forwarding podem ser
utilizadas para criar um túnel encriptado sobre o qual essa
aplicação pode ser executada. O VNC, que é um programa de
controlo remoto com interface gráfico, é um bom exemplo
disso.
VI. SEGURANÇA NO SSH
Ilustração 3 – Modelo de comunicação do SSH [3]
 Autenticação de utilizador
Autenticação, também referida como identidade do utilizador,
é o meio pelo qual se verifica que o acesso é apenas dado a
determinados utilizadores e negado a todos os outros. São
utilizados muitos métodos de autenticação hoje em dia, que
vão desde password simples até aos sistemas de segurança
mais robustos. A maior parte das implementações do SSH
incluem métodos de autenticação através de uma password e
Sílvio Pereira & Filipe Sousa
4
de uma chave pública. A flexibilidade do SSH permite que
novos métodos de autenticação sejam incorporados no sistema,
à medida que fiquem disponíveis.
 Autenticação através de password
Passwords combinadas com nomes de utilizador, são um
método popular de dizer a outro computador que somos quem
afirmamos ser. Se o utilizador e a password fornecidos
aquando da autenticação forem iguais ao utilizador e password
armazenados no sistema remoto, então estamos autenticados e
é-nos dado acesso. Alguns protocolos, como o FTP e o Telnet
enviam nomes de utilizador e respectivas passwors em texto
ASCII que é facilmente visível, permitindo a qualquer pessoa
com um programa de sniffing a captura estes dados e
consequente acesso indevido ao sistema. O SSH protege os
usuários contra este tipo de ataque encriptando a informação,
incluindo nomes de utilizador e passwords. Apesar das
passwords serem um método conveniente, que não requer
qualquer configuração adicional, são vulneráveis pois podem
ser adivinhadas. Qualquer pessoa que adivinhe ou descubra
uma password, consegue aceder ao sistema. Devido as estas
vulnerabilidades, é aconselhável que se combine ou substitua a
password por outro método como a chave pública.
 Autenticação através de Chave Pública
A autenticação por Chave Pública é um dos métodos mais
seguros de autenticação utilizado no protocolo SSH. Este tipo
de autenticação utiliza um par de chaves assimétricas geradas
por um computador, uma pública e uma privada. Cada chave
tem entre 1024 e 4096 bits de comprimento e aparece como o
exemplo em baixo. Apesar de a podermos ver, é inútil, a
menos que se tenha a chave privada correspondente.
“A criptografia de chave pública ou criptografia assimétrica é
um método de criptografia que utiliza um par de chaves:
uma chave pública e uma chave privada. A chave pública é
distribuída livremente para todos os correspondentes via email ou outras formas, enquanto a chave privada deve ser
conhecida apenas pelo seu dono. Num algoritmo de
criptografia assimétrica, uma mensagem cifrada com a chave
pública pode somente ser decifrada pela sua chave privada
correspondente.” [4]
Ilustração 4 – Exemplo de chave pública gerada pelo ssh-keygen
Chaves públicas e chaves privadas geralmente são geradas
utilizando um utilitário para o efeito. Para além de serem
utilizadas para autenticação, as chaves podem ser utilizadas
para assinar informação. Para aceder a uma conta num servidor
SSH, através de chave pública, uma cópia dessa chave tem que
ser enviada para o servidor. Quando o cliente efectua a ligação
ao servidor existe uma prova de que possui o segredo e o
acesso é garantido.
A chave privada nunca sai do computador cliente, não
podendo assim ser roubada ou adivinhada como uma password
normal. Geralmente a chave privada possui uma frase chave
associada a ela, para que em caso de roubo, o atacante tenha
ainda que adivinhar a frase chave para obter acesso ao sistema.
A autenticação por chave pública não confia em nenhuma
informação vinda de um cliente, nem permite acesso a
ninguém, a menos que o cliente consiga provar que possui a
chave privada “secreta”.
 Autenticação do host
Uma chave host é utilizada para provar a um cliente a sua
identidade e é utilizada por um cliente para verificar um host
de entre uma lista de entidades fiáveis. As chaves de host são
descritas como persistentes e são assimétricas, à semelhança
do par de chaves pública/privada, descritas anteriormente. Se
uma máquina está a correr apenas um servidor SSH, uma única
chave host serve para identificar quer a máquina quer o
servidor. Se a máquina está a correr vários servidores SSH,
pode ser necessário ter várias chaves host ou uma chave host,
para vários servidores. A autenticação de host previne contra
ataques de Man-in-the-middle. Muitas vezes, este tipo de
chaves é confundido com chaves de sessão, que são utilizadas
no processo de encriptação de informação. Uma imagem desta
chave pode ser apresentada no estabelecimento de cada sessão
SSH, para que, caso a de algum dos intervenientes tenha sido
alterada, seja humanamente mais perceptível a mudança. De
seguida ilustra-se um exemplo destas imagens.
Sílvio Pereira & Filipe Sousa
5
Mesmo com encriptação SSH, a informação que é enviada pela
rede pode ainda estar vulnerável a alterações. O SSH2 utiliza
algoritmos Message Authentication Code, i.e. MAC, para
melhorar o método de verificação da integridade existente no
SSH1.
 Compressão de dados
Outra funcionalidade do SSH, realizada após a encriptação e
que reduz significativamente o trafego na rede, é a compressão
de dados. Esta característica é especialmente benéfica quando
falamos de transferências de ficheiros, ou, por exemplo
dispomos de uma ligação de rede mais lenta.
Ilustração 5 - Exemplo de random art gerado pelo SSH
 Encriptação da informação
A encriptação significa que a informação está protegida de
acesso não autorizado. Cifras são o mecanismo que o SSH
utiliza para encriptar e desencriptar a informação enviada.
Constituem o mecanismo pelo qual o SSH encripta e
desencripta a informação enviada para a rede. Um bloco de
cifras é a forma mais comum de algoritmos de chaves
simétricas, e.g. DES, 3DES, Blowfish, AES, and Twofish.
Estes actuam num bloco de informação de tamanho fixo,
utilizam uma única e secreta chave partilhada e geralmente
implica a utilização de funções simples e não lineares. A
informação neste ponto está encriptada e não pode ser
revertida sem a respectiva chave privada. Quando um cliente
estabelece uma ligação com um servidor SSH, os dois devem
ter a mesma cifra para assim ser possível a encriptação e
desencriptação da informação. Geralmente o servidor
apresenta uma lista das cifras suportadas e o cliente escolhe a
primeira da sua lista que coincida com uma da lista do
servidor. Chaves de sessão são as chaves partilhadas e são
geradas aleatoriamente pelo cliente e pelo servidor durante o
estabelecimento da ligação. Quer o cliente quer o servidor
utilizam a mesma chave de sessão para encriptar e desencriptar
informação, apesar de chaves diferentes serem utilizadas pelos
canais de envio e recepção. Estas chaves são geradas após a
autenticação do host e antes de ser feita autenticação do
utilizador, permitindo assim que o nome de utilizador e
respectiva password sejam enviados de forma encriptada,
podem ser substituídas de forma regular durante a sessão e
destruídas na sua conclusão.
 Integridade dos dados
A integridade da informação garante que os dados enviados de
um dos pontos da ligação cheguem inalterados ao outro ponto.
VII. ATAQUES BLOQUEADOS PELO SSH
 Password Sniffing
Um sniffer é um dispositivo de rede que intercepta informação
que está a ser transmitida pela rede. O método de sniffing,
ocorre sem o conhecimento quer do cliente quer do servidor e
é chamado de monitorização passiva. Informação do
utilizador, incluindo passwords, podem ser roubadas desta
forma se estiverem a ser utilizados protocolos menos seguros,
como o Telnet ou o FTP. Como a informação numa sessão
SSH é encriptada, não é vulnerável a este tipo de ataques e não
pode ser decifrada pelo sniffer.
 Ataque Homem-no-meio, MITM
Se a primeira ligação e troca de chaves entre um cliente e um
host em particular está comprometida, o ataque MITM engana
quer o cliente quer o servidor fazendo-os pensar que estão a
comunicar um com o outro. Na realidade o atacante está a
interceptar todo o tráfego entre os dois. O cliente (A) inicia a
ligação com o servidor (B). Um atacante (C) desconhecido está
à espera de interceptar a negociação da ligação. O atacante
recebe o pedido de ligação do cliente e autentica-se como
sendo o servidor. De seguida, o atacante inicia uma ligação
com o servidor fazendo-se passar por cliente. Estão agora
iniciadas duas sessões SSH seguras e o atacante está a ler toda
a informação que passa entre o cliente e o servidor.
O SSH garante protecção contra esta ameaça, recorrendo à
autenticação do host. A menos que o host tenha sido
comprometido, o atacante não tem acesso à chave privada do
servidor, logo, não pode autenticar-se como tal.
Sílvio Pereira & Filipe Sousa
6
Ilustração 6 - Ataque Man-in-the-midle [5]
 Ataques de Inserção e Repetição
Ilustração 7 - Janela de configuração do Putty
Neste tipo de ataques, o atacante não está somente a
monitorizar a sessão SSH, mas também está a observar as
teclas carregadas ou está a monitorizar o terminal com
software. Ao comparar o que se escreve com o tráfego da
sessão SSH, um atacante pode deduzir qual o pacote que
possui determinado comando e apagar ficheiros por exemplo.
O SSH previne contra esta ameaça quando o código de
autenticação da mensagem é utilizado. O MAC é um bloco de
informação que é utilizado para autenticar a mensagem,
protege a integridade dos dados da mensagem assim como a
sua autenticidade, permitindo a verificação, por quem também
possui a chave secreta, para detecção de alterações no
conteúdo da mensagem.
Ilustração 8 – Shell do Putty em Windows NT
VIII. APLICAÇÕES
Existem inúmeras aplicações disponíveis para as mais diversas
plataformas, capazes de oferecer implementações completas
do protocolo âmbito deste documento. Dada a finalidade do
documento, irão ser apresentadas apenas três delas, que se
crêem ser as mais populares, disponíveis em ambientes
Windows e derivados de Unix.
 Em ambiente Windows

Putty
“O PuTTy é um cliente de SSH destinado a promover o acesso
remoto a servidores via Shell Seguro - SSH - e a construção de
"túneis" cifrados entre servidores. Também suporta conexão
directa (raw), telnet, rlogin e por porta serial. Para usar o
PuTTY não é necessária sua instalação, pois ele roda
directamente pelo arquivo executável Putty.exe.” [6]
Este é um cliente, que, tal como descrito, provê acesso a uma
conta shell remota, tunelamento de conexões e,
adicionalmente, serviços de SFTP e SCP. É uma das
ferramentas mais usadas no estabelecimento de sessões SSH
em Windows pois está concerteza entre os mais completos
softwares do género, suportanto inclusivamente todas as
versões conhecidas do protocolo e suas funcionalidades.
Sílvio Pereira & Filipe Sousa

7
FileZilla
Esta é de resto a implementação do protoloco mais usada, por
ser Open Source. Abaixo apresenta-se a saída de um comando
de ligação remota SSH como a que é ilustrada na figura 9:
Ilustração 9 - FileZilla em Windows
Esta é uma ferramenta gráfica de suporte a SFTP,
implementado no SSH. Destaca-se pela sua simplicidade de
utilização e uma das características mais apreciadas pelos
utilizadores é a sua extrema parecença com o tradicional File
Explorer do Windows. Aqui tudo é feito em ambiente gráfico,
desde a conexão ao servidor SSH, até ao tão amado Drag-anddrop de ficheiros entre cliente e servidor. À semelhança do
Putty também não carece de instalação, correndo directamente
a partir do filezilla.exe. [7]
 Em ambiente Linux

OpenSSH
“OpenSSH (Open Secure Shell) é uma colecção de programas
de computador que provêem a criptografia em sessões de
comunicações em uma rede de computadores usando o
protocolo SSH. Ele foi criado com um código aberto
alternativo ao código proprietário da suíte de softwares
Secure Shell oferecido pela SSH Communications Security[1].
OpenSSH foi desenvolvido como parte do projecto OpenBSD,
que foi liderado por Theo de Raadt” [8]
Ilustração 10 - Sessão SSH em Ubuntu 12.04
root@filipe-VBox:/home/filipe# ssh -v [email protected]
OpenSSH_5.9p1 Debian-5ubuntu1, OpenSSL 1.0.1 14 Mar 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to shell.cjb.net [216.194.70.6] port 22.
debug1: Connection established.
debug1: permanently_set_uid: 0/0
debug1: identity file /root/.ssh/identity type -1
debug1: identity file /root/.ssh/identity-cert type -1
debug1: identity file /root/.ssh/id_rsa type 1
debug1: Checking blacklist file /usr/share/ssh/blacklist.RSA-2048
debug1: Checking blacklist file /etc/ssh/blacklist.RSA-2048
debug1: identity file /root/.ssh/id_rsa-cert type -1
debug1: identity file /root/.ssh/id_dsa type -1
debug1: identity file /root/.ssh/id_dsa-cert type -1
debug1: Remote protocol version 2.0, remote software version
OpenSSH_5.8p2_hpn13v11 FreeBSD-20110503
debug1: match: OpenSSH_5.8p2_hpn13v11 FreeBSD-20110503 pat
OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.9p1 Debian-5ubuntu1
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: sending SSH2_MSG_KEX_ECDH_INIT
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1:
Server
host
key:
ECDSA
7c:da:68:f1:0f:02:13:77:f2:6c:ad:b4:82:b4:f1:fd
debug1: Host 'shell.cjb.net' is known and matches the ECDSA host key.
debug1: Found key in /root/.ssh/known_hosts:1
debug1: ssh_ecdsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Trying private key: /root/.ssh/identity
debug1: Offering RSA public key: /root/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug1: read PEM private key done: type RSA
debug1: Authentication succeeded (publickey).
Authenticated to shell.cjb.net ([216.194.70.6]:22).
debug1: channel 0: new [client-session]
debug1: Requesting [email protected]
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LANG = en_US.UTF-8
Last login: Sun Mar 17 11:26:17 2013 from 188.80.94.79
[fulano@shell ~]$ debug1: client_input_channel_req: channel 0 rtype
[email protected] reply 1
Facilmente se lêem neste texto todas as fases do
estabelecimento de uma sessão SSH. Vão desde a tentativa de
conexão às validações de ambas as entidades, respectivas
chaves, descoberta e acordo mutuo dos algoritmos e modos de
operação da ligação.
De salientar que, em ambientes derivados do Unix qualquer
explorador de ficheiros padrão já disponibiliza as
funcionalidades apresentadas para o FileZilla, acima descrito.
Essa é a razão por que qualquer profissional da área de
administração de sistemas informáticos prefere um ambiente
do género para desenvolver o seu trabalho.
Sílvio Pereira & Filipe Sousa
IX. CONCLUSÃO
Como se viu, este trabalho é resultado de um estudo minucioso
que exigiu, no decorrer do mesmo, muita, mas mesmo muita
análise pesquisa.
O desenvolvimento deste trabalho permitiu-nos adquirir novos
conhecimentos, e foi, apesar das dificuldades, deveras
entusiasmante realizá-lo.
Ao longo do documento procurou descrever-se com o máximo
de detalhe e fidelidade possível o protocolo SSH e algumas das
suas implementações. Dá-se como bem-sucedido este trabalho
se, no mínimo se tiver conseguido despertar a curiosidade do
leitor para o uso do protocolo em questão, que se acredita ser
de grande utilidade no dia-a-dia.
Por fim gostar-se-ia de deixar duas breves recomendações, que
constituem óptimos complementos de segurança na utilização
de um sistema informático distribuído. Nenhum software
consegue ser uma solução de segurança completa, existem
factores que vão para além de assegurar as comunicações, com
forte autenticação e encriptação que devem ser considerados.
O ambiente físico e o factor “homem” são muitas vezes vistos
como causadores de brechas de segurança. São dois exemplos
os a seguir descritos:
 Passwords
Palavras-chave fortes são políticas necessárias para que os
utilizadores não escolham palavras pequenas e fáceis de
adivinhar. Para além disso, devem ser definidas politicas que
incentivem à alteração regular de passwords e que de forma
alguma permitam a sua reutilização.
 Backups
São geralmente implementados em servidores e na maior parte
das vezes postos de parte quando se fala de computadores de
secretaria. Implementar procedimentos de backup em rede,
pode proteger e garantir a recuperação de informação
importante se o computador foi perdido, roubado ou
danificado.
A utilização do SSH junto, com boas políticas de segurança
permitirá utilizar económica, privada, efectiva e seguramente,
as redes públicas como a internet para que se possam fazer
comunicações do dia-a-dia de trabalho, com clientes e
colaboradores.
8
X. BIBLIOGRAFIA
[1] “http://legauss.blogspot.pt/2012/07/ssh-dicas-truques-eum-tutorial-sobre-o.html,” [Online]. [2] “http://docstore.mik.ua/orelly/networking_2ndEd/ssh.htm,
” [Online]. [3] “http://www.ibm.com/developerworks/aix/library/ausshsecurity/index.html,” [Online]. [4] “http://pt.wikipedia.org/wiki/Criptografia_de_chave_p
%C3%BAblica” [Online]. [5] msdn.com, “blogs.msdn.com,” [Online]. [6] http://pt.wikipedia.org/wiki/PuTTY. [Online].
[7] “http://filezilla-project.org/,” [Online]. [8] “http://pt.wikipedia.org/wiki/OpenSSH,” [Online]. [9] “http://www.hardware.com.br/tutoriais/dominando-ssh/,”
[Online].