Paper Files / Cloud
Segurança de Sistemas e Redes em 1986: Modelos Formais, Criptografia Clássica e Práticas de Proteção em Ambientes de Tempo Compartilhado
Em 1986, a segurança de sistemas computacionais já se apoiava em um arcabouço teórico robusto e em práticas operacionais consolidadas, particularmente em ambientes de tempo compartilhado e redes baseadas em TCP/IP e X.25. Neste trabalho, desenvolvemos uma síntese rigorosa entre modelos formais de controle de acesso, mecanismos concretos de sistemas operacionais e protocolos criptográficos então disponíveis. Partimos dos fundamentos estabelecidos pelo monitor de referência e pelos princípios de projeto seguro, articulando-os com modelos matemáticos de confidencialidade e integridade, como Bell–LaPadula, Biba e o reticulado de fluxo de informação de Denning. Formalizamos tais políticas por meio de invariantes de estado e relações de transição, discutindo a decidibilidade e limitações estruturais evidenciadas pelo modelo de Harrison–Ruzzo–Ullman. No plano criptográfico, analisamos o papel do DES e de seus modos de operação, bem como os sistemas de chave pública emergentes — Diffie–Hellman, RSA e ElGamal — e protocolos de autenticação como Needham–Schroeder e sua variante com carimbos de tempo de Denning–Sacco. Empregamos o modelo de atacante de Dolev–Yao, especificações em CSP e lógica temporal linear para esboçar propriedades de sigilo e autenticação verificáveis por técnicas algorítmicas disponíveis até 1986. Complementamos a análise teórica com um estudo de caso de fortificação de um laboratório UNIX típico da época, incluindo políticas de senhas, restrições de confiança, auditoria e segmentação de rede. Por fim, discutimos a integração entre requisitos do TCSEC e mecanismos efetivos de implementação, evidenciando como a composição adequada entre política, mecanismos e protocolos permite atingir garantias significativas de segurança dentro das limitações tecnológicas do período.
- Introduction
A consolidação de sistemas de tempo compartilhado ao longo das décadas de 1970 e 1980, associada à crescente interconexão de redes baseadas em TCP/IP e X.25, transformou a segurança computacional em um problema essencialmente sistêmico. Não mais se tratava apenas de proteger arquivos isolados, mas de garantir propriedades globais de confidencialidade, integridade e disponibilidade em ambientes multiusuário e distribuídos. Esse cenário exigiu a articulação entre políticas formais, mecanismos implementados no núcleo do sistema operacional, protocolos criptográficos e procedimentos administrativos disciplinados.
A literatura clássica estabeleceu princípios estruturantes que permanecem centrais até 1986, notadamente o conceito de monitor de referência, o princípio do menor privilégio, a economia de mecanismos e a necessidade de mediação completa (SALTZER; SCHROEDER, 1975). Tais princípios fundamentam a análise crítica de projetos de sistemas e orientam a formulação de modelos matemáticos de segurança, como Bell–LaPadula (BELL; LAPADULA, 1973), Biba (BIBA, 1977) e o modelo de reticulado de fluxo de informação (DENNING, 1976).
Neste trabalho, propomos uma integração rigorosa entre teoria e prática. Formalizamos políticas clássicas por meio de invariantes de estado e relações de transição; examinamos a verificação de protocolos sob o modelo de atacante de Dolev–Yao (DOLEV; YAO, 1983), utilizando CSP (HOARE, 1978) e lógica temporal (PNUELI, 1977); e descrevemos práticas concretas de endurecimento de sistemas UNIX e de administração de redes até 1986. Nosso compromisso metodológico é duplo: rigor formal e estrita coerência histórica.
- Contexto histórico e fundamentos até 1986
A década de 1970 estabeleceu as bases conceituais da segurança de sistemas. Anderson (1972) formalizou o conceito de monitor de referência como entidade lógica sempre invocada, à prova de violação e suficientemente pequena para ser verificada. Lampson (1973) introduziu o problema do confinamento, evidenciando limitações inerentes à prevenção de canais encobertos. Popek e Goldberg (1974) caracterizaram requisitos formais para virtualização segura, enquanto Harrison, Ruzzo e Ullman (1976) demonstraram a indecidibilidade geral da segurança em modelos de matriz de acesso.
Os princípios de projeto sistematizados por Saltzer e Schroeder (1975) — como separação de privilégios, mecanismos simples e falha segura — tornaram-se critérios normativos para avaliação de sistemas. O Multics serviu como laboratório empírico de implementação e avaliação (KARGER; SCHELL, 1974), enquanto o UNIX, descrito por Ritchie e Thompson (1974), difundiu-se amplamente em ambientes acadêmicos e industriais, demandando práticas de segurança progressivamente mais rigorosas (GRAMPP; MORRIS, 1984).
No domínio criptográfico, Diffie e Hellman (1976) inauguraram a criptografia de chave pública e a troca de chaves, seguidos por RSA (RIVEST; SHAMIR; ADLEMAN, 1978) e pelo padrão DES (NBS, 1977). Protocolos de autenticação simétrica e de chave pública, como Needham–Schroeder (1978), e aperfeiçoamentos com carimbos de tempo (DENNING; SACCO, 1981), ampliaram o repertório de mecanismos disponíveis.
No plano normativo, o Trusted Computer System Evaluation Criteria (TCSEC) do Departamento de Defesa dos Estados Unidos (DoD, 1983) estabeleceu classes de avaliação (C1 a A1), explicitamente relacionadas a políticas formais como Bell–LaPadula, consolidando a convergência entre teoria e prática.
- Modelos formais de segurança
3.1 Monitor de referência e matriz de acesso
Sejam $S$ o conjunto de sujeitos, $O$ o conjunto de objetos e $R$ o conjunto de direitos. Uma matriz de acesso é uma função $M: S \times O \to 2^R$. Uma operação $a = \langle s, o, r \rangle$ é autorizada se, e somente se, $r \in M(s,o)$ (HARRISON; RUZZO; ULLMAN, 1976).
O estado global do sistema pode ser representado por $q = \langle M, \sigma \rangle$, onde $\sigma$ inclui informações auxiliares (por exemplo, níveis de segurança). Uma transição $q \xrightarrow{a} q’$ é válida apenas se respeitar a política estabelecida. A indecidibilidade do problema geral de vazão de direitos implica que restrições estruturais e invariantes devem ser incorporados ao projeto.
3.2 Bell–LaPadula
Considere um reticulado $(\mathcal{L}, \sqsubseteq)$ de níveis de segurança. Cada sujeito $s$ e objeto $o$ recebe uma etiqueta $f_S(s)$ e $f_O(o)$. As propriedades fundamentais são:
- Simple security: leitura permitida se $f_O(o) \sqsubseteq f_S(s)$.
- Property $$: escrita permitida se $f_S(s) \sqsubseteq f_O(o)$.
Um invariante de confidencialidade pode ser expresso como:
$$ \forall \text{execuções } \pi, ; \textsf{flow}(o \to o’) \Rightarrow f_O(o) \sqsubseteq f_O(o’). $$
Essa formulação impede fluxos de informação que violem a ordem do reticulado (BELL; LAPADULA, 1973; DENNING, 1976).
3.3 Biba e integridade
O modelo de Biba define uma ordem de integridade $(\mathcal{I}, \preceq)$ dual à de confidencialidade. As regras são:
- No read down: leitura apenas se $f_O(o) \succeq f_S(s)$.
- No write up: escrita apenas se $f_S(s) \succeq f_O(o)$.
O objetivo é evitar contaminação de objetos de alta integridade por sujeitos de baixa integridade (BIBA, 1977).
3.4 Reticulados e composição
Denning (1976) demonstrou que políticas de fluxo podem ser modeladas por reticulados, com operações de junção $\sqcup$ e interseção $\sqcap$. A composição segura de operações requer monotonicidade:
$$ x \sqsubseteq y \Rightarrow x \sqcup z \sqsubseteq y \sqcup z. $$
Essa propriedade assegura que combinações de informações não violem restrições pré-estabelecidas.
- Mecanismos em sistemas operacionais
4.1 Multics
O Multics implementou anéis de proteção e segmentação com listas de controle de acesso detalhadas (KARGER; SCHELL, 1974). A Base Computacional Confiável (TCB) foi cuidadosamente delimitada, antecipando requisitos formais de classes B e A do TCSEC (DoD, 1983).
4.2 UNIX
O UNIX adota Controle de Acesso Discricionário com bits rwx para usuário, grupo e outros (RITCHIE; THOMPSON, 1974). O mecanismo setuid permite execução com privilégios elevados, exigindo análise criteriosa para evitar escaladas.
A segurança de senhas baseia-se em hashing com salt derivado de DES (MORRIS; THOMPSON, 1979). Práticas recomendadas incluem comprimento mínimo, proibição de palavras triviais e auditoria de tentativas de acesso.
Exemplo de endurecimento típico:
chmod 1777 /tmp
chmod o-w /etc /bin /usr/bin
chmod 600 /etc/passwd
find / -name .rhosts -exec rm -f {} \;
echo "vazio" > /etc/hosts.equiv
Essas medidas reduzem superfícies de ataque associadas a confiança implícita e permissões excessivas.
4.3 Comparação resumida
| Critério | Multics | UNIX (4BSD) | Hydra |
|---|---|---|---|
| Modelo predominante | MAC + DAC | DAC | Capacidades |
| Estrutura | Anéis e segmentos | Kernel monolítico | Núcleo por capacidades |
| Auditoria | Detalhada | Variável | Projetada no núcleo |
| Referência | (KARGER; SCHELL, 1974) | (GRAMPP; MORRIS, 1984) | (WULF et al., 1974) |
- Criptografia e protocolos
5.1 DES
O DES opera sobre blocos de 64 bits com chave efetiva de 56 bits (NBS, 1977). No modo CBC:
$$ c_i = E_k(m_i \oplus c_{i-1}), \quad c_0 = IV. $$
A escolha de $IV$ imprevisível é essencial para evitar padrões repetitivos (NBS, 1980).
5.2 Diffie–Hellman e RSA
No protocolo Diffie–Hellman:
$$ K = g^{ab} \mod p, $$
onde $a$ e $b$ são secretos (DIFFIE; HELLMAN, 1976).
No RSA:
$$ c \equiv m^e \pmod{n}, \quad m \equiv c^d \pmod{n}. $$
A segurança repousa na dificuldade da fatoração de $n = pq$ (RIVEST; SHAMIR; ADLEMAN, 1978).
5.3 Needham–Schroeder e Denning–Sacco
O protocolo Needham–Schroeder simétrico utiliza nonces para garantir frescor (NEEDHAM; SCHROEDER, 1978). Denning e Sacco (1981) introduziram carimbos de tempo para mitigar reuso de chaves comprometidas.
Sob o modelo de Dolev–Yao (1983), definimos sigilo de $K_{AB}$ como:
$$ G \neg \textsf{attacker_knows}(K_{AB}). $$
A verificação pode ser realizada em modelos finitos com lógica temporal (CLARKE; EMERSON; SISTLA, 1986).
- Segurança de redes até 1986
Os protocolos IP (RFC 791) e TCP (RFC 793) definem comunicação fim a fim (POSTEL, 1981a; 1981b). SMTP (RFC 821) estrutura o correio eletrônico (POSTEL, 1982). DNS foi especificado em 1983 (MOCKAPETRIS, 1983a; 1983b).
Práticas de perímetro incluem filtragem estática em gateways e restrição de serviços:
Permitir: tcp dst port 25 para mail-gw
Permitir: tcp dst port 23 para host específico
Negar: tcp dst port 512-514 exceto rede interna autorizada
Negar: udp port 69 na borda
A auditoria baseia-se em logs e inspeção manual (ANDERSON, 1980).
- Vírus e programas autorreplicantes
Cohen (1984) demonstrou formalmente a dificuldade de detecção geral de vírus. Shoch e Hupp (1982) analisaram worms experimentais em redes internas. Medidas defensivas incluem controle de mídia removível, verificação de checksums e limitação de privilégios.
- Estudo de caso: laboratório UNIX
Em um VAX com 4.2BSD, recomenda-se:
- Senhas robustas e rotação periódica.
- Remoção de .rhosts.
- Restrição de su ao console.
- Exportações NFS em modo leitura sempre que possível (SANDBERG et al., 1985).
- Auditoria semanal de logs:
grep -i "bad password" /usr/adm/messages | sort | uniq -c | sort -nr
Indicadores de conformidade incluem estabilidade de checksums e redução de tentativas fracassadas.
- Integração entre política, mecanismos e protocolos
A composição segura exige que:
- O sistema operacional preserve invariantes de fluxo.
- O protocolo preserve sigilo e autenticação.
- A auditoria assegure responsabilização.
Se $S$ satisfaz não interferência e $P$ satisfaz sigilo de sessão, então a composição $S \circ P$ mantém separação entre domínios classificados e chaves de sessão, assumindo implementação correta das primitivas.
- Conclusão
Até 1986, a segurança de sistemas e redes já combinava fundamentos matemáticos sólidos e práticas operacionais maduras. Modelos formais como Bell–LaPadula e Biba oferecem semântica precisa para políticas; sistemas como Multics e UNIX demonstram a importância de mecanismos adequados e auditoria; e a criptografia moderna fornece instrumentos eficazes para autenticação e sigilo.
A integração coerente entre política, mecanismos e protocolos — validada por métodos formais disponíveis à época — constitui o núcleo de uma estratégia de segurança tecnicamente fundamentada e historicamente consistente com o estado da arte de 1986.
References
ANDERSON, J. P. Computer Security Technology Planning Study. Bedford, MA: Air Force Electronic Systems Division, 1972. Disponível em: https://apps.dtic.mil/sti/pdfs/AD0756042.pdf
ANDERSON, J. P. Computer Security Threat Monitoring and Surveillance. Fort Washington, PA: James P. Anderson Co., 1980. Disponível em: https://apps.dtic.mil/sti/pdfs/ADA099597.pdf
BELL, D. E.; LAPADULA, L. J. Secure Computer Systems: Mathematical Foundations. Bedford, MA: MITRE, 1973. Disponível em: https://apps.dtic.mil/sti/pdfs/AD0766051.pdf
BIBA, K. J. Integrity Considerations for Secure Computer Systems. Bedford, MA: MITRE, 1977. Disponível em: https://apps.dtic.mil/sti/pdfs/ADA039324.pdf
BLUM, M.; MICALI, S. How to Generate Cryptographically Strong Sequences of Pseudo Random Bits. SIAM Journal on Computing, v. 13, n. 4, p. 850–864, 1984. Disponível em: https://doi.org/10.1137/0213053
CLARKE, E. M.; EMERSON, E. A.; SISTLA, A. P. Automatic Verification of Finite-State Concurrent Systems Using Temporal Logic. ACM Transactions on Programming Languages and Systems, v. 8, n. 2, p. 244–263, 1986. Disponível em: https://doi.org/10.1145/5397.5399
COHEN, F. Computer Viruses—Theory and Experiments. 1984. Disponível em: https://all.net/books/virus/viruses.html
DENNING, D. E. A Lattice Model of Secure Information Flow. Communications of the ACM, v. 19, n. 5, p. 236–243, 1976. Disponível em: https://doi.org/10.1145/360051.360056
DENNING, D. E.; SACCO, G. M. Timestamps in Key Distribution Protocols. Communications of the ACM, v. 24, n. 8, p. 533–536, 1981. Disponível em: https://doi.org/10.1145/358790.358797
DIFFIE, W.; HELLMAN, M. E. New Directions in Cryptography. IEEE Transactions on Information Theory, v. 22, n. 6, p. 644–654, 1976. Disponível em: https://doi.org/10.1109/TIT.1976.1055638
DOLEV, D.; YAO, A. On the Security of Public Key Protocols. IEEE Transactions on Information Theory, v. 29, n. 2, p. 198–208, 1983. Disponível em: https://doi.org/10.1109/TIT.1983.1056650
UNITED STATES. Department of Defense. Trusted Computer System Evaluation Criteria (DoD 5200.28-STD). Washington, DC, 1983.
ELGAMAL, T. A Public Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms. IEEE Transactions on Information Theory, v. 31, n. 4, p. 469–472, 1985. Disponível em: https://doi.org/10.1109/TIT.1985.1057074
GRAMPP, F. T.; MORRIS, R. H. UNIX Operating System Security. Bell System Technical Journal, v. 63, n. 8, p. 1649–1672, 1984. Disponível em: https://archive.org/details/bstj63-8-1649
HARRISON, M. A.; RUZZO, W. L.; ULLMAN, J. D. Protection in Operating Systems. Communications of the ACM, v. 19, n. 8, p. 461–471, 1976. Disponível em: https://doi.org/10.1145/360303.360333
HOARE, C. A. R. Communicating Sequential Processes. Communications of the ACM, v. 21, n. 8, p. 666–677, 1978. Disponível em: https://doi.org/10.1145/359576.359585
KARGER, P. A.; SCHELL, R. R. Multics Security Evaluation: Vulnerability Analysis. Bedford, MA: AFESD, 1974. Disponível em: https://apps.dtic.mil/sti/pdfs/ADA018869.pdf
LAMPORT, L. Password Authentication with Insecure Communication. Communications of the ACM, v. 24, n. 11, p. 770–772, 1981. Disponível em: https://doi.org/10.1145/358790.358798
LAMPSON, B. W. A Note on the Confinement Problem. Communications of the ACM, v. 16, n. 10, p. 613–615, 1973. Disponível em: https://doi.org/10.1145/362375.362389
MOCKAPETRIS, P. Domain Names—Concepts and Facilities. RFC 882, 1983. Disponível em: https://www.rfc-editor.org/rfc/rfc882
MOCKAPETRIS, P. Domain Names—Implementation and Specification. RFC 883, 1983. Disponível em: https://www.rfc-editor.org/rfc/rfc883
MORRIS, R.; THOMPSON, K. Password Security: A Case History. Communications of the ACM, v. 22, n. 11, p. 594–597, 1979. Disponível em: https://doi.org/10.1145/359168.359172
NBS. Data Encryption Standard (FIPS PUB 46). Washington, DC, 1977. Disponível em: https://nvlpubs.nist.gov/nistpubs/Legacy/FIPS/fipspub46.pdf
NBS. DES Modes of Operation (FIPS PUB 81). Washington, DC, 1980. Disponível em: https://nvlpubs.nist.gov/nistpubs/Legacy/FIPS/fipspub81.pdf
PNUELI, A. The Temporal Logic of Programs. In: FOCS, 1977. Disponível em: https://doi.org/10.1109/SFCS.1977.32
POSTEL, J. Internet Protocol. RFC 791, 1981a. Disponível em: https://www.rfc-editor.org/rfc/rfc791
POSTEL, J. Transmission Control Protocol. RFC 793, 1981b. Disponível em: https://www.rfc-editor.org/rfc/rfc793
POSTEL, J. Simple Mail Transfer Protocol. RFC 821, 1982. Disponível em: https://www.rfc-editor.org/rfc/rfc821
RITCHIE, D. M.; THOMPSON, K. The UNIX Time-Sharing System. Communications of the ACM, v. 17, n. 7, p. 365–375, 1974. Disponível em: https://doi.org/10.1145/361011.361061
RIVEST, R. L.; SHAMIR, A.; ADLEMAN, L. A Method for Obtaining Digital Signatures and Public-Key Cryptosystems. Communications of the ACM, v. 21, n. 2, p. 120–126, 1978. Disponível em: https://doi.org/10.1145/359340.359342
SANDBERG, R.; GOLDBERG, D.; KLEIMAN, S.; WALSH, D.; LYON, B. Design and Implementation of the Sun Network Filesystem. In: USENIX SUMMER CONFERENCE, 1985, Portland. Proceedings […]. Berkeley, CA: USENIX Association, 1985.
SALTZER, J. H.; SCHROEDER, M. D. The Protection of Information in Computer Systems. Proceedings of the IEEE, v. 63, n. 9, p. 1278–1308, 1975. Disponível em: https://doi.org/10.1109/PROC.1975.9939
SHOCH, J. F.; HUPP, J. A. The “Worm” Programs—Early Experience with a Distributed Computation. Communications of the ACM, v. 25, n. 3, p. 172–180, 1982. Disponível em: https://doi.org/10.1145/358462.358488
WULF, W. A. et al. HYDRA: The Kernel of a Multiprocessor Operating System. Communications of the ACM, v. 17, n. 6, p. 337–345, 1974. Disponível em: https://doi.org/10.1145/361011.361070