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