Protegendo a Empresa com Intel® AES-NI

Transcrição

Protegendo a Empresa com Intel® AES-NI
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)
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.
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
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.
Protegendo a Empresa com Intel ® AES-NI
Í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.
2
Isso torna a criptografia no nível do servidor
criticamente importante, especialmente porque
a taxa de crescimento dos códigos malintencionados (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.
Protegendo a Empresa com Intel ® AES-NI
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.

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.
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.

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):


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.
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.
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.
HiTECH Act, de 17 de fevereiro de 2010:

Se as informações sobre a saúde pessoal
estiverem "inutilizáveis, ilegíveis ou
indecifráveis”, nenhuma notificação é
exigida.
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
3
Protegendo a Empresa com Intel ® AES-NI
(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.
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.
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).
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.
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.
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,
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-ShamirAdleman. 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
.
Figura 1. Intel ® AES-NI
acelera os subpassos do
algoritmo AES.
4
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.
Protegendo a Empresa com Intel ® AES-NI
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 carryless, 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 sidechannel 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 sidechannel 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).
5
Protegendo a Empresa com Intel ® AES-NI
Para obter mais informações sobre a instrução
CLMUL e seu uso na multiplicação carry-less,
consulte: http://software.intel.com/enus/articles/carry-less-multiplication-and-itsusage-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.
Figura 2. Três modelos de uso do AES.
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 sidechannel. 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 3. Transações seguras
utilizando SSL.
6
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
Protegendo a Empresa com Intel ® AES-NI
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 RC4MD5 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.
7
Protegendo a Empresa com Intel ® AES-NI
Figura 5. Modelo de uso da criptografia AES
no nível de aplicação.
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
8
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
Figura 6. Modelo de uso da criptografia total
de disco (FDE) usando AES .
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.
Protegendo a Empresa com Intel ® AES-NI
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.
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.
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.
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
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.
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.
9
Protegendo a Empresa com Intel ® AES-NI
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
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.
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
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.
10
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).
Protegendo a Empresa com Intel ® AES-NI
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).
com fornecedores de sistemas operacionais,
bibliotecas e compiladores para que otimizem
seu software com as instruções Intel AES-NI.
7.1. Sistemas Operacionais
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
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.
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
Disponível
http://www.mozilla.org/projects/security/pki/nss/nss-3.12.3/nss-3.12.3-releasenotes.html
Microsoft Cryptographic Next Generation
http://www.microsoft.com/downloads/en/details.aspx?FamilyId=1EF399E9-B018-49DB-
Library
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
11
Protegendo a Empresa com Intel ® AES-NI
Tabela 2. Compiladores que suportam as instruções Intel® AES-NI
NOME DO COMPILADOR
Microsoft
STATUS DO INTEL®
AES-NI
DESCRIÇÃO
Visual C++* 2008 SP1:
http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-
Disponível
A40D-3802B2AF5FC2&displaylang=en
Intel
GCC
V11.0: http://software.intel.com/en-us/articles/intel-c-compiler-for-windows-supportresources/
4.4.0+ and Linux* Binutils 2.18.50.0.6: http://gcc.gnu.org/gcc-4.4/
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.
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.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, DiffieHellman Key Exchange, criptografia RSA,
criptografia de curva elíptica e algoritmo de
assinatura digital. Os módulos AES-GCM, AESCCM, 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.
12
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 AESNI usando funções intrínsecas ou assembly.
Existe um emulador disponível que permite o
desenvolvimento de software com o Intel AESNI. O emulador está disponível no seguinte link:
http://software.intel.com/
en-us/articles/pre-release-license-agreement-for-intel-software-development-emulator-accept-end-user-license-agreementand-download.
Disponível
Disponível
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.
Protegendo a Empresa com Intel ® AES-NI
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/
Federal Information Processing Standards Publication 197. http://csrc.nist.gov/publications/fi ps/fi ps197/fi ps-197.pdf.
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-aesinstructions-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
5
6
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.
13