Buscar

Criptografia e Certificação Digital_LIVRO-TEXTO IV

Prévia do material em texto

145
CRIPTOGRAFIA E CERTIFICAÇÃO DIGITAL
Unidade IV
7 A SEGURANÇA E A CRIPTOGRAFIA
Segundo Wykes (2016), o cartão inteligente, ou smartcard, como objeto de uso corriqueiro, é talvez 
a tecnologia criptográfica mais popular porque é um dispositivo criptográfico pequeno, leve, portátil e 
seguro. O cartão inteligente é uma composição de diversas tecnologias, tendo sempre como base um 
chip especialmente projetado para oferecer fortíssimo grau de segurança.
A “inteligência” dos smartcards pode variar. Os mais inteligentes são os cartões multiaplicação, 
programáveis, como se fossem verdadeiros microcomputadores. Embora sejam bastante limitados 
em termos de recursos normais, como memória, velocidade de processamento e capacidade de 
comunicação, esses cartões têm circuitos e recursos altamente especializados e, portanto, são 
muito eficazes em atender à sua principal função, que é a de ser um dispositivo criptográfico 
portátil e seguro.
A expressão elemento seguro foi cunhada para designar os chips de cartão inteligente acoplados a 
dispositivos portáteis, como os telefones celulares dotados com NFC (near field communication), uma 
tecnologia que permite a troca de informações entre dois aparelhos que estejam próximos um do outro. 
Desde sua origem, em que o elemento seguro é responsável pela segurança apenas dessa transação sem 
fio, vem gradativamente sendo ampliado o conceito para significar qualquer aplicação desses chips de 
cartão inteligente em sistemas embarcados ou além.
7.1 A segurança e seus elementos
Na concepção de Wykes (2016), elemento seguro é a parte inteligente de um cartão inteligente, 
no caso, um chip especializado, conhecido como microcontrolador seguro, de onde vem a conotação 
inerente de elemento seguro.
Esses microcontroladores vêm de fábrica, com um pequeno sistema operacional em sua memória 
ROM ou Flash, e são capazes de executar de uma forma bastante segura pequenos aplicativos de 
software. Os elementos seguros têm algumas características principais que os tornam o dispositivo 
quase ideal para determinadas aplicações criptográficas, entre elas:
• Uma quantia limitada de memória não volátil, na qual, além dos próprios aplicativos seguros, estão 
armazenadas pequenas quantias de dados, principalmente senhas e chaves criptográficas. 
Não volátil significa que o conteúdo da memória é preservado mesmo quando o chip está 
desativado, por exemplo, na ausência de alimentação elétrica.
146
Unidade IV
• Uma pequena quantidade de memória volátil, de operação mais rápida, que mantém seu valor 
somente enquanto o chip está ativo e serve para o armazenamento de variáveis, valores temporais 
e estados de execução.
• A capacidade de se comunicar com o mundo externo por uma ou mais interfaces, normalmente seriais.
• A capacidade de executar funções de lógica e operações criptográficas de forma altamente segura, 
em virtude da incorporação de uma ampla gama de mecanismos de proteção. Talvez essa última 
seja mais importante, pois inclui desde defesas contra intervenções físicas, como desmontagem 
do chip e uso de microagulhas, proteções contra monitoramento ou interferência das operações 
executadas internamente, até proteções que impedem a instalação de códigos maliciosos.
Segundo Wykes (2016), em seu formato físico, durante a fabricação de um cartão inteligente, o chip é 
embutido em uma lâmina de plástico, juntamente com algum meio de receber alimentação e comunicação 
externa, o que pode ser feito mediante um arranjo de pequenas placas metálicas, que fazem um contato 
elétrico quando o cartão é inserido em um leitor especializado, ou de uma pequena antena plana, que recebe 
alimentação e se comunica por meio de um campo de radiofrequência de pequeno alcance emitido pelo leitor.
Também é possível encontrar esses microcontroladores seguros empacotados de tal forma que 
possam ser fixados em placas de circuito integrado. Nesse formato, são conhecidos como elementos 
seguros embarcados, como aqueles dedicados aos telefones celulares equipados com a tecnologia 
NFC, mas também fazem parte dos mais diversos dispositivos, como pen drives USB, “chaveirinhos”, 
smartwatches e mesmo alguns cartões de memória mais sofisticados.
 Observação
NFC é uma tecnologia de comunicação sem fio presente em diversos 
smartphones. Seu funcionamento difere do bluetooth e Wi-Fi, entre outros 
quesitos, porque requer a aproximação de dois dispositivos.
7.2 Tipos de cartão inteligente
Segundo Wykes (2016), os cartões inteligentes podem ser divididos em dois grupos pela forma de utilização, 
aproximação ou inserção, que determina basicamente as situações de uso com as quais o cartão mais combina.
Os cartões de uso por aproximação são conhecidos como sem contato, enquanto os de inserção 
são conhecidos como com contato. Há também os cartões dual interface, com ambas as interfaces no 
mesmo plástico.
Quando falamos das interfaces de comunicação dos cartões, estamos falando simultaneamente dos 
leitores de cartão, os pequenos dispositivos e antenas acoplados ou integrados aos equipamentos, que 
permitem comunicação com o cartão. Logicamente eles devem ter as mesmas interfaces e seguir os 
mesmos padrões de comunicação e convenções elétricas que os cartões que eles receberão.
147
CRIPTOGRAFIA E CERTIFICAÇÃO DIGITAL
Nos cartões de interface sem contato, em virtude de se alimentarem e se comunicarem por meio 
de um campo de radiofrequência, os cartões sem contato podem ser utilizados aproximando-se o 
cartão do equipamento leitor a uma distância que varia, de poucos centímetros, nos cartões comuns, a 
alguns metros, em casos especiais.
Uma vez estabelecida uma comunicação entre o leitor e o cartão, a transação é efetuada de forma 
bastante rápida. A comunicação por radiofrequência permite que o chip do cartão troque informações 
com o leitor sem que haja necessidade de inserir o cartão em qualquer tipo de receptáculo ou deslizá-lo 
por qualquer tipo de trilho, propiciando agilidade e rapidez ao uso, e tornando-o ideal para aplicações 
baseadas em grandes fluxos de pessoas, que incluem as chamadas aplicações de micropagamentos, como 
passagens de transporte coletivo, transações de pequenos valores, além de outras aplicações de acesso 
rápido, como estacionamentos, pedágios, portas automáticas, coletores de ponto e portarias de todo tipo.
Efetuada a transação, o cartão pode ser imediatamente retirado do campo da antena de modo que, 
muitas vezes, o portador do cartão é um ator quase passivo na transação, já que a passagem correta é 
debitada automaticamente pela aproximação.
Em contrapartida, há severas exigências em relação ao tempo de transação, que pode ser de no 
máximo entre 300 e 500 milissegundos, para garantir que o uso do cartão não se torne incômodo ao 
portador e para evitar cancelamentos excessivos de transações em função da remoção do cartão do 
campo da antena antes de a transação ser completada.
Figura 86 – Pagamento por aproximação no metrô do Rio de Janeiro
Segundo Wykes (2016), os cartões de interface com contato combinam mais com aplicações que 
envolvem alguma interação com o portador do cartão, devido à necessidade de inseri-lo, parcial ou 
completamente, em um receptáculo ou slot, ranhura ou fenda do equipamento leitor.
Somente após a inserção física, que exige maior esforço do portador se comparada com a interface 
sem contato, é que pode ser estabelecida uma comunicação entre leitor e cartão, fator que faz com que 
a transação, geralmente, seja mais demorada.
148
Unidade IV
Os contatos físicos também demandam que o chip consuma uma corrente elétrica maior – necessária 
para a execução de determinadas operações internas, como a criptografia de chaves públicas – o que 
possivelmente sobrecarregaria uma interface sem contato. Com os recentes avanços da tecnologia de 
circuitos integrados, rapidamente esse fator está se tornando menos importante.
Tipo do 
cartão
Número 
do cartão
Figura 87 – Cartão Inteligente com contato Bilhete Único de São Paulo
SegundoWykes (2016), os cartões híbridos ou combi surgiram em determinado momento como 
solução de conveniência, pelo fato de consistirem em dois chips embutidos no mesmo plástico, sem que 
um chip tivesse conhecimento da presença do outro.
São de fácil fabricação, tomados os devidos cuidados de posicionamento da antena sem contato, 
para não interferir fisicamente nos contatos e vice-versa. A desvantagem óbvia é a falta de integração 
entre os dois chips, o que impede, por exemplo, a recarga de créditos das passagens normalmente 
consumidas pela interface sem contato por meio da interface com contato.
Segundo Wykes (2016), apesar de os cartões dual interface existirem há muito tempo, é relativamente 
recente o desenvolvimento de chips com a capacidade de serem alimentados e se comunicarem ora por 
uma antena da interface sem contato, ora pelos contatos metálicos da interface com contato. Esses 
cartões, logicamente denominados cartões de dual interface, são especialmente interessantes como 
soluções de transição.
Por exemplo, considere a situação dos sistemas de pagamento no Brasil, na Europa ou no Canadá, 
nos quais foram investidas largas quantias e tempo na migração dos cartões e das redes de captura de 
transações para a tecnologia de cartões com contato. Como é impossível migrar uma base de cartões 
e equipamentos do dia para a noite? Durante alguns bons anos, será necessário conviver com as duas 
tecnologias. O cartão dual interface permite a convivência e interoperabilidade com os dois sistemas.
 Lembrete
Existem dois tipos de cartões para uso por aproximação: os sem contato 
e os com contato, além daqueles que apresentam as duas características no 
mesmo plástico.
149
CRIPTOGRAFIA E CERTIFICAÇÃO DIGITAL
A tecnologia NFC, segundo Wykes (2016), é uma evolução recente e bastante interessante, 
principalmente porque permite a integração da tecnologia dos cartões sem contato com os dispositivos 
móveis, como telefones celulares e tablets. Por meio da tecnologia NFC, o dispositivo móvel se torna, 
de forma flexível, parte integrante das transações, podendo assumir o papel do cartão, do leitor ou 
ser uma combinação dos dois ao mesmo tempo, por meio de uma modalidade chamada peer-to-peer, 
literalmente, ponto a ponto.
Como as comunicações sem contato não sofrem grandes alterações, a tecnologia NFC mantém 
compatibilidade com a enorme infraestrutura de leitores e terminais já instalados e com a base de 
cartões já emitidos. Conforme cada situação, a parte inteligente da transação, do lado do cartão ou do terminal, 
pode ser substituída pelo dispositivo móvel.
Enquanto, por um lado, isso viabiliza as aplicações de carteiras eletrônicas, por outro, facilita o 
uso do dispositivo como terminal de pagamento, reduzindo custos para, por exemplo, profissionais 
livres, pequenos lojistas e feirantes. Para compensar uma possível perda de segurança, utiliza-se o chip 
SIM do dispositivo ou integra-se um elemento seguro auxiliar, além de se permitir gradativamente a 
substituição da carteira ou, pelo menos, uma redução de seu tamanho, mediante a integração de funções 
de pagamento, identificação e controle de acesso ao celular. A grande promessa dessa tecnologia é 
tornar as transações NFC mais interativas e sofisticadas pelo uso da tela, do teclado e da conexão de 
internet do dispositivo móvel.
Já os elementos seguros embarcados, segundo Wykes (2016), normalmente possuem uma interface 
com contato, mas, por estarem ligados diretamente à placa, não possuem os contatos físicos. No caso 
específico do NFC, a transação é governada por um chip controlador, acoplado eletricamente à antena 
de comunicação de um lado e ao elemento seguro, de outro. Certos modelos, no entanto, utilizam uma 
interface de comunicação simplificada denominada SWP (single wire protocol) entre o controlador e o 
elemento seguro.
Figura 88 – Exemplo da tecnologia NFC
150
Unidade IV
Convém falar um pouco da história e evolução dos cartões inteligentes. Tudo se iniciou em meados 
da década de 1970, o primeiro smartcard foi criado por Roland Moreno, então funcionário da empresa 
francesa Bull. Não existiam microprocessadores na época, apenas circuitos integrados, compostos de 
blocos de lógica discreta e contendo, no máximo, alguns bytes de memória.
Esses primeiros modelos possuíam uma interface com contato e apresentavam funcionamento 
orientado a aplicações de telefonia pública. O cartão possuía um simples saldo de créditos, que diminuía 
a cada pulso consumido durante a ligação.
7.2.1 Cartões “inteligentes” de memória protegida
Inicialmente, não havia sofisticado poder de processamento nem capacidade de gerenciamento de 
memória significava, grande parte da lógica do sistema estava nas leitoras. Esses cartões serviam para 
armazenar poucas informações e, dependendo da tecnologia empregada, poderiam ser descartáveis, no 
caso de tíquetes ou ingressos eletrônicos para eventos, ou reutilizáveis, por exemplo, no caso de cartões 
de estacionamento.
Segundo Wykes (2016), quando comparados com os cartões de memória modernos, utilizados para 
o armazenamento de grandes quantidades de arquivos, como fotos, os cartões inteligentes de memória 
possuem pouca memória de fato, muito embora agreguem algumas funcionalidades importantes ao 
acesso dessa memória, visando à maior segurança.
Alguns modelos podiam ser configurados para restringir o acesso à leitura e à escrita, restrição 
normalmente feita por meio de passwords ou por processos rudimentares de autenticação criptográfica, 
relativamente fracos para os padrões modernos. Alguns modelos ainda segmentavam a memória em 
blocos, sendo, assim, capazes de abrigar múltiplas funcionalidades.
Com o passar dos anos, tornaram-se menos populares e atualmente já não são mais indicados para 
novos projetos devido à sua baixa segurança efetiva e limitada capacidade de processamento, embora 
seja comum encontrar essa tecnologia em sistemas implantados há muito tempo, como sistemas de 
micropagamentos, estacionamentos rotativos, entre outros.
Os cartões inteligentes microprocessados são o avanço da tecnologia, com aumento da memória 
e da capacidade de processamento, principalmente a partir do invento do microprocessador. Fato 
curioso: durante os primeiros anos, os smartcards utilizavam memórias não voláteis, do tipo Eprom, 
exigindo o fornecimento de uma voltagem comparativamente alta, de 21 V ou maior, para a gravação 
de informações. Essa herança pode ser vista atualmente no pino de contato reservado para essa função.
Segundo Wykes (2016), a evolução dos cartões de interface com contato veio com o tempo e 
funcionalidades cada vez mais sofisticadas foram surgindo. Vieram então os cartões que permitiam 
estruturar e organizar sua memória em blocos e arquivos.
Eventualmente, tornou-se possível incluir funções de criptografia no cartão, utilizadas para controlar 
o acesso às demais estruturas de dados e para a encriptação de dados trocados com o cartão.
151
CRIPTOGRAFIA E CERTIFICAÇÃO DIGITAL
Gradativamente, houve um processo de padronização das tecnologias de cartão com contato, 
levando à criação da norma internacional ISO-7816, composta de múltiplas seções, que variam das mais 
úteis às mais esotéricas. As partes mais relevantes determinam o formato físico dos cartões, a posição 
e a função dos contatos, as características elétricas e o comportamento durante sua ativação elétrica. 
Ainda descrevem dois protocolos de comunicação, conhecidos cripticamente como T = 0 e T = 1, o 
formato dos pacotes de comando, e ainda incluem um conjunto de comandos de interoperabilidade.
A evolução dos cartões de interface sem contato advém do desenvolvimento da tecnologia de 
comunicação sem contato, em que o próprio cartão é alimentado por energia extraída de um campo 
de radiofrequência, a qual abriu o horizonte para novas aplicações (WYKES, 2016). Inicialmente, como 
essa energia era bastante limitada, as funcionalidades dos primeiros cartões sem contato eram bastante 
restritas e implementadaspor circuitos relativamente simples e poucos flexíveis.
Os cartões de tecnologia Hitag ou Mifare, por exemplo, originalmente desenvolvidos pela empresa 
austríaca Mikron, atualmente parte da empresa NXP, possuíam uma organização de dados em pequenos 
blocos fixos, processos de autenticação criptográfica considerados relativamente fracos e protocolos 
de comunicação rudimentares, em termos modernos. Apesar disso, eram soluções inovadoras e 
perfeitamente adequadas à sua função da época, sendo utilizadas, até os dias atuais, no controle de 
acesso em fábricas, prédios e nos sistemas de metrô e transportes públicos.
A questão de baixo custo foi, e continua sendo, fator importante na adoção dessas e outras tecnologias 
semelhantes, tais como os módulos RFID. Essas pequenas etiquetas eletrônicas, Radio Frequency ID, têm 
mil e uma utilidades, por exemplo, na identificação e rastreamento de diversos objetos, na fabricação, 
distribuição e comercialização de produtos industrializados, no controle de rebanho ou na identificação 
de animais domésticos.
Embora possam ser consideradas primas distantes, as tags ou etiquetas RFID não podem ser 
consideradas cartões inteligentes de verdade, em virtude de sua extrema simplicidade e correspondente 
falta de programabilidade. Essa tecnologia Mifare, especificamente as partes referentes a aspectos como 
campo de radiofrequência, processos de estabelecimento da conexão inicial e forma de comunicação de 
dados entre leitora e cartão, foi posteriormente padronizada pela criação da norma ISO 14443, dentro 
da qual é conhecida como a interface tipo A.
Segundo Wykes (2016), simultaneamente, o próprio inventor do smartcard, Roland Moreno, e sua 
empresa Innovatronix, também desenvolveu um tipo de cartão sem contato. Embora sejam baseadas 
em tecnologias semelhantes, por terem sido concebidas independentemente, as duas soluções são 
incompatíveis em alguns aspectos.
Os cartões sem contato inventados por Moreno são mais parecidos com os cartões com contato 
microprocessador, organizados em diretórios e arquivos de dados, e eram originalmente direcionados 
para aplicações de bilhetagem eletrônica, como transportes de metrô e ônibus. Eventualmente, essa 
tecnologia de comunicação sem contato também foi incorporada ao padrão ISO 14443 como a 
interface tipo B.
152
Unidade IV
Wykes (2016) informa que a criação da tecnologia NFC ocorreu por último, em 2004, quando 
houve a criação de uma associação internacional de empresas afins, em prol da evolução e da 
massificação das tecnologias sem contato, o NFC Fórum. A partir das especificações geradas, 
tornou-se possível construir aparelhos eletrônicos capazes de ler cartões sem contato, de emular 
o comportamento desses cartões e, principalmente, de permitir a comunicação bidirecional entre 
dispositivos próximos.
A vantagem do NFC sobre as formas alternativas de comunicação, como bluetooth ou Wi-Fi, é que o 
NFC torna extremamente simples a configuração de uma conexão, pois pode ser feita automaticamente 
por um gesto de aproximação física dos dispositivos, dentro de um raio de 5 cm a 10 cm.
Além de possuírem velocidades de comunicação bem mais altas, as demais tecnologias emanam 
seus sinais em áreas bem maiores e, portanto, não gozam desse mecanismo simples e intuitivo para 
estabelecer uma comunicação. Naturalmente, uma conexão NFC pode servir como ponto de partida 
para uma subsequente comunicação Wi-Fi ou bluetooth, uma abordagem híbrida que combina os 
benefícios das tecnologias.
Para Wykes (2016), a uniformização dos elementos seguros especificamente dos dispositivos 
de leitura de cartões inteligentes deve obedecer a padrões internacionais, que visam alto grau de 
interoperabilidade entre os diferentes modelos, marcas e fabricantes existentes. A importância desses 
padrões pode ser entendida ao considerar o exemplo dos cartões de crédito, pois é necessário que um 
cartão emitido por qualquer banco, em qualquer país, funcione em qualquer terminal financeiro, em 
qualquer lugar do mundo.
Para Wykes (2016), a capacidade criptográfica é um fator importante que faz um modelo de chip 
diferir do outro. Existe uma gama de modelos disponíveis, desde processadores de cartão inteligente, 
que executam todas as operações criptográficas por software, até processadores com hardware dedicado 
para criptografia simétrica e assimétrica e circuitos específicos para a geração de chaves e de números 
aleatórios em hardware. Naturalmente, essas diferenças se manifestam no nível de segurança que cada 
modelo de chip é capaz de oferecer.
Outro fator que interfere é a capacidade de memória. Segundo Wykes (2016), a capacidade de 
memória não volátil dos diversos modelos de cartão é fator determinante na escolha de uma solução 
de cartão, pois impacta diretamente a quantidade de informações, chaves criptográficas e aplicativos 
distintos que podem ser armazenados por ele.
Atualmente existem cartões com capacidade de 4 KB a 128 KB e maiores e, embora a quantidade de 
memória não seja mais fator de custo tão relevante, devido aos avanços das tecnologias de fabricação, 
essas limitações são, em muitos casos, determinadas pelas demandas do mercado. Se considerarmos 
que a função principal não é armazenamento massivo de dados, mas o fornecimento de serviços de 
segurança, e que a velocidade de processamento e comunicação desses cartões é bastante limitada, 
de pouco adiantará equipar um cartão desse tipo com uma memória de 1 GB.
153
CRIPTOGRAFIA E CERTIFICAÇÃO DIGITAL
7.3 Sistemas operacionais para cartão
Para Wykes (2016), muitos cartões inteligentes funcionam a partir de um núcleo de software chamado 
card operating system (COS), geralmente residente em uma memória ROM, incorporado fisicamente 
à máscara de fabricação do próprio chip. Esses diversos sistemas operacionais podem ser agrupados 
conforme dois principais paradigmas de organização — por arquivos ou por aplicativos.
Os sistemas operacionais por arquivo, pouco utilizados hoje em dia, seguem o padrão internacional ISO 
7816, ao definirem um paradigma de dados estruturados para a organização e o gerenciamento da memória 
do cartão, dividindo-a em uma hierarquia de arquivos de certa forma análoga ao disco rígido do computador.
Nesse esquema, a memória do cartão pode ser organizada em quantos subdiretórios ou arquivos de 
dados se desejar. Podem-se também definir regras que restringem o acesso aos arquivos, com base em 
senhas ou chaves criptográficas de autenticação, sendo possível, por exemplo, criar diferentes regras 
para a leitura, a escrita ou a deleção de dados.
O sistema operacional também fornece uma gama de comandos, oferecendo uma variedade de 
funcionalidades às aplicações externas. Esses comandos incluíam desde funções de criação de arquivos, 
leitura ou gravação de dados, até funções criptográficas como encriptação, assinatura digital ou 
autenticação, executadas a partir das chaves criptográficas gravadas no cartão. No entanto, os comandos 
disponíveis eram sempre limitados àqueles previstos durante a fabricação dos cartões.
Para aplicações simples, isso não se tornava um problema significativo, mas, para muitas classes de 
aplicação, as limitadas funcionalidades disponíveis podiam rapidamente se tornar insuficientes. Na maioria 
das vezes, somente as empresas responsáveis pelo desenvolvimento do sistema operacional tinham a 
capacidade de incluir novos comandos ou alterar os já existentes e, naturalmente, cobravam valores 
significativos pelos serviços.
Além desse custo financeiro, quaisquer alterações ou inclusões levavam bastante tempo para serem 
disponibilizadas, em virtude do regime exaustivo de testes e certificações pelo qual o cartão era obrigado 
a passar. Como a tecnologia não permitia a alteração ou atualização do software do cartão, uma vez 
emitido e nas mãos de seu usuário, no caso de ser descoberto algum erro com o software dos cartões, 
a única solução viável era destruir todos os cartões que apresentassem esse erro e reemiti-los, arcandocom os associados custos e transtornos.
Segundo Wykes (2016), também era comum que o acesso à documentação técnica fosse rigorosamente 
controlado, sendo exigida a assinatura de contratos do tipo NDA (acordos de não divulgação), contendo 
severas penalidades. Apesar dos esforços de padronização, esse clima de sigilo teve o principal efeito 
de manter as soluções proprietárias e, como consequência, nos projetos feitos com base nesses cartões, 
muitas vezes acabaram criando-se estreitos laços de dependência técnica com um determinado fabricante, 
que eram sentidos somente na hora de buscar melhorias no sistema, ou quando se desejava trocar 
de fornecedor. Entre os mais populares desses sistemas operacionais, estavam: TIBC, MPCOS, CardOS 
e Cryptoflex. Alguns deles, agora rebatizados de soluções nativas e com nomes comerciais diferentes, 
ainda estão disponíveis em versões melhoradas.
154
Unidade IV
7.4 Os cartões inteligentes multiaplicação
Wykes (2016) afirma que, diante das desvantagens dos sistemas operacionais nativos, tornou-se 
fundamental a criação de alternativas mais flexíveis, customizáveis e abertas. Essa busca levou ao 
desenvolvimento do conceito dos cartões multiaplicação, munidos com sistemas operacionais abertos e 
projetados para receber novas funcionalidades, sem que elas pudessem trazer vulnerabilidades ou falhas 
de segurança.
Recapitulando, o principal problema dos cartões microprocessador com sistema operacional 
nativo era que eles não eram facilmente programáveis. Portanto, as soluções novas precisavam ser 
verdadeiramente programáveis e de tal forma que independessem do modelo de chip. Assim, novas 
funcionalidades poderiam ser criadas sob demanda, pelas equipes de projeto das empresas que desejassem 
utilizar um cartão em alguma solução. Se, no futuro, precisassem trocar de chip ou de fornecedor, não teriam 
maiores problemas, uma vez que a programação valeria e funcionaria em todos os chips.
Finalmente, se existisse alguma forma de modificar os programas após a emissão do cartão, caso 
fosse detectado algum problema de funcionamento ou vulnerabilidade no futuro, os cartões poderiam 
ser atualizados remotamente, talvez até por internet.
Parece um sonho futurístico esperar que um chip tão limitado fosse capaz de tais maravilhas, mas 
não. Inclusive existem cartões capazes desse feito desde 1998. Com a chegada de uma nova geração de 
microcontroladores e a aplicação de avançadas técnicas de desenvolvimento seguro, tornou-se possível 
carregar novos blocos de funcionalidade, microaplicações inteiras na memória não volátil do cartão ou 
apagá-los quando não forem mais necessários.
Isso, inclusive, poderia ser feito mesmo com o cartão já em uso pelo usuário, pois a plataforma 
do sistema operacional já provê todas as garantias de segurança necessárias. Na época, isso era algo 
realmente inovador, pois aconteceu cerca de 15 anos antes da invenção dos celulares à base de Android 
ou iOS, que utilizam um modelo conceitual parecido.
 Observação
Sistemas operacionais abertos são aqueles que têm distribuição gratuita, 
ou seja, você não precisa pagar para utilizá-lo na sua máquina. O mais 
famoso dentre esses sistemas é com certeza o Linux.
Para Wykes (2016), existe o paradigma multiaplicação, no qual os sistemas operacionais de 
cartão modernos são enormemente mais flexíveis e poderosos, são verdadeiramente programáveis e 
permitem a gravação e execução de múltiplos códigos aplicativos, denominados applets, codelets ou 
simplesmente aplicações.
São chamados de sistemas operacionais multiaplicação, pois possibilitam a inclusão de múltiplas aplicações 
no mesmo cartão, cada qual com funcionalidades distintas. Construídos à base de máquinas virtuais de 
155
CRIPTOGRAFIA E CERTIFICAÇÃO DIGITAL
execução, mantêm alto grau de isolamento entre os diferentes aplicativos, protegendo os dados privados e 
chaves secretas de um aplicativo contra a leitura, alteração ou corrupção pelos demais aplicativos.
Atualmente existem dois sistemas operacionais de cartão de plataforma aberta, o Multos e o Java 
Card. O Multos foi originalmente idealizado na Inglaterra e tem uma especificação aberta, regida por um 
consórcio de empresas internacionais de tecnologia que variam desde fabricantes de microcontroladores 
seguros até desenvolvedores de aplicações e soluções. O Java Card é a plataforma mais popular e também 
tem uma especificação aberta, antes controlada pela empresa Sun, que desenvolveu a linguagem de 
programação Java, hoje em dia uma divisão da empresa Oracle.
Houve também outras iniciativas visando à criação de sistemas operacionais para cartões 
multiaplicação, como a da Microsoft para emplacar seu produto Windows for Smartcards que, mais 
recentemente, ressurgiu como Netcard. Nenhum desses produtos alcançou uma participação expressiva 
no mercado, ficando relegados, em sua maioria, aos anais históricos e aos museus de tecnologia.
Segundo Wykes (2016), o funcionamento dos sistemas operacionais multiaplicação opera em 
ambas as soluções. Multos e Java Card proveem técnicas eficazes para reduzir ou eliminar os eventuais 
problemas de segurança provocados pelo compartilhamento do chip por aplicações diferentes. Essa 
proteção é garantida por vias de componentes do sistema operacional que supervisionam os aplicativos, 
sem permitir que acessem quaisquer dados que não lhes pertençam.
Um dos conceitos fundamentais utilizados é o de firewall de aplicação, no qual esse 
componente supervisor enclausura cada aplicação dentro de um espaço de memória próprio, 
como se realmente existisse uma parede virtual entre ela e as demais aplicações. Assim, uma 
aplicação é, literalmente, incapaz de acessar ou alterar os dados das outras, mesmo que tente, 
pois não conseguiria transpor a parede.
Esse mecanismo de proteção é facilitado pela criação de uma máquina virtual, um tipo de 
microprocessador emulado por software sob o qual são executadas as aplicações (emulado no sentido 
de que um componente de software do sistema operacional é responsável por executar virtualmente 
as aplicações, instrução por instrução, código por código, evitando que as aplicações sejam executadas 
diretamente pelo microcontrolador e permitindo que sejam passíveis de rigorosos controles e 
validações por esse componente). Em virtude de as aplicações não mais executarem diretamente do 
hardware do microcontrolador, uma vantagem adicional do uso dessa máquina virtual é que ela se 
torna altamente portátil.
Qualquer microcontrolador para o qual pode ser escrito um componente de software que emula 
essa máquina virtual é capaz de rodar as aplicações escritas, quebrando o vínculo forte que antes existia 
entre o código-fonte de uma aplicação, a marca e o modelo do chip.
O Multos foi o primeiro sistema operacional multiaplicação para cartões, originalmente criado na 
Inglaterra pela equipe de desenvolvimento do Banco NatWest, como parte de um projeto ambicioso que 
visava criar um porta-moeda eletrônico denominado Mondex.
156
Unidade IV
Alguns anos depois, a Mastercard adquiriu uma parte da tecnologia Mondex, com a intenção de 
popularizá-la e, no processo, promover o desenvolvimento do Multos como plataforma segura. Em 1998, 
foi criada a organização Maosco e a abreviação do Multos Consórcio, formada pelo grupo de empresas 
responsáveis pela manutenção da especificação aberta, e, em seguida, foi lançada uma nova versão do 
sistema operacional. Um chip, programado com uma implementação concreta dessa versão do sistema 
operacional e moeda-eletrônica, foi o primeiro produto no mundo inteiro a alcançar o nível de segurança 
ITSEC E6, um feito impressionante.
Desde então, o sistema operacional Multos seguiu um caminho um pouco tortuoso, sempre 
mantendo sua impressionante reputação como a plataforma aberta para cartões mais seguros, mas 
sofreu de uma sequência de problemas no nível administrativo. Em 2008, foi comprado pela empresa 
australiana Keycorp, durante muito tempo um dos principais atores no consórcio.Em seguida, a divisão 
de smartcards da Keycorp foi adquirida pela Gemalto, maior fabricante de smartcards do mundo, e 
transformada numa subsidiária chamada Multos International Ltd.
Cartão 
embutido
Implementação 
Multos
Aplicações
Aplicações
Cartão de mesa 
preparação
Emissor Dados 
habilitados
Gerenciamento 
da chave do 
cartão
Aplicação, 
configuração e 
treinamento
Personalização
Certificado 
de dados 
do cartão
Opção de 
pós-garantia
Emisão do 
cartão
Figura 89 – Processo de emissão Multos
Para Wykes (2016), apesar dessas mudanças, o sistema operacional ainda se mantém como uma 
plataforma aberta e multifornecedora, pelo consórcio e envolvimento de uma ampla gama de empresas. 
Como exemplo, existem versões do sistema operacional feitas por quatro diferentes empresas, entre elas 
a Multos International e a Samsung, baseadas em microcontroladores seguros produzidos por algumas 
das principais fabricantes de chips, como Infineon, Hitachi e ST Microelectronics.
157
CRIPTOGRAFIA E CERTIFICAÇÃO DIGITAL
 Para Wykes (2016), uma aplicação para o sistema operacional Multos pode ser escrita em várias 
linguagens de programação, desde Java a código assembly, mas a absoluta maioria das aplicações é 
escrita na linguagem C, cuja flexibilidade mistura construções de baixo e alto nível de abstração que 
combinam bem com as plataformas computacionais restritas.
Embora, no início, existissem vários fornecedores de kits de desenvolvimento comerciais, hoje 
a Maosco disponibiliza em seu site um download gratuito, contendo um conjunto de ferramentas, 
compiladores, depuradores e utilitários. Naturalmente, a máquina virtual permite a programação das 
diversas funções de processamento de comandos, com os controles de fluxo e estruturas de dados, 
próprios da linguagem de programação. Toda a parte de comunicação, recepção de comandos e envio 
de respostas é tratada pelo sistema operacional, deixando para as aplicações somente as funcionalidades 
particulares de cada uma.
Assim, a plataforma Multos fornece às aplicações uma série de funcionalidades adicionais, 
denominadas primitivas, que incluem um conjunto de serviços criptográficos, como encriptação de 
mensagens e geração de MAC com os algoritmos DES e AES, funções de hash, serviços criptográficos 
assimétricos, como encriptação e geração de chaves RSA e ECC, e ainda goza de um gerador de números 
aleatórios verdadeiros.
Também existe uma seleção de primitivas para funcionalidades mais avançadas, como o controle de 
transações atômicas, entre diversas outras, que proveem funções que seriam lentas demais se fossem 
implementadas pela aplicação, devido à lentidão da máquina virtual. Evidentemente, as elevadas 
proteções de uma máquina virtual, com seus rígidos controles e verificações de segurança, envolvem 
certas restrições, principalmente em tempo de execução das aplicações.
No entanto, o grande diferencial da plataforma Multos não está na forma como se projeta ou 
executa uma aplicação, mas em como se instala a aplicação no cartão. Antes da confecção do cartão, o 
chip é fabricado com uma identidade fixa e única. Em seu estado inicial, esse chip não está vinculado a 
nenhum emissor de cartões nem tem aplicações instaladas, somente o sistema operacional e ainda não 
está apto a ser utilizado.
Boa parte da segurança dos cartões Multos é fundamentada num processo de controle dos cartões 
desde sua fabricação e das aplicações instaladas neles. Esse controle é garantido pelo uso de assinaturas 
e certificados digitais emitidos pelo Multos KMA (key management authority), que fornece informações 
de segurança devidamente assinadas ao emissor do cartão.
A produção de um cartão se processa em duas fases: inicialização e personalização. A inicialização 
– habilitação, ou enablement, do chip cria um vínculo forte entre o cartão e determinado emissor de 
cartões pela gravação de um primeiro pacote de informações assinadas criptograficamente no chip. Esse 
pacote, gerado pelo KMA sob demanda do emissor, contém o número de série do cartão, a identificação 
do emissor e uma série de dados para gerenciamento. Antes avulso, o cartão passa a ser daquele emissor 
por um processo irreversível, pelo qual o emissor é o único que controla o cartão, sendo capaz de 
instalar ou remover aplicações. Para que isso ocorra, o KMA também emite certificados digitais para as 
aplicações que o emissor deseja instalar no cartão.
158
Unidade IV
O segundo processo de produção é a instalação ou carga das aplicações, juntamente com os dados 
já personalizados para o usuário final. Ao instalar uma aplicação no cartão, o emissor envia ao cartão 
uma série de pacotes de dados contendo a aplicação, na forma de código executável e dados iniciais, e 
o certificado, o qual contém uma assinatura digital que comprova criptograficamente a relação entre o 
cartão, o emissor e a aplicação.
O cartão valida o certificado, verifica que a aplicação recebida é mesmo aquela referenciada pelo 
certificado e, se tudo for aceitável, instala-a numa área de memória separada das demais aplicações que 
porventura já estiverem carregadas. Um processo semelhante acontece para a remoção de uma aplicação, 
em que é enviado um tipo diferente de certificado ao cartão, também assinado criptograficamente, 
que indica qual aplicação deve ser removida do cartão. Após novamente determinar a veracidade 
do certificado, o cartão remove a aplicação da memória interna, limpa quaisquer vestígios de dados 
sensíveis, liberando o espaço antes consumido, que poderá em seguida ser utilizado para a instalação 
de outras aplicações.
As assinaturas digitais são feitas com o algoritmo RSA, com uso do processador criptográfico no 
hardware do chip. Originalmente, todos os cartões Multos precisavam ter essa função no hardware, 
significando um aumento de cerca de US$1 no custo final do cartão. Em 2007, foi lançada uma versão 
de baixo custo, o Multos Step/one, que substituía as assinaturas e certificados digitais por processos de 
criptografia simétrica, eliminando a necessidade da interação do KMA para a emissão desses cartões, 
embora com complexidades adicionais para o emissor.
Segundo Wykes (2016), o sistema operacional Java Card foi desenvolvido aproximadamente na 
mesma época em que os primeiros cartões Multos estavam sendo projetados. Um grupo de engenheiros 
da divisão de smartcards da empresa Schlumberger se debruçava sobre a ideia de reduzir a linguagem 
Java e sua máquina virtual para executar no ambiente restrito de um microcontrolador seguro. Uma vez 
esquematizada uma forma inovadora de reduzir o tamanho de um sistema gigantesco, pois a Java 
convencional precisava de 80 MB de memória para sua execução, até caber em um chip com meros 
4 KB de memória, o grupo foi apresentar o projeto à empresa Sun, detentora das tecnologias Java.
O resultado foi uma especificação padronizada, uma patente para a equipe da Schlumberger e o 
nascimento do Java Card. Tornou-se o sistema operacional para cartões inteligentes mais popular do 
mundo, com alguns bilhões de cartões, em sua maioria no formato de chips SIM para telefones GSM, 
emitidos até a presente data.
Como plataforma aberta, as especificações Java Card podem ser utilizadas por qualquer empresa 
mediante o pagamento de uma licença à Oracle. Já existem várias dezenas de licenciados, embora 
quatro ou cinco dos principais fabricantes de cartões inteligentes detenham a maioria do mercado. 
Existem versões de Java Card para os microcontroladores seguros da maioria dos fabricantes de silício, 
como a NXP, que adquiriu o produto JCOP, uma implementação independente, feita originalmente por 
uma equipe da IBM.
Diferentemente da linguagem C, utilizada pelo Multos, a Java é uma linguagem orientada a objetos, 
na qual se divide um programa em um conjunto de partes funcionais que encapsulam dados com 
159
CRIPTOGRAFIA E CERTIFICAÇÃO DIGITAL
alguns métodos e funções que operam com esses dados (WYKES, 2016). Os objetos são criados a partir 
de classes, definiçõesabstratas das funcionalidades requeridas, juntamente com o código-fonte que 
realmente implementa essas funções.
Geralmente se desenvolve uma aplicação Java, pela compilação dos códigos-fontes, gerando-se 
um arquivo Java com as classes já convertidas para o código executável da máquina virtual Java. 
Ao executar uma aplicação Java, esse código executável é interpretado, emulando a máquina 
virtual por software, ou sofre uma segunda fase de compilação feita diretamente para o conjunto 
de instruções do processador.
No caso do Java Card, a máquina virtual Java foi considerada complexa demais para ser interpretada 
por um microcontrolador seguro de 8 ou 16 bits e, portanto, a equipe definiu uma nova máquina virtual, 
bastante simplificada. A Java Card Virtual Machine, ou JCVM, em virtude de sua simplicidade, poderia ser 
emulada por um processador limitado, sendo mais adequada para uso nos chips dos cartões inteligentes. 
Para tanto, é preciso ocorrer uma segunda fase de translação ou conversão entre o código da máquina 
virtual Java e o conjunto de instruções passíveis de execução pelo Java Card, feita automaticamente por 
uma ferramenta do kit de desenvolvimento fornecido gratuitamente pela Oracle.
Outra ferramenta interessante nesse conjunto é a Java Byte Code Verifier, que existe para verificar 
que as classes Java, convertidas para execução pelo chip, não são capazes de produzir nenhum erro 
ou furo de segurança ao serem executadas. Embora, num primeiro momento, possa parecer uma ideia 
estranha, um contrassenso, já que a própria JCVM no chip deveria impedir a execução de códigos 
errados ou maliciosos, é uma consequência da maior complexidade da linguagem Java e do modelo de 
segurança mais flexível do Java Card.
Wykes (2016) informa que existem comandos específicos para gravar ou apagar conjuntos de classes 
no cartão e para criar instâncias de aplicação ou, na terminologia da Sun, do Applet Java Card. Esse 
applet é um objeto, como tudo que existe no mundo Java, e tem um identificador próprio pelo qual 
pode ser selecionado, mas, embora já esteja apto a receber comandos do leitor, ainda não tem nenhum 
dado personalizado referente ao uso ou futuro portador do cartão.
Devido às diferenças entre o Java convencional e o Java Card, determinadas funcionalidades da 
linguagem Java não são suportadas pelos chips – vale destacar a indisponibilidade do enorme conjunto 
de bibliotecas padrão, considerado por muitos um dos principais benefícios do Java. Diante dessas 
limitações, em 2008 foi publicada uma nova especificação Java Card 3.0 Connected Edition, que descreve 
um Java Card quase totalmente repaginado, projetado para uma nova geração de microcontroladores 
seguros de 32 bits, munidos com bastante memória e recursos.
Equipado com uma máquina virtual nova, suporta um modelo diferente de aplicação, que se 
comporta como um servidor web dentro do cartão, com suporte para o protocolo HTTPS, dado em 
XML, retornando páginas HTML. Ainda de adoção incipiente, é um desenvolvimento a ser observado 
com interesse, embora possa-se considerar que o modelo de aplicativo dos smartphones Android e iOS 
acabou eliminando a maioria dos benefícios de se ter um cartão verdadeiramente inteligente.
160
Unidade IV
Apesar de sua abrangência, uma das lacunas existentes nas especificações Java Card se refere à falta 
de um modelo de gerenciamento seguro de aplicações. Foi para preencher essa carência que a Visa iniciou 
o projeto Open Platform, cujo resultado era uma infraestrutura de software para gerenciamento remoto 
do cartão Java Card. Na forma de especificações e direitos intelectuais, essa tecnologia foi transferida 
para uma organização sem fins lucrativos, denominada Global Platform, criada especificamente para 
desenvolver e promover a adoção dessas especificações como padrão.
Os mecanismos de segurança pelos quais um emissor pode gerenciar seus cartões a distância são 
definidos pelo Security Domain. O papel e o modo de operação de uma aplicação controladora – Security 
Domain – é um tipo de agente de software que representa o emissor dentro do cartão responsável pela 
carga das bibliotecas de classes Java Card, pela instalação de aplicações novas, pelo seu provisionamento 
com dados personalizados e chaves criptográficas e, finalmente, pela remoção de aplicações e classes.
O Security Domain provê também uma funcionalidade que permite o estabelecimento de um canal 
de comunicação autenticado e confidencial entre o cartão e algum terminal ou servidor. Por esse 
canal seguro, é possível enviar de forma segura comandos administrativos ao cartão, pois ele é capaz 
de validá-los, certificar-se de sua origem e de receber dados sigilosos, mesmo quando esses comandos 
transitam por redes públicas e inseguras.
Ao mesmo tempo, ao servidor é facilitada a verificação da autenticidade do cartão, presente do 
outro lado do canal, tornando prática a administração remota dos cartões e elementos seguros, mesmo 
após sua emissão, enquanto estiver em uso pelo portador ou instalado em um aparelho eletrônico, 
como é o caso dos cartões SIM dos telefones celulares.
Verificador Hash
Carregar 
(fornecedor específco)
Hash
Verificado valor 
do hash do 
componente CAP
Exportar 
arquivos
Arquivo 
CAP
Verificado valor do hash 
do componente CAP 
para carregar
Carregar 
arquivo
Figura 90 – Arquitetura Java Card 3.0
7.5 Elementos seguros, ataques e segurança
Para Wykes (2016), do ponto de vista da segurança, os elementos seguros se destacam na 
comparação com componentes eletrônicos e microprocessadores convencionais e em relação aos 
sistemas operacionais e aplicações normais.
161
CRIPTOGRAFIA E CERTIFICAÇÃO DIGITAL
O hardware seguro é resistente a ataques, sendo que o pilar fundamental de segurança dos 
elementos seguros está enraizado no seu hardware especializado, projetado com defesas contra uma 
série de ataques de invasão física, monitoramento elétrico e eletrônico, ou ambiental (WYKES, 2016). 
A capacidade dos elementos seguros de se defender de ataques no nível físico se denomina resistência 
à interferência tamper-resistance e é vital, uma vez que os atacantes em potencial geralmente detêm o 
acesso físico ao dispositivo.
Existem algumas formas de ataques aos elementos seguros. Nos ataques invasivos, tenta-se, 
por exemplo, acessar e extrair informações à medida que elas passam de uma parte do chip a outra, 
recuperar informações gravadas nos bits da memória ou injetar sinais elétricos falsos, na esperança de 
que isso provoque uma falha útil.
Pela utilização de microagulhas, é possível monitorar diretamente os sinais passando pelas linhas de 
comunicação dos chips comuns. Com o auxílio de um microscópio, colocam-se uma ou mais agulhas em 
posições estratégicas e grava-se o sinal que resulta da operação do chip.
Se uma chave criptográfica ou senha estiver sendo transferida como parte do processamento normal, 
por exemplo, entre a memória e a parte do circuito que provê a primitiva criptográfica, ela poderá ser 
revelada. Para tanto, é preciso obter acesso físico às camadas de conexão metálica do circuito integrado, 
o que pode ser alcançado pelo uso de processos mecânicos e químicos que removem as resinas e demais 
materiais utilizados para encapsular o circuito.
Uma contramedida comum é a inclusão de uma malha metálica por cima das outras camadas do 
circuito integrado, de forma que esse acesso físico se torne inviável, especialmente quando tal malha 
é projetada para detectar tentativas de remoção ou quebra. Os circuitos integrados têm uma gama de 
outras proteções, algumas oferecendo defesas, como a encriptação dinâmica dos dados em trânsito 
entre os diferentes blocos funcionais do chip, ou a encriptação dos dados armazenados em memória 
não volátil, que dificulta potenciais ataques de microagulha tentando ler o conteúdo inteiro dessa 
memória, em que estão guardadas as chaves e senhas.
Existe uma variação especialmente sofisticada do ataque invasivo que envolve a criação de conexões 
novasno circuito integrado e a remoção física de conexões já existentes. São necessários equipamentos 
de última geração, como lasers e microscópios de altíssima precisão, disponíveis para alguns poucos 
laboratórios da classe mundial.
Outra variação desse ataque, às vezes denominada semi-invasivo, envolve os mesmos processos 
iniciais de raspagem das camadas de proteção do chip, mas não requer contato físico. Como exemplo: o 
uso de um laser para estimular certas áreas do circuito, no intuito de gerar perturbações elétricas, que 
resultam na produção controlada de falhas na operação do circuito, pois o laser permite grande precisão 
no posicionamento físico e temporal das falhas injetadas. A exposição do circuito integrado também 
facilita ataques de monitoramento das emanações eletromagnéticas provenientes das diferentes partes 
do circuito, cuja precisão é altamente beneficiada pela proximidade com o circuito em comparação com 
outras formas de monitoramento.
162
Unidade IV
Segundo Wykes (2016), outra forma de ataque são os ataques ambientais, que se referem a uma 
segunda classe de ataques no nível do hardware envolvendo alterações das condições ambientais 
do circuito integrado, que pode ser feito por vários meios de alteração da voltagem de alimentação, 
introdução de picos de alimentação, variação dos pulsos do relógio para mais devagar ou mais rápido, 
aumento ou redução de temperatura, entre muitas outras possibilidades.
A esperança que o atacante tem, ao aplicar um desses ataques, é alterar o funcionamento interno 
do circuito integrado, facilitando a obtenção de informações sigilosas. Por exemplo, ao reduzir a 
frequência dos pulsos do relógio que governa o funcionamento interno do chip, é possível que as 
operações funcionem mais lentamente, aumentando as chances de sucesso dos outros mecanismos 
de ataque já apresentados.
No entanto, ao alterar os parâmetros bruscamente, por exemplo, pela injeção de pulsos nos pinos 
de alimentação elétrica, corre-se o risco de causar uma falha na operação do circuito. Conforme as 
características dessa falha e o momento exato em que foi provocado, pode-se alterar o fluxo interno do 
software aplicativo.
Imagine a injeção de uma falha justamente quando o aplicativo compara o valor da senha submetida 
com a senha de referência guardada na memória. Se essa falha invertesse ou anulasse o resultado da 
comparação, seria possível submeter qualquer senha errada e mesmo assim autenticá-la com êxito. 
As possibilidades são imensas.
Uma variação especialmente preocupante desse tipo de ataque se denomina DFA (differential fault 
analysis), em que uma falha introduzida nos cálculos internos de certos algoritmos criptográficos é capaz 
de revelar a chave criptográfica em pouco tempo. Como exemplo, estima-se que é preciso provocar 
falhas em cerca de 200 bits de dados para recuperar por inteiro uma chave DES ou 3-DES, e esse tipo de 
ataque tem sido aplicado também a algoritmos simétricos mais modernos, como o AES.
A técnica do DFA também combina muito bem com certas primitivas criptográficas assimétricas, 
especificamente num ataque de precisão com uso de um laser. Por exemplo: é possível induzir 
erros específicos durante os cálculos matemáticos, refletidos matematicamente no resultado, de tal 
forma que se torne prático e rápido extrair a chave privada por inteiro.
Outra forma de ataque são os ataques passivos que, de acordo com Wykes (2016), se tratam da 
última categoria de ataques envolvendo o monitoramento externo dos processos internos do circuito, 
por meio da captura e do processamento de diversos sinais externos que carregam as inevitáveis 
fugas de informações, pelos canais secundários elétricos, como o consumo de corrente ou as emissões 
eletromagnéticas, produtos naturais da própria física e da forma de construção dos circuitos.
Uma poderosa técnica de análise desses resíduos foi criada em meados da década de 1990, por Paul 
Kocher, atualmente presidente da empresa Cryptography Research. Ele e sua equipe desenvolveram 
duas técnicas, uma mais simples, denominada SPA (simple power analysis), e outra mais complexa e 
muito mais sensível, denominada DPA (diffirential power analysis).
163
CRIPTOGRAFIA E CERTIFICAÇÃO DIGITAL
O SPA funciona pela análise do consumo de corrente elétrica do circuito quando está sendo executada 
alguma operação criptográfica. Em circuitos integrados normais, sem proteção, é relativamente fácil 
detectar qual porção do sinal corresponde a diferentes bits de uma chave criptográfica, uma vez que o 
consumo varia conforme cada bit, ou conjunto de bits da chave.
DPA, a técnica mais avançada, envolve a coleção e correlação de sinais capturados durante diversas 
interações da operação criptográfica. Assim, ampliam-se as pequenas fugas de sinal, permitindo a 
aplicação dessa técnica a uma gama maior de circuitos, provendo uma forma de derrotar mecanismos 
de defesa capazes de proteger contra o SPA.
Ao descobrir essas técnicas de ataque, a equipe de Paul Kocher também desenvolveu uma série de 
defesas e contramedidas, registrando patentes. Atualmente, grande parte das contramedidas possíveis 
é coberta por essas patentes, que descrevem técnicas como o balanceamento do consumo por meio de 
diversas modificações da lógica, pela randomização das sequências, pela inclusão de ruído elétrico e por 
meio de pequenas variações do tempo de processamento, para dificultar e aumentar a complexidade do 
processo de ataque.
Recentemente, variações interessantes desses dois ataques ganharam destaque. Conhecidos pelos 
nomes de Sema e Dema (simple/differential electromag-netic analysis), funcionam pela captura dos 
sinais eletromagnéticos emitidos pelos circuitos integrados durante sua operação e a subsequente 
análise para identificar e extrair as informações protegidas. A maior preocupação com essas novas 
variantes é que elas são capazes de funcionar a pequenas distâncias do circuito integrado sem que isso 
seja perceptível, diferentemente dos ataques de SPA e DPA, que demandam que o circuito seja inserido 
fisicamente numa giga de testes.
 Saiba mais
Para saber mais sobre os ataques a hardware, veja:
DURO de matar 4.0: viver ou morrer. Dir. Len Wiseman. EUA; Reino 
Unido: Twentieth Century Fox, 2007. 128 minutos.
Segundo Wykes (2016), as proteções do firmware são fundamentais. O firmware é o elemento seguro 
que gerencia o processo de inicialização após o reset, verificando as bibliotecas de baixo nível, que 
trabalham mais próximas do hardware, carregando os demais módulos do sistema operacional.
O firmware e as bibliotecas são criteriosamente desenvolvidos para garantir ao sistema operacional 
perfeitas condições para funcionar com toda a segurança. Processos de boot seguro garantem a 
integridade dos módulos executáveis do sistema operacional antes de proceder.
A verificação da integridade da memória não volátil, do correto funcionamento dos diferentes 
componentes de hardware integrados e da existência de condições ambientais adequadas também 
164
Unidade IV
ocorre nessa fase. Se algo não estiver bem, como precaução básica, o elemento seguro se recusa a 
continuar com a inicialização.
De forma semelhante aos circuitos especiais, esses softwares de base do elemento seguro também 
exigem extremos cuidados durante sua implementação e testes e usam técnicas especiais para poderem 
se defender dos ataques ambientais e dos canais secundários. Na prática, isso significa que muitas rotinas 
de software são implementadas de forma bastante peculiar, do ponto de vista da engenharia de software 
convencional, com uso de algoritmos que prezam mais pela segurança do que pela performance.
Naturalmente, a eficiência do software é importante, especialmente no caso dos cartões sem contato, 
que recebem uma corrente mínima colhida do campo do leitor, mas, mesmo assim, o lema sempre será 
segurança acima de tudo. Os ataques de injeção de falhas podem ser extremamente nocivos, capazes de 
provocar situações literalmente imprevistaspela equipe de desenvolvimento e testes, como a execução 
do código em sequências inválidas, inversão de condicionais, não execução de etapas críticas e geração 
de resultados errados em cálculos.
Existem técnicas de desenvolvimento que ajudam a defender contra esses ataques, alguns até 
parecendo uma forma de programação paranoica, uma vez que um dos paradigmas fundamentais da 
engenharia de software (os microprocessadores e sua função de processamento única) não vale nesse 
ambiente, pois não se pode confiar no microprocessador. Recentemente surgiram os elementos seguros 
multicore, que, diferentemente dos processadores convencionais, que utilizam os seus múltiplos núcleos 
para aumentar o desempenho, executam o mesmo código em todos os núcleos, em paralelo. A cada 
momento, eles comparam os resultados da execução para garantir que os núcleos realizaram o código 
de forma idêntica, buscando, assim, detectar e prevenir ataques de injeção de falhas.
Já as proteções do sistema operacional, segundo Wykes (2016), se referem a uma das funções primordiais de 
qualquer sistema operacional, que é gerenciar os recursos do processador. Assim, o sistema operacional 
dos elementos seguros é responsável pela divisão das memórias não voláteis e temporárias entre as 
aplicações, pela carga e administração delas, pelas tarefas de comunicação com o mundo externo, e pela 
disponibilização de serviços criptográficos para elas.
No caso do Multos, o sistema operacional do chip garante que os dados de aplicações não possam ser 
compartilhados. Uma aplicação acessa e detém controle somente sobre seus próprios dados, garantido 
pelo firewall de segurança. As aplicações podem até delegar operações entre si de forma gerenciada, 
mas sem que interfiram na proteção do firewall.
Por sua vez, o Java Card implementa um poderoso esquema de proteção de dados, baseado num 
princípio de propriedade. Sob condições normais, somente o proprietário de um dado é capaz de 
acessá-lo ou alterá-lo, visto que a propriedade é definida individualmente, por cada objeto, e verificada 
durante qualquer acesso e ele.
No Java Card, todas as classes são organizadas em bibliotecas denominadas packages, e o proprietário 
de um objeto é sempre o package que contém a sua classe. Teoricamente, as duas abordagens são 
igualmente seguras, pois restringem o acesso aos dados. O Java Card é bem mais flexível do que o 
165
CRIPTOGRAFIA E CERTIFICAÇÃO DIGITAL
Multos, pois o proprietário de um objeto Java Card não é uma única aplicação, mas um package, um 
agrupamento de classes que podem estar instanciadas em vários applets ao mesmo tempo.
Todos esses applets poderão ter acesso aos dados desse package. E, se isso não for suficiente, o 
Java Card ainda disponibiliza um mecanismo avançado de compartilhamento explícito de dados entre 
applets distintos. Toda essa flexibilidade tem um preço – o agravante é um aumento da complexidade 
de implementação do sistema operacional.
O paradigma do Multos é simples e facilmente verificável, conforme testemunhado pelas certificações 
de alta segurança, obtidas pelo Multos, enquanto a complexidade do Java Card o torna bem mais difícil 
de certificar, embora ele também tenha certificações de segurança. Ambos são sistemas operacionais 
extremamente seguros, especialmente quando comparados com sistemas operacionais convencionais; 
no entanto, geralmente, quando há maior complexidade, há maior chance de ter problemas de segurança, 
devido à maior probabilidade de existirem vulnerabilidades ainda não descobertas.
Segundo Wykes (2016), as aplicações e applets, uma vez instaladas, gozam das proteções do firewall 
de segurança, que ajudam a manter seus dados longe das demais aplicações. Assim, uma aplicação para 
elemento seguro já é uma exemplificação prática do princípio de minimização e isolamento do código 
crítico, pois o que é instalado é apenas um pequeno pedaço de uma aplicação muito maior.
A vantagem é que o código crítico, as chaves criptográficas e os serviços de segurança associados, 
ou partes desses serviços, estão isolados do restante da aplicação e protegidos, o que satisfaz uma das 
principais regras de segurança, o isolamento, normalmente aliado à implementação de processos de 
autenticação, autorização e controle do acesso aos serviços do elemento seguro.
No entanto, o desenvolvimento de uma aplicação é um processo de certa forma complexo, pois as 
defesas oferecidas pelo hardware, pelo firmware e pelo sistema operacional têm limites. Existem defesas que 
somente o desenvolvedor de uma aplicação é capaz de implementar, com uso das técnicas gerais de 
programação defensiva aliadas a técnicas especializadas para elementos seguros. Como nos sistemas 
operacionais e firmware, dentro do universo de potenciais inimigos, estão os ataques de injeção de 
falhas, que podem alterar o fluxo de execução dos programas, provocar erros de cálculo e até corromper 
o valor de uma variável.
Há muito menos risco nesse nível, pois os sistemas operacionais já oferecem certo grau de proteção 
contra esse ataque, em virtude da emulação feita pela máquina virtual. Ataques de temporização são 
vetores de ataques favoritos, sendo aplicados durante a validação de senhas e códigos PIN, ou na 
autenticação de um MAC criptográfico. Nesses ataques, eventuais diferenças no tempo de processamento 
dos comandos podem acabar revelando informações importantes. Por exemplo, se a aplicação testar um 
caractere da senha por vez e retornar um erro logo que encontrar um caractere diferente da senha 
de referência, um atacante pode identificar, pela medição de tempo, quando foi acertado o primeiro 
caractere, e depois o segundo, e assim por diante. Portanto, essas comparações devem ser atômicas, de 
tempo constante, levando sempre o mesmo tempo, independentemente de a senha submetida ser certa 
ou errada.
166
Unidade IV
O fato de as aplicações para o sistema operacional Java Card serem escritas na linguagem Java levou 
à disseminação da ideia de que um desenvolvedor já experiente em Java teria bem mais facilidade em 
escrever uma aplicação para Java Card. Isso é verdade até um ponto e, como existe um grande número 
desses desenvolvedores no mercado, pode ser uma vantagem na hora de recrutar profissionais.
Profissionais não acostumados a esses ambientes, entretanto, deveriam passar por uma capacitação 
intensiva e prolongada em desenvolvimento para smartcards e elementos seguros, pois logo precisarão 
enfrentar a questão dos paradigmas, modelos e técnicas de desenvolvimento bem diferentes de tudo 
o que já conheceram. Por outro lado, a possibilidade de organizar suas aplicações como estruturas 
de objetos traz benefícios para o desenvolvedor Java Card, contanto que não abuse das modelagens de 
objetos, porque um ambiente restrito, que primeiramente visa à segurança, não comporta grandes 
esquemas e hierarquias de objetos considerados normais em outros ambientes.
Por fim, o paradigma e a linguagem de programação utilizados acabam sendo menos importantes do 
que a forma como são construídas as aplicações, as técnicas de desenvolvimento seguro e a cobertura 
e a qualidade dos testes e das avaliações.
Para Wykes (2016), os elementos seguros são resultado de uma evolução das tecnologias de cartão 
inteligente, que começou quando o chip de um smartcard foi colocado dentro de um telefone celular. 
Naquele momento, foi aberto um precedente para a inclusão de um pequeno dispositivo seguro dentro 
de equipamentos que fazem parte do universo de sistemas embarcados.
O sucesso dessa iniciativa foi imediato, pois, com a migração para os protocolos GSM, que dependiam 
da segurança oferecida pelo chip SIM, os celulares não eram mais suscetíveis à clonagem de linhas. 
O elemento seguro oferecia segurança ao restante do sistema embarcado, nesse caso, o telefone móvel, 
encapsulando seguramente os serviços, os algoritmos e as chaves criptográficas necessárias.
Assim, criava-se uma base firme, sob a qual poderia ser construído um software altamentecomplexo que 
operava as comunicações do sistema embarcado. Esse modelo se mantém atualmente nos dispositivos 
smartphones, tablets e afins. Ele de fato agrega mais segurança para o usuário, mas um dos motivos 
preponderantes para seu desenvolvimento é que as operadoras de telefonia precisavam estancar 
a clonagem e encontrar formas de autenticar os dispositivos, por causa dos custos das eventuais 
chamadas fraudulentas.
Segundo Wykes (2016), para a maioria das áreas em que são encontrados sistemas embarcados, até 
recentemente não existia a mesma necessidade de autenticar comunicações, dados e transações. Muito 
menos havia a necessidade de proteger o sigilo dessas informações ou comunicações, pois grande parte 
dos sistemas embarcados funcionava de forma off-line, sem serem conectados a redes de comunicação ou 
internet, cenário que mudou significativamente nos últimos anos, pois está acontecendo uma migração, 
inicialmente lenta, mas cada vez mais acelerada, na qual esses mesmos dispositivos embarcados estão 
se conectando a redes locais ou à internet.
Essa mudança traz um perigo crescente, pois, antes dessa onda de conectividade, os dispositivos 
embarcados não eram grandes alvos para ataques e, portanto, não eram projetados com segurança. 
167
CRIPTOGRAFIA E CERTIFICAÇÃO DIGITAL
Entretanto, quando já temos desde geladeiras domésticas a sistemas de controle industrial equipados 
com conectividade e endereços IP, a necessidade de melhor segurança desses dispositivos é premente.
Se, por um lado, estando ligados à internet, eles se tornam alvos de atacantes de qualquer lugar do 
mundo, por outro, mesmo equipados com interfaces de comunicação alternativas como bluetooth ou 
NFC, se tornam suscetíveis a outros modos de ataque.
Wykes (2016) diz que é possível concluir que já sabemos resolver boa parte dos problemas de 
segurança que esses dispositivos enfrentam ou enfrentarão no futuro. Se acoplarmos um elemento 
seguro munido de uma ou mais aplicações às placas e processadores desses dispositivos, é viável prover 
esquemas de identificação e autenticação mútua, além de manter seus dados em sigilo, respeitando as 
importantes questões de privacidade e confidencialidade dos dados.
Os pequenos componentes de software crítico, aplicações, applets ou securelets instalados nesses 
elementos seguros terão o mesmo papel que as aplicações dos smartcards atuais, servindo de repositórios 
dos serviços de segurança, com suas chaves criptográficas e lógicas inteligentes de autenticação e 
provisionamento, que interagirão com os softwares do processador principal. Nessa visão, o processador 
do sistema embarcado descarregará os principais processos de segurança no elemento seguro e, como 
este nunca revelará as chaves criptográficas contidas, será uma peça fundamental para garantir a 
segurança do dispositivo embarcado.
Wykes (2016) afirma que existem certos empecilhos à realização prática dessa visão futurista. 
Primeiramente, a inclusão de um elemento seguro elevará o custo do equipamento, embora haja muitos 
cenários em que as garantias de segurança se contraporão à questão financeira. E, naturalmente, com 
uma demanda maior, contando com as irrefreáveis melhorias em tecnologia e fabricação, os custos 
tendem a se reduzir.
A inclusão de elementos seguros como componentes individuais, como ocorre com os telefones 
celulares, durante um tempo determinado, exigirá novas funcionalidades e mais espaço nas placas de 
circuito integrado (WYKES, 2016). No entanto, já estão sendo desenvolvidas tecnologias que permitirão 
a fabricação de elementos seguros com outros componentes, como nas configurações SOC (system on 
a chip), tão amplamente disseminadas.
Um provável problema é que, sem sofrer modificações, os sistemas operacionais dos 
elementos seguros não serão capazes de atender todos os requisitos dos sistemas embarcados em 
questões como operação em tempo real, funcionamento multitarefa e desempenho em relação 
às funcionalidades criptográficas disponíveis. Isso foi justamente o caso dos elementos seguros 
do tipo chip SIM para celular, que passaram a incluir novos algoritmos proprietários do sistema 
GSM, entre outras modificações.
Por outro lado, atualmente existem poucos profissionais aptos a desenvolver aplicações para 
elementos seguros, em função da complexidade dessa atividade, que exige conhecimentos particulares 
e ampla experiência. Além disso, existe pouco material didático disponível, como tutoriais e livros 
práticos, situação que acaba se agravando pelo fato de haver poucos exemplos de código-fonte de 
168
Unidade IV
aplicações reais, diferentemente de quase todas as demais áreas de desenvolvimento de software, nas 
quais existem iniciativas e projetos importantes na modalidade open-source.
É inevitável uma adoção maciça dessas tecnologias seguras pelos desenvolvedores e projetistas de 
dispositivos embarcados nos próximos anos, quando se tornará possível integrar o elemento seguro como 
um núcleo adicional do processador. Então serão necessários cada vez mais profissionais capacitados, 
de plataformas abertas, frameworks de desenvolvimento, ferramentas de testes e, quem sabe, de novos 
sistemas operacionais abertos.
O sistema operacional Linux, inicialmente restrito a um pequeno grupo de desenvolvedores 
visionários, além de recentemente ter tirado o Microsoft Windows de sua posição de “rei” dos sistemas 
operacionais, se tornou, de fato, o sistema operacional para todo tipo de sistema embarcado.
Segundo Wykes (2016), nesses moldes, a ideia de um sistema operacional para elementos seguros 
de código aberto, capaz de ser analisado e avaliado, compilado e instalado, de receber contribuições e 
melhorias de qualquer pessoa interessada e qualificada, talvez seja uma alternativa interessante. Você 
se candidataria a criá-lo?
8 A CRIPTOGRAFIA E O FUTURO
Segundo Wykes (2016), estamos transitando para uma sociedade em que os bens de maior valor 
são a informação, o conhecimento e o know-how. Rapidamente estamos nos transformando em seres 
multidimensionais, multifocais, multifacetados e de múltiplas inteligências simultâneas. Ao mesmo 
tempo, aos poucos, estamos nos sutilizando, deixando de lado as questões materiais, de posse, de 
propriedade, bens físicos e de acúmulo de riqueza material.
Aos trancos e barrancos, estamos dominando a matéria mediante o progresso científico em todas 
as áreas, sendo levados adiante pela soma de milhões de pequenos avanços, as microcontribuições 
individuais de centenas de milhares de pessoas, e pelos eventuais pulos quânticos que derrubam nossos 
paradigmas antigos e nos empurram para um novo estado de arte e compreensão do universo.
Aos poucos, estamos nos tornando cada vez mais próximos da informação, transformando-nos 
em seres informacionais, nos quais a consciência, em seus aspectos mais sutis, domina os resquícios 
primitivos, os instintos e as bases emocionais do nosso passado animal. A pressão do próprio 
processo evolutivo está nos forçando a – ou nos permitindo – tomar distância das questões de 
sobrevivência básica, em que o poder, a força física e o domínio sobre os demais animais eram 
sinônimos de sucesso evolutivo.
O mundo mudou, e saber é poder. Aliado à experiência, o conhecimento nos dá poder e, mais que 
isso, a capacidade de fazer e aperfeiçoar, de recriar o mundo, melhorar as relações interpessoais e 
intergrupais, e a oportunidade de aprimorar nosso relacionamento com os ecossistemas, o planeta e o 
universo. O que vem impulsionando essas mudanças é a tecnologia digital, e a tecnologia da informação 
nos permite transformar a nós mesmos e, consequentemente, a sociedade em que vivemos.
169
CRIPTOGRAFIA E CERTIFICAÇÃO DIGITAL
Segundo Wykes (2016), à medida que ocorre essa transição, nosso mundo informacional se torna 
cada vez mais dependente dos sistemas computadorizados, que armazenam, processam, comunicam 
e transformam enormes quantidades de informações. Dependemos dos aparelhos móveis para acesso 
24 horas a esse mundovirtual e aos serviços on-line, para trabalhar, estudar, nos comunicar e para 
nosso lazer.
Tornamo-nos praticamente dependentes das grandes redes de comunicação, radiofrequência, 
telefonia celular, internet, fibra óptica e satélite, as miríades de interconexões que ligam tudo e todos. 
A mobilidade e a conectividade universal já estão se tornando fatos consolidados. Dependemos também 
de gigantescos datacenters, com suas milhões de unidades de processamento e enormes espaços de 
armazenamento de dados – dependência que cresce, ao considerarmos a rápida migração para os 
serviços computacionais em nuvem que ocorrem por toda parte.
Embora não saibamos para aonde vai tudo isso, uma vez que ainda não chegamos lá, quando 
analisamos os progressos tecnológicos dos últimos mil anos e dos últimos cem anos, para finalmente 
comparar com os progressos dos últimos dez anos, é possível pincelar uma tendência tão encorajadora 
quanto assustadora.
Ao que parece, a velocidade de crescimento tecnológico, com seus profundos impactos no modo 
como vivemos, não para de acelerar. A taxa de aumento do total de conhecimento humano, medida pela 
quantidade de informações digitais, número de livros publicados ou artigos científicos produzidos, tende 
a um crescimento exponencial. Cada vez mais a tecnologia auxilia a gerar e distribuir conhecimento, o 
que faz avançar a tecnologia, num círculo virtuoso, um crescimento espiral, sem que se tenha detectado 
algum limite fundamental. Portanto, a tendência é que esse desenvolvimento ocorra em velocidades 
cada vez maiores.
Diante dessas constatações, o papel da criptografia, das tecnologias criptográficas e, principalmente, 
dos criptógrafos, engenheiros de segurança e técnicos científicos em criptografia, é ímpar. Muitos 
desafios relacionados com o nosso mundo de informações, do presente e do futuro, exigirão bastante 
do profissional de criptografia, para encontrar soluções eficazes, elegantes, eficientes, seguras e práticas.
A tecnologia da criptografia tem o potencial de ser importante aliada na transformação do nosso 
mundo e, para isso, demandará muita dedicação, visão, esforço, persistência, tentativa e erro, vigor 
mental, coragem, criatividade, ideais inovadoras e uma boa dose de inspiração e intuição.
8.1 A vida on-line
Segundo Wykes (2016), a privacidade deveria ser considerada um direito universal, assim como deveria 
existir o direito universal de viajar, trabalhar ou morar em qualquer lugar do mundo. Precisamos garantir 
a privacidade, não porque temos algo a esconder, mas porque a violação de privacidade é um passo no 
tortuoso caminho que leva à censura, ao controle excessivo de governos, organizações ou grupos sobre 
a liberdade de expressão. Na maioria das vezes, esse caminho termina em regimes repressivos, governos 
ditatoriais e todo tipo de intolerância, discriminação e injustiça de qualquer natureza.
170
Unidade IV
À luz de revelações sobre os massivos e indiscriminados programas de monitoramento de 
comunicações envolvendo escutas telefônicas, rastreamento e interceptação de mensagens de e-mail, 
postagens em redes sociais e blogs, termos de busca ou simples padrões de acesso aos sites, a questão da 
privacidade veio à tona. Não obstante as explicações sobre a necessidade de detectar potenciais ameaças 
de terrorismo, monitorar e infiltrar o crime organizado, desmantelar grupos internacionais de pornografia 
infantil e as redes de tráfico de pessoas, muitos acreditam que esses casos isolados não deveriam servir 
como justificativa para o monitoramento constante de grande parcela da população do planeta.
Como então garantir a privacidade do cidadão comum que, embora até possa ter pequenos deslizes 
de ética e caráter, é relativamente inocente? Como protegê-lo do excessivo zelo dos nossos governos e 
agências de inteligência, como NSA, GCHQ, ABIN, KGB ou Stasi, do rastreamento quase predatório com 
fins comerciais dos grandes impérios on-line?
A questão da privacidade é bastante complexa. Se, por um lado, a anonimidade pode ser uma 
ferramenta para evitar censura e rastreamento, por outro, é também capaz de impedir a execução de 
trabalhos de prevenção ou solução de crimes. A criptografia tem técnicas que proveem anonimidade, 
mas como utilizá-las somente em prol da proteção da sociedade? Talvez a melhor forma de garantir a 
privacidade sejam as convenções, acordos legais internacionais e transparência por parte dos governantes.
Para Wykes (2016), uma das principais questões ainda em discussão se refere à propriedade de dados 
digitais. A quem pertencem as informações entregues aos serviços on-line, de e-mail, redes sociais ou 
provedores de serviços de computação em nuvem?
Qual legislação rege os dados, de um brasileiro, por exemplo, hospedados em um serviço on-line de 
uma empresa americana? Ou as informações de uma empresa britânica que hospede seus servidores 
virtuais no Japão? Quem, quais indivíduos, organizações ou governos podem acessar esses dados 
naturalmente? E quem, munido de ordem judicial, poderá obter acesso a eles?
No mundo globalizado, valerão as ordens judiciais de que país? Quem pode remover esses dados 
do serviço on-line? Gostaríamos de acreditar que é o proprietário, mas nem sempre é assim, conforme 
comprovado em certas redes sociais. O que deve acontecer se uma ordem judicial do tipo takedown 
notice for recebida por um provedor de armazenamento virtual, porventura utilizado por alguns de seus 
usuários como repositório de obras pirateadas? Como fica a pessoa que tiver gravado arquivos de dados 
legítimos nesse site? Ela também perderá acesso aos backups de seu trabalho incompleto de doutorado? 
É um desafio nada simples a resolver.
Complementando essas ideias, será inevitável, mais cedo ou mais tarde, a criação de uma legislação 
internacional específica para dados na nuvem, pois a nuvem computacional transcende barreiras e 
fronteiras convencionais. Esse acordo deveria, no mínimo, assegurar alguns direitos básicos, como 
propriedade de dados, privacidade e liberdade de expressão. Assim, promover um acordo desse tipo é 
dever e desafio de todos nós.
Enquanto não se pode confiar que o direito de privacidade das informações na nuvem será respeitado, 
há de se encontrar outras soluções, como a encriptação de dados. Entretanto, a eficácia e praticidade 
171
CRIPTOGRAFIA E CERTIFICAÇÃO DIGITAL
dessas soluções dependem muito do que se pretende fazer com as informações, uma vez dentro da 
nuvem. A forma mais simples e direta é encriptar os dados antes de enviá-los ao serviço on-line, o 
que funciona muito bem para soluções de armazenamento virtual. Desse modo, cada arquivo será 
encriptado localmente e somente depois será enviado.
A priori, se aplicam muitas das técnicas de proteção de dados locais, pois se muda apenas o local 
de armazenamento. Contudo, essas técnicas funcionarão somente nos casos em que os arquivos forem 
recuperados e decriptados pelo proprietário, já que ele é o único que tem a chave criptográfica de 
proteção. Se, porventura, for necessário compartilhar esses arquivos com outros usuários, deverão ser 
utilizadas técnicas adicionais de envelopamento seguro, que trazem os respectivos desafios de distribuição 
confiável de chaves e certificados, como já ocorre nos esquemas de PKI com uso de certificados de sigilo.
O usuário terá de indicar explicitamente os destinatários quando subir o arquivo, de forma análoga 
à utilização dessas técnicas na distribuição confidencial de e-mails e mensagens diversas. Em ambas as 
situações, a confidencialidade é garantida, pois ocorre a encriptação das informações antes de serem 
enviadas e armazenadas na nuvem, e serão abertas somente ao serem recuperadas da nuvem.
Ainda há desafios significativos nesses dois pontos, pois qualquer descuido, invasão em nível de 
equipamento local, erro de programação ou falha de configuração poderá levar a um vazamento de dados. 
A criptografia de nada ajuda se a fuga de dados acontece antes do processamento criptográfico.

Continue navegando