SEG
©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados.
1
Paradigmas da Computação e
Comunicação Segura
Sumário: Paradigmas de Segurança
SEG ©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 3
TCB
Trusted Computing Base
TCB - Trusted Computing Base
• Em português Base de Computação Segura
• Subconjunto do sistema que é
inerentemente
seguro
(imune a intrusões)
• Uma TCB geralmente é usada para executar
mecanismos críticos de segurança
– Ex. controlo de acesso
SEG ©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 5
TCB - Trusted Computing Base
Propriedades desejáveis para uma TCB:
•
Interposição
: a TCB deve estar localizada de forma a
que não seja possível aceder aos recursos
protegidos sem passar por ela
Não se pode dar a volta à TCB•
Blindagem
: a TCB é construída de maneira a que
esteja protegida contra acessos não autorizados
Não se pode causar uma intrusão na TCB
•
Validação
: a funcionalidade da TCB deve ser
verificável
A TCB deve ser simples e pequena
TCB
Exemplo de Uso da TCB: Monitor de Referência
• O Monitor de Referência
– Está entreposto entre os utilizadores e os recursos,
– Executa as rotinas críticas que garantem acesso aos recursos
apenas a utilizadores autorizados
• Obviamente, o Monitor de Referência precisa ser
imune a intrusões
– Caso contrário, os mecanismos de segurança vão falhar
Utilizador Monitor de Recurso
SEG ©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 7
Exemplo de Uso da TCB: Firewall
• A Firewall
– Localiza-se entre duas redes
– Intercepta os pacotes que vão de uma rede a outra e executa as rotinas
criticas que determinam quais pacotes passam (regras de filtragem)
• Obviamente, o firewall precisa ser a imune a intrusões
– Caso contrario, ele será o primeiro componente do sistema a ser
comprometido (death-of-sentry symptom)
Server External Network (e.g. Internet) De-militarized Zone (DMZ) Server Server Inner Firewall Proxies Internal Network Packet Filter System (PFS) Outer Firewall Router TCB TCB
Exemplo de Uso de TCB:
“Trusted Components” ou “Trusted Third Parties”
OS cm Host 2 Host 1 OS s1 OS Host n OS s2 sn OS c1 CLIENTS SERVERS TTCB Local TTCB Payload Network Local TTCB Local TTCB
• O Trusted Component ou Trusted Third Party
– Pode executar funções de modo confiável (trustworthy)
• Obviamente, o TC/TTP precisa ser a imune a intrusões
SEG ©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 9
Concretização de uma TCB
• Soluções usualmente consideradas:
– Núcleo Seguro:
construir o núcleo do sistema operativo de
raiz tendo como objectivo a segurança
– Adições de Segurança (Núcleo Securizado)
: partir de um
sistema operativo comum e em seguida adicionar segurança
através da reconstrução de alguns componentes, ou através
de uma reconfiguração do sistema
• Os aspectos mais importantes em que as
duas soluções diferem são:
– Cobertura: “A TCB é mesmo inviolável?”
– Preço: “O custo vale o benefício?”
Concretização de uma TCB
• Núcleo Seguro:
– Formalmente especificado e provado
– Conjunto de funções que concretizam política de controlo de acesso
bem definidas
• Núcleo Securizado:
– Definição de uma política de controlo de acesso – Definição de interfaces de acesso ao sistema
– Selecção de um subconjunto de funções de um núcleo existente – Nunca se consegue separar totalmente funções críticas das outras
• Núcleos securizados são muito mais susceptíveis a
SEG
©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 11
Introdução à Criptografia
Terminologia
• Cifração/Decifração
– Ea(M): cifrar M com a chave pública de a
– Da(M) : decifrar M com a chave privada de a
– Quando a cifra é simétrica, existe apenas uma chave secreta Ka
• Assinatura
– Sa(M) : assinar M com a chave privada de a
– Va(M) : verificar M com a chave pública de a
• Síntese (
digest)
SEG
©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 13
Técnicas de Criptografia
• Existem diversas técnicas de criptografia
• Convencional
:
– baseadas em operações no texto - funcionam por transposição e/ou
substituição de caracteres de acordo com alguma regra secreta
– FUNDAMENTO: complexidade intrínseca dos procedimentos
• Computacional
:
– baseadas em procedimentos computacionais parametrizados por
uma chave – os algoritmos computam funções não inversíveis sobre código binário, e os resultados dependem de uma chave secreta
– FUNDAMENTO: complexidade intrínseca da determinação da chave
e/ou do inverso das funções
Criptografia Convencional:
Transposição e Substituição
• Transposição simples
– transforma uma letra na que ocupa a posição correspondente numa
cifra de 26 letras produzida por permutações do alfabeto
» E: Mi→ Ki
– PROBLEMAS: é só pensar um bocado sobre o texto cifrado…
• Substituição ou Cifra de César
– Cifra de substituição que transforma uma letra na kª letra que a
segue no alfabeto, MOD 26
» Exemplo: k = 2
» Texto em claro: seguranca » Texto cifrado: ugixtcpec
• PROBLEMAS:
SEG
©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 20
Rotor Machines
• Máquinas usadas para cifrar e
decifrar mensagens
• Antes dos computadores
modernos, eram muito usados
– Na Segunda Guerra Mundial: » Enigma (Alemanha),
» Hagelin (Aliados), » Purple (Japão)
• Formas de concretização variam
(ex. uso de vários cilindros), mas
em geral baseavam-se no uso de
várias cifras de substituição
extremamente complexas
Criptografia Computacional
• MECANISMO:
– Dado um par de chaves de cifração/decifração K1/K2e funções de
cifrar (E) e de decifrar (D):
– Se E(K1,m)=c , então D(K2,c)=m e consequentemente D(K2,E(K1,m))=m
– Se K1e K2são diferentes, temos uma cifra assimétrica
– Se K1= K2= K temos uma cifra simétrica
• ATRIBUTOS:
1. dado E(K1,m), é inexequível recuperar m não sabendo K2; 2. dado E(K1,m), é inexequível recuperar K1;
SEG
©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 22
Princípios de Funcionamento
(Claude Shannon - 1949)
• Dois princípios relacionados com o factor de trabalho
necessário para cifração/decifração:
Confusão
– “O adversário não deve ser capaz de prever o que vai acontecer com
o texto cifrado se mudarmos um símbolo do texto em claro”
– Um algoritmo que aplica bem esta propriedade tem uma relação
complexa entre o texto em claro/chave e o texto cifrado
R: C,K -> E é uma relação complexa
Difusão
– “A informação do texto em claro deve estar espalhada em todo o
texto cifrado de tal forma que mudar um símbolo no texto em claro muda completamente o texto cifrado”
– Boa difusão faz com que um adversário precise aceder a mais texto
cifrado para perceber o algoritmo
SEG
©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 25
Criptografia Simétrica
• Também denominada de chave partilhada ou de chave secreta
– chave de cifrar e decifrar iguais – bastante rápida
• Propriedade fundamental:
D(K, E(K, m)) = m
• Exemplos:
Data Encryption Standard (DES) (1977); Triple-DES;
IDEA;
Advanced Encryption Standard (AES) (2000)
• Tipos:
– Cifra de bloco (block cipher) – Cifra de fita (stream cipher)
Cifra de Bloco – DES
(
Data Encryption Standard)
• Criado em 1977 pelo governo americano com o objectivo de ser
um algoritmo padrão para cifrar/decifrar dados sensíveis, mas
não classificados.
• Desde sua criação, ele sempre foi criticado…
– Chaves pequenas (56 bits)
– Alguns passos do algoritmo não se sabe o porquê de existirem – Muitos algoritmos para “quebrá-lo” já foram desenvolvidos
– Em 1998 foi apresentado um sistema que quebrava o DES em quatro dias – Ficou claro que ele já não era uma solução de segurança viável
• É um dos algoritmos de cifra mais importantes de sempre… do
seu estudo resultaram muitos avanços na área
• Variantes mais seguras (e menos eficientes):
Triple-DES
– O algoritmo é aplicado três vezes
SEG ©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados.
Cifra de Bloco – IDEA
• Proposto em 1991 por investigadores da ETH Zurich
• Bem mais robusto que o DES
• usa chaves de 128 bits:
– ataque força bruta requer 1038cifrações
– com chip de 109 cifr/seg, requer 1013anos
• Tão rápido quanto o DES:
– Concretização em software: 386@33MHz faz 880Kbps
– 1ª concretização em hardware (chip da ETH Zurich) fazia 177Mbps
@25MHz
– (agora escalem isso proporcionalmente aos processadores de hoje)
• usado no PGP (
Pretty Good Privacy)
Cifra de Bloco – AES
(Advanced Encryption Standard )
• Histórico:
– Novo padrão do NIST para substituir o DES
– Processo de selecção público (iniciado em 1997) onde se escolheu um algoritmo dentre vários candidatos
– O escolhido foi o Rijndael (Belga!)
• Princípios:
– Recebe como entrada blocos de 128 bits de texto em claro
– As chaves podem ter 128, 192, 256 bits (quanto maior, mais seguro) – Produz blocos de 128 bits de texto cifrado
– Funciona iterativamente
» Cada bloco é dividido em 4 grupos de 4 bytes
SEG
©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 30
Cifra de Bloco – AES
(Advanced Encryption Standard )
Estrutura de Feistel
Rede SP
Substituição
Permutação
Sub-chave
DES
AES
Cifra de Fita –
One Time Pads
Shared Secret Key KAB Mi ciphertext Keystream Generator cleartext cleartext A B
+
+
Keystream Generator Keystream Keystream Mi Ki Ki • PRINCÍPIO:– cifra de fita processa um bit/byte de cada vez
– sequência infinita de aleatórios combinada (XOR) com a fita de texto em claro
– a fita-chave ou sequência (keystream ou pad) é usada uma única vez e portanto, não há criptanálise possível
• CIFRAR:
– A fita-chave é “XOR’ado” ao correr da fita de texto em claro, bit a bit (ou byte a byte)
• DECIFRAR:
SEG
©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 32
O Poder do XOR (OU Exclusivo)
• XOR
– Operação binária com duas entradas onde a saída é 1 se e somente
se uma e apenas uma das entradas é igual a 1
• Inverso
– (B XOR A) XOR A) = B
• Se A é um bit da fita-chave (
“one time pad”), então
temos uma cifra muito eficiente e segura
Uso de Cifra de Fita
• Requisitos de robustez
:
– Secretismo, aleatoriedade e uso único da fita-chave
– A fita-chave precisa ser distribuída nas duas pontas do
canal
• Uso em sistemas reais
:
– Em comunicação, a
fita-chave é uma sequência
pseudo-aleatória produzida em tempo-real à velocidade da fita
de texto, por uma caixa-preta;
– A fita-chave é gerada nos dois extremos em simultâneo
(as duas caixas pretas são sincronizadas)
– A fita-chave é parametrizada por uma chave mestra
– É susceptível a erros de bits, que podem dessincronizar
a fita
SEG
©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 34
Estado Actual das Normas para
Criptografia Simétrica
•
Em 1998 foi publicado o primeiro projecto de um sistema
computacional e do software associado capaz de quebrar
qualquer texto cifrado pelo DES em poucos dias
•
Muitos desafios foram lançados para quebrar mensagens
específicas cifradas com o DES
– A maioria foi resolvida rapidamente usando computadores paralelos distribuídos (que são muito caros!)
•
Por outro lado, o IDEA tem resistido a passagem do tempo…
•
O NIST seleccionou o algoritmo Rijndael como seu
Advanced
Encryption Standard (AES
),
o sucessor do DES
– Projectado para resistir a ataques bem sucedidos ao DESProblemas Gerais da Criptografia Simétrica
• A chave é partilhada e secreta, se perdida ou revelada em
qualquer ponta, o canal é comprometido
• A distribuição de chaves é um ponto crítico
– O problema do ovo e da galinha: “como distribuir a chave para ter canais seguros sem ter canais seguros?”
• Ainda mais complexo se as chaves precisarem ser mudadas
frequentemente
• Gestão de chaves é muito complicada em sistemas de grande
escala, já que cada par de participantes deve ter uma chave
– Comunicação arbitrária entre 10 participantes requer 45 chaves– 100 participantes -> quase 5000