← Voltar aos artigos

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

CloudPT

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.

  1. 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.

  1. 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.

  1. 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:

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:

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.

  1. 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)
  1. 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).

  1. 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).

  1. 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.

  1. Estudo de caso: laboratório UNIX

Em um VAX com 4.2BSD, recomenda-se:

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.

  1. Integração entre política, mecanismos e protocolos

A composição segura exige que:

  1. O sistema operacional preserve invariantes de fluxo.
  2. O protocolo preserve sigilo e autenticação.
  3. 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.

  1. 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