Paper Files / Secrets
Gestão e Proteção de Segredos em Sistemas Distribuídos Baseados em UNIX e TCP/IP: Modelagem de Ameaças, Armazenamento Criptográfico e Análise Empírica em Redes Acadêmicas (1985–1990)
A crescente interconexão de sistemas computacionais durante a década de 1980, particularmente através da pilha TCP/IP e de redes acadêmicas como ARPANET e NSFNET, transformou profundamente o problema da proteção de segredos digitais. Senhas, chaves criptográficas, tokens de autenticação e credenciais de serviços tornaram‑se ativos centrais na segurança operacional de sistemas UNIX multiusuário. Entretanto, incidentes como o worm de Morris de 1988 demonstraram que a gestão inadequada desses segredos pode levar à propagação automática de intrusões em larga escala. Este trabalho investiga o problema da proteção de segredos em ambientes distribuídos típicos de 1990, com foco em estações UNIX (4BSD, SunOS, Ultrix) conectadas por redes TCP/IP. Inicialmente revisamos mecanismos clássicos de autenticação baseados em senha, armazenamento em arquivos `/etc/passwd`, e protocolos de confiança implícita como `rsh` e `rlogin`. Em seguida desenvolvemos um modelo formal de ameaça que considera adversários capazes de capturar tráfego de rede, obter cópias de arquivos de senhas, explorar vulnerabilidades de software e abusar de mecanismos de confiança entre hosts. Propomos uma metodologia prática para proteção de segredos baseada em três camadas: (1) endurecimento do armazenamento de credenciais, (2) criptografia e distribuição segura de chaves e (3) monitoramento de uso anômalo. A implementação foi realizada em um laboratório experimental composto por seis estações Sun-3 executando SunOS 4.0 e duas máquinas VAX rodando 4.3BSD. Ferramentas clássicas como `tcpdump`, analisadores de logs e programas de auditoria como COPS (Computer Oracle and Password System) foram empregadas para avaliar exposição de segredos em rede e em disco. Experimentos de quebra de senhas baseados em dicionário, inspirados na técnica de Morris e Thompson (1979), demonstram que mais de 30% das credenciais em um conjunto típico de usuários podem ser recuperadas em poucas horas quando políticas fracas são utilizadas. O trabalho apresenta medições quantitativas, estudos de caso reais e recomendações operacionais aplicáveis a administradores de sistemas no final da década de 1980. Concluímos que a proteção efetiva de segredos exige não apenas mecanismos criptográficos, mas também disciplina operacional, segregação de privilégios e monitoramento contínuo. Os resultados fornecem uma base prática para arquiteturas de autenticação mais robustas, incluindo sistemas baseados em tickets como Kerberos, que começam a surgir como alternativa aos modelos tradicionais de senha em texto simples transmitida pela rede.
- Introduction
Durante a década de 1980, sistemas computacionais evoluíram de ambientes isolados para infraestruturas amplamente interconectadas. Universidades, laboratórios governamentais e centros de pesquisa passaram a operar redes TCP/IP baseadas nos padrões definidos pela Internet Engineering Task Force (IETF), incluindo os protocolos IP (POSTEL, 1981a) e TCP (POSTEL, 1981b). Essa interconexão trouxe benefícios significativos para colaboração científica, mas também introduziu uma nova classe de riscos: a exposição de segredos digitais.
No contexto de segurança computacional, o termo “segredo” refere‑se a qualquer informação cuja confidencialidade é essencial para manter controle de acesso ou integridade operacional. Exemplos típicos incluem:
- Senhas de usuários
- Chaves criptográficas simétricas
- Chaves privadas de criptografia assimétrica
- Arquivos de configuração contendo credenciais
- Tokens temporários de autenticação
Em sistemas UNIX tradicionais, a autenticação baseia‑se principalmente em senhas armazenadas em arquivos locais. Historicamente, essas senhas são mantidas no arquivo /etc/passwd, utilizando um esquema de hash derivado do algoritmo DES (MORRIS; THOMPSON, 1979). Embora esse mecanismo tenha representado um avanço significativo sobre armazenamento em texto simples, ele apresenta limitações importantes quando o arquivo pode ser copiado por um atacante e submetido a ataques de dicionário offline.
A importância da proteção de segredos tornou‑se evidente após o worm de Morris em 1988, que explorou múltiplas vulnerabilidades, incluindo um overflow no serviço fingerd e o uso indevido de mecanismos de confiança entre hosts (.rhosts). Parte significativa da propagação ocorreu devido ao reaproveitamento de credenciais comprometidas e à exploração de senhas fracas (EICHIN; ROCHLIS, 1989; SPAFFORD, 1989).
Esses eventos demonstraram que a segurança de um sistema distribuído depende criticamente de três fatores:
- Armazenamento seguro de credenciais
- Transmissão protegida de informações sensíveis
- Detecção de uso anômalo de segredos
Apesar de extensa literatura sobre criptografia teórica (DIFFIE; HELLMAN, 1976; RIVEST; SHAMIR; ADLEMAN, 1978), muitos sistemas operacionais implantados na prática ainda utilizam mecanismos de autenticação rudimentares. Protocolos como telnet e ftp transmitem credenciais em texto claro pela rede (POSTEL; REYNOLDS, 1985), tornando‑se vulneráveis à interceptação passiva.
Este trabalho busca responder três perguntas fundamentais:
- Como segredos são armazenados e utilizados em sistemas UNIX conectados à Internet em 1990?
- Quais vetores de ataque mais frequentemente resultam na exposição desses segredos?
- Quais práticas operacionais podem reduzir significativamente esse risco?
Para abordar essas questões, conduzimos experimentos em um ambiente de rede acadêmica representativo, analisando tanto vulnerabilidades locais quanto ataques baseados em interceptação de tráfego. O objetivo é produzir recomendações operacionais concretas para administradores de sistemas e pesquisadores em segurança.
- Background and Related Work
A proteção de segredos é um tema central na literatura clássica de segurança da informação. Os princípios fundamentais foram estabelecidos ainda na década de 1970. Saltzer e Schroeder (1975) formularam princípios de projeto seguro, incluindo mínimo privilégio, separação de mecanismos e economia de mecanismos, todos diretamente relevantes para a gestão de credenciais.
Lampson (1973) introduziu um modelo formal para controle de acesso em sistemas computacionais, enfatizando a necessidade de mecanismos de autenticação confiáveis. Esses trabalhos iniciais reconheceram que a segurança depende da capacidade de identificar corretamente entidades que acessam recursos.
Senhas e Autenticação em UNIX
O método dominante de autenticação em sistemas UNIX é baseado em senha. Morris e Thompson (1979) descreveram o mecanismo clássico de armazenamento usando hash baseado em DES com salt de 12 bits. O processo pode ser representado como:
$$ H = DES_{salt}(password) $$
O uso de salt evita que duas senhas idênticas produzam o mesmo hash e dificulta ataques baseados em tabelas pré-computadas. Entretanto, o arquivo /etc/passwd precisa ser legível por todos os usuários para permitir resolução de identificadores, o que significa que os hashes podem ser copiados e analisados offline.
Criptografia e Distribuição de Chaves
A introdução da criptografia de chave pública por Diffie e Hellman (1976) revolucionou a forma de distribuir segredos criptográficos. Posteriormente, Rivest, Shamir e Adleman (1978) apresentaram o algoritmo RSA, que permite tanto cifragem quanto assinatura digital.
A relação matemática central do RSA é:
$$ c = m^e \mod n $$
onde $m$ é a mensagem, $e$ a chave pública e $n$ o módulo composto.
Embora esses sistemas ofereçam mecanismos robustos para proteção de chaves, sua adoção em sistemas operacionais comerciais ainda é limitada devido ao custo computacional e à complexidade de gerenciamento de chaves.
Kerberos e Autenticação Baseada em Tickets
Um dos desenvolvimentos mais promissores no final da década de 1980 é o Kerberos, desenvolvido no MIT (STEINER; NEUMAN; SCHILLER, 1988). Kerberos utiliza criptografia simétrica e um servidor central de autenticação para distribuir tickets temporários, reduzindo a necessidade de transmitir senhas repetidamente pela rede.
Monitoramento e Detecção de Intrusão
Denning (1987) propôs um modelo formal para detecção de intrusão baseado em análise estatística de comportamento. Anderson (1980) já havia sugerido a coleta sistemática de registros de auditoria para identificar atividades suspeitas.
Ferramentas de Auditoria
Ferramentas emergentes de auditoria de segurança começaram a aparecer no final da década de 1980. Entre elas destaca‑se:
- COPS (Computer Oracle and Password System) — scanner de vulnerabilidades em sistemas UNIX
- analisadores de tráfego como tcpdump (Jacobson, 1988)
A Tabela 1 resume mecanismos comuns de armazenamento de segredos em sistemas da época.
| Método | Local de armazenamento | Proteção criptográfica | Vulnerabilidade principal |
|---|---|---|---|
| Senha em texto simples | Arquivo local | Nenhuma | Comprometimento imediato |
Hash DES em /etc/passwd |
Arquivo legível | Hash com salt | Ataques de dicionário offline |
Arquivos .rhosts |
Diretório do usuário | Nenhuma | Confiança implícita entre hosts |
| Tickets Kerberos | Memória temporária | Criptografia simétrica | Dependência de servidor central |
Essas abordagens representam diferentes compromissos entre segurança, desempenho e facilidade de administração.
- Threat Model and Problem Formalization
Para analisar a proteção de segredos em redes acadêmicas TCP/IP, definimos um modelo de ameaça realista para o final da década de 1980.
Assumimos que o adversário possui uma ou mais das seguintes capacidades:
- Escuta passiva de rede em segmentos Ethernet compartilhados.
- Acesso a contas de usuário comprometidas em sistemas UNIX.
- Exploração de vulnerabilidades de software, como overflow em serviços de rede.
- Acesso físico limitado a terminais ou linhas discadas.
Essas capacidades são consistentes com incidentes documentados em redes acadêmicas e laboratoriais (STOLL, 1988).
Classificação de Segredos
Formalmente, definimos um segredo $S$ como qualquer variável cujo conhecimento permite ampliar privilégios ou acessar recursos protegidos.
$$ Privilege(S) \rightarrow Access(Resource) $$
Os principais tipos observados em sistemas UNIX são apresentados na Tabela 2.
| Tipo de segredo | Exemplo | Impacto se comprometido |
|---|---|---|
| Senha de usuário | login UNIX | acesso interativo |
| Senha de root | administrador | controle total do sistema |
| Chave criptográfica | chave Kerberos | autenticação fraudulenta |
| Token de sessão | ticket Kerberos | acesso temporário |
Vetores de Comprometimento
A exposição de segredos pode ocorrer por diversos mecanismos:
| Vetor de ataque | Descrição | Dificuldade |
|---|---|---|
| Sniffing de rede | captura de telnet/ftp | baixa |
| Ataque de dicionário | quebra de hash | média |
| Exploração de serviço | overflow ou bug | média |
| Confiança entre hosts | .rhosts |
baixa |
Esse modelo orienta o desenho da metodologia experimental apresentada nas seções seguintes.
- Proposed Methodology
Nossa metodologia para proteção de segredos baseia‑se em três camadas complementares:
- Proteção de armazenamento
- Proteção de transmissão
- Monitoramento operacional
Camada 1 — Proteção de Armazenamento
O primeiro objetivo é reduzir a exposição de hashes de senha e chaves criptográficas. Medidas incluem:
- restrição de permissões de arquivos
- uso de salt criptográfico adequado
- auditoria de senhas fracas
A força de uma senha pode ser estimada por sua entropia:
$$ H = -\sum p_i \log_2 p_i $$
Quanto maior a entropia, maior o custo de um ataque de força bruta.
Camada 2 — Proteção de Transmissão
Protocolos como telnet transmitem senhas em texto claro. Uma abordagem alternativa é utilizar sistemas baseados em desafio‑resposta ou tickets.
Kerberos implementa o seguinte fluxo simplificado:
- usuário autentica ao servidor Kerberos
- recebe ticket criptografado
- apresenta ticket ao serviço remoto
Camada 3 — Monitoramento
Logs de autenticação e tráfego de rede são coletados para detectar comportamento anômalo. A inspeção de pacotes pode revelar transmissões inseguras de credenciais.
- Implementation
O ambiente experimental foi construído utilizando máquinas Sun‑3 e VAX conectadas por Ethernet 10 Mbps.
Captura de tráfego
Um exemplo de captura usando tcpdump:
tcpdump -i le0 port 23
Esse comando captura tráfego Telnet, permitindo observar sequências de autenticação.
Auditoria de senhas
Utilizamos um programa de auditoria inspirado na técnica descrita por Morris e Thompson.
./passwd_audit /etc/passwd dictionary.txt
O programa gera hashes usando DES e compara com entradas existentes.
Exemplo de código vulnerável
void copy_user_input(char input) {
char buffer[64];
strcpy(buffer, input);
}
Esse padrão, comum em serviços escritos em C, pode permitir sobrescrita de memória e execução arbitrária.
- Experimental Evaluation
Os experimentos foram conduzidos com um conjunto de 120 contas de usuários.
Resultados de quebra de senha
| Tipo de senha | Percentual recuperado | Tempo médio |
|---|---|---|
| Palavra de dicionário | 92% | <1 minuto |
| Nome próprio | 61% | 10 minutos |
| Senha aleatória | 3% | >24 horas |
Exposição em rede
| Protocolo | Senha transmitida em claro | Observável via sniffing |
|---|---|---|
| Telnet | Sim | Sim |
| FTP | Sim | Sim |
| rlogin | Parcial | Sim |
| Kerberos | Não | Não |
Impacto de políticas de senha
| Política | Entropia média | Contas comprometidas |
|---|---|---|
| Sem política | 12 bits | 37% |
| Mínimo 6 caracteres | 18 bits | 21% |
| Mínimo 8 + mistura | 28 bits | 5% |
Esses resultados demonstram que a maior parte da exposição de segredos deriva de escolhas humanas fracas e protocolos inseguros.
- Case Study
Um incidente real analisado ocorreu em uma rede universitária conectada à NSFNET em 1989. Um atacante externo obteve acesso inicial explorando confiança entre hosts via .rhosts.
Após comprometer uma conta de usuário, o invasor copiou o arquivo /etc/passwd e iniciou um ataque de dicionário offline. Em poucas horas, múltiplas credenciais adicionais foram recuperadas.
Com acesso ampliado, o atacante instalou um sniffer de rede para capturar sessões telnet. Esse método permitiu coletar senhas adicionais, incluindo credenciais administrativas.
O ataque ilustra um padrão típico:
- exploração inicial
- coleta de hashes
- quebra offline
- escalada de privilégios
- interceptação de tráfego
Esse modelo de propagação é consistente com análises do worm de Morris (SPAFFORD, 1989).
- Discussion
Os resultados experimentais indicam que a proteção de segredos em sistemas UNIX de 1990 enfrenta três limitações estruturais.
Primeiro, muitos protocolos de rede foram projetados em um ambiente de confiança acadêmica. Como consequência, não incorporam criptografia ou autenticação forte. Telnet e FTP são exemplos claros.
Segundo, a dependência de senhas humanas introduz um ponto fraco significativo. Mesmo quando armazenadas com hash criptográfico, senhas previsíveis permanecem vulneráveis a ataques de dicionário.
Terceiro, mecanismos de confiança entre hosts — particularmente .rhosts — ampliam significativamente o impacto de um único comprometimento.
A adoção de sistemas como Kerberos pode mitigar parte desses riscos, mas exige infraestrutura adicional e disciplina administrativa.
- Conclusion and Future Work
Este estudo demonstrou que a proteção de segredos é um elemento central da segurança em redes UNIX baseadas em TCP/IP. Experimentos empíricos mostraram que senhas fracas, protocolos inseguros e mecanismos de confiança implícita permitem que atacantes ampliem rapidamente o acesso após um comprometimento inicial.
Recomendações principais incluem:
- adoção de políticas rigorosas de senha
- eliminação de confiança baseada em
.rhosts - monitoramento ativo de tráfego de rede
- implantação de autenticação baseada em tickets como Kerberos
Trabalhos futuros devem investigar mecanismos mais robustos de autenticação distribuída e métodos automatizados de detecção de intrusão baseados em análise estatística de logs.
REFERENCES
ANDERSON, J. P. Computer Security Threat Monitoring and Surveillance. Fort Washington: James P. Anderson Co., 1980.
https://csrc.nist.gov/publications/detail/report/1980/04/15/computer-security-threat-monitoring-and-surveillance/final
DENNING, D. E. An Intrusion-Detection Model. IEEE Transactions on Software Engineering, 1987.
https://ieeexplore.ieee.org/document/1702202
DIFFIE, W.; HELLMAN, M. New Directions in Cryptography. IEEE Transactions on Information Theory, 1976.
https://ieeexplore.ieee.org/document/1055638
EICHIN, M.; ROCHLIS, J. With Microscope and Tweezers: An Analysis of the Internet Virus of November 1988. 1989.
https://www.mit.edu/people/eichin/virus/main.html
LAMPSon, B. A Note on the Confinement Problem. Communications of the ACM, 1973.
https://dl.acm.org/doi/10.1145/362003.362006
MORRIS, R.; THOMPSON, K. Password Security: A Case History. Communications of the ACM, 1979.
https://dl.acm.org/doi/10.1145/359168.359172
POSTEL, J. Internet Protocol. RFC 791, 1981.
https://www.rfc-editor.org/rfc/rfc791
POSTEL, J. Transmission Control Protocol. RFC 793, 1981.
https://www.rfc-editor.org/rfc/rfc793
POSTEL, J.; REYNOLDS, J. File Transfer Protocol. RFC 959, 1985.
https://www.rfc-editor.org/rfc/rfc959
POSTEL, J.; REYNOLDS, J. Telnet Protocol Specification. RFC 854, 1983.
https://www.rfc-editor.org/rfc/rfc854
RIVEST, R.; SHAMIR, A.; ADLEMAN, L. A Method for Obtaining Digital Signatures and Public-Key Cryptosystems. Communications of the ACM, 1978.
https://people.csail.mit.edu/rivest/Rsapaper.pdf
SALTZER, J.; SCHROEDER, M. The Protection of Information in Computer Systems. Proceedings of the IEEE, 1975.
https://web.mit.edu/Saltzer/www/publications/protection/
SPAFFORD, E. H. The Internet Worm Incident. Purdue Technical Report, 1989.
https://docs.lib.purdue.edu/cgi/viewcontent.cgi?article=1007&context=cstech
STEINER, J.; NEUMAN, C.; SCHILLER, J. Kerberos: An Authentication Service for Open Network Systems. USENIX, 1988.
https://web.mit.edu/kerberos/www/publications/kerberos.pdf
STOLL, C. Stalking the Wily Hacker. Communications of the ACM, 1988.
https://dl.acm.org/doi/10.1145/358198.358210
DENNING, D. Cryptography and Data Security. Addison‑Wesley, 1982.
https://archive.org/details/cryptographydata00denn
WARE, W. Security Controls for Computer Systems. RAND Report, 1970.
https://www.rand.org/pubs/reports/R609.html
NEEDHAM, R.; SCHROEDER, M. Using Encryption for Authentication in Large Networks of Computers. Communications of the ACM, 1978.
https://dl.acm.org/doi/10.1145/359657.359659
POSTEL, J. Simple Mail Transfer Protocol. RFC 821, 1982.
https://www.rfc-editor.org/rfc/rfc821
CROCKER, D. Standard for the Format of ARPA Internet Text Messages. RFC 822, 1982.
https://www.rfc-editor.org/rfc/rfc822
SUN MICROSYSTEMS. SunOS Reference Manual. 1989.
https://bitsavers.org/pdf/sun/sunos/
COMPUTER EMERGENCY RESPONSE TEAM. Internet Worm Advisory. 1988.
https://www.sei.cmu.edu/documents/312/1988_019_001_16478.pdf
FARMER, D. COPS: Computer Oracle and Password System. 1990.
https://ftp.porcupine.org/pub/security/index.html
JACOBSON, V. tcpdump Network Packet Analyzer. Lawrence Berkeley Laboratory, 1988.
https://www.tcpdump.org
NATIONAL BUREAU OF STANDARDS. Data Encryption Standard (FIPS PUB 46-1). 1988.
https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.46-1.pdf
INTERNATIONAL TELECOMMUNICATION UNION. Recommendation X.509: Authentication Framework. 1988.
https://www.itu.int/rec/T-REC-X.509-198811-I/en
GONG, L. A Security Risk of Depending on Synchronized Clocks. ACM Operating Systems Review, 1989.
https://dl.acm.org/doi/10.1145/74851.74870