protegendo a empresa com intel aes-ni · computação de hoje, várias máquinas compartilham os...

13
WHITE PAPER Protegendo a Empresa com Intel ® AES-NI Intel® Advanced Encryption Standard New Instructions (AES-NI) Protegendo a Empresa com Intel ® AES-NI Intel® Advanced Encryption Standard New Instructions (Intel® AES-NI) Leslie Xu Intel Corporation Agradecimentos a Jeffrey Casazza, Michael Kounavis, Shihjong Kuo, e Woody Cohn por suas contribuições. Setembro de 2010 Versão 2.0 SUMÁRIO EXECUTIVO O mundo hoje possui uma demanda insaciável por tecnologias que possam buscar, processar e trocar informações e dados em ambientes empresariais e também em nossas vidas pessoais. Proteção da propriedade intelectual, identidades pessoais e outras informações confidenciais são mais importantes do que nunca para os dados em movimentação ou estáticos. Grande parte dessa proteção é conseguida por meio da criptografia. A criptografia é a ciência dos códigos secretos - que transforma dados comuns com formas legíveis em formas ininteligíveis, permitindo dessa forma a comunicação confiável através de um canal não seguro, seja público ou compartilhado. A criptografia protege os dados contra pessoas não autorizadas, evitando alterações ou a utilização não autorizada. O desafio é que, tradicionalmente, a criptografia é complexa e computacionalmente onerosa para ser executada. De um modo geral, um sistema de criptografia emprega um processo matemático ou algorítmico para transformar um texto simples e legível em texto codificado (texto cifrado), para posteriormente convertê-lo novamente em texto simples. Os algoritmos utilizados nos processos de criptografia/decodificação são chamados de cifras. A operação de uma cifra é frequentemente controlada por uma chave ou um conjunto de chaves. Uma série de fatores, como confidencialidade, integridade, autenticidade e desempenho determinam os benefícios ao usuário final dos diferentes padrões de criptografia. Por que a criptografia é destaque no mercado de hoje, especialmente nas empresas? Para começar, mais de 345 milhões de registros com informações pessoais confidenciais estiveram envolvidos em violações de segurança nos Estados Unidos desde janeiro de 2005 1 . Essa taxa está se acelerando e os ataques estão mais complexos e mais difíceis de serem detectados. Há uma mudança ocorrendo, de ataques aleatórios em vários computadores para ataques direcionados a alguns sistemas bancários ou governamentais de alto valor, com informações financeiras e pessoais confidenciais identificáveis. Nos ambientes altamente virtualizados como os da computação de hoje, várias máquinas compartilham os mesmos recursos de hardware. Esses recursos de hardware precisam agora de mais proteção, pois “há mais ovos na mesma cesta”. A criptografia fornece uma defesa suficiente profunda para que, mesmo que os sistemas sejam comprometidos e a informação seja perdida, a informação permaneça inutilizada por meio de esquemas de criptografia simétricos e assimétricos. A criptografia também fornece a proteção de dados cada vez mais importante para o cumprimento do Health Insurance Portability e Accountability Act (HIPA A); Sarbanes-Oxley Act (SOX), que afetam empresas nos EUA, e os regulamentos do Payment Card Industry (PCI). Observe que o HIPAA requer criptografia apenas quando os dados são transmitidos através da Internet pública, mas o HiTECH acrescenta extensos requisitos de notificação de violações e capacidades de execução para o HIPAA quando os dados não estão criptografados.

Upload: others

Post on 04-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Protegendo a Empresa com Intel AES-NI · computação de hoje, várias máquinas compartilham os mesmos recursos de hardware. Esses recursos de hardware precisam agora de mais proteção,

WHITE PAPER

Protegendo a Empresa com Intel ® AES-NI

Intel® Advanced Encryption Standard New

Instructions (AES-NI)

Protegendo a Empresa

com Intel® AES-NI Intel® Advanced Encryption Standard New Instructions (Intel® AES-NI)

Leslie Xu

Intel Corporation

Agradecimentos a

Jeffrey Casazza,

Michael Kounavis, Shihjong

Kuo, e Woody Cohn por suas

contribuições.

Setembro de 2010

Versão 2.0

SUMÁRIO EXECUTIVO

O mundo hoje possui uma demanda insaciável por tecnologias que possam buscar, processar e trocar

informações e dados em ambientes empresariais e também em nossas vidas pessoais. Proteção da propriedade

intelectual, identidades pessoais e outras informações confidenciais são mais importantes do que nunca para os

dados em movimentação ou estáticos.

Grande parte dessa proteção é conseguida por meio da criptografia. A criptografia é a ciência dos códigos

secretos - que transforma dados comuns com formas legíveis em formas ininteligíveis, permitindo dessa forma a

comunicação confiável através de um canal não seguro, seja público ou compartilhado. A criptografia protege os

dados contra pessoas não autorizadas, evitando alterações ou a utilização não autorizada. O desafio é que,

tradicionalmente, a criptografia é complexa e computacionalmente onerosa para ser executada.

De um modo geral, um sistema de criptografia emprega um processo matemático ou algorítmico para

transformar um texto simples e legível em texto codificado (texto cifrado), para posteriormente convertê-lo

novamente em texto simples. Os algoritmos utilizados nos processos de criptografia/decodificação são

chamados de cifras. A operação de uma cifra é frequentemente controlada por uma chave ou um conjunto de

chaves. Uma série de fatores, como confidencialidade, integridade, autenticidade e desempenho determinam os

benefícios ao usuário final dos diferentes padrões de criptografia.

Por que a criptografia é destaque no mercado de hoje, especialmente nas empresas? Para começar, mais de 345

milhões de registros com informações pessoais confidenciais estiveram envolvidos em violações de segurança

nos Estados Unidos desde janeiro de 20051. Essa taxa está se acelerando e os ataques estão mais complexos e

mais difíceis de serem detectados. Há uma mudança ocorrendo, de ataques aleatórios em vários computadores

para ataques direcionados a alguns sistemas bancários ou governamentais de alto valor, com informações

financeiras e pessoais confidenciais identificáveis. Nos ambientes altamente virtualizados como os da

computação de hoje, várias máquinas compartilham os mesmos recursos de hardware. Esses recursos de

hardware precisam agora de mais proteção, pois “há mais ovos na mesma cesta”. A criptografia fornece uma

defesa suficiente profunda para que, mesmo que os sistemas sejam comprometidos e a informação seja perdida,

a informação permaneça inutilizada por meio de esquemas de criptografia simétricos e assimétricos. A

criptografia também fornece a proteção de dados cada vez mais importante para o cumprimento do Health

Insurance Portability e Accountability Act (HIPA A); Sarbanes-Oxley Act (SOX), que afetam empresas nos EUA, e

os regulamentos do Payment Card Industry (PCI). Observe que o HIPAA requer criptografia apenas quando os

dados são transmitidos através da Internet pública, mas o HiTECH acrescenta extensos requisitos de notificação

de violações e capacidades de execução para o HIPAA quando os dados não estão criptografados.

Page 2: Protegendo a Empresa com Intel AES-NI · computação de hoje, várias máquinas compartilham os mesmos recursos de hardware. Esses recursos de hardware precisam agora de mais proteção,

Protegendo a Empresa com Intel ® AES-NI

2

Índice

2. Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2.1 Definições . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

3. O Advanced Encryption Standard (AES) . . . . . . . . . 5

4. Apresentando Intel® AES-NI . . . . . . . . . . . . . . . . . . . . . 5

5. Modelos de Uso do AES . . . . . . . . . . . . . . . . . . . . . . . . . 6

5.1. Transações Seguras . . . . . . . . . . . . . . . . . . . . . . . . . 6

5.1.1. HTTPS em Nuvem . . . . . . . . . . . . . . . . . . . . . . . . 7

5.1.2. Internet Protocol Security (IPsec) . . . . . . . . . 7

5.2. Aplicativos Corporativos . . . . . . . . . . . . . . . . . . . . . 8

5.3. Criptografia total de disco (FDE) . . . . . . . . . . . . . . 8

6. Implicações no desempenho . . . . . . . . . . . . . . . . . . . . . 9

6.1. Desempenho de transações seguras . . . . . . . . . .9

6.2. Desempenho de criptografia no nível de

aplicação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

6.3. Criptografia total de disco (FDE) . . . . . . . . . . . . 10

7. Implementando em aplicativos . . . . . . . . . . . . . . . . . 11

7.1. Sistemas operacionais . . . . . . . . . . . . . . . . . . . . . 11

7.2. Bibliotecas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

7.2.1. A biblioteca Intel ® Integrated Performance

Primitives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

7.2.2. Java* Cryptography Extensions (JCE) . . . . . 11

7.2.3. RSA* BSAFE* . . . . . . . . . . . . . . . . . . . . . . . . . . 12

7.2.4. Crypto + + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

7.2.5. OpenSSL* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

7.2.6. Kernel do Linux* . . . . . . . . . . . . . . . . . . . . . . . . .12

7.3. Compiladores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

8. Conclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

Um padrão de popular de criptografia é o Advanced Encryption Standard (AES). Adotado pelo

governo dos EUA em 2001, ele é amplamente utilizado hoje em todo o ecossistema de software

para proteger tráfego de redes, dados pessoais e a infraestrutura corporativa de TI. As aplicações

do AES incluem compra segura, armazenamento e segurança de dados em banco de dados,

migração segura de máquina virtual e criptografia total de disco (FDE). De acordo com uma

pesquisa sobre o uso de criptografia do IDC, as aplicações mais utilizadas são bancos de dados

corporativos e backup de arquivos2. A criptografia total de disco (FDE) também vem recebendo

muita atenção.

As novas instruções da Intel® para o Advanced Encryption Standard (Intel® AES-NI) é um conjunto

de sete novas instruções do processador Intel ® Xeon ® série 5600 (anteriormente conhecido

como Westmere-EP). Quatro instruções aceleram a criptografia e decodificação. Duas instruções

melhoram a geração de chaves e de manipulação de matriz. A sétima instrução ajuda na

multiplicação carry-less (CLMUL). Através da implementação em hardware de alguns sub passos

complexos e dispendiosos do algoritmo AES, as instruções Intel® AES-NI aceleram a execução da

criptografia baseada em AES. O resultado é uma criptografia mais rápida e mais segura, o que

viabiliza o uso de criptografia como nunca antes.

Este artigo abordará o AES e as instruções Intel® AES-NI em detalhes, seguido do exame de três

modelos de uso, implicações na melhoria do desempenho e também as bibliotecas de criptografia

que fornecedores de softwares independentes (ISVs) podem utilizar para substituir as rotinas AES

básicas pelas otimizações do Intel® AES-NI.

2. Introdução

De acordo com uma pesquisa do IDC sobre uso

de criptografia, desde 2005 mais de 90

milhões de consumidores têm sido notificados

sobre potenciais brechas de segurança em suas

informações pessoais3. Ao ligar o notebook

pela manhã uma janela se abre exibindo as

propriedades da rede Wi-Fi e indicando a

criptografia de dados AES-CCMP com

autenticação enterprise. Ao trabalhar em uma

intranet ou fazer compras em um site seguro,

um ícone de cadeado aparece no seu

navegador. Ele indica uma conexão segura

fornecida pelo Secure Socket Layer (SSL). SSL

é um protocolo de criptografia que fornece

segurança e integridade de dados para as

comunicações via redes como a Internet. O

Secure Socket Layer (SSL) e o protocolo mais

recente, Transport Layer Security (TLS),

criptografam os segmentos de conexões de

rede de ponta a ponta.

Claramente, a segurança nos rodeia

diariamente em um nível pessoal (client), mas o

que dizer das empresas e seus servidores?

Muitos servidores do governo e servidores

corporativos contêm grandes quantidades de

informações pessoais identificáveis, bem como

informações financeiras, que são distribuídas

aos clientes mediante solicitação.

Isso torna a criptografia no nível do servidor

criticamente importante, especialmente porque

a taxa de crescimento dos códigos mal-

intencionados (malware) utilizados para atacar

computadores de todos os tipos continua a

crescer.

Igualmente preocupante, os ataques a

computadores estão ficando mais complexos e

mais difíceis de serem detectados. Além disso,

há uma contínua mudança no tipo de pessoa

que inicia os ataques. No passado, muitos

invasores estavam em busca de notoriedade,

exibindo suas habilidades técnicas infectando o

maior número de computadores. Esse tipo de

invasor está sendo substituído por invasores

motivados por dinheiro e envolvidos com o

crime organizado. Seu objetivo nem sempre é

infectar milhões de computadores, mas em vez

disso, infectar furtivamente alguns alvos de

alto valor. Esses alvos podem ser bancos e

instituições que têm acesso à informações

financeiras e pessoais. A criptografia fornece

uma boa defesa como último recurso. Mesmo

que os sistemas estejam comprometidos e as

informações sejam obtidas, a criptografia pode

mantê-las inutilizáveis.

Page 3: Protegendo a Empresa com Intel AES-NI · computação de hoje, várias máquinas compartilham os mesmos recursos de hardware. Esses recursos de hardware precisam agora de mais proteção,

Protegendo a Empresa com Intel ® AES-NI

3

Quer se trate de dados governamentais

armazenados no disco rígido de um notebook

ou brechas de segurança em centros de dados

envolvendo os números da segurança social

dos clientes, o simples aumento no número de

incidentes, assim como o seu impacto, levou a

iniciativas na legislação em um crescente

número de estados, que exigem hoje o uso de

tecnologia de criptografia para informações

confidenciais4. Muitas agências do governo

estão exigindo a divulgação das violações de

segurança e a requisição de uma legislação

federal exigindo essa divulgação foi proposta.

As indústrias também estão aumentando o

controle de seus procedimentos de segurança.

Para muitas, a criptografia fornece cada vez

mais importante proteção dos dados para

ajudar manter a conformidade com as

regulamentações HIPAA, SOX, PCI e outras. A

proteção de dados confidenciais aumenta a

confiança e a lealdade do cliente, reduz a

suscetibilidade legal, e ajuda a atender

requisitos regulatórios de segurança de dados.

Abaixo estão alguns exemplos de normas que

exigem ou incentivam fortemente a

criptografia e as penalidades pelo seu

descumprimento.

HIPAA 4 Health Insurance Portability and

Accountability Act, de 1996:

Sistemas de hospedagem de informações

sobre a saúde de pacientes devem ser

protegidos de invasões.

Quando a informação trafega em redes

abertas, alguma forma de criptografia

deve ser utilizada.

A pena potencial para o descumprimento

é de 10 anos de prisão e multa de 100

dólares por incidente, com um máximo de

25 mil dólares por ano.

HiTECH Act, de 17 de fevereiro de 2010:

Estendeu o alcance da HIPAA Privacy and

Security Provisions para os associados

(BAs).

As entidades abrangidas devem fornecer

mais meios de comunicação, sempre que

notarem uma violação que envolva mais

de 500 pessoas em um estado.

Se as informações sobre a saúde pessoal

estiverem "inutilizáveis, ilegíveis ou

indecifráveis”, nenhuma notificação é

exigida.

Uma falha grave na segurança que

resulte em danos reais pode levar a

processos de ação de classe, ações

regulatórias, quedas no preço das ações e

danos à reputação e relacionamento com

os clientes.

Define padrões de criptografias para

dados "inutilizáveis, ilegíveis ou

indecifráveis" armazenados ou em

trânsito.

Sarbanes-Oxley Act7 (SOX):

Requer de todas as empresas de capital

aberto dos EUA o cumprimento estrito

das diretrizes de tecnologia de

informações para proteger a integridade

e a confidencialidade das informações

financeiras.

ISO/IEC 27002 (padrão de segurança da

informação) define as melhores práticas

para controles de segurança relacionados

ao SOX e sugere explicitamente o uso de

criptografia.

A potencial pena para o descumprimento

é de 10 anos de prisão e multa de 15

milhões de dólares.

Padrão de segurança de dados do Payment

Card Industry (PCI):

Requer que Números de Conta Primária

(PANs) e/ou números de cartão de crédito

sejam criptografados quando

armazenados.

Os membros da organização incluem Visa,

MasterCard, AmericanExpress, Discover,

entre outros.

Os membros têm o direito de deixar de

aceitar transações de cartões de crédito

de instituições não cumpridores e

estabelecer multas de 500 mil dólares.

Cada vez mais, proteger dados confidenciais

está se tornando obrigatório, portanto o uso da

criptografia e da tecnologia de criptografia é

uma necessidade.

2.1. Definições

A seguir estão algumas definições necessárias

para melhor entender este artigo.

AES: Advanced Encryption Standard (ou Padrão

Avançado de Criptografia). Uma versão

ligeiramente modificada do algoritmo de

Rijindael, o AES é um padrão de criptografia

adotado pelo governo dos EUA em 2001. O

AES está tomando o lugar do mai antigo e

menos seguro 3DES (Data Encryption

Standard) com tamanhos de chave de 112 ou

168 bits. O AES é uma cifra de bloco, o que

significa que ele funciona em grupos de bits de

tamanho fixo, chamados blocos.

Algoritmo: um conjunto de passos ordenados

(uma fórmula matemática) para realizar uma

tarefa. Em criptografia, essa tarefa seria

traduzir dados normais em caracteres secretos

(criptografia) ou traduzir caracteres secretos

em dados legíveis (descriptografia).

Algoritmo de criptografia assimétrica: Um

esquema que utiliza uma chave diferente para

criptografia e outra para descriptografia. Um

usuário, conhecendo a chave de um par de

chaves assimétricas, pode criptografar os

dados, mas não pode descriptografá-los com

essa mesma chave. Esse é um método

diferente daqueles em que os sistemas

utilizam a mesma chave para criptografar e

descriptografar os dados, em sua maioria

sistemas usados para pequenas quantidades

de dados, como chaves simétricas de

criptografia.

Cifra: Um algoritmo para criptografar ou

descriptografar informações trocadas por duas

ou mais partes, para manter privada a troca de

informações.

Texto cifrado: Dados traduzidos por um

algoritmo para a forma criptografada. O texto

cifrado é ilegível até que seja descriptografado

de volta à sua forma original.

Chave de descriptografia: Chave que

descriptografa a mensagem. Chaves simétricas

utilizam a mesma chave para criptografar e

descriptografar, chaves assimétricas não.

Chave de criptografia: Chave que criptografa a

mensagem.

Função hash: Uma função matemática ou um

procedimento bem definido, que converte um

bloco de dados em uma string de tamanho fixo

Page 4: Protegendo a Empresa com Intel AES-NI · computação de hoje, várias máquinas compartilham os mesmos recursos de hardware. Esses recursos de hardware precisam agora de mais proteção,

Protegendo a Empresa com Intel ® AES-NI

4

(o valor de hash), de modo que uma alteração

nos dados mudará o valor de hash. Os dados

codificados são chamados de "mensagem". O

valor de hash geralmente é chamado de

"digest". A maioria das funções criptográficas

de hash recebem uma string de qualquer

tamanho e produzem um valor de hash de

tamanho fixo.

IPsec (Internet Protocol security): Um

framework de padrões abertos para proteger

as comunicações utilizando o protocolo

Internet (IP) através do uso de serviços de

segurança criptográfica. (Implementado na

camada três do protocolo padrão OSI na forma

de software criptografado para conexão de

Ethernet ponta a ponta).

MAC: Message Authentication Code. Um

pequeno pedaço de informação utilizado para

autenticar uma mensagem. Um algoritmo MAC

geralmente referenciado como sendo uma

função hash chaveada (criptográfica). MACs

são diferentes de assinaturas digitais, já que

seus valores são gerados e verificados através

da mesma chave secreta. Para fazer isso, o

remetente e o receptor da mensagem devem

concordar com a mesma chave antes de iniciar

a comunicação. Ele é similar à criptografia

simétrica.

NIC: Network Controller Interface, também

conhecido como adaptador Ethernet. NICs

podem conter o hardware para processar

tráfego e liberar o tráfego de IPsec para o Intel

AES-NI para o processador.

Texto puro: Mensagem ou arquivo original. É o

que você obterá após o arquivo ou mensagem

serem criptografados e em seguida

descriptografados.

RSA: Algoritmo de criptografia Rivest-Shamir-

Adleman. Um algoritmo de criptografia

assimétrica (chave pública e privada;

comparado ao AES, onde a criptografia e a

descriptografia são feitas com uma única

chave). O pre master secret trocado durante o

RSA leva a uma chave pre master, a partir da

.

qual tanto as chaves HMAC (código de

autenticação chaveado por hash) como as

chaves AES são dinamicamente derivadas.

SHA: Secure Hash Algorithm. Um conjunto de funções de hash criptográficas. Foi desenvolvido pela Agência de Segurança

Nacional (NSA) e publicado pelo Instituto

Nacional de Padrões e Tecnologia (NIST), como

um padrão federal de processamento de

informações dos EUA. (NIST é uma agência do

governo federal norte americano que estabelece normas e padrões para o setor

público e privado). O SHA-1 produz um digest

de 160 bits a partir de uma mensagem com

tamanho máximo de (264 - 1) bits.

SSL: Secure Socket Layer. Um protocolo de

criptografia que provê comunicação segura

através da rede. Implementado na camada seis

da OSI (camada de apresentação), para

utilização em transações web seguras no nível

de aplicação.

Ataque side-channel por software: Um ataque

baseado nas informações obtidas a partir da

implementação física de um sistema de

criptografia e não através de força bruta ou

fraqueza teórica dos algoritmos. Esses ataques

utilizam normalmente informações temporais,

térmicas, ruído, conteúdo do cache, de radiação

eletromagnética, de consumo de energia ou

outras informações indiretamente recolhidas

sobre as operações criptográficas para reduzir

o espaço da chave que precisará ser

pesquisada para ser identificada e quebrar o

sistema.

Algoritmo criptográfico simétrico: Um esquema

que utiliza chaves criptografadas, em geral

idênticas, tanto para criptografia como para

descriptografia. Algoritmos de chaves

assimétricas são geralmente centenas ou milhares de vezes mais lentos do que os

algoritmos de chaves simétricas.

TPM: Trusted Platform Module. Um chip

especializado que pode ser instalado na placa

de sistema de um computador para adicionar funções de criptografia e de apoio aos cálculos

criptográficos. Ele funciona com firmware e

software de suporte para impedir o acesso não

autorizado ao sistema. O TPM contém um

mecanismo de hardware que executa

criptografia/descriptografia de até 2048 bits

RSA. O TPM usa seu mecanismo RSA integrado

durante a assinatura digital e as operações de

embaralhamento de chave.

Figura 1. Intel ® AES-NI

acelera os subpassos do

algoritmo AES.

Page 5: Protegendo a Empresa com Intel AES-NI · computação de hoje, várias máquinas compartilham os mesmos recursos de hardware. Esses recursos de hardware precisam agora de mais proteção,

Protegendo a Empresa com Intel ® AES-NI

5

3. O Advanced Encryption Standard

(AES)

O AES, uma versão ligeiramente modificada do

algoritmo de Rijindael, é um padrão de

criptografia adotado pelo governo dos EUA em

2001. O AES substituiu o mais antigo e menos

seguro 3DES (Data Encryption Standard) com

tamanho de chave de 112 ou 168 bits. O AES é

cifrado em bloco, o que significa que ele

trabalha com grupos de bits de tamanho fixo,

denominados blocos.

A Figura 1 apresenta o fluxo do algoritmo AES.

Ele utiliza blocos 4x4 fixos de 128 bits e

tamanho de chave variável. Dependendo do

tamanho da chave (128, 192, ou 256 bits), 10,

12 ou 14 ciclos de transformação são

necessários para produzir o texto final

criptografado. O texto puro original (4x4

bytes) é criptografado com uma chave

específica para o primeiro ciclo de cifragem que

produz um resultado ou estado intermediário.

O texto cifrado intermediário resultante é

alimentado para a próxima fase com uma

segunda chave de ciclo e assim por diante, até

que o número de ciclos esteja completo (ver

Figura 1). O ciclo final é o mesmo dos ciclos

anteriores, exceto por excluir uma operação

MixColumn onde quatro bytes de cada coluna

são combinados usando uma transformação

linear invertível (isto é conseguido através da

multiplicação por um polinômio fixo).

O AES possui vários modos diferentes de

operação. Para os modos de blocos de cifra, o

NIST recomenda o Electronic Codebook (ECB), o

Cipher Block Chaining (CBC), o Counter (CTR), o

Cipher Feedback (CFB), e o Output Feedback

(OFB). O modo mais básico do AES ECB é

simples e paralelo, mas não é considerado

seguro porque é vulnerável a ataques

estatísticos (um tipo de ataque que emprega

métodos estatísticos a pares de texto

simples/criptografados para distinguir alguma

parte da cifra a partir de uma permutação

aleatória). Por esta razão, o CBC é o modo de

operação normalmente mais utilizado. Ele é

serial por natureza. O CTR é um modo paralelo

comum, porém não possui autenticação.

O modo contador de Galois (GCM) combina o

CTR com um tag de autenticação, que é uma

alternativa para o algoritmo Secure Hash

Algorithm (SHA).

Para obter mais informações sobre o padrão de

criptografia AES, consulte PUBS FIPS 1975.

4. Apresentando o Intel ® AES-NI

O padrão Intel AES-NI (Advanced Encryption

Standard New Instructions) é um conjunto de

novas instruções do processador Intel ® Xeon ®

série 5600 (anteriormente conhecido por

Westmere-EP). O Intel AES-NI implementa no

hardware alguns subpassos do algoritmo AES.

Isso acelera a execução dos algoritmos AES de

criptografia e descriptografia e remove uma

das principais objeções ao uso da criptografia

para proteger dados: a perda de desempenho.

Para ser mais claro, o processador Intel® Xeon ®

da série 5600 não implementa o aplicativo AES

inteiro. Em vez disso, ele apenas acelera partes

dele. Isso é importante para questões legais de

classificação, pois a criptografia é uma

tecnologia controlada em muitos países. O Intel

AES-NI acrescenta seis novas instruções AES,

quatro para a criptografia e descriptografia,

uma para mix column, e uma para gerar o

texto para a próxima rodada. Essas instruções

aceleram as operações AES nos ciclos de

transformação, e ajudam na geração de chaves.

O Intel AES-NI também inclui uma sétima nova

instrução: a CLMUL. Essa instrução pode

acelerar o AES-GCM e a Elliptical Curve

Cryptography (ECC) binária, e auxilia nos

códigos de correção de erros e checagens de

redundâncias cíclicas de finalidades gerais

(CRCs) e deduplicação de dados. Ele

particularmente ajuda na multiplicação carry-

less, também conhecida como "multiplicação

polinomial binária". Esta é uma operação

matemática para a computação do cálculo do

produto de dois operandos, sem gerar ou

propagar carries. Tais multiplicações são um

passo essencial no cálculo dos campos binários

de Galois. As instruções Intel AES-NI incluem

instruções de multiplicação carry-less. Os

algoritmos podem utilizar o CLMUL para

calcular o hash de Galoi. O CLMUL acelera a

execução do GCM por meio do cálculo da

multiplicação carry-less de dois operandos de

64 bits.

Voltando à Figura 1, vemos que ela mostra

quatro das novas instruções executando os

ciclos de criptografia e descriptografia de um

texto puro de 128 bits. Durante cada ciclo,

existem duas instruções que auxiliam na

geração da chave seguinte. A instrução

AESENC criptografa cada ciclo e a AESENCLAST

criptografa o último ciclo. De modo contrário

(descriptografia), a AESDEC descriptografa

cada ciclo e a AESDECLAST descriptografa o

último ciclo. Outra instrução, AESIMC, faz a

operação de mix column para cada rodada e a

AESKEYGENASSIST gera a próxima chave. As

chaves podem ser de 128, 192 ou 256 bits.

Lembre-se, todos esses cálculos estão sendo

feitos pelo hardware e proporcionam uma

aceleração significativa: 4 vezes mais rápida na

criptografia CBC, no modo serial e mais de 14

vezes nos modos paralelos de operação

(consulte a Seção 6.1 para obter detalhes).

Além do benefício no desempenho, a execução

das instruções no hardware provê uma

segurança adicional, que ajuda a evitar ataques

side-channel por software. Ataques side-

channel por software são vulnerabilidades na

implementação em software dos algoritmos de

criptografia. Eles surgem em vários ambientes

de processamento (núcleos múltiplos, threads

ou sistemas operacionais). Ataques side-

channel por software baseados em cache

exploram o fato de o AES possuir blocos de

criptografia, chaves e tabelas de pesquisa

mantidos em memória. Em um ataque de cache

collision-timing side-channel, um pedaço de

código mal-intencionado sendo executado na

plataforma poderia semear o cache, executar

operações de criptografia e cronometrar

acessos de memória especialmente produzidos

para identificar alterações no cache. A partir

dessas alterações, o ataque poderia

determinar pedaços do valor da chave

criptográfica. Por exemplo, através da medição

do tempo que leva para uma determinada

operação criptográfica ser executada, um

invasor pode ser capaz de determinar que o bit

mais superior de uma chave é um "0". Sabe-se

que um único bit corta pela metade o espaço

da chave que tem de ser procurada para

identificar o valor completo da chave. Ataques

side-channel mais eficazes reduzem o espaço

da chave significativamente (isto é, eles podem

identificar metade dos bits na chave).

Page 6: Protegendo a Empresa com Intel AES-NI · computação de hoje, várias máquinas compartilham os mesmos recursos de hardware. Esses recursos de hardware precisam agora de mais proteção,

Protegendo a Empresa com Intel ® AES-NI

6

Para obter mais informações sobre a instrução

CLMUL e seu uso na multiplicação carry-less,

consulte: http://software.intel.com/en-

us/articles/carry-less-multiplication-and-its-

usage-for-computing-the-gcm-mode

5. Modelos de uso do AES

Esta seção identifica três modelos de uso

principais (ver Figura 2) para as instruções Intel

AES-NI: criptografia de rede, criptografia total de

disco (FDE) e criptografia em nível de aplicativo.

As aplicações em rede utilizam a criptografia para

proteger os dados em trânsito com protocolos

abrangendo SSL, TLS, IPsec, HTTPS, FTP e SSH.

Esta seção se concentra nos protocolos HTTPS e

IPsec e também no FDE e modelos em nível de

aplicativo que utilizem criptografia para proteger

dados armazenados.

Em todos esses três modelos, o aumento de

desempenho foi obtido utilizando as instruções

Intel AES-NI. Tais melhorias podem permitir o uso

de criptografia onde antes seria impraticável

devido ao impacto no desempenho.

5.1. Transações Seguras

Nos dias de hoje, em um mundo altamente

conectado, servidores web, servidores de

aplicativos e backend de banco de dados se

conectam por meio de redes IP através de

Uma vez que as instruções Intel AES-NI

estão baseadas no hardware, não há

necessidade de tabelas de pesquisa e os

blocos de criptografia são executados no

hardware, dentro do microprocessador.

Isso permite que implementações do AES

que utilizam as instruções Intel AES-NI

tratem ataques side-channel 6.

Adicionalmente, essas instruções tornam

o AES fácil de ser implementado, com

menor tamanho de código. Isso ajuda a

reduzir o risco de introdução inadvertida

de falhas de segurança difíceis de se

identificar, tal como o vazamentos side-

channel. Além disso, a aceleração

proporcionada pelas instruções Intel

AES-NI podem permitir que o sistema

execute tamanhos maiores de chave,

tornando assim a transferência de dados

mais segura.

Os benefícios de desempenho e robustez

das instruções Intel AES-NI estarão

disponíveis aos clientes que comprarem

servidores baseados no processador Intel

Xeon da série 5600, e software que foi

otimizado para as novas instruções.

Para obter mais informações sobre as novas

instruções AES, consulte:

http://software.intel.com/file/24917

Figura 2. Três modelos de uso do AES.

Figura 3. Transações seguras

utilizando SSL.

Page 7: Protegendo a Empresa com Intel AES-NI · computação de hoje, várias máquinas compartilham os mesmos recursos de hardware. Esses recursos de hardware precisam agora de mais proteção,

Protegendo a Empresa com Intel ® AES-NI

7

gateways e outros equipamentos. O SSL é em

geral utilizado para realizar transações seguras

através da rede. É bem conhecido por prover

processamento seguro para transações

bancárias e outras atividades de e-commerce, e

também para as comunicações nas empresas

(como intranets).

Na operação segura representada na Figura 3,

o usuário primeiramente acessa uma página

web com uma URL começando com https://. O

HTTPS combina o Hypertext Transfer Protocol

(HTTP) e um protocolo de criptografia para criar

um canal seguro sobre uma rede insegura. O

HTTP opera na camada superior (camada de

aplicação do padrão OSI), mas o HTTPS utiliza o

protocolo SSL na camada de apresentação. A

maioria dos novos servidores implantados, que

suportam SSL, também suportam o AES como

uma escolha de cifra. Contudo, para uma

transação HTTPS no navegador, a escolha do

conjunto de cifra é pesadamente influenciada

pelo sistema operacional do cliente e não pelo

suporte do navegador ou do servidor. O AES é a

escolha predominante dos sistemas

operacionais Microsoft * Windows * 7, Vista* e

também Linux*. A grande base instalada de

Windows XP utiliza o conjunto de cifras RC4-

MD5 para transações SSL, mais antigo e menos

seguro. Um servidor seleciona a função de hash

e o conjunto de cifras mais forte que tanto o

servidor quanto o cliente suportam e notifica o

cliente dessa decisão.

Uma vez que o cliente contata o servidor para

iniciar uma transação (de volta à Figura 3), uma

transação SSL começa com o handshake entre

o cliente e o servidor usando o algoritmo de

criptografia RSA. O RSA requer que o servidor

envie uma chave pública para o cliente, em

seguida o cliente envia ao servidor um pre

master secret, que é decifrado pelo servidor.

Devido ao RSA ser um algoritmo assimétrico, o

cliente terá de utilizar uma chave diferente

para descriptografar os dados. O AES utiliza

uma autenticação handshake semelhante à do

RSA, mas é um algoritmo simétrico, de modo

que a mesma chave vai criptografar e

descriptografar.

Após o handshake do AES, começa a troca de

dados autenticados em massa via AES.

As instruções Intel AES-NI provêm uma

oportunidade real de redução do impacto

computacional (carga computacional) naquelas

transações SSL que utilizam o algoritmo AES.

Existe uma sobrecarga significante no

estabelecimento de comunicações seguras e

isto pode ser multiplicado por centenas ou

milhares, dependendo de quantos sistemas

quiserem estabelecer comunicações seguras

com um servidor. Pense no seu site favorito de

compras durante a temporada de final de ano.

Integrar as instruções Intel AES-NI melhoraria o

desempenho reduzindo o impacto da

computação através da redução da computação

de todas essas transações seguras.

5.1.1. HTTPS em Nuvem

Embora as conexões HTTPS sejam tipicamente

utilizadas no pagamento de operações na web

e transações confidenciais em sistemas de

informações corporativas, elas também são

populares para e-mails, portais e softwares de

colaboração em intranets e na Internet. Com a

crescente popularidade de serviços em nuvem,

como o Google Apps* e Windows* Live, as

conexões seguras HTTPS recebem maior

atenção e utilização.

O crescimento dos serviços em nuvem está

colocando enormes quantidades de dados de

usuários na Web. Para proteger os usuários,

operadores de nuvens públicas e privadas

precisam garantir a privacidade e

confidencialidade dos dados de cada indivíduo,

enquanto se movimentam entre o cliente e a

nuvem. Isso significa instituir uma

infraestrutura de segurança em toda a sua

multiplicidade de oferta de serviços e pontos de

acesso. Por essas razões, a quantidade de

dados criptografados, transmitidos, e

descriptografados em conjunto com conexões

HTTPS deve crescer à medida que as nuvens se

proliferam7.

Para os provedores de nuvens, o desempenho e

a capacidade de resposta das transações, o

conteúdo de streaming e as sessões de

colaboração sobre a nuvem são todos críticos

para a satisfação do cliente. Quanto maior o

número de assinantes dos serviços de nuvem,

mais pesada será a carga nos servidores. Isso

faz cada grama de desempenho que possa ser

acrescentada ser incrivelmente importante. As

instruções Intel AES-NI e sua capacidade de

acelerar o desempenho de criptografia e

decodificação podem desempenhar um papel

significativo ajudando o movimento da

computação em nuvem a aperfeiçoar a

experiência do usuário e a acelerar trocas de

dados seguras.

5.1.2. Internet Protocol Security (IPSec)

Enquanto o SSL é normalmente utilizado entre

aplicativos web e serviços na camadas sete da

OSI, o IPsec utiliza pares conhecidos na camada

três, como mostrado na Figura 4.

Figura 4. IPsec na pilha OSI.

Page 8: Protegendo a Empresa com Intel AES-NI · computação de hoje, várias máquinas compartilham os mesmos recursos de hardware. Esses recursos de hardware precisam agora de mais proteção,

Protegendo a Empresa com Intel ® AES-NI

8

Uma política específica para um conjunto

selecionado de portas e

criptografia/descriptografia é feita por uma

biblioteca de sockets (uma interface de

programação de baixo nível que permite que

clientes configurem uma conexão TCP/IP e que

se comuniquem diretamente com servidores),

ou por uma biblioteca de sistema operacional.

O IPsec pode ser também redirecionado para

uma placa de rede Ethernet, como por exemplo

os controladores Intel® 82599 de 10 Gigabits

ou Intel® 82576 Gigabit Ethernet. Quando

somente algumas conexões forem necessárias,

o redirecionamento para a placa de rede será

provavelmente a solução preferencial para o

IPsec. Quando existirem muitas conexões, as

instruções Intel AES-NI são a melhor solução

(dadas as limitações existentes em torno do

número de conexões suportadas pelas engines

de redirecionamento) ou uma abordagem

híbrida, que possa ser redirecionado para a

placa de rede ou distribuída para bibliotecas de

criptografia do sistema operacional para a

aceleração do Intel AES-NI.

Um cenário típico para o uso do IPsec é a

proteção do tráfego de dados entre um

escritório na empresa e um escritório remoto.

O tráfego no escritório remoto poderia ser de

12 a 15 conexões, mas no escritório

corporativo seriam 12.000 conexões. Para o

escritório remoto, uma abordagem de

redirecionamento puro faz sentido. Para o

escritório corporativo, uma abordagem híbrida

melhoraria o desempenho. Sempre que a

criptografia/descriptografia AES entrar em

jogo, a utilização de servidores baseados nos

processadores Intel Xeon da série 5600 e de

software otimizado para as instruções Intel

AES-NI melhoraram o desempenho e a

segurança, movendo alguns dos passos de

execução da criptografia/descriptografia

para o hardware.

5.2. Aplicativos Corporativos

A maioria dos aplicativos corporativos

oferecem algum tipo de opção para utilizar

a criptografia na segurança das

informações. É uma opção comum utilizada

em e-mails e aplicativos de colaboração e

portais. Aplicações de ERP e CRM também

oferecem criptografia em suas arquiteturas

com um backend de banco de dados.

Exemplos de bancos de dados que

oferecem opções de criptografia são:

Oracle* Database, IBM DB2, Microsoft SQL

Server*, Microsoft Access, e MySQL*. A

criptografia de banco de dados oferece

granularidade e flexibilidade em nível de

células de dados, em nível de colunas e em

nível de sistema de arquivos, tablespace e

banco de dados. A criptografia de dados

transparente (TDE) é uma funcionalidade

existente em alguns bancos de dados

(Oracle Database 10gR2 e 11g8 e Microsoft

SQL Server 20089) que criptografa

automaticamente os dados quando são

armazenados no disco e os descriptografa quando eles

são lidos de volta para a memória. Os fornecedores

podem utilizar funcionalidades como o TDE para ajudar

a tratar requisitos PCI-DSS. Universidades e

organizações de saúde podem utilizá-las para

criptografar automaticamente seus dados para

salvaguardar números de seguridade social e outras

informações confidenciais de acesso não autorizado às

unidades de disco e mídias de backup. Uma vez que o AES é um algoritmo suportado na maioria dos

esquemas de criptografia dos aplicativos empresariais,

o uso das instruções Intel AES-NI fornece uma

excelente oportunidade para acelerar esses aplicativos

e aperfeiçoar a segurança (veja a Figura 5).

5.3. Criptografia total de disco (FDE)

O FDE, como mostrado na Figura 6, utiliza criptografia

de software que criptografa cada bit de dado que vai

para um disco ou volume de disco. Enquanto o termo

FDE é utilizado com frequência para significar que tudo

em um disco está criptografado - incluindo os

programas de inicialização do sistema operacional - o

registro mestre de inicialização (MBR) não está e,

portanto, essa pequena parte do disco permanece

descriptografada. O FDE pode ser implementado

através de software de criptografia de disco ou de um

disco rígido criptografado.

Figura 5. Modelo de uso da criptografia AES

no nível de aplicação.

Figura 6. Modelo de uso da criptografia total

de disco (FDE) usando AES .

Page 9: Protegendo a Empresa com Intel AES-NI · computação de hoje, várias máquinas compartilham os mesmos recursos de hardware. Esses recursos de hardware precisam agora de mais proteção,

Protegendo a Empresa com Intel ® AES-NI

9

O DAS é normalmente conectado a um ou

mais discos rígidos Serial Attached SCSI (SAS)

ou SATA, no gabinete do servidor. Uma vez

que existem relativamente poucos discos

rígidos e interconexões, a largura de banda

efetiva é relativamente baixa. Geralmente

isso faz com que seja razoável para um

processador de servidor criptografar os dados

no software a uma taxa compatível com os

requisitos de largura de banda de

armazenamento DAS.

A criptografia completa de disco, ou Full Disk

Encryption (FDE) está crescendo como uma

medida de segurança. Produtos como o

Windows BitLocker Drive Encryption no

Windows* Server 2008, PGPdisk, e McAfee*

Total Protection for Endpoint fornecem

criptografia de dados armazenados em discos

rígidos. Além de proteger os dados contra

perdas e roubo, a FDE facilita o descarte e a

reparação. Por exemplo, se um disco rígido

danificado for decodificado com informações

confidenciais contidas nele, enviá-lo para

reparo poderia potencialmente expor seus

dados. Considere, por exemplo, a experiência

do National Archive and Records

Administration (NARA). Quando um disco

rígido com informações pessoais de cerca de

76 milhões de homens em serviço foi

avariado, o NARA o enviou de volta para seu

fornecedor de TI para reparos. Por falha na

limpeza da unidade antes de ser enviada, a

NARA, sem dúvida criou o maior caso de

violação de dados de governo já visto10. De

forma similar, quando um disco rígido

específico é retirado de serviço ao final da sua

vida útil ou recuperado para um novo uso, a

criptografia pode poupar a necessidade de

medidas especiais para proteger qualquer

dado confidencial. Em um data center com

milhares de discos, melhorar a facilidade de

reparação, descarte e recuperação pode

economizar dinheiro.

6. Implicações de desempenho

Esta seção discute as potenciais melhorias de

desempenho do processador Intel Xeon da

série 5600, com as instruções Intel AES-NI,

que irão ajudar a incentivar a adoção da

criptografia AES em muitos dos modelos

atuais de uso.

O desempenho pode ser medido através de

uma série de medidas e pode se concentrar

sobre apenas um algoritmo específico ou

numa operação focada (kernel), no geral do

aplicativo ou em uma transação, ou na

robustez da segurança de um aplicativo. Um

estudo de desempenho isolando a aceleração

do kernel poderia resultar numa aceleração

muitas vezes maior que um estudo de

aceleração do aplicativo, que provavelmente

verá menor ganho devido aos efeitos da lei de

Amdahl. (Esta lei observa como a aceleração

de um programa que utiliza múltiplos

processadores em paralelo é limitada pelo

tempo necessário para a fração sequencial do

programa.)

No mercado de hoje, facilidade de uso,

capacidade e simplesmente o fato dos dados

estarem criptografados em algum grau,

muitas vezes supera as considerações de

quão segura a criptografia realmente é11.

Melhorias no desempenho como as oferecidas

pelas instruções Intel AES-NI poderiam criar

formas mais seguras de criptografia que

envolvessem maior sobrecarga de

computação e outras alternativas mais

prontamente adotadas, tornando dados

pessoais e corporativos armazenados ou em

trânsito mais seguros a longo prazo.

As discussões sobre desempenho neste artigo

estão limitadas aos resultados usando

plataformas de referência baseadas no

processador Intel® Xeon® série 5600 e em

software otimizado para as instruções Intel

AES-NI.

6.1. Desempenho de transações seguras

Se você se lembrar da Figura 3, ela mostra

como uma transação SSL funciona; em um

setup de servidor web, o cliente abre uma

página dinâmica HTTPS e faz o download de

um arquivo estático do servidor. A transação

primeiramente começa com um handshake

RSA entre o cliente e o servidor para estabelecer

uma conexão e então é seguido pelo handshake

do SSL e pela troca de dados em massa, que

poder utilizar o AES. Um conjunto semelhante de

passos acontece quando o novo protocolo TLS se

faz necessário.

É esperado que, quando a criptografia está

ativada, o desempenho fique degradado. No

entanto, uma análise interna da Intel com a carga

de trabalho de um site bancário na web rodando

PHP e Windows Server 2008 R2 (Figura 7), pode

suportar mais usuários nos servidores baseados

nos processadores Intel Xeon X5600

(anteriormente conhecido como Westmere-EP).

Os servidores foram equipados com 48 GB de

RAM, 24 arrays SSD RAID 0 e um conjunto de

cifras TLS_RSA_with_AES_128_ CBC_SHA. O

estudo mostrou que 23% mais usuários podem

ser suportados em um processador Intel Xeon

X5680 ativando o SSL (criptografia) em

comparação com um processador Intel Xeon

X5570 (anteriormente conhecido como

Nehalem) sem SSL. Comparado com um Intel

Xeon de 3.0 GHz da série 5160 (anteriormente

conhecido como Wooodcrest), o número de

usuários suportados pode ser 4.5 vezes maior

com um processador Intel Xeon da série X5680,

portanto suportando oportunidades de

consolidação, mesmo com a criptografia

habilitada.

Figura 7. A medição da Intel foi feita com o

Windows* Server 2008 R2 x64

Ent. Svr. PHP sessões/usuários bancários

medidos com um processador Intel® Xeon®

X5680 de 3.33 GHz versus um processador

Intel® Xeon® da série X5160 de 3.0 GHz e um

processador Intel Xeon X5570 de 2.93 GHz,

24 arrays SSD RAID 0 e a suíte de cifra

TLS_RSA_with_AES_128_CBC-SHA.

Page 10: Protegendo a Empresa com Intel AES-NI · computação de hoje, várias máquinas compartilham os mesmos recursos de hardware. Esses recursos de hardware precisam agora de mais proteção,

Protegendo a Empresa com Intel ® AES-NI

10

O Oracle Database Enterprise Edition11.2.0.2

Advanced Security pode agora utilizar as

instruções Intel AES-NI para acelerar o

desempenho da criptografia TDE. Como

representado na Figura 8, testes com o Oracle

Database Enterprise Edition 11.2.0.2 com TDE

AES-256 mostram um aumento de 10 vezes na

velocidade ao se inserir um milhão de linhas 30

vezes em uma tabela vazia, no processador

Intel® Xeon® X5680 (baseado na micro

arquitetura Intel® conhecida como Westmere,

3.33 GHz, 36MB RAM), otimizado com a

biblioteca de criptografia Intel® Integrated

Performance Primitives (Intel® IPP) versus o

Intel® Xeon® X5570 (baseado na

microarquitetura Intel® conhecida como

Nehalem, 2.93 GHz, 36MB RAM), sem a Intel

IPP. O teste também demonstrou um aumento

de velocidade em 8 vezes para descriptografar

uma tabela de 5,1 milhões de linhas. O tempo

foi medido a cada 8KB de dados e mostra a

taxa de criptografia/descriptografia em

MB/segundo de CPU. Para a criptografia e

descriptografia TDE AES-128, mostrada na

Figura 9, foi observado um aumento de

velocidade em 10 vezes e 7 vezes,

respectivamente. Em resumo, o processador

Intel Xeon da série 5600 permite que as

empresas cumpram suas necessidades de

conformidade com a Segurança Avançada da

Oracle, mantendo ao mesmo tempo o mais

elevado nível de desempenho e reduzindo de

forma considerável o custo de processamento

de criptografia.

6.3. Criptografia total de disco

Em geral, os discos individuais de servidores

tendem a ter menor capacidade e melhor

latência que os discos dos clients. A primeira

vez que se o disco é provisionado

(criptografando todos os seus dados) consome

muito tempo, especialmente com unidades de

grande porte, e levar horas. É esperado que o

processador Intel Xeon X5600 com as

instruções Intel AES-NI realize essa tarefa mais

rapidamente que os processadores da geração

anterior. Medidas internas da Intel, com o

pacote McAfee Endpoint Encryption* para PCs

(EEPC) 6.0 com McAfee ePolicy Orchestrator*

(ePO) 4.5 criptografando um drive de estado

sólido Intel® X25-E de 32GB em um processador

de 3.33 GHz X5680 versus um processador de

2.93 GHz Intel Xeon X5570 mostram um tempo

de provisionamento de SSD d servidores 42%

mais rápido (Figura 10).

6.2. Desempenho da criptografia no nível de

aplicação

A criptografia em bancos de dados, ERP/CRM,

servidores de aplicativos, middleware,

servidores de e-mail e hypervisors incorre na

utilização adicional do processador e no

overhead de threading/sincronização. A

Transparent Data Encryption (TDE) para bancos

de dados incorre em overhead d até 28%

durante a alta utilização do processador12.

Em um banco de dados, a descriptografia

(leitura do disco) é mais comum que a

criptografia (escrita em disco). O CBC é um

modo comum de AES e é utilizado na TDE13. O

principal drawback do CBC é que a criptografia

é serial (não paralelizável), portanto uma

mudança de um bit em um texto plano, afeta

todos os blocos de textos criptografados. A

descriptografia CBC, contudo, é

potencialmente paralelizável onde o texto

plano pode ser recuperado a partir de apenas

dois blocos adjacentes do texto cifrado14.

Figura 8. Performance de criptografia e decodificação do Intel® Xeon®, da série 5600 com Oracle

Enterprise Edition 11.2.0.2 Advanced Security TDE 256 bits

Figura 9. Desempenho da criptografia e descriptografia do processador Intel® Xeon®, da série 5600

com o Oracle Enterprise Edition 11.2.0.2 Advanced Security TDE 128 bit.

Page 11: Protegendo a Empresa com Intel AES-NI · computação de hoje, várias máquinas compartilham os mesmos recursos de hardware. Esses recursos de hardware precisam agora de mais proteção,

Protegendo a Empresa com Intel ® AES-NI

11

com fornecedores de sistemas operacionais,

bibliotecas e compiladores para que otimizem

seu software com as instruções Intel AES-NI.

7.1. Sistemas Operacionais

Os fornecedores de software independentes

(ISVs) podem aproveitar as interfaces de

programação de aplicativos (APIs) de criptografia

especificas de um sistema operacional

dinamicamente, sem precisar fazer o trabalho de

otimização do algoritmo de criptografia. No nível

de middleware e infraestrutura, as bibliotecas

padrão de criptografia do sistema operacional

podem ser chamadas a partir do código.

A biblioteca Microsoft Crypto Next Generation

(CNG), disponível no Windows Server 2008

Release 2 e Windows 7, suporta diversos

algoritmos, incluindo todos os tamanhos de

chave do AES. A API de criptografia do Linux,

inicialmente desenvolvida para suportar a parte

criptográfica do IPsec no kernel, suporta outras

utilizações com aplicações em potencial, incluindo

arquivos criptografados, sistemas de arquivos

criptografados, forte integridade de sistemas de

arquivos, dispositivos de caracteres aleatórios,

segurança em sistemas de arquivos em rede e

outros serviços do kernel de rede que requeiram

criptografia. Um patch com a otimização Intel

AES-NI foi integrado às APIs assíncronas do

Linux.

O Solaris 10* possui uma estrutura de

criptografia de kernel (kCF) que oferece APIs de

criptografia para outros módulos ou drivers de

kernel.

7.2. Bibliotecas

Para aplicativos que utilizem bibliotecas de

terceiros para suporte à criptografia (Tabela 1),

os ISVs constroem seus aplicativos linkando

estática ou dinamicamente as bibliotecas

criptográficas, algumas das quais possuem

código fonte aberto. Essas bibliotecas irão

substituir as rotinas AES básicas com algoritmos

otimizados.

7.2.1. A biblioteca Intel® Integrated Performance

Primitives

O conjunto de funções de criptografia Intel IPP é

uma suíte de funções pré-montadas de chaves

públicas, simétricas e funções hash em

conformidade com as especificações dos padrões

NIST Federal Information Processing Standards

(FIPS) do governo dos EUA. Os ISVs podem

utilizar a Intel IPP para construir rapidamente

módulos e aplicativos de criptografia robustos e

de alto desempenho.

7.2.2. Java* Cryptography Extensions - JCE

O JCE fornece um framework e implementações

para encriptação, geração e acordos de chaves e

algoritmos MAC. Seu suporte à encriptação inclui

cifras simétricas, assimétricas, de bloco e de

stream, além de suportar streams seguros e

objetos selados.

7. Implementando em aplicativos

Os fornecedores de software independentes

(ISVs) possuem três modos de implementar as

instruções Intel AES-NI. Eles podem:

Usar as instruções usando bibliotecas de

sistema operacional

Usar as instruções através de bibliotecas

de terceiros

Codificar a inserção no aplicativo eles

mesmos usando as novas instruções

A maioria dos desenvolvedores de software

utiliza os serviços de criptografia do sistema

operacional ou bibliotecas para a encriptação

efetiva. Os compiladores mais populares são

também capazes de dar suporte para que os

desenvolvedores AES-NI escrevam seu código

criptográfico diretamente. A Intel tem trabalhado

Tabela 1. Bibliotecas otimizadas Intel® AES-NI

NOME DA BIBLIOTECA LOCALIZAÇÃO

STATUS DO INTEL®

AES-NI

Intel® IPP Crypto Library V6.1: http://software.intel.com/en-us/intel-ipp/ Disponível

OpenSSL* / OpenSSH / libNSS http://rt.openssl.org/Ticket/Display.html?id=2067&user=guest&pass=guest

http://www.mozilla.org/projects/security/pki/nss/nss-3.12.3/nss-3.12.3-release-

notes.html

Disponível

Microsoft Cryptographic Next Generation

Library

http://www.microsoft.com/downloads/en/details.aspx?FamilyId=1EF399E9-B018-49DB-

A98B-0CED7CB8FF6F&displaylang=en

Disponível

RSA* BSAFE* http://www.rsa.com/node.aspx?id=1204 3º/4º Trim. de 2010

Java* Criptography Extension http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/CryptoSpec.html TBD

crypto + + http://www.cryptopp.com TBD

Figura 10. * McAfee Endpoint Encryption

para PCs (EEPC) 6,0 pacote com McAfee *

ePolicy Orchestrator (ePO) 4.5

criptografando um SSD de 32GB X25E

com Intel Xeon X5680 de 3.33 GHZ

versus um Intel Xeon X5570 de 2.93 GHz

(servidor com 24GB de memória).

Page 12: Protegendo a Empresa com Intel AES-NI · computação de hoje, várias máquinas compartilham os mesmos recursos de hardware. Esses recursos de hardware precisam agora de mais proteção,

Protegendo a Empresa com Intel ® AES-NI

12

Tabela 2. Compiladores que suportam as instruções Intel® AES-NI

NOME DO COMPILADOR DESCRIÇÃO

STATUS DO INTEL®

AES-NI

Microsoft Visual C++* 2008 SP1:

http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-

A40D-3802B2AF5FC2&displaylang=en

Disponível

Intel V11.0: http://software.intel.com/en-us/articles/intel-c-compiler-for-windows-support-

resources/ Disponível

GCC 4.4.0+ and Linux* Binutils 2.18.50.0.6: http://gcc.gnu.org/gcc-4.4/

Disponível

O JCE foi projetado para que outras bibliotecas

de criptografia qualificadas possam funcionar

como provedores de serviços e adicionar

novos algoritmos. Provedores qualificados são

indicados por uma entidade confiável.

O JCE (J2SE 5.0 release) é o provedor de

criptografia padrão para aplicativos Java que

requeiram criptografia. Na plataforma Solaris, o

JCE liga-se ao Solaris Cryptographic

Framework. Ele pode aproveitar qualquer

mecanismo disponível no framework.

7.2.3. RSA* BSAFE

A biblioteca RSA* BSAFE* é um módulo livre

para download muito difundido e popular. A

RSA BSAFE suporta o modos DAS aprovado

pelo FIPS, rDSA (RSA ANSI X9.31), DES e TDES,

e os algoritmos SHA-1.

7.2.4. Crypto++

A biblioteca Crypto++ é uma biblioteca livre de

classes C++ de esquemas de criptografia que

consiste de implementações do AES, Diffie-

Hellman Key Exchange, criptografia RSA,

criptografia de curva elíptica e algoritmo de

assinatura digital. Os módulos AES-GCM, AES-

CCM, e AES-CBC estão disponíveis para

download.

7.2.5. OpenSS*

Este esforço colaborativo que oferece um kit

de ferramentas robustas, de nível comercial,

completo e de código aberto, implementando

os protocolos Secure Sockets Layer (SSL

v2/v3) e Transport Layer Security (TLS v1). O

projeto OpenSSL também oferece uma potente

biblioteca de criptografia de uso geral. Gerenciado por uma comunidade mundial de voluntários, o projeto utiliza a web para comunicar, planejar e desenvolver seu kit de

ferramentas OpenSSL e toda documentação

relacionada.

O OpenSSL é baseado na biblioteca SSLeay desenvolvida por Eric A. Young e Tim J. Hudson. O kit de ferramentas OpenSSL é licenciado sob

uma licença do estilo Apache. Os ISVs podem

obtê-la e utilizá-la livremente para fins

comerciais e não-comerciais (sujeitos às

condições simples da licença).

A OpenSSL é um dos poucos programas de

código aberto a serem validados sob o padrão

de segurança FIPS 140-2 pelo Cryptographic

Module Validation Program do NIST.

7.2.6. Kernel do Linux*

O kernel do Linux é distribuído sob a Licença

Pública Geral GNU versão 2 (GPLv2), e é

desenvolvido por colaboradores em todo o

mundo. Existem licenças proprietárias para

alguns controversos e grandes objetos binários

(BLOBs).

7.3. Compiladores

Aplicativos que não alavancam bibliotecas para

cifras AES devem considerar a adição de

suporte ao Intel AES-NI, usando um compilador

existente (Tabela 2). Compiladores populares

no mercado suportam programação Intel AES-

NI usando funções intrínsecas ou assembly.

Existe um emulador disponível que permite o

desenvolvimento de software com o Intel AES-

NI. O emulador está disponível no seguinte link: http://software.intel.com/

en-us/articles/pre-release-license-agree-

ment-for-intel-software-development-em-

ulator-accept-end-user-license-agreement-

and-download.

8. Conclusão

As instruções Intel AES-NI fornecem um novo

conjunto de instruções de processador que

inicialmente estarão disponíveis em servidores

baseados no processador Intel Xeon, série

5600. Essas instruções permitem criptografia e

descriptografia de dados rápidas e seguras.

Uma vez que o AES é a cifra de bloco

dominante e está distribuído em vários

protocolos, as novas instruções serão valiosas

para uma ampla gama de aplicações.

A arquitetura é composta por seis instruções

que oferecem suporte de hardware ao AES.

Quatro instruções suportam criptografia e

descriptografia AES, as outras duas instruções

suportam expansões de chave AES. A sétima

nova instrução, CLMUL, acelera o modo GCM

para AES, auxiliando na ECC, CRCs de finalidade

geral, assim como na deduplicação de dados.

Juntas, essas instruções oferecem um aumento

significativo no desempenho em comparação

com as implementações exclusivamente por

software.

As instruções AES possuem a flexibilidade de

suportar os três tamanhos padrão de chaves

AES, todos os modos de funcionamento padrão

e até mesmo algumas variantes fora dos

padrões ou futuras variantes.

Além de melhorar o desempenho, as instruções

AES oferecem benefícios de segurança

importantes. Como são executadas em tempos

independente dos dados e não usam tabelas de

lookup, ajudam na eliminação da maioria dos

ataques baseados em cache e tempo que

ameaçam as implementações de software do

AES baseadas em tabelas. Além disso, essas

instruções fazem com que o AES seja simples

de implementar, com um tamanho reduzido de

código. Isso ajuda a diminuir o risco da

introdução inadvertida de falhas de segurança.

Page 13: Protegendo a Empresa com Intel AES-NI · computação de hoje, várias máquinas compartilham os mesmos recursos de hardware. Esses recursos de hardware precisam agora de mais proteção,

Protegendo a Empresa com Intel ® AES-NI

13

Os ISVs podem empregar os serviços de

criptografia de sistema operacional e as

otimizações de bibliotecas de terceiros para

integrar com facilidade e de forma eficiente

as rotinas de otimizadas Intel AES-NI de

forma estática ou dinâmica. Ao implementar

as instruções Intel AES-NI nos aplicativos, os

ISVs estarão fornecendo aos usuários finais

das mais recentes plataformas da Intel (começando pelo processador Intel Xeon,

série 5600) todas as vantagens da

criptografia AES, porém com a necessária

aceleração baseada em instruções, tirando os

grandes problemas de desempenho para fora

da equação.

Este artigo descreve as vantagens da

implementação do Intel AES-NI nos casos de

uso de comércio seguro, aplicativos

empresariais, armazenamento, criptografia

total de disco, criptografia em nível de

aplicativo (e-mails, bases de dados, etc) e

migração segura de máquina virtual. Devido à

natureza intensiva de processamento da

criptografia/descriptografia, as instruções Intel

AES-NI se tornam essenciais para a aceleração dos subpassos do algoritmo AES, permitindo

que os aplicativos sejam executados de forma

mais rápida e com mais segurança.

O desempenho tem mostrado que os novos

processadores Intel Xeon podem rodar

servidores Web com criptografia até 23%

mais rápido do que as gerações anteriores,

sem criptografia. Esse ganho de

desempenho permite maior proteção de

dados e melhor proteção dos ativos de

informações de data centers, permitindo

criptografia em lugares anteriormente

inviáveis por questões de desempenho.

Para obter mais informações sobre o

Intel ® AES-NI, visite www.intel.com

1 Privacy Rights Clearinghouse, “Chronology of Data Breaches.” http://www.privacyrights.org/data-breach.

2 Charles J. Kolodgy, “IDC Encryption Usage Survey,” IDC #213646, Volume: 1de Agosto de 2008.

3 Charles J. Kolodgy, “IDC Encryption Usage Survey,” IDC #213646, Volume: 1de Agosto de 2008.

4 “States Move to Mandate Encryption of Sensitive Personal Data,” The Last Watchdog on Internet Security, 2 de março de 2009.http:/ lastwatchdog.com/states-moving-mandate-

encryption-sensitive-personal/

5 Federal Information Processing Standards Publication 197. http://csrc.nist.gov/publications/fi ps/fi ps197/fi ps-197.pdf.

6 Shay Gueron, “Advanced Encryption Standard (AES) Instructions Set - Rev 3,” Intel white paper, Junho de 2009.http:/ software.intel.com/en-us/articles/advanced-encryption-standard-aes-

instructions-set/ 7 Carta de seis páginas ao CEO da Google, Eric Schmidt, assinada por 38 pesquisadores e acadêmicos nas áreas da ciência da computação, segurança de informações e leis de privacidade.

Juntos, solicitam à Google que honre a promessa feita a seus clientes sobre privacidade, e que proteja as comunicações dos usuários contra o roubo e a espionagem, permitindo à indústria de

tecnologia de criptografia o padrão de transporte (HTTPS) para o Google Mail, Docs, e Calendário.http:/ fi les.cloudprivacy.net/google-letter-fi nal.pdf

8 Paul Needham, “Oracle Advanced Security Data Sheet,” Junho de 2007. http:/ www.docstoc.com/docs/2659717/Oracle-Advanced-Security

9 Sung Hsueh, Database Encryption in SQL Server 2008 Enterprise Edition, Microsoft SQL Server technical article, Fevereiro de 2008. http:/ msdn.microsoft.com/en-

us/library/cc278098.aspx

10 “The Year of the Mega Data Breach,” Forbes, 24 de novembro de 2009.

11 Charles J. Kolodgy, “IDC Encryption Usage Survey,” IDC #213646, Volume: 1, Agosto de 2008.

12 Sung Hsueh, Database Encryption in SQL Server 2008 Enterprise Edition, Microsoft SQL Server technical article, Fevereiro de 2008. http:/ msdn.microsoft.com/en-

us/library/cc278098.aspx

13 An Oracle white paper, “Oracle Database 11g: Cost-Effective Solutions for Security and Compliance,” Junho de 2009.

14 http://en.wikipedia.org/wiki/Cipher_Block_Chaining#Cipher-block_chaining_.28CBC.29

Performance tests and ratings are measured using specific computer systems and/or components and reflect the approximate performance of Intel products as measured by those tests. Any difference in system hardware or

software design or configuration may affect actual performance. Buyers should consult other sources of information to evaluate the performance of systems or components they are considering purchasing. For more information on

performance tests and on the performance of Intel products, visit Intel Performance Benchmark Limitations.

INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL® PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO

ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN INTEL’S TERMS AND CONDITIONS OF SALE FOR SUCH

PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER, AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL

PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT,

COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT. UNLESS OTHERWISE AGREED IN WRITING BY INTEL, THE INTEL PRODUCTS ARE NOT DESIGNED NOR

INTENDED FOR ANY APPLICATION IN WHICH THE FAILURE OF THE INTEL PRODUCT COULD CREATE A SITUATION WHERE PERSONAL INJURY OR DEATH MAY

OCCUR.

Intel may make changes to specifications and product descriptions at any time, without notice. Designers must not rely on the absence or characteristics of any

features or instructions marked “reserved” or “undefined.” Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or

incompatibilities arising from future changes to them. The information here is subject to change without notice. Do not finalize a design with this information.

Intel may make changes to specifications and product descriptions at any time, without notice. Designers must not rely on the absence or characteristics of any

features or instructions marked “reserved” or “undefined.” Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or

incompatibilities arising from future changes to them. The information here is subject to change without notice. Do not finalize a design with this information.

The products described in this document may contain design defects or errors known as errata which may cause the product to deviate from published

specifications. Current characterized errata are available on request. Contact your local Intel sales office or your distributor to obtain the latest specifications and

before placing your product order. Copies of documents which have an order number and are referenced in this document, or other Intel literature, may be obtained

by calling 1-800-548-4725, or by visiting Intel’s Web site at www.intel.com.

Copyright © 2010 Intel Corporation. All rights reserved. Intel, the Intel logo, and Xeon are trademarks of Intel Corporation in the U.S. and other countries.