SSH (Secure Shell)

Objetivo: Gerir sessões interativas sobre TCP/IP

Inicialmente desenhado para substituir a aplicação telnet

Adicionado suporte para outras funcionalidades

  • Execução de comandos remotos

  • Transferência de ficheiros

  • Encapsulamento e transferência de pacotes

Mecanismos de Segurança

Confidencialidade e integridade das comunicações

  • Distribuição de chaves

Autenticação das entidades intervenientes

  • Servidores /Sistemas

  • Clientes

  • Suportado por vários métodos (Senhas, chaves assimétricas, etc...)

Auth Mechs

Servidor: Um par de chaves assimétricas

Criadas na instalação do software e não certificadas

Clientes armazenam estas chaves entre sessões

  • Em algum ambiente “seguro”. Tipicamente a home

  • Se a chave se alterar o utente é notificado

    • Servidor pode ter tornado a gerar a chave

    • Pode ser um servidor diferente (MITM)

    • Utente pode recusar ligar-se

Clientes: Autenticação parametrizável

Omissão: Utilizador e Senha

Outros:

  • Utilizador e chaves assimétricas

    • Clientes pré-instalam chave pública no servidor

  • Integração com PAM para outros métodos (Ex, OTP)

Chaves de longa duração em /etc/ssh/

Privada: ssh_host_rsa_key

Pública: ssh_host_rsa_key.pub

Lista de números primos

/etc/sshd/moduli

Utilizados para estabelecer negociações DH com os clientes

Servidor por restringir clientes e utilizadores

Pode interagir com sistemas existentes

  • PAM: Pluggable Authentication Modules

  • KRB: Kerberos

  • GSSAPI: Generic Security Services Application Program Interface

Informação pessoal de cada utilizador em ~/.ssh

  • Tanto no cliente como no servidor

Cliente:

Chaves para autenticação por chaves assimétricas

config: Altera o comportamento para um servidor ou todos

Servidor

authorized_keys: armazena chaves públicas do cliente

Last updated