• Nenhum resultado encontrado

Segurança de aplicação - S/MIME. Jaime Dias FEUP > DEEC > MRSC > Segurança em Sistemas e Redes v1

N/A
N/A
Protected

Academic year: 2021

Share "Segurança de aplicação - S/MIME. Jaime Dias FEUP > DEEC > MRSC > Segurança em Sistemas e Redes v1"

Copied!
30
0
0

Texto

(1)

Segurança de aplicação - S/MIME

Jaime Dias

FEUP > DEEC > MRSC > Segurança em Sistemas e Redes v1

(2)

MRSC > SSR > seg_aplicação_smime_v1 2

Componentes de um sistema de e-mail

• Interface com o utilizador (leitor de e-mails)

ƒ Escrita e leitura de e-mails

• Transporte de e-mails

ƒ MUA (Mail User Agent) e MTA (Mail Transfer Agent) ƒ SMTP, POP3 e IMAP

(3)

RFC 822

• Define as mensagens em duas partes: o cabeçalho e o corpo. Ambos em texto ASCII.

• O cabeçalho é separado do cortpo através de uma linha em branco. • O cabeçalho é composto por linha de cabeçalho:

ƒ To:

ƒ Subject: ƒ Date:

ƒ From:

(4)

MRSC > SSR > seg_aplicação_smime_v1 4

Exemplo de uma mensagem RFC 822

Date: Mon, 3 Apr 2006 20:15:18 +0100 From: jaime.dias@fe.up.pt

To: Jaime Dias <jdias@inescporto.pt> Subject: Mensagem de e-mail

(5)

Limitações do formato RFC822

• Só suporta texto.

• Mapa de caracteres Î exclusivamente ASCII • Problemas de transmissão com:

ƒ Executáveis ou outros ficheiros binários (ex: imagens jpeg) ƒ Mapa de caracteres diferentes de ASCII

ƒ Mensagens demasiado grandes ƒ Conversão ASCII para EBCDIC ƒ Linhas muito longas

(6)

MRSC > SSR > seg_aplicação_smime_v1 6

Solução

• Complementar o RFC822 com extensões Î MIME

• Permite que uma mensagem de e-mail possa transportar diversos tipos de dados: áudio, vídeo, imagens, documentos do Word, etc. • MIME (Multipurpose Internet Mail Extensions):

ƒ Colecção de 5 novas linhas de cabeçalho ƒ Definição de tipos de conteúdo

ƒ Mecanismos de codificação dos diferentes tipos de dados de forma a poderem ser transportados em ASCII numa mensagem RFC822

(7)

MIME

Campos de cabeçalho

• MIME-Version: tem de ser “1.0”

• Content-Type: o tipo dos dados contidos na mensagem

• Content-Transfer-Encoding: indica o tipo de codificação

utilizada para representar o corpo da mensagem num formato que possa ser entendido pelas entidades de transporte (ex.: radix-64) • Content-ID: string para identificação únivoca de uma entidade

MIME em múltiplos contextos (opcional)

• Content Description: útil quando os dados não são texto legível (ex.: mpeg) (opcional)

(8)

MRSC > SSR > seg_aplicação_smime_v1 8

(9)

Content-Type

• Tipo Multipart tem 4 subtipos

• O mais importante é o Multipart/mixed

ƒ Indica que o corpo contém múltiplas partes

• Cada parte pode ser separada como uma mensagem (entidade) MIME Î encapsulamento de entidades MIME

• Cada parte é separada por uma string delimitadora (boundary) definida no campo Content-Type.

(10)

MRSC > SSR > seg_aplicação_smime_v1 10

Content-Transfer-Encoding

•quoted-printable

ƒ quando a maioria dos dados são caracteres ASCII ƒ Exemplo: “isto é um teste” Î “isto =E9 um teste”

•base64 (também conhecido como radix-64)

ƒ mapeamento de três bytes de dados binários em quatro ASCII ƒ Exemplo: “isto é um teste” Î “aXN0byDpIHVtIHRlc3Rl”

(11)

Exemplo de uma mensagem MIME

Date: Mon, 3 Apr 2006 20:15:18 +0100 From: jaime.dias@fe.up.pt

To: Jaime Dias <jdias@inescporto.pt> Subject: Mensagem de e-mail

MIME-Version: 1.0

Content-Type: multipart/mixed; boundary="---next part" ---next part

Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit

This is a test. Regards, Jaime ---next part

Content-Type: image/jpeg

(12)

MRSC > SSR > seg_aplicação_smime_v1 12

S/MIME

• Secure/Multipurpose Internet Mail Extension

• Adiciona extensões de segurança ao MIME

• Baseado em tecnologia da RSA Security

(13)

Serviços S/MIME

• enveloped data (application/pkcs7-mime; smime-type = enveloped-data)

ƒ cifragem dos dados Æ confidencialidade

• signed data (application/pkcs7-mime; smime-type = signed-data)

ƒ assinatura dos dados Æ integridade, autenticidade e não repúdio ƒ dados + assinatura são codificados em base64

• clear-signed data (multipart/signed)

ƒ assinatura dos dados Æ integridade, autenticidade e não repúdio ƒ só a assinatura é codificada em base64

ƒ destinatários sem suporte para S/MIME consegue ler a mensagem mas não consegue verificar a assinatura

(14)

MRSC > SSR > seg_aplicação_smime_v1 14

Algoritmos criptográficos

• Resumos de mensagens ƒ obrigatório: SHA-1

ƒ opcional (receptor): MD5 (compatibilidade com sistemas “antigos”) • Assinaturas

ƒ obrigatório: DSS ƒ opcional : RSA

• Cifragem com chaves públicas ƒ obrigatório: ElGamal

ƒ opcional : RSA (512-1024 bits) • Cifragem com chaves simétricas

ƒ emissor:

o opcional: 3DES, RC2/40

ƒ receptor:

o obrigatório: 3DES

(15)
(16)

MRSC > SSR > seg_aplicação_smime_v1 16

Processamento S/MIME

• Pode ser feito através de assinatura e/ou cifragem

• Pode ser aplicado a toda a mensagem ou apenas a uma parte (Multipart)

• O S/MIME processa a entidade MIME e os dados de segurança associados (IDs de algoritmos, certificatos, CRL) e produz um objecto PKCS (Public Key Cryptography Standards)

ƒ PKCS #7: Cryptographic Message Syntax Standard

• Como o PKCS é binário é necessário convertê-lo para ASCII através da codificação base64

• O resultado é uma entidade MIME do tipo pkcs (entidade

(17)

Processamento S/MIME (emissor)

Entidade MIME Objecto PKCS processamento S/MIME codificação base64 Entidade S/MIME

(18)

MRSC > SSR > seg_aplicação_smime_v1 18

Processamento S/MIME (receptor)

• O receptor faz o processo inverso • Descodifica o objecto PKCS

• No processamento S/MIME é conhecida a informação necessária para determinar quais as operações criptográficas a aplicar de modo a obter a entidade MIME original.

• A entidade MIME final também pode ainda ser do tipo S/MIME, necessitando de um processamento adicional.

Entidade S/MIME Objecto PKCS descodificação base64 processamento S/MIME Entidade MIME

(19)

EnvelopedData

• É gerada uma chave de sessão RC2 ou 3DES

• Os dados da mensagem são cifrados com a chave de sessão

• A chave de sessão é cifrada com a chave pública do destinatário (ex: RSA)

• É preparado o bloco RecipientInfo (ID do certificado do

destinatário, ID do algoritmo, chave de sessão cifrada) • O EnvelopedData é igual à concatenação do bloco

(20)

MRSC > SSR > seg_aplicação_smime_v1 20

EnvelopedData

chave pública do receptor Chave de sessão entidade MIME

E

E

RecipientInfo objecto PKCS codificado em base64 cod. base64 objecto PKCS

EnvelopedData cabeçalho S/MIME

corpo S/MIME:

(21)

EnvelopedData - Múltiplos receptores

• São suportados múltiplos receptores: um bloco RecipientInfo

para cada um.

• Dados são cifrados apenas uma vez

• Chave de sessão é cifrada com a chave pública de cada receptor • O receptor obtém a chave de sessão através da sua chave privada e

depois decifra EncryptedContent; os algoritmos necessários

(22)

MRSC > SSR > seg_aplicação_smime_v1 22

EnvelopedData - Múltiplos receptores

Entidade MIME

Chave de

sessão cifragem dos dados

Entidade MIME cifrada

chave de sessão cifrada #n Chave pub #n chave de sessão cifrada #2 Chave pub #2 chave de sessão cifrada #1 Chave pub #1

(23)

EnvelopedData

Exemplo Content-Type: application/pkcs7-mime; smime-type=enveloped-data; name=smime.p7m Content-Transfer-Encoding: base64 Content-Disposition:attachment;filename=smime.p7m rfvbnj756tbBghyHhHUujhJhjH77n8HHGT9HG4VQpfyF467GI 7n8HHGghyHhHUujhJh4VQpfyF467GhIGfHfYGTrfvbnjT6jHd f8HHGTrfvhJhjH776tbB9HG4VQbnj7567GhIGfHfYT6ghyHh6

(24)

MRSC > SSR > seg_aplicação_smime_v1 24

SignedData

• Selecciona um algoritmo de resumo (SHA, MD5) • Calcula o resumo dos dados que se pretende assinar • Cifra o resumo com a chave privada do “assinante”

ƒ a norma S/MIME não obriga a que o emissor e o assinante sejam a mesma entidade

• Prepara o bloco SignerInfo (ID do certificado do assinante, eventualmente CRL, ID do algoritmo de resumo, ID do algoritmo de chave pública, assinatura)

•SignedData é o resultado da concatenação da mensagem assinada e do bloco SignerInfo

(25)

SignedData

Chave privada do assinante E Entidade MIME SignerInfo objecto PKCS codificado em base64 cod. base64 Objecto PKCS

SignedData cabeçalho S/MIME

corpo S/MIME:

Hash

Entidade MIME

(26)

MRSC > SSR > seg_aplicação_smime_v1 26

SignedData – Múltiplas assinaturas

• São suportados múltiplos assinantes: um bloco

SignedData

para cada um.

(27)

SignedData – Múltiplas assinaturas

Entidade MIME Algoritmo de resumo #1 Chave privada #1 Algoritmo de resumo #2 Chave privada #2 Algoritmo de resumo #n Chave privada #n

(28)

MRSC > SSR > seg_aplicação_smime_v1 28

SignedData

Exemplo Content-Type: application/pkcs7-mime; smime-type=signed-data; name=smime.p7m Content-Transfer-Encoding: base64 Content-Disposition:attachment;filename=smime.p7m 567GhIGfHfYT6ghyHhHUujpfyF4f8HHGTrfvhJhjH776tbB97 7n8HHGT9HG4VQpfyF467GhIGfHfYT6rfvbnj756tbBghyHhHU HUujhJh4VQpfyF467GhIGfHfYGTrfvbnjT6jH7756tbB9H7n8

(29)

ClearSigning

• É utilizada uma mensagem do tipo

multipart/signed

:

ƒ A primeira parte pode ser um tipo MIME qualquer ƒ A segunda parte é a assinatura

• Os receptores que suportam MIME mas não S/MIME

conseguem ler os dados da mensagem

• Os receptores que suportam S/MIME usam a primeira

parte como sendo a entidade MIME sobre a qual deve

(30)

MRSC > SSR > seg_aplicação_smime_v1 30

S/MIME Clear Signing

Content-Type: multipart/signed;

protocol="application/pkcs7-signature"; micalg=sha1; boundary=boundary42

--boundary42

Content-Type: text/plain

This is a clear-signed message.

--boundary42

Content-Type: application/pkcs7-signature; name=smime.p7s

Content-Transfer-Encoding: base64

Content-Disposition:attachment;filename=smime.p7s

ghyHhHUujhJhjH77n8HHGTrfvbnj756tbB9HG4VQpfyF4674VQpfyF467G hIGfHfYT6jH77n8HHGghyHhHUujhJh756tb6

Referências

Documentos relacionados

Premiações confirmam excelência no segmento Ao longo desta trajetória a Unimed Nova Iguaçu colecionou também muitas premiações: certifi- cado Empresa Cidadã e o diploma

Página inicial &gt; Segurança &gt; Recursos de segurança de rede &gt; Gerenciar seu aparelho em rede com segurança usando SSL/TLS &gt; Certificados e Gerenciamento via Web &gt;

Mais geralmente, prove que, para qualquer texto de 9 caracteres da tabela Base64 (página 9 das transparências), há uma chave que a gera.. Bônus: encontre as chaves que geram

Faculdade de Engenharia de Computação Faculdade de Engenharia de Computação Faculdade de Engenharia de Computação Faculdade de Engenharia de Computação Centro de Ciências

Obtém informações sobre vulnerabilidades específicas (conhecidas) para cada serviço em um sistema!.

– Tuplas de uma mesma relação não podem ter valores iguais para todos os seus atributos --&gt; Chave Primária &lt;&gt;.. • Restrições de Integridade de Entidade – Nenhuma

Portanto, a diferença esperada de progênie Materno Total (MT) indica a capacidade de um animal passar para suas filhas genes que irão influenciar os pesos dos netos do animal

No ato da inscrição, o candidato deverá inscrever-se somente para 01 (um) cargo/função/município, conforme Anexo I deste Edital. Não será admitida ao candidato a