Documente Academic
Documente Profesional
Documente Cultură
MINICURSOS
Sociedade Brasileira de Computao SBC
Organizadores
Eduardo Souto, UFAM
Michelle Wangham, UNIVALI
Joni da Silva Fraga, UFSC
Realizao
Universidade Federal de Santa Catarina UFSC
Universidade do Vale do Itaja UNIVALI
Promoo
Sociedade Brasileira de Computao SBC
CDU 004(082)
ii
iii
iv
Sumrio
Mensagens dos organizadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
iv
Comits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51
93
Captulo
1
Introduo Criptografia para Programadores:
Evitando Maus Usos da Criptografia em
Sistemas de Software
Alexandre Braga e Ricardo Dahab
Abstract
Studies have shown that vulnerabilities in cryptographic software are generally caused
by implementation defects and mismanagement of cryptographic parameters. In
addition, we see the recurring presence of several cryptographic bad practices in
various software and mobile applications in particular. Possibly, these vulnerabilities
were included unintentionally by inexperienced programmers without expert support.
Along this vein, this short course addresses the programmatic use of cryptography by
software developers with little or no experience in information security and
cryptography. The material is introductory and aims to show software developers,
through real examples and code snippets, the good and bad uses of cryptography and
thus facilitate further improvements in future studies.
Resumo
Estudos tm revelado que vulnerabilidades em softwares criptogrficos so causadas
em geral por defeitos de implementao e pela m gesto de parmetros criptogrficos.
Alm disso, percebe-se a presena recorrente de diversas prticas ruins de criptografia
em softwares diversos e aplicativos mveis em particular. Possivelmente, estas
vulnerabilidades foram includas sem inteno por programadores inexperientes e sem
apoio de especialistas. Desta forma, este minicurso aborda a utilizao programtica
de criptografia por desenvolvedores de software com pouca ou nenhuma experincia
em segurana da informao e criptografia. O material introdutrio e tem o objetivo
de mostrar aos programadores de software, por meio de exemplos reais e trechos de
cdigo, os bons e maus usos da criptografia e, assim, facilitar o aprofundamento em
estudos futuros.
Livro-texto de Minicursos
c
2015
SBC Soc. Bras. de Computao
1.1.
Introduo
c
2015
SBC Soc. Bras. de Computao
1.2.
Conceitos Bsicos
c
2015
SBC Soc. Bras. de Computao
c
2015
SBC Soc. Bras. de Computao
Livro-texto de Minicursos
c
2015
SBC Soc. Bras. de Computao
Livro-texto de Minicursos
c
2015
SBC Soc. Bras. de Computao
que precisam decriptar a informao encriptada com ela. Mas como compartilhar a
chave secreta sem que ela seja descoberta pelos adversrios? Uma soluo seria marcar
um encontro secreto com todos que devem conhecer a chave. Porm, na Internet, isto
no fcil, afinal, usa-se a Internet quando encontros presenciais so difceis. Sabe-se
que a Internet insegura por natureza (por isso, usar a criptografia), ento no se pode
simplesmente distribuir a chave secreta por e-mail ou mensagem de texto. A
distribuio de chaves um aspecto importante da criptografia de chave secreta. Apesar
das dificuldades de distribuio de chaves, a criptografia de chave secreta muito usada.
Suas dificuldades aparentes podem ser contornadas pela combinao desta tecnologia
com a criptografia de chave pblica, originando sistemas criptogrficos hbridos.
c
2015
SBC Soc. Bras. de Computao
apenas pelo dono do par de chaves. A outra chave do par dita a chave pblica por
poder ser conhecida publicamente. A criptografia de chave pblica pode ser usada para
obter sigilo. Neste caso, a encriptao com a chave pblica torna possvel que qualquer
um envie criptogramas para o dono da chave privada.
c
2015
SBC Soc. Bras. de Computao
segurana da Internet, pois torna possvel a comunicao privada em uma rede pblica.
A criptografia de chave pblica a base para outros dois servios: a autenticao das
partes e a verificao de integridade das mensagens.
c
2015
SBC Soc. Bras. de Computao
encontrada em qualquer lugar, ento fica difcil saber se esta chave no foi corrompida
ou substituda. O problema de garantir a autenticidade da chave pblica muito
importante e, se no for solucionado satisfatoriamente, pode comprometer a confiana
no sistema criptogrfico. Uma maneira de validar chaves pblicas fazer com que elas
sejam emitidas por Autoridades Certificadoras (AC) de uma Infraestrutura de Chaves
Pblicas (ICP), que torne possvel a verificao da autenticidade de tais chaves.
Livro-texto de Minicursos
10
c
2015
SBC Soc. Bras. de Computao
Na Figura 7, Ana no assina o texto claro inteiro, pois ele pode ter um tamanho
arbitrariamente grande. De fato, Ana usa um mecanismo de assinaturas digitais que
calcula o hash do texto claro usando uma funo de resumo criptogrfico. O hash da
mensagem ento assinado com a chave privada de Ana usando um mecanismo de
assinatura digital. O modo de combinar a funo de resumo e o algoritmo assimtrico
dependente de cada mecanismo de assinatura digital. Esta assinatura digital fixa
enviada junto com o texto claro original e est acessvel para quem precisar verificar a
autoria do texto claro.
A integridade do texto claro tambm est garantida, pois se ele tiver qualquer bit
modificado, o hash calculado na verificao no corresponder mais quele da
assinatura e a assinatura no ser mais verificada com sucesso. Ana no pode mais negar
(refutar) a autoria do texto claro, pois h uma assinatura digital feita com sua chave
privada pessoal. Ningum precisa da ajuda de Ana para verificar a autoria do
documento, desde que a chave pblica de Ana esteja amplamente disponvel. Por isso, a
assinatura digital irrefutvel.
11
c
2015
SBC Soc. Bras. de Computao
12
c
2015
SBC Soc. Bras. de Computao
implementada pelo uso de uma chave secreta encriptada por uma chave pblica para
transporte seguro. A criptografia assimtrica usada como canal seguro para o
compartilhamento da chave secreta. A Figura 10 mostra os passos da encriptao com a
chave secreta em um sistema criptogrfico hbrido:
1. Ana configura um algoritmo assimtrico com a chave pblica de Beto;
2. Ana cria uma chave secreta e alimenta o algoritmo assimtrico com ela;
3. A chave secreta encriptada pela chave pblica de Beto;
4. Ana configura o algoritmo simtrico com a chave secreta;
5. Ana alimenta o algoritmo simtrico com um texto claro para Beto;
6. Ana envia o criptograma para Beto, junto com a chave secreta encriptada.
Durante uma comunicao segura, a sequncia completa de passos para
encriptao s executada uma nica vez, no incio da comunicao, para compartilhar
a chave secreta. A partir do segundo criptograma da conversa, basta que os passos 5 e 6
sejam executados. A tarefa de Beto recuperar a chave secreta e manter a comunicao
com Ana usando a chave secreta para proteger os dados.
De modo anlogo, na decriptao, os passos para recuperar a chave secreta s
so executados no incio da comunicao. Observados os detalhes de implementao,
depois que ambos (Ana e Beto) possuem a chave secreta, a comunicao pode ocorrer
nos dois sentidos. Isto , tanto de Ana para Beto, quanto de Beto para Ana.
Tabela 1: Comparao entre tecnologias criptogrficas simtricas e assimtricas.
Criptografia Simtrica
Criptografia Assimtrica
Livro-texto de Minicursos
13
c
2015
SBC Soc. Bras. de Computao
14
c
2015
SBC Soc. Bras. de Computao
15
c
2015
SBC Soc. Bras. de Computao
1.3.
Esta seo aborda, por meio de (trechos de) programas em Java [38] e a biblioteca
criptogrfica BouncyCastle [39], os conceitos descritos na seo anterior. A bibliografia
de apoio [10][11][12] explica aspectos especficos de programao da API criptogrfica.
Em particular, aqui so abordados os seguintes assuntos: encriptao/decriptao
simtrica e assimtrica; modos de operao e suas propriedades; verificao de
integridade e autenticao de mensagem; encriptao autenticada; criptografia baseada
em senhas; transporte de chave simtrica com criptografia assimtrica; aleatoriedade e
gerao de nmeros pseudoaleatrios; e distribuio e validao de certificados digitais.
Ainda, os programas so inspirados nos padres de projeto para criptografia [9].
Figura 13: Sistema criptogrfico simtrico para sigilo, em que Ana encripta e Beto decripta.
Livro-texto de Minicursos
16
c
2015
SBC Soc. Bras. de Computao
Livro-texto de Minicursos
17
c
2015
SBC Soc. Bras. de Computao
Cipher
Cipher
Cipher
Cipher
Cipher
c1
c2
c3
c4
c5
=
=
=
=
=
Cipher.getInstance("AES/ECB/NoPadding"
,
Cipher.getInstance("AES"
,
Cipher.getInstance("AES/ECB/PKCS5Padding",
Cipher.getInstance("AES/ECB/PKCS7Padding",
Cipher.getInstance("AES/ECB/X9.23Padding",
01
02
03
04
05
06
07
08
09
10
11
// configuraes do sistema
Chave AES de 128 bits
:
Um bloco de texto claro
:
Texto claro em hexadecimal:
"BC");
"BC");
"BC");
"BC");
"BC");
criptogrfico
073815E64B5F3B04F793B09813908994
Testando o AES..
54657374616E646F206F204145532E2E
Livro-texto de Minicursos
18
c
2015
SBC Soc. Bras. de Computao
Chave
: 0123456789ABCDEF0123456789ABCDEF
iv
: ABCDEF1234567890ABCDEF1234567890
Texto claro: Modo de operacaoModo de operacao
Teste 1: AES/ECB/NoPadding
Criptograma: D005B98ACDC054C81666DB6B2EDF8D8BD004B98ACDC054C81666DB6B2EDF8D8B
Texto claro: ????????????????Modo de operacao
Teste 2: AES/CBC/NoPadding
Criptograma: 4A7F495EE367615DFC107C6B1A5589C70940086079FDB9D307D044C2E017D8D7
Texto claro: ????????????????Mndo de operacao
Teste 3: AES/CFB/NoPadding
Criptograma: F8241BBA339DC359EFA5ACF0DDB177583DBD525C351AA7388B95ADBF9E001926
Texto claro: Mndo de operacao????????????????
Teste 4: AES/OFB/NoPadding
Criptograma: F8241BBA339DC359EFA5ACF0DDB17758858195019B5F22A3D4FC3366EDC9095F
Texto claro: Mndo de operacaoModo de operacao
Teste 5: AES/CTR/NoPadding
Criptograma: F8241BBA339DC359EFA5ACF0DDB1775861AD5E88AE385B452C01C82A18A68E33
Texto claro: Mndo de operacaoModo de operacao
Livro-texto de Minicursos
19
c
2015
SBC Soc. Bras. de Computao
Livro-texto de Minicursos
20
c
2015
SBC Soc. Bras. de Computao
Livro-texto de Minicursos
21
c
2015
SBC Soc. Bras. de Computao
Livro-texto de Minicursos
22
c
2015
SBC Soc. Bras. de Computao
Livro-texto de Minicursos
23
c
2015
SBC Soc. Bras. de Computao
Livro-texto de Minicursos
24
c
2015
SBC Soc. Bras. de Computao
Livro-texto de Minicursos
25
c
2015
SBC Soc. Bras. de Computao
Livro-texto de Minicursos
26
c
2015
SBC Soc. Bras. de Computao
Livro-texto de Minicursos
27
c
2015
SBC Soc. Bras. de Computao
mesmo da parte que alega ser a dona da chave pblica. O nome tambm deve ser obtido
de um terceiro confivel, por exemplo, de um servio de DNS, no caso de nomes de
domnio. A validao do certificado ilustrada no fluxograma da Figura 15.
A verificao da assinatura da AC em um certificado digital exige a chave
pblica da AC. Para ser confivel, a chave pblica da AC deve estar contida em um
certificado assinado por outra AC ou autoassinado, se for uma CA raiz. As verificaes
sucessivas de uma sequncia de assinaturas constroem uma hierarquia de certificados.
Os certificados na base da hierarquia so assinados pelas ACs de mais baixo nvel, cujos
certificados so assinados pelas ACs intermedirias, que tm seus certificados assinados
pelas ACs de alto nvel, cujos certificados so assinados pela AC raiz, que tem seus
certificados autoassinados. A Figura 16 ilustra esta cadeia de certificao.
Uma AC revoga um certificado nas seguintes situaes: quando ocorre erro na
emisso do certificado (nome grafado errado), ou o certificado foi emitido para uso de
um servio e o portador no tem mais acesso a ele (demisso de um funcionrio), ou a
chave privada do portador foi comprometida, ou ainda a chave privada da AC foi
comprometida (uma situao extrema). Uma Lista de Certificados Revogados (LCR) o
documento assinado digitalmente pela AC que lista o nmero de srie de todos os
certificados, ainda no expirados, que perderam a utilidade por algum dos motivos
acima. Um software criptogrfico pode consultar um servio de LCR para receber
atualizaes peridicas, em intervalos regulares definidos por procedimentos, ou ainda
consultar em tempo real se um certificado foi revogado ou no. Porm, a instabilidade
de comunicao pode causar indisponibilidade do servio de validao em tempo real.
Livro-texto de Minicursos
28
c
2015
SBC Soc. Bras. de Computao
1.4.
Esta seo organizada em torno dos maus usos de programao de criptografia que
levam a vulnerabilidades em softwares criptogrficos [13][17][18] e que tm sido
estudados recentemente [14][15][20]. Os maus usos so exemplificados por casos reais
e/ou ilustrados programaticamente por meio de programas em Java. Os maus usos
comuns de criptografia tratados no curso so os seguintes: criptografia determinstica
simtrica e assimtrica, IVs fixos ou reutilizados, sementes fixas ou reutilizadas para
PRNGs, troca indevida de modos de operao, combinao de integridade e encriptao,
reutilizao de chaves em encriptadores de fluxo, maleabilidade dos encriptadores de
fluxo, padding oracles e validao incorreta de certificados digitais. A utilizao de
chaves fracas (pequenas) e de algoritmos obsoletos ou quebrados no tratada aqui
como um mau uso programtico, mas sim uma configurao mal feita.
Livro-texto de Minicursos
29
c
2015
SBC Soc. Bras. de Computao
Livro-texto de Minicursos
30
c
2015
SBC Soc. Bras. de Computao
Livro-texto de Minicursos
31
c
2015
SBC Soc. Bras. de Computao
Livro-texto de Minicursos
32
c
2015
SBC Soc. Bras. de Computao
K = 00112233445566778899AABBCCDDEEFF
K = 00112233445566778899AABBCCDDEEFF
C[0] =8C61DC63FF9682588910E6FF77866E58
C[0] =29CF058FFD0543D255888BC1A12F33DD
iv[0]=BB3E5CFEDD9A5E6F666AC3ACB3D56D1C
iv[0]=BB3E5CFEDD9A5E6F666AC3ACB3D56D1C
C[1] =00D0625EC980B1FD965931601CE279C3
C[1] =1FD1058FF305529D44C18BDFB5773896
iv[1]=BB3E5CFEDD9A5E6F666AC3ACB3D56D1C
iv[1]=BB3E5CFEDD9A5E6F666AC3ACB3D56D1C
M0^M1^M0 = M1 = ????????????????
Livro-texto de Minicursos
33
c
2015
SBC Soc. Bras. de Computao
01
02
// Ana encripta
enc.init(Cipher.ENCRYPT_MODE,ks,new IvParameterSpec(iv[0]));
C[0] = enc.doFinal(M[0]);
//Beto Encripta tambm
enc.init(Cipher.ENCRYPT_MODE, ks, new IvParameterSpec(iv[1]));
C[1] = enc.doFinal(M[1]);
// Ivo realiza o ataque
byte[] M0xorM1 = U.xor(C[0],C[1]); byte[] M1 = U.xor(M[0], M0xorM1);
Livro-texto de Minicursos
34
c
2015
SBC Soc. Bras. de Computao
01
02
03
Livro-texto de Minicursos
35
c
2015
SBC Soc. Bras. de Computao
Livro-texto de Minicursos
36
c
2015
SBC Soc. Bras. de Computao
Livro-texto de Minicursos
37
c
2015
SBC Soc. Bras. de Computao
Figura 17: Comparao de hashes com tempo varivel e com tempo constante.
Livro-texto de Minicursos
38
c
2015
SBC Soc. Bras. de Computao
Livro-texto de Minicursos
39
c
2015
SBC Soc. Bras. de Computao
Figura 18: Diagrama de sequncia (UML) do ataque de padding oracle do modo CBC.
Existem trs maus usos criptogrficos que podem ser diretamente associados s
causas da vulnerabilidade de padding oracle:
O uso de encriptao no autenticada em canais de comunicao, de modo que
criptogramas injetados pelo adversrio no canal sejam considerados vlidos;
Composio de encriptao e autenticao com os mtodos MAC-then-Encrypt
ou MAC-then-(pad-then)-Encrypt, de modo que a proteo de integridade s
aplicada sobre o texto claro (e o padding) e no sobre o criptograma, permitindo
ao adversrio a manipulao do criptograma para inferir a validade do padding;
O uso de IVs fixos ou previsveis com o modo CBC, de modo que ataques de
decriptao possam ser montados a partir da previso dos IVs.
Estes maus usos podem ser resolvidos pela adoo compulsria da autenticao
em conjunto com a encriptao, que tambm protege a integridade. Ainda, ela precisa
ser aplicada de maneira correta, sobre o criptograma completo, em vez de sobre o texto
claro. Alm disso, a funo atmica de encriptao autenticada elimina a necessidade de
combinao programtica explcita de encriptao e autenticao, reduzindo a chance de
erros. Finalmente, a ltima contramedida para eliminar este canal lateral a inibio de
mensagens de erro relacionadas validao de integridade sobre o texto claro nas
computaes que fazem decriptao em protocolos de comunicao.
Livro-texto de Minicursos
40
c
2015
SBC Soc. Bras. de Computao
Livro-texto de Minicursos
41
c
2015
SBC Soc. Bras. de Computao
1.5.
Livro-texto de Minicursos
42
c
2015
SBC Soc. Bras. de Computao
Tempo (milisegundos)
0,009
0,008
0,007
0,006
0,005
0,004
0,003
0,002
0,001
0
E128
E192
E256
D128
D192
D256
44
c
2015
SBC Soc. Bras. de Computao
Livro-texto de Minicursos
45
c
2015
SBC Soc. Bras. de Computao
Livro-texto de Minicursos
46
c
2015
SBC Soc. Bras. de Computao
1.6.
Consideraes finais
47
c
2015
SBC Soc. Bras. de Computao
1.7.
Agradecimentos
1.8.
Referncias
Livro-texto de Minicursos
48
c
2015
SBC Soc. Bras. de Computao
Livro-texto de Minicursos
49
c
2015
SBC Soc. Bras. de Computao
[30] NIST, The Keyed-Hash Message Authentication Code (HMAC), NIST FIPS
PUB 198-1, 2008. [Online]. Available: http://csrc.nist.gov/publications/fips/
fips198-1/FIPS-198-1_final.pdf.
Livro-texto de Minicursos
50
c
2015
SBC Soc. Bras. de Computao
Captulo
Abstract
Mobile Crowd Sensing (MCS) applications allow that participants or users to collect
(using different sensors on your mobile devices - microphone, camera, GPS, etc.) and
share information in order to assist other users in decision-making (based on third-party
opinion) or inform about different events. Examples of MCS applications include coverage of instantly news, traffic congestion, weather disasters, air pollution, parking spaces,
among others. Once the operation of MCS applications involves human or mechanical
participation (cars, drones, sensors, etc.) to collect data that will be used by end users,
the privacy and safety of the participants, not to mention the reliability of generated and
received information are important issues that need investigation. In this context, this
chapter aims to provide understanding of the environment of MCS applications, focusing
mainly on issues related to privacy, security and reliability of the information.
Resumo
Aplicaes de Mobile Crowd Sensing (MCS) so aquelas onde os participantes ou usurios coletam (atravs dos diferentes sensores em seu dispositivo mvel - microfone, cmera, GPS, entre outros) e compartilham informaes com o intuito de auxiliar outros
usurios na tomada de decises (baseada na opinio de terceiros) ou informar sobre os
mais diversos acontecimentos. Entre exemplos comuns de aplicaes de MCS pode-se
citar a cobertura de notcias instantaneamente, informaes sobre pontos de congestionamento, desastres climticos, poluio do ar, buracos em vias pblicas, vagas em
estacionamentos, entre outros. Uma vez que o funcionamento de aplicaes MCS envolve a participao humana ou mecnica (automveis, drones, sensores, entre outros)
para coletar os dados que sero usados por usurios finais, a privacidade e a segurana
dos participantes, sem falar na confiabilidade das informaes geradas e recebidas so
questes importantes que precisam investigadas. Neste contexto, este Captulo objetiva
fornecer entendimento sobre o ambiente de aplicaes de Mobile Crowd Sensing, focando
principalmente nas questes relacionados a privacidade, a segurana e a confiabilidade
das informaes.
Livro-texto de Minicursos
51
c
2015
SBC Soc. Bras. de Computao
2.1. Introduo
H algum tempo, o processo de sensoriamento passou a ser utilizado na gesto de cidades,
atravs da monitorizao de reas urbanas e da observao da dinmica das comunidades,
visando a fornecer aos gestores informaes essenciais para a tomada de deciso sobre os
mais variados assuntos. Atualmente, esse processo de gesto parte essencial da vida nas
cidades. Por exemplo, o sensoriamento de fatores ambientais permite que autoridades ou
agncias obtenham dados e informem a populao sobre condies de trfego, poluio
sonora, poluio do ar, qualidade da gua, segurana pblica, entre outros assuntos, informando o que acontece, quando acontece e o que fazer quando algo acontecer. Mas como
fazer esse sensoriamento?
As atuais e tradicionais tcnicas de sensoriamento, tais como as redes de sensores
sem fio (RSSF), vm sendo muito aproveitadas para adquirir as condies do mundo
real. Contudo, as redes de sensores comerciais nunca foram implantadas com sucesso no
mundo real, devido a problemas como a cobertura insuficiente, falta de escalabilidade e,
principalmente, o custo de instalao e manuteno.
Graas ao exponencial crescimento do poder computacional e da quantidade e disponibilidade de sensores embutidos nos dispositivos mveis usados diariamente, possvel,nos dias atuais, que o cidado comum possa monitorar aspectos sobre a cidade, sua
comunidade ou uma regio e, assim, contribuir de alguma forma para melhorar e/ou auxiliar a vida das outras pessoas. Entre os exemplos bvios esto o nvel de rudo na cidade
e o fluxo de trfego. Tambm possvel incluir situaes que interferem na qualidade de
vida, como buracos em vias pblicas e estradas, os quais podem ser detectados usando
dispositivos mveis.
Recentemente, um novo paradigma de sensoriamento vem tirando proveito dessa
vasta gama de recursos para monitorar e compartilhar informaes de interesses comum,
coletadas atravs dos sensores embutidos nos dispositivos mveis, o que acaba por auxiliar as pessoas na tomada de decises. Denominado de Mobile Crowd Sensing, ou
simplesmente MCS, esse paradigma parte do princpio de que possvel (e at fcil em
certo ponto) utilizar os mais variados sensores (cmeras, acelermetros, sistemas de posicionamento global - GPS, sensores de temperatura, entre muitos outros) presentes em
smartphones, dispositivos de IoT (Internet of Thing), tocadores de msicas, consoles de
jogos (Wii e XboX Kinect, por exemplo) e veculos (GPS, computadores de bordo) para
coletar informaes relevantes para uma cidade ou uma comunidade.
As aplicaes MCS vm sendo utilizadas para o monitoramento do rudo nas
cidades [Maisonneuve et al. 2010, Rana et al. 2010], poluio ambiental [IBM 2010] e
fenmenos climticos [Thepvilojanapong et al. 2010], medio da densidade demogrfica [Weppner and Lukowicz 2013], cenrios de emergncias [Ludwig et al. 2015], medicina [Lane et al. 2010], anomalias no trfego [Pan et al. 2013, Ganti et al. 2011] e at
mesmo detectar terremotos [Minson et al. 2015].
Um aspecto importante que as aplicaes MCS vm ganhando popularidade
com a criao de diversos sistemas e aplicativos e, consequentemente, conquistando o
envolvimento de mais e mais pessoas, redes e grupo de colaboradores. Em conjunto
com outras tecnologias e plataformas, como rede sociais e armazenamento em nuvem,
Livro-texto de Minicursos
52
c
2015
SBC Soc. Bras. de Computao
Livro-texto de Minicursos
53
c
2015
SBC Soc. Bras. de Computao
54
c
2015
SBC Soc. Bras. de Computao
Inteligncia+da+Mquina+
Sabedoria+das+Mul5des+
(coleta+de+dados+e+processamento)+
Inteligncia+Humana+
Par5cipao+Implcita+
Par5cipao+Explcita+
Sensoriamento+
Par5cipa5vo+
Comunidade+online+
Comunidade+mvel+e+Gsica+
(opinies+pessoais+jus5a,+)+
Percebe-se na Figura 2.1 que enquanto a sabedoria das multides e crowdsourcing contam apenas com a inteligncia humana, o sensoriamento participativo e MCS
exploram uma fuso da inteligncia humana e da mquina.
Segundo Hu et al. [Hu et al. 2013], em comparao com sistemas e redes de sensores fixos, com grande complexidade estrutural e logstica, MCS possui vantagens como:
Generalidade, uma vez que atendem a diversidade de sistemas operacionais e
hardwares, ignorando nuances e generalizando o desenvolvimento de aplicaes
necessrias e populares;
Escalabilidade, pois no limitam a quantidade de usurios;
Mobilidade de contedo, j que as informaes coletadas podem ser passadas por
diversos canais (redes sociais, canais de rdio, jornais online e televiso, por exemplo), antes de serem acessadas/vistas, no havendo barreiras para as informaes
transmitidas.
Livro-texto de Minicursos
55
c
2015
SBC Soc. Bras. de Computao
2.2.2. Definies
Como j mencionado neste Captulo, Mobile Crowd Sensing (MCS) apresenta um novo
paradigma de sensoriamento baseado no poder dos dispositivos mveis.
Para Ganti et al. [Ganti et al. 2011], os pesquisadores responsveis por cunharem
o termo, Mobile Crowd Sensing se refere a uma variada e ampla gama de modelos de sensoriamento no qual indivduos com dispositivos computacionais e sensores so capazes
de coletar e contribuir com dados valiosos para diferentes aplicaes. Em linhas gerais,
MCS tira proveito do grande nmero de dispositivos que acompanham um usurio (telefones celulares, dispositivos portteis e veculos inteligentes) e de sua mobilidade para
adquirir conhecimento local e compartilhar esse conhecimento dentro de uma esfera social. A informao recolhida mais a fuso dos dados coletados (que acontece com o apoio
da computao em nuvem), torna MCS uma plataforma verstil que muitas vezes pode
substituir as infraestruturas de sensoriamento estticos, permitindo uma ampla variedade
de aplicaes.
Guo et al. [Guo et al. 2015] definem MCS como um novo paradigma de deteco que capacita os cidados comuns contribuir com dados sensoriados ou gerados a
partir de seus dispositivos mveis, agregados e fundidos na nuvem para a extrao de
inteligncia da multido, prestando servios centrados nas pessoas. J autores como
[Dimov 2014] definem MCS como sendo um novo modelo de negcios do conceito de
crowdsourcing, uma vez que permite que um grande nmero de dispositivos mveis sejam usados no somente para troca de informaes entre seus usurios, mas tambm para
atividades que podem ter um grande impacto social.
Quanto ao que pode ser sensoriado com MCS, Ganti et al. [Ganti et al. 2011]
afirmam que tudo depende do fenmeno que se est medindo. Eles sugerem a seguinte
classificao:
Ambiental, onde fenmenos de natureza ambiental so os alvos. Exemplos incluem o nvel e qualidade da gua em rios [IBM 2010, Minkman et al. 2015], a
medio dos nveis de poluio em cidades [Dutta et al. 2009, Leonardi et al. 2014]
e o monitoramento de vida selvagem em seu habitat [Mediated Spaces, Inc 2015].
Infraestrutura envolve a medio em larga escala de fenmenos relacionados a
infraestrutura pblica. Exemplos incluem a disponibilidade de vagas em estacionamentos [Mathur et al. 2010], a condio de rodovias e estradas, problemas com
aparelhos pblicos (hidrantes, iluminao, entre outros) e o monitoramento do trnsito em tempo real [Mohan et al. 2008, Google 2015].
Social, onde os participantes coletam e compartilham informaes entre si. Exemplos incluem dados sobre os exerccios [Reddy et al. 2007] que realizaram durante
o dia ou quanto andaram de bicicleta [Eisenman et al. 2007].
2.2.3. Componentes Arquiteturais
Embora no exista uma arquitetura formal, visto que ela depende do que se quer sensoriar,
a Figura 2.2 mostra uma arquitetura genrica de MCS.
Livro-texto de Minicursos
56
c
2015
SBC Soc. Bras. de Computao
Servidor(de(Aplicao(
(Gerente(de(Tarefas)(
Usurios,
Par$cipantes,
Cmeras,(GPS(
M i c r o f o n e ,(
Acelermetro(
....(
Visualizao(
Figura 2.2. Exemplo de arquitetura geral em MCS. Adaptado de [Pournajaf et al. 2014]
Entretanto, vrios autores [Pournajaf et al. 2014, Ganti et al. 2011] concordam que
qualquer sistema MCS deve possuir pelos menos trs componentes chave:
Participantes: So as entidades, pessoas, que usam algum tipo de sensor para obter
ou medir a informao requisitada sobre um elemento de interesse;
Aplicaes ou Usurios Finais: So as entidades que requisitam dados atravs de
tarefas e ento utilizam a informao coletada pelos participantes;
Servidor de Aplicao: Tambm chamado de gerentes de tarefas, so as entidades
responsveis pela distribuio de tarefas aos participantes que conseguem atender
aos requisitos das aplicaes. O modo de distribuio de tarefas do servidor de
aplicao varia de acordo com as tarefas e os participantes, e pode ser categorizado
em:
Centralizado: Um servidor central fornece aos participantes diferentes tarefas para executar. Por exemplo, em um aplicativo que mede o entusiasmo de
festas (party thermometer), um servidor central pode escolher um conjunto
de participantes, pedindo que eles classificam uma determinada festa. Uma
questo importante do modelo centralizado ter um nico ponto de falha para
interaes entre participantes e aplicaes;
Descentralizado: Cada participante pode se tornar um gerente de tarefa e decidir ou executar uma tarefa ou pass-la para outros participantes que possam
estar melhor adaptados para cumpr-la. Esta deciso pode ser baseada em certos atributos de outros participantes, como localizao, habilidades ou hardware disponvel no dispositivo. Um bom exemplo o modelo de recrutamento
descentralizado proposto em [Tuncay et al. 2012], que notifica os participantes qualificados de uma atividade de sensoriamento prxima;
Hbrido: Neste esquema, um servidor central e um conjunto de participantes atuam na construo do ncleo de gerenciamento de tarefas. Um bom
exemplo o esquema de bolha [Lu et al. 2010], que requer um servidor central para manter o controle das tarefas de sensoriamento, que so alocadas
principalmente de forma descentralizada.
Livro-texto de Minicursos
57
c
2015
SBC Soc. Bras. de Computao
Atribuio(
de(Tarefas(
Execuo(das(
Tarefas(
Integrao(dos(Dados(
Tarefa&1&
Execuo&da&Tarefa&
Execuo&da&Tarefa&
Tarefa&2&
Cloud&
&
Execuo&da&Tarefa&
Execuo&da&Tarefa&
&
&
&
Dados(
&
&
Senoriamento&
&
Tarefa&3&
Computao&
&
&
&
Upload&
58
c
2015
SBC Soc. Bras. de Computao
59
c
2015
SBC Soc. Bras. de Computao
1. Grupos, pessoas organizadas de forma oportunista (tipicamente vizinhos) que desejam abordar de forma colaborativa um problema enfrentado por todos;
2. Comunidades, onde as pessoas que vivem em uma determinada rea se unem por
causa de seus interesses comuns;
3. Urbanos, onde qualquer cidado (na sua maioria estranhos) pode participar da atividade de sensoriamento em escala urbana.
Sistema Centrado no Usurio
Como j mencionado neste Captulo, MCS destaca-se pela capacidade de integrar
a inteligncia humana e da mquina. Contudo, para motivar a participao plena dos
usurios bem como melhorar sua experincia de uso, sistemas MCS so desenvolvidos
centrados no usurio (user-centric).
Embora vital, tal fato traz alguns problemas. O primeiro deles como motivar os
usurios a participarem? A primeira vista, a promessa de ganho financeiro um mtodo
importante e bastante usado como incentivo. Contudo, o simples fato do entretenimento
pode ser motivador em muitas situaes, mesmo quando no h perspectiva de ganhos
financeiros [Ganti et al. 2011]. As pessoas tambm podem ser motivadas a participar por
razes ticas e sociais, tais como a socializao com outros ou o reconhecimento. Vale
lembra que os usurios tem noo de que ao usar seus dispositivos e sensores estaro
consumindo seus prprios recursos (energia e dados mveis, por exemplo).
Outro problema a segurana e privacidade do usurio. O compartilhamento
de dados pessoais em sistemas MCS pode levantar preocupaes quanto a privacidade.
Para motivar a participao do usurio, essencial que novas tcnicas para proteo da
privacidade do usurio sejam elaboradas, permitindo que seus dispositivos possam contribuir de forma confivel. De forma particular, a definio de segurana e privacidade pode
e precisa evoluir nos sistemas MCS, j que informaes pessoais podem no ser obtidas
diretamente, mas sim inferidas a partir de dados agregados. Por exemplo, o fato de que um
objeto com uma etiqueta RFID poder ser identificado exclusivamente e rastreado de volta
at seu utilizador pode trazer muitos problemas de privacidade [Acampora et al. 2013].
Requisitos de Comunicao
O sucesso de qualquer soluo MCS depende de recursos de comunicao e de conexes heterogneas temporrias que permitam a coleta eficiente dos dados sensoriados.
Embora aplicaes e sistemas MCS possam ter arquiteturas de comunicao diferentes,
grande parte delas baseai-se em quatro pontos.
O primeiro a conexo de rede heterognea. Os atuais dispositivos mveis so
geralmente equipados com mltiplas interfaces e tecnologias de comunicao sem fio (por
exemplo, GSM, Wi-Fi e Bluetooth). Enquanto as interfaces GSM e WiFi podem fornecer
conectividade com uma infraestrutura de comunicao pr-existente, Bluetooth ou Wi-Fi
podem fornecer conexo de curto alcance entre dispositivos mveis e redes oportunistas
auto-organizadas para compartilhar dados [Conti and Kumar 2010, Guo et al. 2013].
O segundo a topologia de rede e mobilidade humana. A mobilidade dos dispositivos mveis e seus donos no s fornece uma boa cobertura de sensoriamento para
Livro-texto de Minicursos
60
c
2015
SBC Soc. Bras. de Computao
61
c
2015
SBC Soc. Bras. de Computao
Os dados coletados so automaticamente enviados para o servidor central ou armazenados no prprio dispositivo se no houver acesso a Internet. Todas as informaes
podem ser acessadas e baixadas em http://creekwatch.org. De acordo com a
IBM, o Creek Watch j conta com mais de 4.000 usurios em 25 pases.
NoiseTube
NoiseTube uma nova abordagem para a avaliao da poluio sonora que envolve o pblico em geral [Maisonneuve et al. 2009]. O objetivo transformar telefones
celulares equipados com GPS em sensores de rudo que permitam aos cidados medir sua
exposio pessoal ao rudo no seu ambiente quotidiano.
Cada usurio pode contribuir compartilhando suas medies geolocalizadas bem
como anotaes pessoais para produzir um mapa de rudo coletivo. Uma vez que os dados
coletados so enviados ao servidor, qualquer usurio pode ver suas prprias contribuies
Livro-texto de Minicursos
62
c
2015
SBC Soc. Bras. de Computao
e a de outros atravs do Web site ou visualiz-las usando o Google Earth. Essa maior possibilidade de exibio faz com que o NoiseTube forneca dados para convencer e auxiliar
autoridades na tomada de deciso sobre o problema da poluio sonora. NoiseTube usa
o conceito de translucidez social, que consiste em fazer os participantes e suas atividades
se tornarem visveis um para o outro.
A verso inicial do NoiseTube foi escrita em Java, focada em smartphones com
sistema operacional Symbian/S60 e testada em um dispositivo Nokia N95 com 8GB.
Alm disso, um receptor de GPS externo (conectado via Bluetooth) foi utilizado. Atualmente, est disponvel para plataformas iOS, Android e smartphones com Java ME. O
servidor implementado using Ruby on Rails, MySQL, Google Maps e Google Earth.
A Figura 2.5 ilustra algumas interfaces do NoiseTube, que representam a coleta e
a visualizao das medies.
Nericell
O Nericell uma aplicao MCS voltada para monitorar o trfego em ruas, avenidas e rodovias em tempo real, mas de forma oportunista [Mohan et al. 2008]. Desenvolvida pela Microsoft Research, a ideia que quando um usurio participante coloca seu
telefone no bolso e comea a dirigir, a aplicao ir automaticamente monitorar as condies da estrada e do trnsito, transmitindo certas informaes para um servio na nuvem
para a agregao e gerao de relatrios.
Um aspecto interessante da Nericell o uso de vrios sensores presentes em dispositivos mveis, tais como bluetooth, rdio celular, microfone, acelermetro e GPS.
Segundo os criadores, um sensoriamento rico e diversificado fundamental no contexto
das cidades, onde as condies das estradas tendem a ser variveis (buracos), existem vrios tipos de veculos (2 rodas, 3 rodas, carros, caminhes) e o fluxo de trfego pode ser
catico (por exemplo, vrios motorista buzinando em um congestionamento). Assim, por
exemplo, o acelermetro pode ser usado para detectar buracos e o microfone para detectar
buzinas, ajudando a determinar a condio de trafegabilidade.
Alm da questo do sensoriamento, Nericell tambm resolve certos aspectos tcniLivro-texto de Minicursos
63
c
2015
SBC Soc. Bras. de Computao
cos como consumo de energia. Sobre consumo de energia, a aplicao emprega o conceito
de sensoriamento por gatilho, onde um sensor relativamente barato em termos de energia
usado para desencadear a operao de um sensor de maior consumo energtico, quando
necessrio. Por exemplo, o acelermetro utilizado para detectar uma alta incidncia de
frenagens, o que provoca ento o sensoriamento baseado no microfone para verificar se
h buzinas.
Waze
Waze um popular sistema de navegao que usa Crowdsensing para oferecer informaes de trfego em tempo quase real. Criado em 2008, o Waze registrava aproximadamente mais de 50 milhes de usurios em 2013, ano em que foi comprado pelo Google.
Waze recolhe periodicamente dados do GPS em dispositivos mveis e os utiliza para calcular a velocidade do veculo. Assim, pode fornecer informaes teis sobre as condies
de trfego em diferentes reas. O sistema tambm oferece aos seus usurios alertas prdefinidos informando incidentes como engarrafamentos e pontos de verificao da polcia,
bem como informaes sobre as condies de trfego. Tambm possvel usar subcategorias de incidentes para melhor especific-los, por exemplo, engarrafamento pesado
em vez de apenas engarrafamento.
A Figura 2.6 ilustra algumas interfaces do Waze.
mCrowd
mCrowd uma plataforma de Crowdsourcing, desenvolvida em [Yan et al. 2009],
que permite aos usurios mveis postar e trabalhar em tarefas relacionadas com o sensoriamento mvel distribudo. Ela permite que os usurios de iPhones possam utilizar, de
forma plena, os diferentes sensores para participar e realizar tarefas de Crowdsourcing,
incluindo a coleta de imagens com cincia de localizao (geolocalizao), marcao de
imagens, monitoramento do trfego rodovirio, entre outros. Obviamente, para incentivar
a participao, oferecida uma compensao financeira para cada usurio. Alm de facilitar o Crowdsourcing, mCrowd torna vivel que os usurios usem servios populares como
Livro-texto de Minicursos
64
c
2015
SBC Soc. Bras. de Computao
(a)$Viso$do$Solicitante$$$$$$$$(b)$Exibio$de$Tarefas$$$$$$$$$$$$$$$(c)$Resultados$
(a) Requester View
(b) Tasks View
(c) Results View
Figure 2. mCrowd
iPhone
Requesters
start posting
from (a)requester
view,
the posted
tasks are shown in (b)
Figura
2.7.client.
Interfaces
do mCrowd.
Ostask
usurios
que desejam
iniciar
uma tarefa
task view, and the
results
submitted
by
workers
are
shown
in
(c)
results
view.
postam a partir da (a) viso do solicitante, as tarefas postadas so mostrados
Em relao a privacidade, o problema a possibilidade da divulgao de informaes privadas (identidades, endereos fsicos e na Internet, rotas, estilo de vida, entre
muitas outras), uma vez que aplicaes MCS gerenciam grandes volumes de informao
que tipicamente so e devem ser tornadas pblicas.
J quanto a confiabilidade dos dados, o problema que no existem garantias de
que ou os dados inseridos pelos participantes so reais ou que as informaes mantidas
nos servidores ainda so reais.
2.3.1. Privacidade
O que privacidade? Na rea do Direito Civil, conceitua-se privacidade como a faculdade que tem cada indivduo de obstar a intromisso de estranhos em sua vida privada e
familiar, assim como de impedir-lhes o acesso a informaes sobre a privacidade de cada
um, e tambm impedir que sejam divulgadas informaes sobre esta rea da manifestao
existencial do ser humano [Vieira and Alves 2014]. Em outras palavras, privacidade o
direito de cada indivduo de manter e controlar o conjunto de informaes que o cerca,
podendo decidir se, quando, por que e por quem essas informaes podem ser obtidas
e usadas. Esse conjunto de informaes incluem desde o seu modo de vida, as relaes
familiares e afetivas, os segredos, os pensamentos, os hbitos, os fatos e at mesmo os
planos de futuro.
No paradigma MCS, devido suas caractersticas nicas, a privacidade envolve o
direito do usurio e/ou participante de permanecer livre de intrusos e autnomo. A privacidade em MCS traz preocupaes com a divulgao direta da identidade dos participantes bem como com a divulgao de atributos sensveis, incluindo locais (por exemplo,
endereo residencial ou do trabalho) e outras informaes privadas como atividades pessoais ou condies (por exemplo, estilo de vida ou doena) que permitam inferir sobre a
identidade dos participantes [Pournajaf et al. 2014].
Do ponto de vista dos participantes, as ameaas privacidade podem ocorrer
quando:
1. O participante recebe uma tarefa especfica e compartilha suas preferncias durante
a atribuio dessa tarefa ou notifica o servidor que aceitou a tarefa. Neste momento,
alguns atributos como a localizao, o tempo, os tipos de tarefas que o participante
est interessado ou alguns atributos do sensor que ele dispe podem ser revelados.
Embora seja possvel argumentar que estas informaes por si s podem no violar
a privacidade, o fato que elas podem permitir que algum (atacante, adversrio)
possa rastrear as tarefas selecionadas pelo participante e, consequentemente, revelar
sua identidade ou outros atributos sensveis [Shin et al. 2011]. Alguns dos atributos
que podem ser usados para rastrear os participantes so seus IDs, endereos IP ou
outras informaes de rede.
2. O participante realiza ou participa de tarefas espaciais com frequncia. Essa repetio pode levar divulgao de atributos sensveis, como endereo residencial ou,
eventualmente, sua identificao atravs de ataques de inferncia [Krumm 2007].
Nestes tipos de tarefas, mesmo que o participante esteja usando o aplicativo de
forma annima, sua trajetria pode revelar locais sensveis.
Livro-texto de Minicursos
66
c
2015
SBC Soc. Bras. de Computao
67
c
2015
SBC Soc. Bras. de Computao
68
c
2015
SBC Soc. Bras. de Computao
Das et al. [Das et al. 2010] propuseram um esquema binrio (acesso completo
aos dados do sensor ou nenhum acesso) que pode ser estendido atravs da introduo
de nveis intermedirios adicionais. Por exemplo, os participantes podem decidir ativar
seletivamente as medies do sensor, dependendo de uma variedade de fatores, como a
presena em locais sensveis (casa ou escritrio), e de pessoas de seu convvio social
(presena de amigos ou familiares). A seleo desses fatores permite aos participantes
expressamente indicar quais tipos de informao eles esto aptos e felizes a coletar em
diferentes contextos.
Os autores argumentam que um esquema com granularidade mais fina nas preferncias de sensoriamento pode permitir aos participantes ajustar tanto a atividade quanto
o tempo de atuao. Por exemplo, amostras podem ser recolhidas a cada hora ao invs de
a cada 15s ou as informaes de localizao podem ser capturadas em diferentes graus de
granularidade.
Embora essa tcnica no fornea claramente um trade-off entre privacidade e dados divulgados, ela obviamente melhora a aceitao global de uma soluo ao oferecer
granularidade de configuraes de privacidade para os participantes. Vale ressaltar que
embora algumas solues permitem que os usurios desativem totalmente sua funo sensora [Miluzzo et al. 2008, Shilton et al. 2008], isso de pouca utilidade para MCS.
2.3.1.2. Distribuio de Tarefas Anonimamente
A coleta de dados de um sensor geralmente desencadeada por meio de tarefas que especificam as modalidades de sensoriamento (por exemplo, regies de interesse, critrios
a cumprir para iniciar a captura, sensores usados e frequncia de amostragem) com base
nos requisitos da aplicao [Reddy et al. 2009]. Assim, as tarefas so distribudas para os
dispositivos que satisfaam os requisitos das tarefas.
Como explicado na Seo 2.2.2, a distribuio de tarefas pode ocorrer de forma
centralizada - atravs de um servidor de tarefas ou aplicativos, que seleciona os dispositivos apropriados com base em critrios pr-determinados para otimizar o processo de sensoriamento, de forma descentralizada, onde os prprios dispositivos, de forma autnoma,
gerenciam e distribuem tarefas ou de forma hbrida. Em todas essas trs abordagens, os
processos de contato e envio das tarefas podem colocar a privacidade dos participantes
em perigo de vrias maneiras, uma vez que baixar tarefas fornece informaes ao servidor de tarefas sobre a localizao dos participantes, com data e hora precisas. Alm disso,
a natureza das tarefas fornece dicas sobre os dispositivos utilizados.
Como forma de proteger os participantes, foram propostos alguns mecanismos
para assegurar o anonimato e a privacidade de localizao:
Transferncia das tarefas somente em locais densamente povoadas [Shin et al. 2011],
j que a alta densidade de pessoas presentes nesses locais torna a identificao dos
participantes pelo servidor difcil e, portanto, esconde suas identidades.
Autenticao baseada em atributos [Kapadia et al. 2009], onde ao invs de usar a
sua identidade, os participantes podem usar credenciais baseadas em criptografia
Livro-texto de Minicursos
69
c
2015
SBC Soc. Bras. de Computao
que comprovam sua participao em um determinado grupo (por exemplo, os alunos matriculados no clube de ciclismo da universidade);
Esquemas de roteamento para preservao da privacidade de localizao, que visam esconder a localizao dos participantes [Kapadia et al. 2009] utilizando rotas
especficas.
2.3.1.3. Anonimato
Segundo o Dicionrio Aurlio, anonimato significa: (1) qualidade do que annimo; (2)
sistema de escrever anonimamente, sem se identificar; e (3) o mesmo que anonimado. De
forma geral, anonimato a qualidade ou condio de permanecer annimo. Em segurana da informao, anonimato o que permite ocultar qualquer informao que possa
identificar um usurios antes de compartilhar informaes.
Embora o uso de tcnicas de anonimato seja muito abrangente, em MCS a inteno remover qualquer informao que possa identificar os usurios/participantes ou
outras entidade durante a distribuio e realizao de tarefas [Pournajaf et al. 2014]. Os
mtodos de anonimato mais usuais para proteo da privacidade em MCS so:
Pseudnimos
Pseudnimo um mecanismo comum e at certo ponto simples para proteo
do anonimato e da privacidade dos participantes [Christin et al. 2011], visto que ao invs de transmitir nomes em texto simples, toda a interao com o aplicativo executado sob um pseudnimo. O uso de pseudnimos em tarefas de sensoriamento j bem
conhecido e empregado nos trabalhos de Shilton et al. [Shilton et al. 2008], Shilton
[Shilton 2009] e Deng e Cox [Deng and Cox 2009] e mais recentemente em Konidala et
al. [Konidala et al. 2013] e Gisdakis et al. [Gisdakis et al. 2014].
Vale ressaltar que o uso de pseudnimos no garante necessariamente a privacidade, especialmente em aplicativos baseados em localizao. Todos autores que empregam esse mecanismo so unanimes em afirmar que quando usado em conjunto com outros
esquemas de autenticao, solues base de pseudnimos garantem anonimato e confidencialidade para os participantes.
K-Anonimato
Alm dos esquemas de roteamento, mecanismos baseados no k-anonimato podem
ser aplicados para proteger a privacidade localizao dos participantes quando recebendo
tarefas ou enviando os dados. A ideia chave por trs k-anonimato [Sweeney 2002]
construir grupos de k participantes que partilham um atributo comum (por exemplo, os k
participantes localizados no mesmo distrito), tornando-os indistinguveis uns dos outros.
Diferentes mtodos vm sendo utilizados para encontrar um atributo comum apropriado e assim construir grupos de k usurios. Estes mtodos podem ser classificados em
Livro-texto de Minicursos
70
c
2015
SBC Soc. Bras. de Computao
duas categorias principais de generalizao e perturbao [Huang et al. 2010b]. No primeiro caso, o valor original do atributo generalizado por um valor com menor grau de
detalhe. Por exemplo, as coordenadas exatas dos k participantes so substitudas pelo
nome do distrito da localizao atual.
Em Shin et al. [Shin et al. 2011], os autores usaram uma forma de generalizao
baseada na diviso de uma rea geogrfica em vrias regies, chamada de Tessellation,
para mapear os pontos de acesso. O ponto de acesso no centro de cada regio mantm um
registo do nmero mdio de dispositivos ligados, que igual ao valor mximo K que pode
ser conseguida dentro da regio. Para garantir k-anonimato em toda a rede, regies com
K < k so combinados em clulas com um valor igual soma de cada regio individual.
Uma vez que as clulas tenham sido definidas, os participantes marcam seus dados com
o limite geogrfico da sua clula atual ao invs de fornecer suas coordenadas exatas.
Por outro lado, a perturbao baseada na substituio dos dados dos sensores
originais por um novo valor resultante de uma funo aplicada s leituras dos sensores
de k membros do grupo. Por exemplo, a localizao de cada membro do grupo pode
ser substituda pela localizao mdia de todos os membros. Domingo-Ferrer e MateoSanz [Domingo-Ferrer and Mateo-Sanz 2002] usam micro-agregao para substituir o local real pela localizao mais prxima dos k participantes.
Um risco a solues de k-anonimato a possibilidade de ataques de homogeneidade, como apresentado por Machanavajjhala et al. [Machanavajjhala et al. 2007]. Esses
ataques exploram a monotonia de determinados atributos para identificar indivduos a partir do conjunto de k participantes.
Ocultao Seletiva
Locais sensveis podem ser selecionados pelos participantes e protegidos usando
a ocultao seletiva de localizao [Mun et al. 2009]. A ideia que quando um usurio
se aproxima de um local que foi definido previamente como sensvel, a aplicao gera
registros fictcios de localizao para evitar que o local seja selecionado. Obviamente,
os registros gerados so e precisam ser realistas, ou seja, devem realmente representar
estradas e ruas existentes. Em geral, um algoritmo de ocultao seleciona, primeiro, os
lugares mais prximos e, em seguida, refina a seleo levando em conta o histrico de
resultados dos participantes (por exemplo, suas capacidades fsicas com base em suas
experincias anteriores). Alm disso, o algoritmo ainda altera as atividades e modifica
sua durao para manter a consistncia dos resultados da aplicao.
Quando comparado k-anonimato, o esquema de ocultao seletiva melhora a
privacidade de localizao sem impactar os resultados da aplicao.
Agregao de dados
Em MCS, os dados precisam ser agregados e isso normalmente feito pelo servidor de aplicao ou algum servio prprio na nuvem. Contudo, a abordagem de agregao
Livro-texto de Minicursos
71
c
2015
SBC Soc. Bras. de Computao
de dados para preservao da privacidade proposta em Shi et al. [Shi et al. 2010] no depende de uma entidade central para proteger a privacidade de dados, mas sim da proteo
mtua entre participantes. Antes de transmitir os dados para o servidor, os dispositivos mveis distribuem parcialmente seus dados entre os vizinhos. Em seguida, fazem o
upload dos dados de sensoriamento vindo de seus vizinhos e os restantes de seus prprios
dados. Esta distribuio diminui a probabilidade de atribuir, com sucesso, cada leitura do
sensor para o dispositivo mvel que realmente a capturou. Por exemplo, se os dois dispositivos mveis (A e B) trocam metade de seus dados, a probabilidade de que os dados
reportados por A ser realmente capturado por ele mesmo s de 50% e o mesmo para B.
Dependendo da natureza das funes de agregao, dois regimes distintos podem
ser aplicados. Para funes aditivas, cada dispositivo mvel particiona seus dados em
n + 1 fatias e envia uma fatia para cada um de n ns selecionados. Uma vez que cada
n distribuiu suas fatias para seus vizinhos, as fatias trocados e prpria fatia do n so
combinadas e enviadas para o servidor de agregao que ento capaz de calcular o
resultado agregado. Para as funes de agregao no-aditivas, tais como percentuais e
histogramas, um mtodo que combina corte, consulta de contagem e busca binria pode
ser aplicado. No entanto, esta abordagem s assegura a proteo da privacidade de dados
se os ns e o servidor no conspirarem para violar a privacidade de alvos potenciais.
2.3.1.4. Processamento de Dados
Em aplicaes tpicas de MCS e sensoriamento participativo, o processamento de dados
compartilhado entre os dispositivos mveis e servidores de aplicativos. No entanto,
devido s limitaes de recursos em plataformas mveis, a distribuio das tarefas de
processamento entre ambas as partes tipicamente feita em direo ao servidor. Embora
o pr-processamento seja geralmente levado a cabo sobre os dispositivos para reduzir a
quantidade de dados para transformar, a fim de economizar largura de banda e energia de
transmisso, processamento de tarefas complexas pode exceder o poder computacional de
dispositivos mveis, obrigando a execuo no servidor.
O processamento de dados no dispositivo mvel consiste, principalmente, na extrao de caractersticas, a partir dos dados brutos, a fim de remover informaes sensveis
(por exemplo, vozes humanas gravadas ou pessoas fotografadas) que possam pr em perigo a privacidade dos participantes e tambm para economia de recursos. Por exemplo,
um classificador de udio pode analisar as amostras de som para determinar se vozes humanas foram registradas [Miluzzo et al. 2008]. Alm disso, o nvel de intensidade das
amostras de udio pode ser determinado localmente atravs da execuo de algoritmos
de processamento de sinal para minimizar os dados a serem transferidos para o servidor
[Maisonneuve et al. 2009]. Aps processamento, os dados brutos podem ser excludos do
armazenamento local e os resumos processados so relatados ao servidor central.
No lado do servidor, os dados relatados podem ento ser processado para eliminar
informaes sensveis sobre a privacidade, tais como as caractersticas de identidade ou
dados que ameaam o anonimato/privacidade dos participantes. Por exemplo, os dados
capturados podem ser agregados entre vrios participantes para torn-los indistinguveis
ou publicados sob a forma de estatsticas [Ganti et al. 2011] e mapas [Dong et al. 2008].
Livro-texto de Minicursos
72
c
2015
SBC Soc. Bras. de Computao
73
c
2015
SBC Soc. Bras. de Computao
podem receber dados errados e mal intencionados. Os participantes podem propositalmente registrar medies incorretas, colocando seus dispositivos em posies
inadequadas. Por exemplo, gravaes de udio incorretas podem ser obtidas caso
o dispositivo mvel do participante esteja indevidamente colocado em locais que
atrapalham seu funcionamento, como no bolso durante uma tarefa de deteco de
rudo.
2. Conluio: Nos atuais sistemas de reputao que usam MCS, cada participante pode
publicar falsos relatrios para o servidor de aplicativo e fornecer informaes arbitrrias sobre os valores durante o processo de votao de reputao. Alm disso,
atacantes podem conspirar para inutilizar aplicativos MCS.
3. Contribuies mal-intencionadas: Participantes mal-intencionados, para seus prprios benefcios, podem forjar informaes para obter um maior ganho antes de
finalizar tarefas que envolvem algum tipo de ganho monetrio [Tuncay et al. 2012].
O problema da confiabilidade dos dados geralmente discutido como diretamente
relacionado a privacidade dos usurios [Pournajaf et al. 2014, Ganti et al. 2011] . Por
exemplo, para alcanar a confiabilidade dos dados de localizao dos participantes, algumas solues baseiam-se em verificar a localizao segura do dispositivos mveis em
tempo real [Capkun et al. 2006] enquanto outras tentar estimar a confiabilidade dos dados
coletados.
Contudo, pesquisas recentes envolvendo sistemas confiveis (trusted system) aplicados a MCS vm sendo realizadas. Em linhas gerais, estes sistemas se concentram em
como avaliar a confiabilidade dos dados compartilhados e como manter a reputao de
entidades da rede de processamento de dados. Huang et al. [Huang et al. 2010a] propuseram um sistema de reputao com base na funo de Gompertz para calcular scores de
pontuaes de dispositivos para medir a confiabilidade dos dados coletados. No entanto,
ele no leva em conta a preservao da privacidade.
Mais recentemente, vrios esquemas de reputao que esto tm sido propostos [Dua et al. 2009, Christin et al. 2012, Li et al. 2014, Shin et al. 2011]. Algumas das
abordagens [Dua et al. 2009, Christin et al. 2012] invocam a existncia de uma terceira
parte confivel, mas o estabelecimento e manuteno desta entidade em um ambiente
distribudo no trivial. No esquema de [Dua et al. 2009], vrios pseudnimos so atribudos para cada participante. Um servidor confivel necessrio para gerenciar o mapeamento entre a verdadeira identidade um participante e seus pseudnimos, e os valores
de reputao entre os diferentes pseudnimos. Em comparao com outros mtodos,
este mtodo no requer operaes criptogrficas caras e tem baixo custo de comunicao.
Alm disso, Dua et ai. [Christin et al. 2012] props e implementou um Trusted Platform
Module (TPM), que um microcontrolador embutido dentro de cada dispositivo mvel,
para atestar a integridade de leituras dos sensores. No entanto, os chips TPM ainda no
so amplamente adotado em dispositivos mveis.
Alguns mtodos que no dependem da existncia de uma terceira parte de confiana foram propostos. Em [Li et al. 2014], foi proposta uma soluo de preservao da
reputao de anonimato chamado IncogniSense. Ele gera pseudnimos peridicos usando
Livro-texto de Minicursos
74
c
2015
SBC Soc. Bras. de Computao
assinaturas cegas e disfara valores exatos de reputao dinamicamente em grupos de reputao. Por exemplo, a soluo depende de uma redundante nmero de participantes e
incorre em despesas gerais de comunicao pesados. Shin et al. [Shin et al. 2011] props
outra soluo baseada em assinatura cega. Os autores consideraram o problema do ponto
de vista do incentivo e tem como objetivo permitir aos participantes ganharem crditos
atravs de contribuies. Assim, a necessidade de penalizar participantes maliciosos no
precisa ser considerada.
Alm disso, fazendo uso do fato de que mltiplas fontes de informao esto
geralmente disponveis em uma rede, Wang et al. [Wang et al. 2011b] propuseram avaliar
a semelhana de mltiplas informaes de diferentes fontes sobre o mesmo acontecimento
e, em seguida, ajustar a pontuao de confiana de cada parte de informao. Com base
na avaliao de confiana, as pontuaes de confiana de ns tambm pode ser ajustada
dinamicamente.
75
c
2015
SBC Soc. Bras. de Computao
outras). Com a localizao dos visitantes, o parque tambm pode inferir sobre o comportamento de grupos e visitantes individuais. Os autores acreditam que com a soluo
proposta pode alcanar um nvel satisfatrio de segurana, porm no asseguram que o
visitante tenha sua privacidade totalmente preservada, tendo em vista que algumas informao so armazenadas e existem fatores alheios ao escopo do trabalho como, por
exemplo, uso de WiFi dentro do parque.
No que diz respeito a segurana, os autores desenvolveram um protocolo para autenticao annima dos visitantes (AAV). O protocolo utiliza pseudnimos para dissociar
os dados dos visitantes de suas verdadeiras identidades e um procedimento de ofuscao,
implementado atravs de um esquema de assinatura parcialmente cega (fase de emisso
de pseudnimos certificados). Assim, nenhum pseudnimo de visitante revelado para o
servidor de aplicativo. Como o servidor de aplicativo no tem nenhum papel na gerao
dos pseudnimos, ele no pode vincular o pseudnimo de qualquer visitante com qualquer ticket ou carto de crdito utilizado para a compra de bilhetes. Segundo os autores,
o protocolo alcana uma autenticao annima, atravs do qual o servidor de aplicativo
aceita dados somente de pseudnimos que foram certificados.
Para lidar com ataques de falsa localizao, o protocolo usa a abordagem de
[He et al. 2011], onde o servidor formula e poem em prtica certas heursticas, tais como
calcular o tempo decorrido entre o local anterior dos visitantes e a localizao atual. Se
esse tempo coincide com o tempo mdio gasto por outros visitantes entre os mesmos dois
locais, os dados so considerados legtimos. Sempre que o servidor de aplicativo identifica que os dados de um determinado pseudnimo no corresponde a estas heursticas e os
valores limite, o servidor pode revogar o pseudnimo certificado e negar todas as comunicaes futuras. O protocolo tambm usa HTTPS, por padro, no canal de comunicao
entre o aplicativo e o servidor.
SPPEAR: Security Privacy-preserving Architecture for Participatory-sensing Applications
Com o foco direcionado em preservar a privacidade dos participantes e permitir
a concesso de incentivos aos participantes, Gisdakis et al. [Gisdakis et al. 2014] propuseram um arquitetura para Sensoriamento Participativo que faz uso de pseudnimos.
Denominada SPPEAR, a arquitetura abrangente e segura, e capaz de: (i) ser escalvel,
confivel e aplicvel a qualquer tipo de aplicao de sensoriamento participativo e MCS;
(ii) garantir a no identificao dos usurios, oferecendo forte proteo a privacidade; (iii)
limitar a participao de usurios legtimos de forma totalmente responsvel; (iv ) evitar
de forma eficiente que as identidades dos usurios sejam reveladas; (v) ser resiliente as
entidades participantes; e (vi) poder suportar vrios mecanismos de incentivo de forma a
preservar a privacidade.
A arquitetura SPPEAR formada por:
Usurios: Atuam tanto como produtores de informao (ou seja, enviando dados)
quanto consumidores de informao (ou seja, solicitando informaes do sistema).
Os dispositivos de usurios com capacidades de sensoriamento participam das tareLivro-texto de Minicursos
76
c
2015
SBC Soc. Bras. de Computao
fas submetendo amostras autenticadas ou por meio de consulta aos dados coletados.
Servio de Tarefas - TS: Esta entidade inicia tarefas e campanhas de sensoriamento. Tambm, define e fornece as recompensas que os participantes recebero
por suas contribuies.
Gerente de Grupo - GM: responsvel por registrar os dispositivos do usurio e
emitir as credenciais annimas para eles. Alm disso, o GM autoriza a participao
de dispositivos em vrias tarefas de forma indiferente, usando tokens de autorizao.
Provedor de identidade - IdP: Oferece servios de gerenciamento e identificao
de credenciais (por exemplo, autenticao de usurio e controle de acesso, entre
outros) para o sistema.
Certificao pseudnimo Authority - PCA: Fornece credenciais annimos efmeras, denominadas pseudnimos, para os dispositivos. Um pseudnimo um
certificado X.509, que se liga a uma identidade annima com uma chave pblica e
que possui uma validade, medida em tempo. PCA gera a quantidade desejada de
pares de chaves e gera o mesmo nmero de assinaturas de pedidos de certificado.
Servios de Agregao de Amostras - SAS: Os dispositivos de usurio mandam
amostras para esta entidade que responsvel por armazenar e processar os dados
coletados. Para cada amostra submetida autntico, o SAS emite um recibo para o
dispositivo, que depois o envia para reivindicar crditos para a tarefa de deteco.
O SAS possui interfaces que permitem a qualquer usurio autenticado e autorizado
consultar os resultados das tarefas de sensoriamento e campanhas.
Autoridade de Resoluo - RA: a entidade responsvel pela revogao do anonimato dos dispositivos (por exemplo, dispositivos que perturbam o sistema ou poluem o processo de recolha de dados).
A Figura 2.8 apresenta a arquitetura SPPEAR.
Uma vez que separa processos e funes atravs de entidades, de acordo com o
princpio de separao de direitos: a cada entidade dado o mnimo de informaes
necessrias para executar a tarefa desejada, SPPEAR atinge os objetivos de segurana e
confiabilidade para qualquer aplicao.
Participatory Privacy: Enabling Privacy in Participatory Sensing
Em [De Cristofaro and Soriente 2013], Cristofaro e Soriente propuseram uma arquitetura de reforo a privacidade para aplicaes MCS. A arquitetura proposta, denominada PEPSI (Figura 2.9) faz uso de um provedor de servios de aplicaes que gerencia
as campanhas MCS. Os participantes (chamados de ns mveis) enviam relatrios dos
dados de sensoriamento para o provedor de servios, que aps processar os dados, encaminha os relatrios aos usurios finais. PEPSI envolve uma quarta entidade, designada
Livro-texto de Minicursos
77
c
2015
SBC Soc. Bras. de Computao
Servidor(de(
Tarefas(
1.(Descrio(da(Tarefa(
GM(
Convel)
7.(Crditos(
6.(Resultados(
Convel)
SAS(
5.(Amostras/Consultas(
2.(Registro(
Usurio(
3.(AutenHcao(
IdP(
4.(Fornecimento((
do(Pseudnimo(
Convel)
Convel)
PCA(
como autoridade de registro. Ela responsvel pela definio inicial dos parmetros do
sistema e pelo registro dos ns mveis e usurios finais.
Uma vez que um dos principais objetivos da PEPSI ocultar relatrios de dados
e consultas de pessoal no autorizado, todos os dados, relatrios e consultas so criptografadas. PEPSI usa Identidade baseada em Criptografia (Identity-base Encryption IBE). Cada relatrio identificado por um conjunto de rtulos (etiquetas), que so usados
??como identidades. Assim, ns mveis podem derivar uma chave de criptografia pblica
nica a partir desses rtulos e us-la para criptografar os relatrios a serem transmitidos
ao provedor de servio. Durante o registro, ns mveis registram esses rtulos para a
autoridade de registro, que, em seguida, atua como o gerador de chave privada do sistema
IBE. Ele gera a chave de decifrao privada correspondente a esses rtulos e passa a chave
privada para os usurios finais interessante sobre seu registro.
Outra caracterstica de PEPSI que o provedor de servios no apenas retransmiti
todos os relatrios a todos os usurios finais. Isto geraria uma carga de processamento
pesada para os usurios finais, porque eles precisariam tentar todas as suas chaves privadas para descriptografar um relatrio. Ao invs disso, o provedor de servios impe um
mecanismo de marcao atravs do qual ele pode combinar, de forma eficiente, os relatrios com as consultas. O mecanismo exige que os ns mveis etiquetem cada relatrio
com um token criptogrfico que identifica o tipo de relatrio apenas para usurios finais
autorizados, sem vazamento de nenhuma informao do relatrio. A marca calculada
a partir das mesmas etiquetas utilizadas para derivar a chave pblica. Ao mesmo tempo,
devido s propriedades de mapeamento bilinear inerente a IBE, usurios finais podem
computar a mesma marca para o mesmo relatrio usando suas chaves de criptografia privadas e fornecer a etiqueta para o provedor de servios quando fizer uma subscrio de
consulta. Em seguida, o provedor de servios apenas encaminha um relatrio marcado
aos usurios finais que forneceram a mesma marca.
Towards a Practical Deployment of Privacy-preserving Crowd-sensing Tasks
Livro-texto de Minicursos
78
c
2015
SBC Soc. Bras. de Computao
Provedor'de'Servio'
Consultas'e'entrega'de'relatrios''
Usurios(Finais(
Registro'dos''
Usurios'Finais'
Dados'
Reportados'
Registro'do'N'Mvel'
N(Mvel((
(Par4cipante)(
dsdsdsdsdsds'
Figura 2.9. Arquitetura PEPSI. Fonte: [De Cristofaro and Soriente 2013]
Haderer et al. [Haderer et al. 2014] apresentaram uma nova plataforma de Crowdsourcing capaz de preservar a privacidade atravs da unio de dois middlewares conhecidos: APISENSE e PRIVAPI.
APISENSE uma plataforma de Crowdsourcing mvel que facilita a implantao
de experincias MCS por cuidar dos desafios crticos neste domnio [Haderer et al. 2013].
Ela fornece uma plataforma de Software-as-a-Service, onde experimentos so descritos
como scripts que sero enviados para os dispositivos mveis, a fim de recolher dados. A
arquitetura distribuda do APISENSE formada pelo: (i) servio Hive, responsvel por
gerenciar a comunidade de usurios mveis e publicar as tarefas de sensoriamento; (ii)
Honeypot, utilizado para descrever as tarefas como scripts (com base em uma extenso
de JavaScript) e envi-los para (iii) os dispositivos mveis, que recebem e executam as
tarefas. A plataforma APISENSE apoia a implementao de diferentes estratgias de incentivo, incluindo feedback do usurio, ranking do usurio e recompensas. A seleo de
estratgias de incentivo depende da natureza das experincias Crowdsourcing. No que diz
respeito a privacidade, uma camada no dispositivo mvel implementa vrios algoritmos
para filtrar e perturbar informaes sensveis (por exemplo, catlogo de endereos, localizao) dependendo das preferncias do usurio. O usurio mantm o controle do seu
dispositivo mvel para seleccionar os sensores, bem como quando e onde estes sensores
pode ser utilizados pela plataforma.
PRIVAPI um middleware de preservao da privacidade que pode ser facilmente
integrado no topo da APISENSE. Seu objetivo pr-processar os dados recolhidos de
mobilidade antes de ser liberado. Graas ao seu conhecimento sobre o conjunto de dados inteiro, pode-se usar uma estratgia de anonimizao ideal nos dados de mobilidade
enquanto ainda oferece um nvel satisfatrio de utilidade.
A Figura 2.10 apresenta a arquitetura proposta.
Livro-texto de Minicursos
79
c
2015
SBC Soc. Bras. de Computao
as
ref
Ta
Re
co
mp
en
s
a)
Dados)com)
privacidade)
preservada)
101000110101010010#
Dados))
Dados)coletados))
HoneyComb)APISENSE))
PRIVAPI))
2.4.2. Bibliotecas
dataset.
3.
Embora no tenha sido criado especificamente para MCS, Cach, atravs do uso
da pr-busca, permite o uso de contedo com capacidade de localizao, garantindo a
privacidade do usurio, sem contar com os benefcios relacionados ao download de dados. Cach tambm incentiva os desenvolvedores de aplicativos a elaborarem ideias para
melhorar a privacidade do usurio como, por exemplo, trabalhar com esquemas melhores
de amostragem para que os usurios no necessitem acessar contedo online e sem a necessidade de de infraestrutura de terceiros para garantir a privacidade dos usurios.
Livro-texto de Minicursos
80
c
2015
SBC Soc. Bras. de Computao
81
c
2015
SBC Soc. Bras. de Computao
o da privacidade por parte dos participantes, como eles sero capazes de entender
melhor (atravs das interfaces) os meandros dos mecanismos.
Facilidade de uso: A usabilidade das aplicaes e suas configuraes de privacidade precisam ser levadas em considerao. Toda vez que um participante
obrigado a realizar uma extensa e manual configurao de suas preferncias, frequentemente sua pacincia termina e ela acaba ou por deixar as configuraes no
modo padro ou por marca quaisquer opes sem entender as implicaes de suas
escolhas. O estudo de Gross e Acquisti [Gross and Acquisti 2005] demonstra essa
situao no caso das configuraes de privacidade em redes sociais online.
A transparncia dos nveis de proteco da privacidade: Para avaliar se a proteco da privacidade oferecida adequada, os usurios precisam ser capazes de
comparar o nvel oferecido de proteo contra seus requisitos de proteo individual. Embora a maioria das solues pesquisadas baseiam suas avaliaes em mtricas matemticos e verificveis, a percepo do usurio e seu nvel de satisfao
com as solues existentes no tem sido explicitamente considerado.
Incorporao de feedback do usurio: Alm de fornecer interfaces de usurio
para configurar os nveis de privacidade, insights sobre como a proteo percebida e para quais extenses os usurios esto envolvidos na configurao de suas
configuraes de privacidade so obrigados a apresentar a usabilidade.
Em linhas gerais, os usurios ainda so considerados no processo de avaliao da
usabilidade e utilidade das solues de privacidade. Os estudos existentes na rea apenas
correlacionam preocupaes com a privacidade com as modalidades de sensoriamento
usadas (Klasnja et al., 2009), ou analisam a forma como os participantes entendem, selecionam e se comportam com os mtodos, por exemplo, de ocultao da localizao (Brush
et al. , 2010).
2.5.2. Adaptabilidade das Solues de Privacidade
Toda vez que uma nova modalidades de sensoriamento incorporada as plataformas de
dispositivos mveis, surgem novas famlias de aplicaes e surgem tambm novos desafios a privacidade. A capacidade de lidar com essa ampla gama de cenrios extremamente necessria. Assim, as futuras solues de segurana e privacidade em MCS
precisam ser combinveis e adaptveis.
Entre as questes esto:
Aplicaes independentes X solues sob medida: Algumas das solues apresentadas neste Captulo so ou foram adaptadas para cenrios de especficos. Por
exemplo, a ocultao de locais sensveis, atravs da criao de registros falsos de
localizao para evitar correlaes entre usurios e locais s foi avaliada no cenrio aplicao PEIR [Mun et al. 2009]. Outros cenrios precisam ser investigados
para determinar os limites potenciais e os inconvenientes das solues propostas
em funo das especificidades de aplicao. Esta investigao ir destacar as mudanas necessrias para proceder a partir de solues de privacidade adaptados aos
conceitos de privacidade de aplicao agnstica.
Livro-texto de Minicursos
82
c
2015
SBC Soc. Bras. de Computao
83
c
2015
SBC Soc. Bras. de Computao
84
c
2015
SBC Soc. Bras. de Computao
Referncias
[Acampora et al. 2013] Acampora, G., Cook, D., Rashidi, P., and Vasilakos, A. (2013). A
survey on ambient intelligence in healthcare. Proceedings of the IEEE, 101(12):2470
2494.
[Amini et al. 2011] Amini, S., Lindqvist, J., Hong, J., Lin, J., Toch, E., and Sadeh, N.
(2011). Cach: caching location-enhanced content to improve user privacy. In Proceedings of the 9th international conference on Mobile systems, applications, and services, pages 197210. ACM.
[Burke et al. 2006] Burke, J., Estrin, D., Hansen, M., Parker, A., Ramanathan, N., Reddy,
S., and Srivastava, M. B. (2006). Participatory sensing. In In: Workshop on WorldSensor-Web (WSW06): Mobile Device Centric Sensor Networks and Applications,
pages 117134.
[Capkun et al. 2006] Capkun, S., Cagalj, M., and Srivastava, M. (2006). Secure localization with hidden and mobile base stations. In INFOCOM 2006. 25th IEEE International Conference on Computer Communications. Proceedings, pages 110.
[Christin et al. 2011] Christin, D., Reinhardt, A., Kanhere, S. S., and Hollick, M. (2011).
A survey on privacy in mobile participatory sensing applications. Journal of Systems
and Software, 84(11):1928 1946. Mobile Applications: Status and Trends.
Livro-texto de Minicursos
85
c
2015
SBC Soc. Bras. de Computao
[Christin et al. 2012] Christin, D., Rosskopf, C., Hollick, M., Martucci, L., and Kanhere,
S. (2012). Incognisense: An anonymity-preserving reputation framework for participatory sensing applications. In Pervasive Computing and Communications (PerCom),
2012 IEEE International Conference on, pages 135143.
[Clementi et al. 2013] Clementi, A., Pasquale, F., and Silvestri, R. (2013). Opportunistic
manets: Mobility can make up for low transmission power. IEEE/ACM Trans. Netw.,
21(2):610620.
[Conti and Kumar 2010] Conti, M. and Kumar, M. (2010). Opportunities in opportunistic
computing. Computer, 43(1):4250.
[Das et al. 2010] Das, T., Mohan, P., Padmanabhan, V. N., Ramjee, R., and Sharma, A.
(2010). Prism: Platform for remote sensing using smartphones. In Proceedings of the
8th International Conference on Mobile Systems, Applications, and Services, MobiSys
10, pages 6376, New York, NY, USA. ACM.
[De Cristofaro and Soriente 2013] De Cristofaro, E. and Soriente, C. (2013). Participatory privacy: Enabling privacy in participatory sensing. Network, IEEE, 27(1):3236.
[Deng and Cox 2009] Deng, L. and Cox, L. P. (2009). Livecompare: Grocery bargain
hunting through participatory sensing. In Proceedings of the 10th Workshop on Mobile
Computing Systems and Applications, HotMobile 09, pages 4:14:6, New York, NY,
USA. ACM.
[Derawi et al. 2010] Derawi, M. O., Nickel, C., Bours, P., and Busch, C. (2010). Unobtrusive user-authentication on mobile phones using biometric gait recognition. In Proceedings of the 2010 Sixth International Conference on Intelligent Information Hiding
and Multimedia Signal Processing, IIH-MSP 10, pages 306311, Washington, DC,
USA. IEEE Computer Society.
[Dimov 2014] Dimov, D. (2014).
Crowdsensing: State of the art and privacy
aspects.
http://resources.infosecinstitute.com/
crowdsensing-state-art-privacy-aspects/.
[Domingo-Ferrer and Mateo-Sanz 2002] Domingo-Ferrer, J. and Mateo-Sanz, J. M.
(2002). Practical data-oriented microaggregation for statistical disclosure control.
IEEE Trans. on Knowl. and Data Eng., 14(1):189201.
[Dong et al. 2008] Dong, Y. F., Kanhere, S., Chou, C. T., and Bulusu, N. (2008). Automatic collection of fuel prices from a network of mobile cameras. In Proceedings of
the 4th IEEE International Conference on Distributed Computing in Sensor Systems,
DCOSS 08, pages 140156, Berlin, Heidelberg. Springer-Verlag.
[Dua et al. 2009] Dua, A., Bulusu, N., Feng, W.-C., and Hu, W. (2009). Towards
trustworthy participatory sensing. In Proceedings of the 4th USENIX Conference on
Hot Topics in Security, HotSec09, pages 88, Berkeley, CA, USA. USENIX Association.
Livro-texto de Minicursos
86
c
2015
SBC Soc. Bras. de Computao
[Dutta et al. 2009] Dutta, P., Aoki, P. M., Kumar, N., Mainwaring, A., Myers, C., Willett,
W., and Woodruff, A. (2009). Common sense: Participatory urban sensing using a
network of handheld air quality monitors. In Proceedings of the 7th ACM Conference
on Embedded Networked Sensor Systems, SenSys 09, pages 349350, New York, NY,
USA. ACM.
[Eisenman et al. 2007] Eisenman, S. B., Miluzzo, E., Lane, N. D., Peterson, R. A., Ahn,
G.-S., and Campbell, A. T. (2007). The bikenet mobile sensing system for cyclist
experience mapping. In Proceedings of the 5th International Conference on Embedded
Networked Sensor Systems, SenSys 07, pages 87101, New York, NY, USA. ACM.
[Ganti et al. 2011] Ganti, R., Ye, F., and Lei, H. (2011). Mobile crowdsensing: current
state and future challenges. Communications Magazine, IEEE, 49(11):3239.
[Gao and Cao 2011] Gao, W. and Cao, G. (2011). User-centric data dissemination in
disruption tolerant networks. In INFOCOM, 2011 Proceedings IEEE, pages 3119
3127.
[Gaonkar et al. 2008] Gaonkar, S., Li, J., Choudhury, R. R., Cox, L., and Schmidt, A.
(2008). Micro-blog: Sharing and querying content through mobile phones and social
participation. In Proceedings of the 6th International Conference on Mobile Systems,
Applications, and Services, MobiSys 08, pages 174186, New York, NY, USA. ACM.
[Gisdakis et al. 2014] Gisdakis, S., Giannetsos, T., and Papadimitratos, P. (2014). Sppear: Security & privacy-preserving architecture for participatory-sensing applications. In Proceedings of the 2014 ACM Conference on Security and Privacy in Wireless & Mobile Networks, WiSec 14, pages 3950, New York, NY, USA. ACM.
[Google 2015] Google (2015). Waze. http://waze.com.
[Grosky et al. 2007] Grosky, W., Kansal, A., Nath, S., Liu, J., and Zhao, F. (2007). Senseweb: An infrastructure for shared sensing. MultiMedia, IEEE, 14(4):813.
[Gross and Acquisti 2005] Gross, R. and Acquisti, A. (2005). Information revelation
and privacy in online social networks. In Proceedings of the 2005 ACM Workshop
on Privacy in the Electronic Society, WPES 05, pages 7180, New York, NY, USA.
ACM.
[Guo et al. 2015] Guo, B., Wang, Z., Yu, Z., Wang, Y., Yen, N. Y., Huang, R., and Zhou,
X. (2015). Mobile crowd sensing and computing: The review of an emerging humanpowered sensing paradigm. ACM Comput. Surv., 48(1):7:17:31.
[Guo et al. 2013] Guo, B., Zhang, D., Wang, Z., Yu, Z., and Zhou, X. (2013). Opportunistic iot: Exploring the harmonious interaction between human and the internet of
things. J. Netw. Comput. Appl., 36(6):15311539.
[Haderer et al. 2014] Haderer, N., Primault, V., Raveneau, P., Ribeiro, C., Rouvoy, R.,
and Ben Mokhtar, S. (2014). Towards a Practical Deployment of Privacy-preserving
Crowd-sensing Tasks. In Middleware Posters and Demos 14, Bordeaux, France.
Livro-texto de Minicursos
87
c
2015
SBC Soc. Bras. de Computao
[Haderer et al. 2013] Haderer, N., Rouvoy, R., and Seinturier, L. (2013). Dynamic deployment of sensing experiments in the wild using smartphones. In Dowling, J. and
Taani, F., editors, Distributed Applications and Interoperable Systems, volume 7891
of Lecture Notes in Computer Science, pages 4356. Springer Berlin Heidelberg.
[He et al. 2011] He, W., Liu, X., and Ren, M. (2011). Location cheating: A security
challenge to location-based social network services. In Distributed Computing Systems
(ICDCS), 2011 31st International Conference on, pages 740749.
[Howe 2006] Howe, J. (2006). Crowdsourcing: A definition. Crowdsourcing: Tracking
the rise of the amateur.
[Hu et al. 2013] Hu, X., Liu, Q., Zhu, C., Leung, V. C. M., Chu, T. H. S., and Chan, H.
C. B. (2013). A mobile crowdsensing system enhanced by cloud-based social networking services. In Proceedings of the First International Workshop on Middleware for
Cloud-enabled Sensing, MCS 13, pages 3:13:6, New York, NY, USA. ACM.
[Huang et al. 2010a] Huang, K. L., Kanhere, S. S., and Hu, W. (2010a). Are you contributing trustworthy data?: The case for a reputation system in participatory sensing.
In Proceedings of the 13th ACM International Conference on Modeling, Analysis, and
Simulation of Wireless and Mobile Systems, MSWIM 10, pages 1422, New York,
NY, USA. ACM.
[Huang et al. 2010b] Huang, K. L., Kanhere, S. S., and Hu, W. (2010b). Preserving
privacy in participatory sensing systems. Computer Communications, 33(11):1266
1280.
[IBM 2010] IBM (2010).
Creekwatch: Explore your watershed.
creekwatch.researchlabs.ibm.com.
http://
[Kapadia et al. 2009] Kapadia, A., Kotz, D., and Triandopoulos, N. (2009). Opportunistic sensing: Security challenges for the new paradigm. In Communication Systems and
Networks and Workshops, 2009. COMSNETS 2009. First International, pages 110.
[Karamshuk et al. 2011] Karamshuk, D., Boldrini, C., Conti, M., and Passarella, A.
(2011). Human mobility models for opportunistic networks. Communications Magazine, IEEE, 49(12):157165.
[Kong et al. 2015] Kong, L., He, L., Liu, X.-Y., Gu, Y., Wu, M.-Y., and Liu, X. (2015).
Privacy-preserving compressive sensing for crowdsensing based trajectory recovery. In
Distributed Computing Systems (ICDCS), 2015 IEEE 35th International Conference
on, pages 3140.
[Konidala et al. 2013] Konidala, D., Deng, R., Li, Y., Lau, H., and Fienberg, S. (2013).
Anonymous authentication of visitors for mobile crowd sensing at amusement parks.
In Deng, R. and Feng, T., editors, Information Security Practice and Experience, volume 7863 of Lecture Notes in Computer Science, pages 174188. Springer Berlin
Heidelberg.
Livro-texto de Minicursos
88
c
2015
SBC Soc. Bras. de Computao
89
c
2015
SBC Soc. Bras. de Computao
[Mathur et al. 2010] Mathur, S., Jin, T., Kasturirangan, N., Chandrasekaran, J., Xue, W.,
Gruteser, M., and Trappe, W. (2010). Parknet: Drive-by sensing of road-side parking
statistics. In Proceedings of the 8th International Conference on Mobile Systems, Applications, and Services, MobiSys 10, pages 123136, New York, NY, USA. ACM.
[Mediated Spaces, Inc 2015] Mediated Spaces, Inc (2015). The wildlab: Use mobile technology to explore, discovery, and share the natural world. http://
thewildlab.org.
[Miluzzo et al. 2008] Miluzzo, E., Lane, N. D., Fodor, K., Peterson, R., Lu, H., Musolesi, M., Eisenman, S. B., Zheng, X., and Campbell, A. T. (2008). Sensing meets
mobile social networks: The design, implementation and evaluation of the cenceme
application. In Proceedings of the 6th ACM Conference on Embedded Network Sensor
Systems, SenSys 08, pages 337350, New York, NY, USA. ACM.
[Minkman et al. 2015] Minkman, E., van Overloop, P., and van der Sanden, M. (2015).
Citizen science in water quality monitoring: Mobile crowd sensing for water management in the netherlands. In World Environmental and Water Resources Congress 2015,
pages 13991408.
[Minson et al. 2015] Minson, S. E., Brooks, B. A., Glennie, C. L., Murray, J. R., Langbein, J. O., Owen, S. E., Heaton, T. H., Iannucci, R. A., and Hauser, D. L. (2015).
Crowdsourced earthquake early warning. Science Advances, 1(3):e1500036+.
[Mohan et al. 2008] Mohan, P., Padmanabhan, V., and Ramjee, R. (2008). Nericell: Rich
monitoring of road and traffic conditions using mobile smartphones. In ACM Sensys.
Association for Computing Machinery, Inc. Raleigh, NC, USA.
[Mun et al. 2010] Mun, M., Hao, S., Mishra, N., Shilton, K., Burke, J., Estrin, D., Hansen, M., and Govindan, R. (2010). Personal data vaults: A locus of control for personal
data streams. In Proceedings of the 6th International COnference, Co-NEXT 10, pages 17:117:12, New York, NY, USA. ACM.
[Mun et al. 2009] Mun, M., Reddy, S., Shilton, K., Yau, N., Burke, J., Estrin, D., Hansen,
M., Howard, E., West, R., and Boda, P. (2009). Peir, the personal environmental impact
report, as a platform for participatory sensing systems research. In Proceedings of the
7th International Conference on Mobile Systems, Applications, and Services, MobiSys
09, pages 5568, New York, NY, USA. ACM.
[Pan et al. 2013] Pan, B., Zheng, Y., Wilkie, D., and Shahabi, C. (2013). Crowd sensing of traffic anomalies based on human mobility and social media. In Proceedings
of the 21st ACM SIGSPATIAL International Conference on Advances in Geographic
Information Systems, SIGSPATIAL13, pages 344353, New York, NY, USA. ACM.
[Pournajaf et al. 2014] Pournajaf, L., Xiong, L., Garcia-Ulloa, D. A., and Sunderam, V.
(2014). A survey on privacy in mobile crowd sensing task management. Technical report, Technical Report TR-2014-002, Department of Mathematics and Computer
Science, Emory University.
Livro-texto de Minicursos
90
c
2015
SBC Soc. Bras. de Computao
[Rachuri et al. 2011] Rachuri, K. K., Mascolo, C., Musolesi, M., and Rentfrow, P. J.
(2011). Sociablesense: Exploring the trade-offs of adaptive sampling and computation offloading for social sensing. In Proceedings of the 17th Annual International
Conference on Mobile Computing and Networking, MobiCom 11, pages 7384, New
York, NY, USA. ACM.
[Rana et al. 2010] Rana, R. K., Chou, C. T., Kanhere, S. S., Bulusu, N., and Hu, W.
(2010). Ear-phone: An end-to-end participatory urban noise mapping system. In Proceedings of the 9th ACM/IEEE International Conference on Information Processing in
Sensor Networks, IPSN 10, pages 105116, New York, NY, USA. ACM.
[Reddy et al. 2007] Reddy, S., Parker, A., Hyman, J., Burke, J., Estrin, D., and Hansen,
M. (2007). Image browsing, processing, and clustering for participatory sensing: Lessons from a dietsense prototype. In Proceedings of the 4th Workshop on Embedded
Networked Sensors, EmNets 07, pages 1317, New York, NY, USA. ACM.
[Reddy et al. 2009] Reddy, S., Samanta, V., Burke, J., Estrin, D., Hansen, M., and Srivastava, M. (2009). Mobisense: mobile network services for coordinated participatory
sensing. In Autonomous Decentralized Systems, 2009. ISADS 09. International Symposium on, pages 16.
[Sherchan et al. 2012] Sherchan, W., Jayaraman, P., Krishnaswamy, S., Zaslavsky, A.,
Loke, S., and Sinha, A. (2012). Using on-the-move mining for mobile crowdsensing.
In Mobile Data Management (MDM), 2012 IEEE 13th International Conference on,
pages 115124.
[Shi et al. 2010] Shi, J., Zhang, R., Liu, Y., and Zhang, Y. (2010). Prisense: Privacypreserving data aggregation in people-centric urban sensing systems. In Proceedings
of the 29th Conference on Information Communications, INFOCOM10, pages 758
766, Piscataway, NJ, USA. IEEE Press.
[Shilton 2009] Shilton, K. (2009). Four billion little brothers?: Privacy, mobile phones,
and ubiquitous data collection. Commun. ACM, 52(11):4853.
[Shilton et al. 2008] Shilton, K., Burke, J., Estrin, D., Hansen, M., and Srivastava, M.
(2008). Participatory privacy in urban sensing. In Proceedings of the International
Workshop on Mobile Devices and Urban Sensing, MODUS, pages 17.
[Shin et al. 2011] Shin, M., Cornelius, C., Peebles, D., Kapadia, A., Kotz, D., and Triandopoulos, N. (2011). Anonysense: A system for anonymous opportunistic sensing.
Pervasive and Mobile Computing, 7(1):16 30.
[Surowiecki 2005] Surowiecki, J. (2005). The Wisdom of Crowds. Anchor.
[Sweeney 2002] Sweeney, L. (2002). K-anonymity: A model for protecting privacy. Int.
J. Uncertain. Fuzziness Knowl.-Based Syst., 10(5):557570.
[Thepvilojanapong et al. 2010] Thepvilojanapong, N., Ono, T., and Tobe, Y. (2010). A
deployment of fine-grained sensor network and empirical analysis of urban temperature. Sensors, 10(3):2217.
Livro-texto de Minicursos
91
c
2015
SBC Soc. Bras. de Computao
[Tuncay et al. 2012] Tuncay, G. S., Benincasa, G., and Helmy, A. (2012). Autonomous
and distributed recruitment and data collection framework for opportunistic sensing. In
Proceedings of the 18th Annual International Conference on Mobile Computing and
Networking, Mobicom 12, pages 407410, New York, NY, USA. ACM.
[Vieira and Alves 2014] Vieira, A. P. and Alves, J. C. R. (2014). Direito privacidade na
sociedade da informao. Revista Jus Navigandi, (3979).
[Wang et al. 2011a] Wang, H., Uddin, M., Qi, G.-J., Huang, T., Abdelzaher, T., and Cao,
G. (2011a). Photonet: A similarity-aware image delivery service for situation awareness. In Information Processing in Sensor Networks (IPSN), 2011 10th International
Conference on, pages 135136.
[Wang et al. 2013] Wang, L., Zhang, D., and Xiong, H. (2013). effsense: Energyefficient and cost-effective data uploading in mobile crowdsensing. In Proceedings
of the 2013 ACM Conference on Pervasive and Ubiquitous Computing Adjunct Publication, UbiComp 13 Adjunct, pages 10751086, New York, NY, USA. ACM.
[Wang et al. 2011b] Wang, X., Govindan, K., and Mohapatra, P. (2011b). Collusionresilient quality of information evaluation based on information provenance. In Sensor,
Mesh and Ad Hoc Communications and Networks (SECON), 2011 8th Annual IEEE
Communications Society Conference on, pages 395403.
[Weppner and Lukowicz 2013] Weppner, J. and Lukowicz, P. (2013). Bluetooth based
collaborative crowd density estimation with mobile phones. In Pervasive Computing
and Communications (PerCom), 2013 IEEE International Conference on, pages 193
200.
[Yan et al. 2009] Yan, T., Marzilli, M., Holmes, R., Ganesan, D., and Corner, M. (2009).
mcrowd: A platform for mobile crowdsourcing. In Proceedings of the 7th ACM Conference on Embedded Networked Sensor Systems, SenSys 09, pages 347348, New
York, NY, USA. ACM.
[Zhang et al. 2014a] Zhang, D., Wang, L., Xiong, H., and Guo, B. (2014a). 4w1h in
mobile crowd sensing. Communications Magazine, IEEE, 52(8):4248.
[Zhang et al. 2014b] Zhang, X., Yang, Z., Wu, C., Sun, W., Liu, Y., and Liu, K. (2014b).
Robust trajectory estimation for crowdsourcing-based mobile applications. Parallel
and Distributed Systems, IEEE Transactions on, 25(7):18761885.
Livro-texto de Minicursos
92
c
2015
SBC Soc. Bras. de Computao
Captulo
Abstract
Software implementation of a cryptographic algorithm is not an easy task even for
advanced programmers, because it requires a careful knowledge not only about algorithms but also of the target architecture. In this tutorial, we will describe some
techniques to produce an efficient and secure software implementation. For the sake
of efficiency, we will detail how advanced vector instruction sets accelerate the execution of the following cryptographic algorithms: the AES encryption algorithm,
the SHA-3 cryptographic hash function and the key agreement protocol based on the
elliptic curve Curve25519. Focusing on the secure software development, we will illustrate some implementations that are vulnerable against side-channel attacks; also
we will present some countermeasures that mitigate such attacks thereby preventing
leakage of secret information.
Resumo
A implementao segura de um algoritmo criptogrfico no uma tarefa trivial nem
mesmo para os programadores mais experientes, pois requer um conhecimento cuidadoso no apenas do prprio algoritmo, mas tambm da arquitetura alvo. Neste
minicurso, vamos nos concentrar em descrever os aspectos que ajudam a tornar uma
implementao de criptografia em software eficiente e segura. Do lado da eficincia,
detalharemos como os conjuntos avanados de instrues aceleram a execuo dos
algoritmos criptogrficos a seguir: o algoritmo de encriptao AES, a funo de resumo SHA-3 e o protocolo de acordo de chaves baseado na curva elptica Curve25519.
Pensando no desenvolvimento seguro, mostraremos como algumas implementaes
so vulnerveis contra ataques de canais laterais, adicionalmente apresentaremos
tcnicas que mitigam ditos ataques evitando assim o vazamento de informao secreta.
Livro-texto de Minicursos
93
c
2015
SBC Soc. Bras. de Computao
94
c
2015
SBC Soc. Bras. de Computao
emissor e o receptor estabeleam uma chave para realizar a comunicao encriptada. Esta parte da criptografia tambm conhecida como criptografia de
chave secreta no sentido que a chave s pode ser conhecida pelos envolvidos
na comunicao, pois toda a segurana do esquema baseia-se na chave criptogrfica, uma vez que qualquer pessoa de posse da chave consegue encriptar ou
decriptar mensagens.
Criptografia Assimtrica. Tambm conhecida como criptografia de chave
pblica, considera o uso de duas chaves distintas, uma pblica e uma privada,
para cada participante da comunicao; sendo que a chave pblica pode ser
divulgada e a chave privada deve ser mantida em segredo. Assim, uma mensagem que encriptada com a chave pblica, ser decriptada somente com o
uso da correspondente chave privada. A gerao do par de chaves deve garantir que a chave privada no possa ser obtida a partir da chave pblica.
Na criptografia assimtrica as operaes de encriptao podem ser realizadas
por qualquer entidade, contudo as operaes de decriptao so restritas
entidade que possui a chave privada. Dentre os usos da criptografia assimtrica encontram-se a encriptao de dados, a gerao de assinaturas digitais,
o estabelecimento seguro de chaves, entre outros.
Os protocolos criptogrficos podem ser construdos a partir de primitivas criptogrficas. Um protocolo criptogrfico composto por uma srie de computaes e
comunicaes entre duas ou mais entidades com o fim de realizar uma tarefa especifica. Por exemplo: transmitir dados de forma segura, verificar a integridade de uma
mensagem ou estabelecer chaves privadas mediante um canal inseguro.
3.1.2. Encriptao de dados
A encriptao de dados tem como objetivo prover sigilos das mensagens quando
se usa um meio de comunicao inseguro. Portanto, o processo de encriptao (as
vezes tambm denominado como cifrao) consiste em converter um texto claro em
um texto encriptado usando uma chave secreta. O processo inverso, conhecido por
decriptao, transforma um texto encriptado em um texto claro usando a mesma
chave usada na encriptao.
Um dos princpios fundamentas da criptografa foi postulado em 1883 por
Kerckhoff e diz que a segurana do processo de encriptao no deve estar baseada
apenas em manter em segredo o funcionamento interno do algoritmo. Na criptografia
moderna, os algoritmos devem ser conhecidos por toda a comunidade e a segurana
dos mesmos deve estar atrelada a uma chave criptogrfica.
Em termos matemticos o texto claro representado por M e o texto encriptado por C. Portanto, a funo de encriptao E usa uma chave criptogrfica k e
opera sobre M para produzir C = Ek (M ). No processo reverso, tem-se a funo D
que usa a mesma chave k que foi usada para encriptar e opera sobre C para produzir
M = Dk (C). A encriptao e decriptao so operaes inversas, por conta disso, a
identidade M = Dk (Ek (M )) deve ser verdadeira para quaisquer valores de M e k.
Se uma funo de encriptao possui o mesmo tamanho de entrada e sada,
Livro-texto de Minicursos
95
c
2015
SBC Soc. Bras. de Computao
esta funo tambm conhecida como cifrador de bloco; alguns exemplos de cifradores de bloco so: o Digital Encryption Standard (DES) e o Advanced Encryption
Standard (AES) com blocos de tamanho 64 e 128 bits, respectivamente. Para encriptar mensagens de tamanho arbitrrio possvel usar modos de operao, os quais
usam os cifradores de bloco como primitiva bsica. Esses modos sero examinados
com mais detalhe na Seo 3.4.1.2.
Um dos ataques que pode ser aplicado grande maioria dos cifradores o
ataque de fora bruta, que consiste em achar a chave usada na encriptao, dado
um texto claro e um texto encriptado, testando cada uma das chaves possveis. A
complexidade desse ataque 2n , onde n o tamanho da chave. Um cifrador possui
um nvel de segurana de n bits se o melhor algoritmo capaz de encontrar a chave
criptogrfica possui uma complexidade de O(2n ).
3.1.3. Funes de resumo criptogrfico
As funes de resumo criptogrfico agem como uma funo de compresso que mapeia uma cadeia de bits de tamanho arbitrrio em uma cadeia de bits de tamanho
fixo. Elas so muito usadas na criptografia moderna e seu uso essencial em vrias
aplicaes de segurana, tais como: esquemas de assinatura digital, verificao da
integridade dos dados, gerao de nmeros pseudo aleatrios, gerao de chaves,
dentre outras.
A cadeia de bits gerada por uma funo de resumo chamada de valor de
resumo ou digest; e teoricamente, deve identificar mensagem de forma nica. Uma
funo de resumo h : M R mapeia uma cadeia de bits x M de tamanho finito e
arbitrrio em uma cadeia de bits y R de tamanho fixo n. Tendo, y = h(x).
Pode-se notar que mais de uma mensagem poder ser mapeada em um mesmo
valor de resumo, visto que o domnio M de h maior que sua imagem R. Porm, algumas aplicaes, como as assinaturas digitais, por exemplo, requerem que
seja computacionalmente invivel encontrar duas mensagens diferentes que gerem
o mesmo valor de resumo; outras aplicaes apenas necessitam que seja invivel
encontrar uma mensagem dado o valor de resumo.
As primeiras definies, analises e construes de funes de resumo criptogrficos podem ser encontradas nos trabalhos de Rabin [Rab78], Yuval [Yuv78]
e Merkle [Mer79]. Rabin props um modelo baseado no algoritmo de encriptao
DES; Yuval usou o paradoxo de aniversrio para mostrar como encontrar colises
para uma funo de resumo de n bits com 2n/2 operaes; e Merkle introduziu que
esse tipo de funo deveria ser resistente colises, primeira pr-imagem e segunda
pr-imagem.
As funes de resumo criptogrfico, diferentemente dos algoritmos de encriptao, no possuem chaves secretas. Assim, para termos uma funo de resumo
segura necessrio que satisfaa as seguintes propriedades de segurana, ilustradas
na Figura 3.1:
Resistncia pr-imagem: Dada uma funo h : M R e um valor de
resumo y R, computacionalmente invivel encontrar x M tal que h(x) = y.
Livro-texto de Minicursos
96
c
2015
SBC Soc. Bras. de Computao
x =?
x1 =?
x0
x0 =?
x1 =?
y = h(x)
h(x0 ) = h(x1 )
h(x0 ) = h(x1 )
(a) Pr-imagem.
(c) Colises.
97
c
2015
SBC Soc. Bras. de Computao
A intuio atrs deste protocolo consiste na existncia de uma funo eficiente para
calcular a exponenciao de elementos em Zp ; no entanto, a computao de sua
funo inversa, conhecida como o logaritmo discreto, computacionalmente invivel.
Assim, qualquer atacante que interceptar as mensagens transmitidas deve calcular
g xy a partir de g, g x e g y .
Originalmente, Diffie e Hellman propuseram o uso do grupo multiplicativo
dos inteiros modulo p para a implementao do protocolo. Embora, existam outros
grupos onde a operao de exponenciao mais eficiente; por exemplo, o grupo
formado pelo conjunto de pontos de uma curva elptica. Se a curva elptica possui
certas propriedades que tornam o logaritmo discreto invivel, ento esse grupo uma
opo vivel para a implementao do protocolo de acordo de chaves, o qual comumente chamado de protocolo Diffie-Hellman baseado em curvas elpticas (ECDH).
3.1.5. Curvas elpticas
Uma curva elptica E est definida sobre um corpo finito primo Fp pela seguinte
equao:
E : y 2 = x3 + Ax + B
(1)
tal que A, B Fp e 4A3 + 27B 2 6= 0. Os pontos pertencentes curva elptica E, junto
como o ponto no infinito, formam um grupo cclico:
E(Fp ) = {(x, y) : x, y Fp tal que y 2 = x3 + Ax + B} {O},
(2)
98
c
2015
SBC Soc. Bras. de Computao
Figura 3.2: Representao geomtrica da lei do grupo em uma curva elptica definida
sobre R.
linha vertical que cruza curva num ponto R; este ltimo representar a computao
de 2P ; na Figura 3.2 mostrada de forma grfica a lei do grupo numa curva elptica
definida sobre R.
A soma repetida de um ponto P , denominada por multiplicao de um ponto
P por um inteiro k, est definida como:
kP = |P + P +
+ P} .
{z
k vezes
Um dos mtodos mais eficientes para computar a multiplicao de pontos o algoritmo duplicao-e-soma, chamado assim porque utiliza as funes de duplicao e
soma, antes mencionadas. O algoritmo inicializa um ponto Q = O que serve como
acumulador. Uma vez feito isso, o processamento l os bits de k iterativamente, do
mais ao menos significativo, de modo que a cada iterao i o ponto Q duplicado e
se o i-simo bit de k igual a 1, o ponto P somado ao acumulador. Uma vez que
todos os bits foram lidos, o ponto Q conter o ponto kP .
A obteno de mltiplos de um ponto uma operao que pode ser computada eficientemente, no entanto acredita-se que a operao inversa para certas
curvas elpticas computacionalmente invivel. Dado um ponto G que seja gerador do grupo elptico E(Fp ) e um ponto qualquer da curva Q E(Fp ) determinar
um k Z tal que Q = kG conhecido como o Problema do Logaritmo Discreto
em Curvas Elpticas (ECDLP). Osqalgoritmos mais eficientes que resolvem ECDLP
possuem uma complexidade de O( #E(Fp )). Por exemplo, se p 2256 ento a complexidade de resolv-lo requer aproximadamente 2128 operaes, tornando o calculo
de k invivel.
99
c
2015
SBC Soc. Bras. de Computao
SSE, AVX e o mais recente, AVX2. O leitor ser familiarizado a terminologia bsica
das instrues avanadas dos processadores e ser apresentada a evoluo das instrues vetoriais nas micro-arquiteturas; em particular a nfase ser dada microarquitetura Haswell. Finalmente, ser discutido um exemplo de como detectar a
presena dos conjuntos avanados de instrues nos processadores.
3.2.1. Instrues vetoriais
No fim da dcada de 1990, os fabricantes de processadores focaram seus esforos
em explorar o paralelismo de dados ao invs do paralelismo de instrues como
era feito nas arquiteturas RISC. Para isso, eles incorporaram unidades funcionais
que so capazes de executar uma nica instruo sobre um conjunto de dados; esse
processamento encaixa-se no paradigma conhecido como Single Instruction Multiple
Data (SIMD), introduzido em [Fly72].
Um dos primeiros conjuntos de instrues a implementar o paradigma SIMD
foi lanado em 1997, conhecido como Multimedia eXtensions (MMX) [Cor]. O MMX
adicionou registradores de 64 bits e instrues vetoriais que habilitavam o processamento de duas operaes de 32 bits, nessa poca as arquiteturas possuam registradores nativos de 32 bits. Essas instrues definem a semntica do contedo do
registrador, isto , um registrador de 64 bits poderia ser operado como um vetor de
oito palavras de 8 bits, um vetor de quatro palavras de 16 bits, um vetor de duas
palavras de 32 bits ou como um vetor de 64 bits. No comeo as instrues MMX
foram voltadas para auxiliar o processamento de aplicaes grficas e multimdia.
Nos ltimos 18 anos, tanto a Intel como a AMD lanaram novos conjuntos
de instrues vetoriais para explorar ainda mais o paralelismo a nvel de dados. A
seguir sero apresentados alguns dos conjuntos mais relevantes lanados por essas
duas companhias:
Em 1999, a Intel lanou Streaming SIMD Extensions (SSE) que adicionou oito
registradores de 128 bits (denotados XMM0-XMM7) e incluiu instrues para dar
suporte computao de aritmtica de ponto flutuante.
No ano 2000, a AMD desenvolveu a arquitetura de 64 bits, com isso o tamanho
dos registradores nativos aumentou de 32 bits para 64 bits e o nmero de
registradores vetoriais foi duplicado (denotados XMM0-XMM15).
O conjunto de instrues SSE foi evoluindo com o lanamento dos novos conjuntos SSE2, SSE3, SSSE3 e SSE4. O SSE2 foi lanado para dar suporte s
operaes de aritmtica inteira. Os outros conjuntos, entretanto, foram incorporando outros tipos de instrues vetoriais; desse modo, comeou a surgir
instrues para manipulao de cadeias de caracteres, permutao de palavras
dentro dos registradores e cdigos de correo de erros.
A diversidade das instrues aumentou ainda mais em 2010, quando foi includo o Advanced Encryption Standard New Instructions (AES-NI) que acelera a computao do algoritmo de encriptao AES. Este conjunto ser amplamente explicado na Seo 3.4.1.
Livro-texto de Minicursos
100
c
2015
SBC Soc. Bras. de Computao
101
c
2015
SBC Soc. Bras. de Computao
102
c
2015
SBC Soc. Bras. de Computao
Instruo vetorial
Latncia
Vazo
LOAD
STORE
BRCAST
3
3
5
2
1
2
ADD/SUB
MUL
1
5
2
1
XOR
SHL/SHR
SHLV SHRV
1
1
2
3
1
0.5
PERM
BLEND
PRBLEND
ALIGNR
UPCK
3
1
3
1
1
1
3
1
1
1
CAST
EXTRACT
INSERT
0
3
3
1
1
Porta de execuo
0
Tabela 3.1: Latncia, vazo (instrues executadas por ciclo quando no h dependncias) e portas de execuo de algumas instrues AVX2.
(b) EXTRACT. Essa instruo retorna um registrador de 128 bits composto
pela parte alta (ou baixa) de um registrador de 256 bits. Diferente das
instrues de CAST, esta uma instruo explicita que codificada em
linguagem de montagem.
(c) INSERT. Essa instruo tem a funcionalidade inversa instruo EXTRACT,
pois ela permite adicionar o contedo de um registrador de 128 bits na
parte alta (ou baixa) de um registrador de 256 bits.
Essa lista no inclui todas as instrues pertencentes ao conjunto de instrues
AVX2; recomendado consultar [Cor11] para informao adicional sobre o conjunto
AVX2. Na Tabela 3.1 so mostradas as latncias, a vazo e as portas de execuo
das instrues AVX2 acima citadas; essas informaes foram extradas do relatrio
tcnico produzido por Agner Fog [Fog14].
3.2.3. Deteco dos conjuntos de instrues
Antes de usar um conjunto avanado de instrues preciso verificar se tal conjunto
suportado pelo processador alvo. Existem vrias formas de fazer essa verificao,
caso o sistema operacional usado seja o Linux a maneira mais fcil rodar o seguinte
comando no terminal:
1
$ cat / p r o c / c p u i n f o | g r e p f l a g s
Livro-texto de Minicursos
103
c
2015
SBC Soc. Bras. de Computao
1
2
3
4
5
6
7
8
flags :
104
c
2015
SBC Soc. Bras. de Computao
105
c
2015
SBC Soc. Bras. de Computao
106
c
2015
SBC Soc. Bras. de Computao
Como ser visto adiante, outros algoritmos de exponenciao possuem padro regular de execuo em cada uma de suas iteraes, mas as variveis de entrada e sada
podem ser diferentes dependendo dos bits da chave [Mon87]. Nesse caso, monitorar
a latncia de acesso memria pode revelar ao adversrio informao sobre a chave
a partir dos acertos ou erros na memria cache. Uma soluo para o problema,
realizar trocas condicionais entre as variveis a cada iterao a partir de uma variante da cpia condicional encontrada abaixo. Por mais que as verses das funes
sejam apresentadas para vetores de palavras do processador, possvel aprimorar
seu desempenho pela implementao de verses de maior granularidade utilizando
instrues vetoriais.
Livro-texto de Minicursos
107
c
2015
SBC Soc. Bras. de Computao
1
2
3
4
5
6
7
8
9
10
mask = -b ;
for ( int i = 0; i < d ; i ++) {
t = ( a [ i ] ^ c [ i ]) & mask ;
a [ i ] ^= t ;
c [ i ] ^= t ;
}
Outras tcnicas para implementao segura de algoritmos criptogrficos podem ser encontradas em https://cryptocoding.net/.
108
c
2015
SBC Soc. Bras. de Computao
t0 t1 t2 t3
t0 t1 t2 t3
t
t
t5 t6 t7
t
t
t
4
5
6
7
4
= ShiftRows
t8
t10 t11 t8
t9 t10 t11
t9
t12 t13 t14 t15
t15 t12 t13 t14
(3)
u0 u1 u2 u3
2
u
u5 u6 u7 1
4
=
u8
u9 u10 u11 1
u12 u13 u14 u15
3
3
2
1
1
1
3
2
1
1
t0 t1 t2 t3
1 t5 t6 t7 t4
3 t10 t11 t8 t9
2
t15 t12 t13 t14
(4)
(5)
(6)
109
c
2015
SBC Soc. Bras. de Computao
10 if l = 128
2: N 12 if l = 192
14 if l = 256
3: S M R0
4: for i 1 to N 1 do
5:
T SubBytes(S)
6:
T 0 ShiftRows(T )
7:
U MixColumns(T 0 )
8:
S U Ri
9: end for
10: S SubBytes(S)
11: S ShiftRows(S)
12: C S RN
13: return C
10 if l = 128
2: N 12 if l = 192
14 if l = 256
3: RConi 2i1 F28 para i {1, . . . , 10}.
4: Seja (wNk 1 , . . . , w0 )32 a representao na base 32 da chave k.
5: for i Nk to 4N + 3 do
6:
T wi1
7:
if i 0 mod Nk then
8:
T SubWord(RotWord(T )) RConi/Nk
9:
else if NK > 6 and i 4 mod Nk then
10:
T SubWord(T )
11:
end if
12:
wi wiNk T
13: end for
14: for i 0 to N do
15:
Ri (w4i k w4i+1 k w4i+2 k w4i+3 )
16: end for
17: return {R0 , . . . , RN }
Livro-texto de Minicursos
110
c
2015
SBC Soc. Bras. de Computao
P1
P2
P3
Pn
VI
Ek
Ek
Ek . . . Ek
C1
C2
C3
C1
C2
C3
Dk
Dk
Dk . . . Dk
P1
P2
P3
VI
Cn
V I +2
V I +n
Ek
Ek
Ek
. . . Pn
P2
C1
Pn
V I +1
P1
Cn
C2
Cn
Figura 3.3: Modos de operao definidos pelo NIST no padro SP 800-38A [Nat01b].
111
c
2015
SBC Soc. Bras. de Computao
112
c
2015
SBC Soc. Bras. de Computao
113
c
2015
SBC Soc. Bras. de Computao
1
2
3
4
5
6
7
8
9
10
11
pxor
xmm15 , xmm0
aesenc xmm15 , xmm1
aesenc xmm15 , xmm2
aesenc xmm15 , xmm3
aesenc xmm15 , xmm4
aesenc xmm15 , xmm5
aesenc xmm15 , xmm6
aesenc xmm15 , xmm7
aesenc xmm15 , xmm8
aesenc xmm15 , xmm9
aesenclast xmm15 , xmm10
;
;
;
;
;
;
;
;
;
;
;
AddRoundKey
Round 1
Round 2
Round 3
Round 4
Round 5
Round 6
Round 7
Round 8
Round 9
Round 10
(a) Encriptao.
1
2
3
4
5
6
7
8
9
10
11
pxor
xmm15 , xmm10
aesdec xmm15 , xmm9
aesdec xmm15 , xmm8
aesdec xmm15 , xmm7
aesdec xmm15 , xmm6
aesdec xmm15 , xmm5
aesdec xmm15 , xmm4
aesdec xmm15 , xmm3
aesdec xmm15 , xmm2
aesdec xmm15 , xmm1
aesdeclast xmm15 , xmm0
;
;
;
;
;
;
;
;
;
;
;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
AddRoundKey
Round 1
Round 2
Round 3
Round 4
Round 5
Round 6
Round 7
Round 8
Round 9
Round 10
(b) Decriptao.
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
30
31
32
33
34
35
36
37
38
39
keygen_128 :
movdqu xmm1 , XMMWORD PTR Keyindent
movdqu XMMWORD PTR KeySch , xmm1
mov rcx , OFFSET KeySch +16
a es ke yg e na ss is t xmm2 , xmm1 , 0 x01
call k e y _ e x p a n s i o n _ 1 2 8
a es ke yg e na ss is t xmm2 , xmm1 , 0 x02
call k e y _ e x p a n s i o n _ 1 2 8
a es ke yg e na ss is t xmm2 , xmm1 , 0 x04
call k e y _ e x p a n s i o n _ 1 2 8
a es ke yg e na ss is t xmm2 , xmm1 , 0 x08
call k e y _ e x p a n s i o n _ 1 2 8
a es ke yg e na ss is t xmm2 , xmm1 , 0 x10
call k e y _ e x p a n s i o n _ 1 2 8
a es ke yg e na ss is t xmm2 , xmm1 , 0 x20
call k e y _ e x p a n s i o n _ 1 2 8
a es ke yg e na ss is t xmm2 , xmm1 , 0 x40
call k e y _ e x p a n s i o n _ 1 2 8
a es ke yg e na ss is t xmm2 , xmm1 , 0 x80
call k e y _ e x p a n s i o n _ 1 2 8
a es ke yg e na ss is t xmm2 , xmm1 , 0 x1b
call k e y _ e x p a n s i o n _ 1 2 8
a es ke yg e na ss is t xmm2 , xmm1 , 0 x36
call k e y _ e x p a n s i o n _ 1 2 8
jmp END
key_expansion_128 :
pshufd xmm2 , xmm2 ,
pslldq xmm3 , xmm1 ,
pxor
xmm1 , xmm3
pslldq xmm3 , xmm1 ,
pxor
xmm1 , xmm3
pslldq xmm3 , xmm1 ,
pxor
xmm1 , xmm3
pxor
xmm1 , xmm2
movdqu XMMWORD PTR
add rcx , 0 x10
ret
END :
0 xFF
0 x04
0 x04
0 x04
[ rcx ] , xmm1
114
c
2015
SBC Soc. Bras. de Computao
Implementao
Nativa de x64
AES-NI
Modo CBC
Modo CTR
Ciclos/byte
MB/s
Ciclos/byte
MB/s
11,08
4,50
306,08
752,36
11,67
0,83
290,51
4061,86
no aproveita o suporte de encriptao por hardware e simplesmente utiliza instrues nativas de 64 bits. A segunda implementao, entretanto, utiliza as instrues
AES-NI presentes nos processadores da Intel. Esses cdigos fazem parte da biblioteca de exemplos da Intel (verso 1.2) que est disponvel em [Rot11].
Os resultados do Teste 1 so apresentados na Tabela 3.2; pode-se perceber
que no modo de operao CBC, a implementao que usa AES-NI aproximadamente 2,5 vezes mais rpida que a implementao nativa de 64 bits. O impacto no
desempenho causado pelas instrues AES-NI ainda maior no CTR, que chega a
ser 14 vezes mais rpido do que uma implementao sequencial nativa de 64 bits.
Teste 2. Utilizar o modulo de medio de desempenho da biblioteca OpenSSL para
determinar o tempo de execuo do algoritmo AES-128-CBC. O teste ser feito, com
e sem suporte das instrues AES-NI.
Neste experimento foi utilizado o OpenSSL, verso 1.0.2d [The03]. O desempenho do algoritmo AES pode ser medido pela seguinte linha de comando:
1
Na hora de indicar o parmetro -evp o OpenSSL escolher a implementao adequada para a arquitetura alvo; caso seu computador no conte com o conjunto de
instrues AES-NI, ento ser executado o teste com uma implementao suportada. Parte da sada deste comando, executada no processador HW-ULTRA,
apresentada a seguir:
1
2
3
4
5
Agora, o mesmo experimento ser executado indicando explicitamente, atravs de uma varivel de ambiente, que execute uma implementao genrica, isto ,
sem suporte ao AES-NI.
1
2
Livro-texto de Minicursos
115
c
2015
SBC Soc. Bras. de Computao
1
2
3
4
5
Os resultados dos experimentos, mostram que a implementao usando AESNI acima de 2 vezes mais rpida do que a implementao genrica. Maiores
detalhes sobre o desempenho do OpenSSL usando instrues AES-NI podem ser
consultados em [GGF+ 15].
Observaes: esses dois experimentos so uma prova de que possvel atingir um
nvel de desempenho alto para encriptar dados desde que a implementao aproveite
de maneira adequada as instrues especializadas contidas nos processadores.
3.4.2. Implementao da funo de resumo SHA-3
Esta seo detalha como usar o conjunto de instrues vetoriais para acelerar a
computao do mais novo padro de funes de resumo SHA-3. Inicialmente ser
apresentada uma breve introduo da famlia de funes de resumo SHA-3 e, posteriormente, como a implementao em software do SHA-3 pode ser acelerada por
meio de instrues vetoriais.
A famlia de funes de resumo Standard Hash Algorithm (SHA) [Nat08a] foi
padronizada pelo Instituto Nacional de Padres e Tecnologias americano (NIST) e
atualmente usada em muitas aplicaes e protocolos. Nos ltimos anos, a famlia
SHA sofreu alguns ataques; em 2005, [BCJ+ 05] e [RO05] mostraram ataques
colises em uma verso reduzida do SHA-1; no mesmo ano, [WYY05] mostrou um
ataque que quebra, teoricamente, a resistncia coliso do SHA-1. A segunda verso
da famlia, SHA-2, possui uma estrutura muito similar ao SHA-1 e j possui alguns
ataques sua verso reduzida, como mostrado em [IMPR09].
Adicionalmente, foram feitas crticas aos algoritmos SHA-1 e SHA-2 por seus
detalhes de projeto serem fechados ao pblico. Por este motivo, aps um perodo de
consulta pblica e dois workshops, o NIST decidiu publicar, em 2007, uma chamada
aberta para a seleo de um novo algoritmo, o SHA-3. Ao contrrio dos algoritmos
anteriores, o concurso para a escolha do SHA-3 foi feito nos mesmos moldes do AES,
algoritmo padro de cifra de bloco, selecionado em 2001 aps cinco anos de concurso
[Nat01a]. Por esse motivo, todos os algoritmos que foram submetidos tiveram que
ter suas patentes abertas e o cdigo disponvel, afim de serem analisados e testados
durante o concurso. Em 2012, aps trs rodadas de competio, o algoritmo Keccak [BDPA11] foi anunciado como vencedor [jCPB+ 12], este algoritmo baseia-se na
construo esponja definida sobre uma permutao Keccak-p.
Em Agosto de 2015 foi publicado o documento oficial FIPS 202 [Nat15],
que descreve os detalhes da famlia SHA-3 e padroniza quatro funes de resumo,
SHA3-224, SHA3-256, SHA3-384 e SHA3-512 e duas funes de resumo com sada
varivel, Extendable Output Functions (XOF), chamadas SHAKE128 e SHAKE256.
Livro-texto de Minicursos
116
c
2015
SBC Soc. Bras. de Computao
Funes
Tamanho
de sada
Pr-imagem
2a Pr-imagem
SHA-1
160
<80
160
160L(M )
SHA-224
SHA-512/224
SHA-256
SHA-512/256
SHA-384
SHA-512
224
224
256
256
384
512
112
112
128
128
192
256
224
224
256
256
384
512
SHA3-224
SHA3-256
SHA3-384
SHA3-512
SHAKE128
SHAKE256
224
256
384
512
d
d
112
224
128
256
192
384
256
512
min(d/2, 128) min(d, 128)
min(d/2, 256) min(d, 256)
224
256
384
512
min(d, 128)
min(d, 256)
Tabela 3.3: Nvel de segurana das funes SHA-1, SHA-2 e SHA-3 [Nat15].
s0 s1 s2 s3 s4
s5
s6 s7 s8 s9
S=
s10 s11 s12 s13 s14 ; S[x, y] = s5x+y para 0 x, y < 5.
(7)
117
c
2015
SBC Soc. Bras. de Computao
0 1 62 28 27
36 44 6 55 20
R=
3 10 43 25 39 ; R[x, y] = r5x+y para 0 x, y < 5.
41 45 15 21 8
18 2 61 56 14
(8)
Etapa de mapeamento . O efeito da etapa de mapeamento embaralhar as palavras do estado. Ela promove uma difuso a longo prazo dentro
das rodadas, a fim de evitar que padres sejam explorados em determinados
ataques.
Etapa de mapeamento . O efeito da etapa de mapeamento aplicar
uma operao XOR em cada palavra do estado si com a sada de uma funo
no linear aplicada a duas palavras da mesma linha de si .
Etapa de mapeamento . A etapa de mapeamento consiste na aplicao
de uma operao XOR entre o elemento s0 com um valor contante rc(ir ), onde
ir o ndice da rodada; os valores de rc so definidos em [Nat15] e so gerados
a partir de um Linear Feedback Shift Register (LFSR).
Dado um estado S e o ndice de uma rodada ir , uma funo Rnd a transformao que resulta na aplicao das etapas de mapeamento , , , e , como
pode ser visto a seguir:
Rnd(S, ir ) = (((((S)))), ir ).
(9)
118
c
2015
SBC Soc. Bras. de Computao
119
c
2015
SBC Soc. Bras. de Computao
(10)
(11)
120
c
2015
SBC Soc. Bras. de Computao
Uma vez mapeado o estado a variveis de 64 bits, pode-se comear a computao da permutao Keccak-p[1600,24]. Uma implementao direta de uma rodada,
denotada Rnd(M, ir ), pode ser vista no Algoritmo 4.
A maioria das arquiteturas de 64 bits atuais possuem menos que 25 registradores de propsito geral e sabe-se que operaes em registradores so substancialmente mais rpidas que operaes que buscam dados da memria. Por conta disso,
uma implementao eficiente tem que aproveitar os dados dentro dos registradores
na maior parte do tempo.
121
c
2015
SBC Soc. Bras. de Computao
Algoritmo 4 Rnd(M, ir )
Entrada: Estado M e ir o ndice da rodada.
Sada: Estado M atualizado.
Etapa de mapeamento
1: Cy = M0+y M5+y M10+y M15+y M20+y
2: Dx = C(x1) mod 5 (C(x+1) mod 5 1)
3: M5x+y = M5x+y Dx
4:
Etapas de mapeamento e
B(16x+10y) mod 25 = (M5x+y r5x+y )
5:
6:
7:
8:
Etapa de mapeamento
for all (x, y) tal que 0 x, y < 5 do
T = (B(5x+y+2) mod 5 ) (B(5x+y+1)
M5x+y = B5x+y T
end for
para 0 y < 5
para 0 x < 5
para 0 x, y < 5
para 0 x, y < 5
mod 5 )
Etapa de mapeamento
9: M0 = M0 rc(ir )
10: return M
T0 = M3 28
T1 = M9 20
T2 = M10 3
T3 = M16 45
T4 = M22 61
M16 = T0 (T2 (T1 ))
M3 = T1 (T3 (T2 ))
M10 = T2 (T4 (T3 ))
M22 = T3 (T0 (T4 ))
M9 = T4 (T1 (T0 ))
122
c
2015
SBC Soc. Bras. de Computao
Y0
s10
s20
s30
s40
Y1
s11
s21
s31
s41
Y2
..
.
s12
s22
s32
s42
Y22
Y23
Y24
..
.
(a) Organizao do estado para a implementao vetorial usando registradores de 256 bits.
T0 = LOAD(S1 )
T1 = LOAD(S2 )
T2 = LOAD(S3 )
T3 = LOAD(S4 )
T4 = UNPACK_LO(T0 , T1 )
T0 = UNPACK_HI(T0 , T1 )
T1 = UNPACK_LO(T0 , T1 )
T2 = UNPACK_HI(T0 , T1 )
Y0 = PRBLEND(T4 , T1 )
Y1 = PRBLEND(T0 , T2 )
Y2 = PRBLEND(T4 , T1 )
Y3 = PRBLEND(T0 , T2 )
Figura 3.6: Organizao do estado e sequencia de instrues para organizar as primeiras quatro palavras do estado.
123
c
2015
SBC Soc. Bras. de Computao
124
c
2015
SBC Soc. Bras. de Computao
(a) Ciclos por byte para calcular o valor de resumo para as funes da famlia SHA-3.
(b) Ciclos por byte para calcular o valor de resumo de mensagens de tamanho 256 B a
512 MB.
125
c
2015
SBC Soc. Bras. de Computao
y 2 = x3 + 486662x2 + x
(12)
onde as coordenadas dos pontos pertencem ao corpo primo Fp sendo p = 2255 19.
Essa curva permite que a multiplicao de pontos seja feita usando apenas a
coordenada x do ponto P ; isto , dado um inteiro k e a coordenada x do ponto P ,
existe um algoritmo que computa a coordenada x de ponto kP ; esse algoritmo foi
proposto por Montgomery [Mon87] e apresentado no Algoritmo 5. O algoritmo
utiliza as coordenadas projetivas, onde a coordenada x representada por dois
valores (X, Z) sendo x = X/Z. Para realizar o calculo de kP so usados dois pontos
acumuladores Q0 e Q1 . O primeiro contendo o valor de P e o segundo contendo
O. O contedo dos acumuladores ser atualizado iterativamente em funo do valor
dos bits de k; assim sendo, se o i-simo bit de k for igual a 1, ento o contedo
dos acumuladores trocado; feito isso, a funo Ladder atualizar os acumuladores
Q0 2Q0 e Q1 Q0 + Q1 . Aps percorrer todos os bits de k, o valor de kP se
encontrar armazenado no acumulador Q0 = (X, Z), finalmente a coordenada x de
kP computada como x = X/Z.
A funo CondSwap deve ser implementada em tempo constante, isto , o
Livro-texto de Minicursos
126
c
2015
SBC Soc. Bras. de Computao
[soma]
[subt]
[mult]
[soma/subt]
[quad]
[mult]
[quad]
[mult]
[subt]
[mult]
127
c
2015
SBC Soc. Bras. de Computao
Assim, para representar eficientemente um elemento F2255 19 a tupla de coeficientes ser utilizada; de agora em diante ser denotado por A = {a0 , . . . , a9 }, tal
que a seguinte equao seja satisfeita:
= a0 + a1 226 + a2 251 + a3 277 + a4 2102 + a5 2128 + a6 2153 + a7 2179 + a8 2204 + a9 2230 ,
(13)
o nmero ser representado por cinco palavras de 26 bits e cinco palavras de 25 bits.
A representao dos elementos tambm pode ser vista como um polinmio
em x de grau 9 tal que xi = 2d25,5ie . Por conta disso, as operaes aritmticas seguem
a mesma lgica das operaes sobre polinmios como descrito a seguir:
Soma e subtrao. A soma e substrao so realizadas coeficiente a coeficiente que podem ser calculadas usando instrues de 32 ou 64 bits, pois os
bits restantes serviro para armazenar os bits de carry. Desta forma, possvel realizar uma sequencia de somas e substraes antes de precisar realizar
a reduo modular; isto reduz a propagao de dados e acrescenta o grau de
paralelismo nas computaes.
Multiplicao. A multiplicao de elementos no corpo pode ser feita como a
multiplicao de dois polinmios, produzindo um polinmio de grau 18. A fim
de manter uma representao compacta, se aplica a reduo modulo 2255 19;
ela consiste em reduzir os monmios de grau maior ou igual a 10 pela equivalncia x10 = 2255 19, portanto os monmios com fator x10 so multiplicados
por 19 e adicionados com os monmios correspondentes. A distribuio dos
produtos da multiplicao modular mostrada na Figura 3.8, onde cada coluna lista os produtos a serem adicionados na potncia correspondente. Nesta
representao do corpo F2255 19 , quando i e j so mpares existe um caso
especial onde (ai xi )(bj xj ) = 2ai bj xi+j , por conta disso na Figura 3.8 alguns
produtos aparecem multiplicados por 2.
Inverso multiplicativo. O inverso multiplicativo calculado usando a se5
guinte equivalncia a1 ap2 (250 )2 a11 . Parte da exponenciao pode
ser eficientemente computada pelo algoritmo de Itoh-Tsujii [IT88] que calcula
x
o termo x = a2 1 mediante uma cadeia de adio. Assim, para obter 250
calcula-se 5 10 20 40 50 100 200 250 , onde a transiyx
o x y encontra-se definida como y = (x )2 yx para x y Z+ .
A representao apresentada permite que o calculo das operaes aritmticas
seja feito por uma srie de operaes independentes, tentando acrescentar o grau de
paralelismo e agilizar a execuo das operaes aritmticas. Como foi visto, essas
operaes servem como blocos bsicos para a implementao da aritmtica de curvas
elpticas.
3.4.3.3. Implementao vetorial da curva Curve25519
Nas sees anteriores foram mostrados algoritmos para a computao da multiplicao de pontos e uma representao dos elementos do corpo primo. Nos dois casos,
Livro-texto de Minicursos
128
c
2015
SBC Soc. Bras. de Computao
x9
x6
x5
x4
x3
x2
x1
x0
19a9 b6
19a8 b7
19a7 b8
19a6 b9
a5 b 0
a4 b 1
a3 b 2
a2 b 3
a1 b 4
a0 b 5
38a9 b5
19a8 b6
38a7 b7
19a6 b8
38a5 b9
a4 b 0
2a3 b1
a2 b 2
2a1 b3
a0 b 4
19a9 b4
19a8 b5
19a7 b6
19a6 b7
19a5 b8
19a4 b9
a3 b 0
a2 b1
a1 b 2
a0 b 3
38a9 b3
19a8 b4
38a7 b5
19a6 b6
38a5 b7
19a4 b8
38a3 b9
a2 b 0
2a1 b1
a0 b 2
19a9 b2
19a8 b3
19a7 b4
19a6 b5
19a5 b6
19a4 b7
19a3 b8
19a2 b9
a1 b 0
a0 b 1
38a9 b1
19a8 b2
38a7 b3
19a6 b4
38a5 b5
19a4 b6
38a3 b7
19a2 b8
38a1 b9
a0 b 0
c5
c4
c3
c2
c1
c0
c9
x8
c8
x7
c7
c6
(14)
assim, o registrador de 256 bits conter dois coeficientes de duas tuplas armazenados
em palavras de 64 bits. Contudo, a implementao das operaes aritmticas ainda
beneficiada pelas instrues vetoriais, pois as operaes podem usar vetores de 128
bits.
Uma das operaes mais crticas em termos de desempenho a multiplicao
modular, pois requer calcular uma grande quantidade de multiplicaes de coeficientes. O Algoritmo 7 apresenta a sequncia de instrues para o processamento da
multiplicao modular no corpo F2255 19 . Nas linhas 2-5 inicializado um conjunto
de registradores que contm alguns coeficientes de hB, Di multiplicados por 2; durante o ciclo principal, nas linhas 6-18, as variveis Zi acumularo o contedo dos
produtos intermedirios ai bj ; e no ltimo ciclo, nas linhas 19-22, a reduo modular
calculada sobre os coeficientes de grau maior ou igual a 10.
Livro-texto de Minicursos
129
c
2015
SBC Soc. Bras. de Computao
A instruo MUL possui uma latncia de 5 ciclos e ao fim de cada ciclo possvel comear a execuo de uma nova multiplicao, fazendo com que a latncia total
de uma sequncia de multiplicaes independentes seja reduzida. Adicionalmente,
enquanto uma multiplicao est sendo processada na porta 0 as outras portas de
execuo do processador ficam disponveis para execuo de outros tipos de instrues; por exemplo, pode-se fazer operaes de acesso a memria concorrentemente
s multiplicaes.
A sada da funo de multiplicao produz uma tupla entrelaada onde cada
palavra de 64 bits contm um coeficiente de aproximadamente 52 bits. Posteriormente, essa tupla pode ser usada para computar operaes de soma ou substrao.
Entretanto, se duas multiplicaes precisam ser computadas sucessivamente, o tamanho dos coeficientes devem ser reduzidos tal que sejam menor que 32 bits visto
que a instruo MUL computa apenas produtos de palavras de 32 bits.
O processamento antes mencionado denominado de reduo de coeficientes
e assegura que cada coeficiente seja de aproximadamente 26 bits. Neste processamento, cada coeficiente ci dividido em trs partes (li , mi e hi ), de modo que li
contm os primeiros 26 bits, mi os prximos 25 bits e hi os bits remanescentes. Aps
a diviso, a reduo dos coeficientes calculada por:
c00 = l0 + 19(m9 + h8 ),
c01 = l1 + m0 + 19h9 ,
c0i = li + mi1 + hi2 para 2 i < 10.
(15)
130
c
2015
SBC Soc. Bras. de Computao
ci
13
hi
25
mi
26
li
l9
+
m8
l8
+
m7
l7
+
m6
l6
+
m5
l5
+
m4
l4
+
m3
l3
+
m2
l2
+
m1
l1
+
m0
l0
+
19m9
+
h7
+
h6
+
h5
+
h4
+
h3
+
h2
+
h1
+
h0
19h9
19h8
c09
c08
c07
c06
c05
c04
c03
c02
c01
c00
Livro-texto de Minicursos
131
c
2015
SBC Soc. Bras. de Computao
Implementao
Processador
NaCl [BLS13]
Core i7-4770
amd64-51 [BL15b] Core i7-4770
amd64-51 [BL15b] Xeon E3-1275 V3
AVX [Cho15]
Core i5-3210M
AVX2 [FL15]
Core i7-4770 ()
Instr. Vetoriais
Acordo de Chaves
No
No
No
Sim
Sim
261.000
163.200
161.600
159.100
156.500
Livro-texto de Minicursos
132
c
2015
SBC Soc. Bras. de Computao
Curva Elptica
Operaes/segundo
B-283
K-283
P-256
Curve25519
2.159
2.268
14.384
21.787
Tabela 3.5: Comparao do desempenho das curvas padro do NIST contra a curva
elptica Curve25519.
Como pode ser visto na Tabela 3.5, as curvas binrias do NIST, B-283 e K283, que esto implementadas na biblioteca do OpenSSL reportam uma taxa baixa
de computaes por segundo, atingindo na mdia dois mil operaes por segundo.
A implementao da curva P-256 mais otimizada obtendo acima de quatorze mil
operaes por segundo; no entanto o desempenho oferecido pela curva Curve25519
1.5 vezes mais rpido do que a curva NIST P-256.
Observaes: A latncia do protocolo ECDH pode ser reduzida com o uso de
curvas especficas que reduzem o nmero de operaes a serem calculadas; alm
disso, a aritmtica do corpo primo foi adaptada para evitar propagao de dados,
acrescentando o grau de paralelismo.
133
c
2015
SBC Soc. Bras. de Computao
HW-ULTRA
Core i5-4350U
1.4 GHz
4 GB
Fedora 20
Tabela 3.6: Especificaes tcnicas dos computadores HW-DESKTOP e HWULTRA usados neste trabalho.
Livro-texto de Minicursos
134
c
2015
SBC Soc. Bras. de Computao
Referncias
[AcKKS07] Onur Aciimez, etin Kaya Ko, and Jean-Pierre Seifert. Predicting
Secret Keys Via Branch Prediction. In Masayuki Abe, editor, Topics
in Cryptology - CT-RSA 2007, The Cryptographers Track at the RSA
Conference 2007, San Francisco, CA, USA, February 5-9, 2007, Proceedings, volume 4377 of Lecture Notes in Computer Science, pages 225
242. Springer, 2007.
[BB05]
David Brumley and Dan Boneh. Remote timing attacks are practical.
Computer Networks, 48(5):701716, 2005.
[BCJ+ 05]
[BDPA07] G. Bertoni, J. Daemen, M. Peeters, and G. Van Assche. Sponge functions. Ecrypt Hash Workshop 2007, May 2007.
[BDPA08] G. Bertoni, J. Daemen, M. Peeters, and G. Van Assche. On the Indifferentiability of the Sponge Construction. In Nigel P. Smart, editor, Advances in Cryptology Eurocrypt 2008, volume 4965 of Lecture Notes in Computer Science, pages 181197. Springer, 2008. http:
//sponge.noekeon.org/.
[BDPA11] Guido Bertoni, Joan Daemen, Michal Peeters, and GV Assche. The
keccak reference. Submission to NIST (Round 3), 13, 2011.
[BDPV14] Guido Bertoni, Joan Daemen, Michal Peeters, and Gilles Van Assche.
Sakura: A Flexible Coding for Tree Hashing. In Ioana Boureanu, Philippe Owesarski, and Serge Vaudenay, editors, Applied Cryptography and
Network Security, volume 8479 of Lecture Notes in Computer Science,
pages 217234. Springer International Publishing, 2014.
[Ber04]
[Ber06]
[Bih97]
[BJS07]
Elaine B. Barker, Don Johnson, and Miles E. Smid. SP 800-56A. Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography (Revised). Technical report, National
Institute of Standards & Technology, Gaithersburg, MD, United States,
2007.
Livro-texto de Minicursos
135
URL:
c
2015
SBC Soc. Bras. de Computao
[BL15a]
[BL15b]
[BL15c]
[BLS13]
Daniel J. Bernstein, Tanja Lange, and Peter Schwabe. NaCl: Networking and Cryptography library. http://nacl.cr.yp.to/, October
2013.
[BM06]
[BT11]
Billy Bob Brumley and Nicola Tuveri. Remote Timing Attacks Are Still
Practical. In Vijay Atluri and Claudia Daz, editors, Computer Security
- ESORICS 2011 - 16th European Symposium on Research in Computer
Security, Leuven, Belgium, September 12-14, 2011. Proceedings, volume
6879 of Lecture Notes in Computer Science, pages 355371. Springer,
2011.
[Cho15]
Tung Chou. Fastest Curve 25519 Implementation Ever. In National Institute of Standards and Technology, editors, Workshop on Elliptic Curve
Cryptography Standard. National Institute of Standards and Technology,
June 2015.
[CL14]
[Cor]
[Cor11]
[Cor13]
Livro-texto de Minicursos
136
c
2015
SBC Soc. Bras. de Computao
[Cor14]
[DH76]
W. Diffie and M.E. Hellman. New directions in cryptography. Information Theory, IEEE Transactions on, 22(6):644654, Nov 1976.
[DR01]
[FL15]
[Fly72]
M. Flynn. Some Computer Organizations and Their Effectiveness. Computers, IEEE Transactions on, C-21(9):948960, Sept 1972.
[Fog14]
Agner Fog. Instruction tables: Lists of instruction latencies, throughputs and micro-operation breakdowns for Intel, AMD and VIA CPUs,
December 2014.
[GGF+ 15] Vinodh Gopal, Sean Gulley, Wajdi Feghali, Ilya Albrekht, and Dan
Zimmerman. Improving OpenSSL Performance. Technical report, Intel Corporation, May 2015. Disponvel em https://software.intel.
com/en-us/articles/improving-openssl-performance.
[Gue10]
[Ham09]
[Ham15]
[HSH+ 09]
[IMPR09]
Sebastiaan Indesteege, Florian Mendel, Bart Preneel, and Christian Rechberger. Collisions and other non-random properties for step-reduced
Livro-texto de Minicursos
137
c
2015
SBC Soc. Bras. de Computao
Toshiya Itoh and Shigeo Tsujii. A Fast Algorithm for Computing Multiplicative Inverses in GF(2m ) Using Normal Bases. Inf. Comput.,
78(3):171177, September 1988.
[jCPB+ 12] Shu jen Chang, Ray Perlner, William E Burr, Meltem Snmez Turan,
John M Kelsey, Souradyuti Paul, and Lawrence E Bassham. Thirdround report of the SHA-3 cryptographic hash algorithm competition.
US Department of Commerce, National Institute of Standards and Technology, 2012.
[Koc96]
[KS09]
Emilia Ksper and Peter Schwabe. Faster and timing-attack resistant AES-GCM. Cryptographic Hardware and Embedded Systems-CHES
2009, pages 117, 2009.
[KSD13]
[LHT15]
Adam Langley, Mike Hamburg, and Sean Turner. Elliptic Curves for
Security, September 2015. Disponvel em https://datatracker.ietf.
org/doc/draft-irtf-cfrg-curves/.
[Mer79]
[Mer88]
RalphC. Merkle. A Digital Signature Based on a Conventional Encryption Function. In Carl Pomerance, editor, Advances in Cryptology
CRYPTO 87, volume 293 of Lecture Notes in Computer Science, pages
369378. Springer Berlin Heidelberg, 1988.
[MN07]
Mitsuru Matsui and Junko Nakajima. On the power of bitslice implementation on Intel Core2 processor. Cryptographic Hardware and
Embedded Systems-CHES 2007, pages 121134, 2007.
[Mon87]
[Nat93]
National Institute of Standards and Technology. FIPS PUB 180: Secure Hash Standard. National Institute for Standards and Technology,
Gaithersburg, MD, USA, May 1993.
Livro-texto de Minicursos
138
c
2015
SBC Soc. Bras. de Computao
[Nat95]
[Nat01a]
National Institute of Standards and Technology. FIPS PUB 197, ADVANCED ENCRYPTION STANDARD (AES). National Institute for
Standards and Technology, Gaithersburg, MD, USA, November 2001.
[Nat01b]
National Institute of Standards and Technology. NIST Special Publication 800-38A. Recommendation for Block Cipher Modes of Operation.
National Institute for Standards and Technology, Gaithersburg, MD,
USA, December 2001.
[Nat02]
National Institute of Standards and Technology. FIPS PUB 180-2, Secure Hash Standard, Federal Information Processing Standard (FIPS),
Publication 180-2. National Institute for Standards and Technology,
Gaithersburg, MD, USA, August 2002. Supersedes FIPS PUB 180-1
1995 April.
[Nat08a]
National Institute of Standards and Technology. FIPS PUB 180-3, Secure Hash Standard, Federal Information Processing Standard (FIPS),
Publication 180-3. National Institute for Standards and Technology,
Gaithersburg, MD, USA, October 2008. Supersedes FIPS PUB 180-2
2002 August.
[Nat08b]
National Institute of Standards and Technology. FIPS PUB 180-4, Secure Hash Standard, Federal Information Processing Standard (FIPS),
Publication 180-4. National Institute for Standards and Technology,
Gaithersburg, MD, USA, October 2008. Supersedes FIPS PUB 180-3
October 2008.
[Nat15]
[Per05]
[Rab78]
[RO05]
[Rot11]
Jeffrey Rott. Intel AESNI Sample Library. Technical report, Intel Corporation, May 2011. Disponvel em https://software.intel.com/
en-us/articles/download-the-intel-aesni-sample-library.
Livro-texto de Minicursos
139
c
2015
SBC Soc. Bras. de Computao
[RSD06]
Chester Rebeiro, David Selvakumar, and A Devi. Bitslice implementation of AES. Cryptology and Network Security, pages 203212, 2006.
[Sch95]
Bruce Schneier. Applied Cryptography (2Nd Ed.): Protocols, Algorithms, and Source Code in C. John Wiley & Sons, Inc., New York,
NY, USA, 1995.
[Sta10]
[The03]
The OpenSSL Project. OpenSSL: The Open Source toolkit for SSL/TLS. www.openssl.org, April 2003.
[TOS10]
Eran Tromer, Dag Arne Osvik, and Adi Shamir. Efficient Cache Attacks
on AES, and Countermeasures. J. Cryptology, 23(1):3771, 2010.
[WYY05]
Xiaoyun Wang, Yiqun Lisa Yin, and Hongbo Yu. Finding collisions
in the full SHA-1. In Advances in CryptologyCRYPTO 2005, pages
1736. Springer, 2005.
[Yee15]
[Yuv78]
Livro-texto de Minicursos
140
c
2015
SBC Soc. Bras. de Computao
Captulo
4
Abordagens para Deteco de Spam de E-mail
Cleber K. Olivo, Altair O. Santin e Luiz Eduardo S. Oliveira
Abstract
The e-mail, one of the oldest and widely used services on the Internet, is the more used
tool to send an indiscriminate number of unsolicited message, known as spam. Given the
wide variety of techniques used for sending spam, this type of e-mail is a problem still far
from being solved. This work aims to present works and techniques relating of spam detection from a new perspective. Instead of classifying the works by type of detection technique, as is usually made in the literature, each one will be organized using the technique
applied in spam dissemination as entry key. Then, it will addressed the detection techniques for each case and it will make consideration about its efficiency.
Resumo
O e-mail, um dos servios mais antigos e mais utilizados na Internet, o meio mais utilizado para o envio indiscriminado de mensagens no solicitadas, conhecidas como spam.
Devido grande variedade de tcnicas utilizadas para o envio de spam, esse tipo de email um problema que ainda est longe de ser solucionado. Este trabalho tem como
objetivo apresentar as principais tcnicas e trabalhos relacionados a deteco de spam
sob uma nova perspectiva. Ao invs de classificar os trabalhos pelo tipo de tcnica de
deteco do spam, como normalmente feito na literatura, as abordagens sero organizadas a partir da tcnica utilizada na disseminao do spam. Ento, sero abordadas as
tcnicas de deteco para cada caso e feitas consideraes acerca de sua eficincia.
4.1. Introduo
4.1.1 Spam
O SMTP (Simple Mail Transfer Protocol) o protocolo padro utilizado para
transferncia de e-mails [1]. Nas ltimas dcadas, o e-mail tem sido um dos servios mais
utilizados na Internet, sendo o primeiro da lista quando o assunto comunicao entre
usurios na rede mundial. Por ser um dos servios mais antigos e mais utilizados na Internet, o e-mail tornou-se o favorito para o envio de mensagens de marketing e, em alguns
casos, at mesmo para o envio de mensagens fraudulentas ou contendo cdigos maliciosos anexados. O envio indiscriminado de e-mails sem o consentimento de seus destinatrios conhecido como spam. O envio de spam pela Internet causa vrios problemas, desde
o aborrecimento dos usurios - por receberem mensagens indesejadas, at problemas de
Livro-texto de Minicursos
141
c
2015
SBC Soc. Bras. de Computao
sobrecarga dos servidores SMTP - devido ao grande volume de spam recebido. Em alguns
casos mais graves, como o phishing (considerado uma subcategoria de spam), o dano
causado pode ir muito alm de um simples aborrecimento, levando o usurio a ter a segurana de seus computadores comprometida ou a ter prejuzos financeiros [2].
O spam, na sua forma virtual, um problema cada vez mais presente na vida dos
usurios e administradores de sistemas. O primeiro envio de spam por e-mail ocorreu em
1978, quando foi enviado para 393 usurios da ARPANET [3]. Desde ento, as estatsticas sobre o envio de spam apresentam-se cada vez piores. Em 1997, a AOL estimou que
de 5 a 30% de seus 10 milhes de e-mails recebidos por dia eram spam [4]. Em 2004, um
estudo apresentou uma previso de que esse percentual chegar em 95%, numa escala
global, at 2015 [5]. Mais recentemente, estatsticas divulgadas pela Symantec revelaram
que um percentual de 89,1% j foi atingido em 2010 [6], sendo o maior percentual at
ento [7]. Para se ter uma ideia, naquele ano a quantidade de e-mail enviado por dia foi
de 62 bilhes. Nos ltimos anos o volume que esses percentuais representam vem diminuindo para 60% no ano de 2013, para um volume global de spam estimado em 29 bilhes
de mensagens por dia [8].
O spamming (envio de spam) vai muito alm do aborrecimento do usurio. Enquanto o custo computacional para envio do spam relativamente baixo, os provedores
de servios na Internet e seus usurios tem um custo alto, causado pelo desperdcio de
banda e pelos custos das tecnologias empregadas para a sua deteco [3].
Os spammers (termo utilizado para definir quem envia spam), a fim de dificultar
a deteco de suas mensagens, fazem uso de subterfgios tcnicos que vo desde a sua
forma de envio at informaes inseridas propositalmente no corpo da mensagem, com o
objetivo de confundir os mecanismos de deteco de spam (e.g. filtros antispam). O SPF
(Sender Policy Framework), concebido para ser uma tcnica antispam, embora se mostrasse promissor no comeo, acabou sendo pouco eficiente, visto que os prprios spammers comearam a publicar seus registros SPF [9]. Isso mostra que protocolos de autenticao de e-mail por si s no so suficientes, tendo mais utilidade em casos de phishing
ou e-mail spoofing. Um outro exemplo de tcnica para burlar os mecanismos de deteco
o uso de imagens no envio das mensagens de e-mail. Isto aconteceu porque a eficincia
dos mecanismos antispam na forma textual aumentou e ento, em 2006, os spammers
comearam a converter as mensagens em imagem [10]. De acordo com a Ironport, naquele mesmo ano, a quantidade de spam de imagem quadruplicou, representando entre
25% e 45% de todo spam, em alguns dias [11].
As tcnicas para driblar os mecanismos antispam tambm so utilizadas para tornar ineficazes as tcnicas baseadas em reconhecimento de texto. Palavras como 'viagra',
por exemplo, podem se apresentar de diversas formas (e.g. V1AGR4, v.i.a.g.r.a etc). Um
estudo revelou que essa mesma palavra pode ter mais de um quintilho de variaes [12],
sendo praticamente impossvel que os mecanismos de deteco baseados em anlise de
texto tenham conhecimento de todas as variaes possveis de uma nica palavra. O problema atinge uma escala muito maior se for considerado que h vrias palavras que podem produzir estes nmeros significativos de variaes num mesmo texto.
A criao de novas tcnicas de deteco de spam levou os spammers a criarem
novas tcnicas de disseminao, geralmente baseadas na alterao constante do contedo
da mensagem. De um modo geral, algumas das tcnicas de deteco de spam existentes,
envolvendo a rea de reconhecimento de padres, conseguem taxas razoveis de classificao correta de e-mails. Entretanto, devido grande variedade de tcnicas utilizadas para
o envio de spam, haver detalhes especficos na mensagem que dificultaro a sua correta
identificao. Assim, o spam um problema que ainda est longe de ser solucionado,
Livro-texto de Minicursos
142
c
2015
SBC Soc. Bras. de Computao
visto que no existe uma tcnica de deteco que seja eficiente para todas as tcnicas de
disseminao existentes.
Muitas ferramentas para classificao de e-mails, assim como a maioria das ferramentas de navegador, utilizam listas de remetentes bons (whitelists) e maus (blacklists). Normalmente, as blacklists bloqueiam o endereo IP do servidor de e-mail de origem das mensagens spam, ou ainda o prprio endereo de e-mail do remetente. O bloqueio do endereo IP ou domnio pode causar problemas quando o remetente utiliza o
servidor de SMTP de algum provedor (e.g Yahoo, Gmail, etc), pois acaba por bloquear
todos os remetentes que o utilizam. J o bloqueio do e-mail do remetente pode ser ineficiente, visto que o mesmo pode ter sido forjado, sequestrado ou roubado de um usurio
legtimo [13].
Algumas abordagens sugerem, tambm, a colaborao dos usurios para auxiliar
o mecanismo antispam a classificar mensagens [14, 15]. Isto pode confundir o mecanismo
de classificao de e-mails, pois um usurio pode considerar algo como spam, quando na
verdade apenas no gosta de receber aquele tipo de e-mail por uma questo pessoal, enquanto outros usurios gostariam de receb-lo.
As ferramentas baseadas em aprendizagem de mquina, em sua maioria acabam
falhando quando um novo tipo de spam recebido, visto que um novo modelo precisa ser
treinado para que o novo spam possa ser detectado. Ou seja, at que o classificador seja
treinado novamente, este novo spam j atingiu vrios usurios. Alm disto, o uso de imagens na mensagem, como comentado anteriormente, se tornou muito comum, ento esta
tcnica passou a ser uma das mais exploradas, de acordo com a literatura [16, 17, 18, 19,
20, 21] para burlar os mecanismos antispam.
Uma tcnica de disseminao de spam baseada no contedo da mensagem (mensagem textual), e que se tornou um problema para os classificadores baseados na ocorrncia de palavras, o ofuscamento de palavras ou caracteres. A quantidade de caracteres
que podem ser trocados, visando confundir os mecanismos antispam, aumenta drasticamente a quantidade de palavras que podem substituir os termos originais que so comuns
em mensagens de spam [12], pois para essas tcnicas de classificao, se um nico caractere trocado em uma palavra, j no computacionalmente considerado a mesma string
de caracteres.
Este captulo tem como objetivo apresentar as principais tcnicas e trabalhos relacionados deteco de spam. Porm, ao invs de classificar os trabalhos existentes pela
tcnica de deteco/classificao utilizada, como normalmente feito na literatura, as
propostas sero classificadas de acordo com a tcnica utilizada na disseminao de spam.
Ou seja, para cada artimanha utilizada pelos spammers para driblar os mecanismos de
deteco, so apresentadas as solues propostas na literatura para mitigar o problema.
Um dos problemas de apresentar as tcnicas de deteco de spam na forma tradicional (classificando pela tcnica de deteco ao invs da tcnica de envio) que, para
quem no conhece o assunto a fundo, esta abordagem no revela os problemas relacionados deteco de spam que devem ser resolvidos. Aps a apresentao dos principais
tipos de spam, classificando a partir das tcnicas utilizadas, so apresentadas as principais
tcnicas de deteco propostas na literatura. Deste modo, mais fcil entender e questionar a eficincia das tcnicas de deteco para cada tipo de abordagem utilizada na disseminao das mensagens de spam.
Livro-texto de Minicursos
143
c
2015
SBC Soc. Bras. de Computao
4.1.2 Organizao
A seo 4.2 apresenta alguns conceitos bsicos sobre o funcionamento do servio
de e-mail. O objetivo dessa seo entender como funciona o envio do e-mail, alguns
aspectos importantes em relao ao protocolo SMTP (Simple Mail Transfer Protocol) e
os principais campos da mensagem utilizados na comunicao entre servidores,
aplicativos e usurios.
A seo 4.3 apresenta as principais tcnicas utilizadas para o envio de spam.
Diferente da maioria dos trabalhos, os quais classificam as abordagens a partir das
tcnicas de deteco propostas [4, 22, 23, 24, 25, 26], esta proposta apresenta uma viso
diferenciada, que trata das tcnicas de deteco sob o ponto de vista de cada tcnica de
envio de spam. Ou seja, a partir das principais tcnicas de envio de spam so apresentadas
as tcnicas de deteco mais indicadas. Essa viso facilita o entendimento do problema,
identificando a tcnica de disseminao de spam e a abordagem de classificao de emails mais apropriada. Desse modo, se um administrador de sistemas estiver com
problemas no recebimento de spam que utilize uma tcnica especfica (e.g spam de
imagem), poder conhecer as principais tcnicas para a deteco deste tipo especfico de
spam.
Aps a apresentao dos principais tipos de spam, ao apresentar cada tcnica de
deteco ficar mais fcil questionar a sua eficincia para um ou outro tipo de mensagem.
Havendo o entendimento dessas tcnicas de disseminao, possvel seguir para a
prxima etapa (seo 4.4), onde so discutidas as principais tcnicas de deteco de spam
encontradas na literatura.
Na seo 4.5 apresentada uma relao entre os tipos de spam apresentados na
seo 4.3 e as tcnicas de deteco apresentadas seo 4.4. A partir deste ponto, ser
possvel inferir que nenhuma das tcnicas isoladamente capaz de conseguir timos
resultados, sendo necessria uma combinao das mesmas para obter um mecanismo (e.g.
filtro ou classificador) robusto e eficiente. Para cada tipo de spam, ser apresentada a
tcnica mais recomendada. Adicionalmente, sero apresentadas as principais limitaes
de cada tcnica e algumas alternativas utilizadas.
A ltima seo (4.6) apresenta as consideraes finais acerca do assunto,
possibilitando uma visibilidade maior sobre a complexidade do problema que o spam
representa, incluindo os esforos mais recentes em pesquisa que buscam mitigar suas
causas.
Livro-texto de Minicursos
144
c
2015
SBC Soc. Bras. de Computao
145
c
2015
SBC Soc. Bras. de Computao
outros formatos, tais como mensagens multimdia, que podem incluir udio e vdeo, no
foram mencionadas no padro. Alm disso, o padro especificado pela RFC 822
inadequado para as necessidades atuais dos usurios de e-mail, os quais utilizam idiomas
que necessitam de um conjunto de caracteres mais amplo que o US-ASCII, como os
caracteres de idiomas asiticos e europeus [34]. O MIME redefine o formato das
mensagens para permitir:
(1) Texto do corpo da mensagem utilizando conjuntos de caracteres diferentes do USASCII;
(2) Um conjunto extensvel de diferentes formatos para corpos de texto em formato
no-textual;
(3) Corpos de mensagem multi-part, ou seja, divididos em duas ou mais partes, cada
uma com conjuntos de caracteres diferentes;
(4) Informao textual do cabealho em um conjunto de caracteres diferente do USASCII.
A possibilidade de uso de diversos conjuntos de caracteres, somada ao uso de
imagens e recursos de hipertexto (HTML), permitiu que o corpo do e-mail se tornasse o
campo da mensagem onde h o maior nmero de subterfgios tcnicos que podem ser
utilizados para burlar os mecanismos antispam.
A seo 4.3 apresenta em detalhes as principais formas como o protocolo SMTP,
o corpo do e-mail e o cabealho so utilizados na disseminao de spam, buscando a
mxima eficincia, seja com o objetivo de alcanar o maior nmero de destinatrios no
menor tempo possvel ou, ainda, driblando os mecanismos antispam.
Livro-texto de Minicursos
146
c
2015
SBC Soc. Bras. de Computao
Livro-texto de Minicursos
147
c
2015
SBC Soc. Bras. de Computao
148
c
2015
SBC Soc. Bras. de Computao
Phishing uma forma de estelionato que usa engenharia social para fazer vtimas, enganando-as com o
uso de recursos tecnolgicos, normalmente com o objetivo de obter suas informaes pessoais (geralmente
de cunho financeiro) e causar-lhes prejuzos [2]. De acordo com o Cdigo Penal Brasileiro, estelionato
obter, para si ou para outrem, vantagem ilcita, em prejuzo alheio, induzindo ou mantendo algum em erro,
mediante artifcio, ardil, ou qualquer outro meio fraudulento [37].
Livro-texto de Minicursos
149
c
2015
SBC Soc. Bras. de Computao
ao usurio. Com o remetente forjado, ao abrir o e-mail, o usurio vtima do phishing acaba
sendo convencido de que o remetente de uma fonte confivel, sem perceber o golpe.
Alm de forjar o remetente, o atacante costuma usar um contedo da mensagem bem
convincente, porm esta questo ser explorada na seo 4.3.2.
d) Envio atravs de botnets
Uma botnet uma rede de computadores comprometidos (bots), conectados
Internet e controlados por um atacante remoto (botmaster) [38]. As botnets utilizadas para
a disseminao de spam geralmente so compostas por computadores comprometidos de
usurios, onde foi instalado algum tipo de malware (cdigo malicioso). Esses
computadores so controlados remotamente, sem o consentimento do usurio, para a
disseminao de spam (Figura 4.5).
150
c
2015
SBC Soc. Bras. de Computao
151
c
2015
SBC Soc. Bras. de Computao
152
c
2015
SBC Soc. Bras. de Computao
Exemplos
Insero de caracteres
Substituio 11
Substituio 21
Substituio 31
'P|-|ARMACEUTIC/-\L', 'VI/-\GR/-\'
153
c
2015
SBC Soc. Bras. de Computao
154
c
2015
SBC Soc. Bras. de Computao
que em mdia cerca de 10 vezes maior do que o spam textual, consumindo maior banda
para trafegar na rede e mais recursos de armazenamento [16], alm de necessitar de tempo
e capacidade adicional de processamento no MTA de destino.
A Figura 4.8 um exemplo de spam de imagem com tcnica de ofuscao. O
fundo poludo e a variao de cores tanto no fundo como nas letras da imagem
dificultam consideravelmente a aplicao do OCR para a extrao textual. Para viso
humana, entretanto, possvel compreender a mensagem com um mnimo de dificuldade.
e) Uso de recursos da linguagem HTML
O uso de recursos de hipertexto (HTML) de forma mal-intencionada muito
comum em casos de estelionato, como no phishing de e-mail. Nesse caso, os recursos da
linguagem podem ser utilizados para ocultar informaes da vtima ou at mesmo
confundi-la.
Um dos exemplos mais comuns do uso de recursos HTML quando o texto
ncora, ou seja, o texto visvel para o usurio uma URL (Uniform Resource Locator) de
algum site legtimo, mas que aponta para um domnio fraudulento diferente do endereo
visvel para o usurio, por exemplo:
<a href=http://playpal.com> http://www.paypal.com/login.php </a>
Neste exemplo, o usurio ver a URL http://www.paypal.com/login.php, porm
ser redirecionado para o endereo http://playpal.com. Um usurio mais experiente
saber que um simples passar do ponteiro do mouse sobre o link provavelmente mostrar
a verdadeira URL por trs do texto ncora, porm, esta tcnica costuma funcionar com os
usurios mais desatentos ou inexperientes.
Um outro exemplo poderia ser:
<img src=http://www.dpf.gov.br/logo.png> Voc est intimado a comparecer em nossa
delegacia! <a href=http://badsite.com/malware.exe> Clique aqui para saber o
motivo </a>.
Neste caso, a vtima enxergaria a mensagem Voc est intimado a comparecer
em nossa delegacia! Clique aqui para saber o motivo, com uma imagem do logo da
organizao, retirado diretamente do Portal da Polcia Federal e contendo um link para o
endereo http://badsite.com/malware.exe, que aponta para um arquivo executvel que
provavelmente contm algum tipo de malware.
No trabalho de Olivo, C. K., Santin, A. O. e Oliveira, L. S. [2] h exemplos de
vrios outros casos de uso do HTML que so comuns em phishing.
f) Campanha Publicitria (E-mail marketing)
Campanhas publicitrias (e-mail Marketing ou marketing por e-mail) so
mensagens com fins publicitrios que geralmente so enviadas por um MTA com
considervel poder de processamento, que possui um domnio autntico para envio de emails, tratamento de erros etc. importante ressaltar que o e-mail marketing no
exatamente uma tcnica de disseminao de spam baseada no contedo da mensagem,
pois nem sempre o objetivo primrio destes e-mails causar problemas ao usurio ou
administradores de servidores de e-mail. O problema dessas mensagens sua
classificao pelos usurios (que podem consider-las mensagens no solicitadas
spam), esta a razo pela qual esta categoria de e-mails est includa nesta seo.
Livro-texto de Minicursos
155
c
2015
SBC Soc. Bras. de Computao
Mecanismo
simples de
envio
Caractersticas
Objetivos
Livro-texto de Minicursos
156
sem
c
2015
SBC Soc. Bras. de Computao
Tipo de Spam
Caractersticas
Objetivos
Contedo
falso
Texto bem convincente, com caractersticas Ludibriar o usurio do sistema de etextuais semelhantes a mensagens legtimas.
mail, convencendo-o a realizar
Normalmente tambm utilizado com a forja alguma ao que poder torn-lo
vtima de algum tipo de fraude.
de remetente.
Normalmente utiliza recursos hipertexto da
linguagem HTML para enganar as vtimas.
Classificadores baseados em caractersticas
textuais da mensagem muitas vezes no so
eficientes contra este tipo de spam.
Uso de
imagens
Uso de
recursos da
Livro-texto de Minicursos
157
c
2015
SBC Soc. Bras. de Computao
Tipo de Spam
Caractersticas
Objetivos
linguagem
HTML
E-mail
marketing
158
c
2015
SBC Soc. Bras. de Computao
causar problemas quando o remetente utiliza o servidor de SMTP de algum provedor (e.g.
Yahoo, Gmail etc.), pois acaba por bloquear todos os remetentes que o utilizam. J o
bloqueio do e-mail do remetente pode ser ineficiente, visto que o mesmo pode ter sido
forjado (veja a seo 4.3.1.c).
No caso do phishing (seo 4.3.2.c) a origem da mensagem (e.g. endereo IP,
URL alvo do phishing, e-mail forjado etc.) costuma mudar constantemente para evitar
seu rastreamento. Alm disso, a dificuldade de administrao dessas listas pode se tornar
muito complexa, pois o fluxo de mensagens pode ser muito intenso no servidor SMTP
onde a filtragem realizada. Assim, esta abordagem geralmente ineficiente [2].
159
c
2015
SBC Soc. Bras. de Computao
160
c
2015
SBC Soc. Bras. de Computao
Livro-texto de Minicursos
161
c
2015
SBC Soc. Bras. de Computao
PGP Pretty Good Privacy (1991), padronizada mais tarde como OpenPGP [52];
162
c
2015
SBC Soc. Bras. de Computao
163
c
2015
SBC Soc. Bras. de Computao
Chen, C. e seus colegas [59] fizeram uma comparao de trs propostas que
utilizam NB [60, 61, 62] e mais quatro abordagens tradicionais (SVM, C4.5, NB e KNN).
De um modo geral, a proposta apresenta alguns aprimoramentos no algoritmo NB,
tentando comprovar que melhor utilizar o algoritmo NB aprimorado do que mtodos
tradicionais de classificao (incluindo o prprio NB). Porm, ou autores no apresentam
algumas informaes essenciais, tais como taxa de falsos positivos.
Drucker, H., Wu, S., e Vapnik, V. N [63] apresentaram um trabalho que, embora
seja antigo para rea, apresenta vrios conceitos muito utilizados em tcnicas baseadas na
deteco por frequncia de ocorrncias de caracteres, tais como TF (Term Frequency)
quantidade de vezes que uma palavra aparece em um documento, TF-IDF (Term
Frequency Inverse Document Frequency) que define a importncia de um termo
dentro de uma coleo de documentos, e Stop List lista de termos que no devem
aparecer no vetor de caractersticas. Adicionalmente, tambm apresentam vrias tcnicas
muito utilizadas para avaliar a performance do classificador e validao dos resultados,
alm de fazer um estudo do uso do classificador SVM em comparao com outros
algoritmos de classificao (Ripper, Rocchio e Boosting Decision Trees).
Alm das abordagens mais tradicionais de reconhecimento de padres utilizadas
para a deteco de spam, algumas propostas buscam a soluo dos problemas sob uma
outra perspectiva. Ma, W. e seus colegas [64], por exemplo, exploram a deteco de spam
atravs de seleo negativa, ou seja, uma linha de reconhecimento de padres para
casos em que no houve uma etapa de aprendizado (AMO Artificial Immune Systems).
Uma das vantagens seria a pro-atividade na deteco, sem necessitar uma etapa de
treinamento, o que quase sempre necessrio nas abordagens antispam tradicionais.
Outra tcnica que visa facilitar a etapa de aprendizado o co-training, que permite
a construo de um classificador com um nmero relativamente pequeno de amostras
rotuladas [65]. Aps a construo desse primeiro classificador de taxa de acerto fraca,
esse mesmo classificador vai se tornando mais robusto com e-mails no rotulados. O
princpio base desta tcnica considerar que um classificador fraco, feito com amostras
rotuladas, pode encontrar amostras muito similares em uma base no rotulada. Ento, vo
sendo adquiridas novas amostras rotuladas para alimentar a base e refazer seu
treinamento. Kiritchenko e Matwin [66] utilizaram co-training para a classificao de emails, realizando 50 treinamentos na base, medida que mais e-mails eram classificados
a taxa de acerto aumentava. No primeiro treinamento foi possvel classificar corretamente
90% das mensagens com o classificador SVM, mas aps 50 iteraes de treinamento o
resultado aumentou para 94%.
Dentro desta mesma rea, alguns trabalhos propuseram solues para combater as
tcnicas de ofuscao textual utilizadas pelos spammers. Braga e Ladeira (2007)
propuseram uma abordagem que considera a dinamicidade do spam, ou seja, a quantidade
de variaes que costumam surgir visando burlar os mecanismos de deteco [67]. A
abordagem composta por trs mdulos, com funo de pr-processamento, classificao
e adaptao. A etapa de pr-processamento transforma a mensagem em valores
numricos, fazendo uso de rvores de Huffman adaptativas (rvores FGK) e um algoritmo
de ordenao das mensagens com base na representao vetorial das palavras que a
compe. A vantagem de utilizar uma rvore adaptativa a sua capacidade de acrescentar
novas folhas sem precisar criar uma nova rvore desde o incio. Na etapa de classificao
foi utilizado o classificador SVM. A adaptao das mensagens feita atravs de uma
tcnica chamada envelhecimento exponencial. Para retreinar o classificador no tempo
i+1, so utilizadas novas mensagens que chegaram at o tempo i+1, porm nem todas as
Livro-texto de Minicursos
164
c
2015
SBC Soc. Bras. de Computao
Livro-texto de Minicursos
165
c
2015
SBC Soc. Bras. de Computao
166
c
2015
SBC Soc. Bras. de Computao
possuam um perfil com informaes restritas, possuem perfis em outras redes sociais que
disponibilizam publicamente algumas informaes. Os resultados mostraram que um
spammer poderia atingir 85% dos usurios com um ataque direcionado, iniciando pelo
Facebook e utilizando outras redes sociais, conforme for o seu interesse [82].
Embora as redes sociais tenham informaes relevantes para o combate ao spam,
ainda so muito recentes se comparado ao servio de e-mail, que se tornou essencial
maioria das pessoas h muito tempo. Nem todos os usurios da Internet possuem cadastro
em redes sociais, assim em muitos casos no possvel a coleta dessas informaes. Alm
disso, a grande variedade de redes sociais, com diferentes finalidades, diferentes formas
de funcionamento e identificao na mesma, isto tudo pode se tornar um complicador
quando for se buscar essas informaes.
4.4.4. Tcnicas de deteco de spam de imagem
Conforme apresentado na seo 4.3.2, o spam de imagem uma tcnica utilizada
pelos spammers para disfarar mensagens de texto usando imagens e, portanto, tornando
impossvel a sua interpretao por classificadores textuais. Uma das solues para esse
tipo de problema o uso de tcnicas de OCR (Optical Character Recognition)
Reconhecimento tico de Caracteres, que faz a converso de imagens em texto (com uma
fase pr-processamento) e depois as analisa usando classificador textual.
As tcnicas utilizadas para tratar spam de imagem tambm esto relacionadas
rea de reconhecimento de padres (seo 4.4.2), porm utilizam tcnicas mais
especficas. Estas tcnicas esto relacionadas principalmente ao pr-processamento das
imagens, que deve ser eficiente, no intuito de facilitar o reconhecimento dos caracteres
que sero entrada de um classificador de spam em formato textual.
Uma das tcnicas mais utilizadas para a deteco de spam de imagem o
histograma [10, 17, 18, 19], representao grfica da distribuio dos dados no espectro
das tonalidades da imagem. Em imagens de spam poderia ser utilizado um histograma de
cores, por exemplo, identificando padres de histogramas para imagens de spam e para
imagens de e-mails legtimos. H ainda abordagens que exploram outros atributos bem
especficos das imagens, como ser apresentado a seguir.
Li et al. [10] apontam como principal problema a deteco de imagens com um
fundo mais complexo (e.g. texto sobreposto a uma fotografia), pois nesses casos as
caractersticas globais da imagem, tais como cor, textura e formato, so similares a
imagens de e-mails legtimos e, portanto, diminuindo a taxa de deteco. De acordo com
os autores, embora as caractersticas globais possam mudar depois do uso das tcnicas de
ofuscamento utilizadas pelos spammers, as caractersticas locais (SIFT - Scale-Invariant
Feature Transform, MSER - Maximally Stable Extremal Regions, Gabor wavelet, etc),
permanecem inalteradas. Logo, as caractersticas locais que focam em detalhes da
extrao de caractersticas da imagem so essenciais para a deteco de spam de imagem.
Biggio, B. e seus colegas [20] consideram que o texto contido em uma imagem
de spam possui a mesma essncia de um texto contido em um spam textual. Logo, se for
resolvido o problema de extrao do texto da imagem, na sequncia possvel aplicar
tcnicas de deteco de spam textual (e.g. filtro bayesiano) que a taxa de acerto ser boa.
A abordagem proposta possui uma etapa de pr-processamento onde o texto inserido nas
imagens convertido em texto puro. A etapa de treinamento realizada aps o prprocessamento imagens convertidas em texto. Os resultados mostram que esse tipo de
estratgia eficiente somente nos casos em que as imagens no tiveram algum tipo de
ofuscamento. Para as mensagens com ofuscamento, a deteco do spam feita
Livro-texto de Minicursos
167
c
2015
SBC Soc. Bras. de Computao
considerando que a imagem que oferece algum tipo de dificuldade para o OCR spam.
O parmetro utilizado para detectar a dificuldade imposta ao OCR foi medido atravs da
complexidade perimtrica da imagem.
Os autores Biggio, B. e seus colegas [21], em outro artigo, consideram que as
abordagens da literatura para spam de imagem esto focadas somente no tratamento das
imagens do spam, no se preocupando na identificao das imagens ofuscadas. A
proposta apresentada uma continuao do trabalho anterior [20], onde o foco maior est
na identificao dessas imagens. A identificao feita com base num valor de rudo,
linearizando numa escala de 0 (sem rudo) a 1 (com muito rudo). A novidade em relao
abordagem anterior que a complexidade perimtrica, que geralmente utilizada para
uma imagem inteira, passa a ser utilizada em diversos pontos da imagem, sendo possvel
identificar caracteres quebrados ou agregados ao rudo. Foram identificados padres para
(i) caracteres sem rudo; (ii) caracteres quebrados com pouco rudo no fundo; (iii) dois ou
mais caracteres conectados pelo rudo e (iv) imagens nas quais o texto colocado em
cima de um fundo irregular.
Por ser um problema complexo, existe uma grande variedade de propostas para
solucionar o spam de imagem, cada uma tentando e explorando algum aspecto especfico
do problema. Existem ainda, abordagens que propem a explorao de ambas as
caractersticas, textuais e das imagens [17]. De um modo geral, pode-se dizer o spam de
imagem (seo 4.3.2) um dos tipos mais explorados por spammers e estudados
atualmente. As justificativas para isso podem ser o grande percentual de ocorrncia desses
e-mails em relao ao total global de spam (alta relevncia do problema) e a grande
variedade de tcnicas de reconhecimento de padres utilizadas para o processamento de
imagens. Alm disso, diferente de outras tcnicas utilizadas na rea, as quais visam a
deteco de spam em geral, as abordagens existentes para a deteco deste tipo de spam
geralmente buscam combater uma tcnica bem especfica de disseminao de spam
(seo. 4.3.2.d).
4.4.5. Outras tcnicas de deteco de spam
H ainda algumas abordagens onde a principal contribuio no est totalmente
relacionada a uma das categorias apresentadas anteriormente. Por exemplo, abordagens
onde o principal fator para a deteco est relacionado a uma questo de infraestrutura ou
baseado na colaborao de usurios ou outros servidores, em alguns casos utilizando uma
das tcnicas apresentadas nas sees anteriores.
Liu e seus colegas [83] propuseram uma infraestrutura antispam baseada em grid
computacional. A abordagem considera que um e-mail spam somente se for enviado
para um nmero grande de destinatrios, contabilizando o nmero de pessoas que
receberam o e-mail em uma base denominada CopyRank. Um grupo de servidores
configurado para atrair mensagens de spam, que passam por um filtro bayesiano
distribudo que encaminha as informaes aos computadores clientes. Supe-se que a taxa
de falsos positivos ser baixa uma vez que somente e-mails com um CopyRank alto
podero ser classificados como spam. A grid funciona com um plugin instalado no MUA
(Mail User Agent), que se conecta com o servidor mais prximo da grid toda vez que
recebe um e-mail. O cliente encaminha um checksum do e-mail recebido, e com base nele
o servidor atribui um CopyRank. Alm do CopyRank, o filtro bayesiano faz uma anlise
que indica se o e-mail ou no spam. Os servidores trabalham de forma cooperada para
manter uma tabela de CopyRanks.
Alm de propostas como a que foi apresentada por Liu et al., utilizando
reconhecimento de padres, uma base de reputao e grid computacional, h outras
Livro-texto de Minicursos
168
c
2015
SBC Soc. Bras. de Computao
Vantagens
Desvantagens
IP de origem da mensagem
substitudo.
Impe dificuldade de gerenciamento
em servidores com grande fluxo de emails.
Filtros baseados em til em casos em que o classificador Uso deve ser feito com cautela, a fim
palavras-chave
falha em classificar um determinado
de evitar o bloqueio indevido de
spam de e-mail.
mensagens.
Sua
eficincia
pode
ser Uso da tcnica deve ser considerado
potencializada com o uso de
somente em ltimo caso ou de
expresses regulares.
maneira paliativa.
Livro-texto de Minicursos
169
c
2015
SBC Soc. Bras. de Computao
Tcnica
Vantagens
Desvantagens
Greylisting
SPF
de e-mail.
um registro SPF.
Frequente ausncia de registros SPF
publicados no DNS.
Livro-texto de Minicursos
170
c
2015
SBC Soc. Bras. de Computao
171
c
2015
SBC Soc. Bras. de Computao
172
c
2015
SBC Soc. Bras. de Computao
ser enganadas quando utilizado um domnio muito parecido com o legtimo (e.g.
playpal.com em vez de paypal.com).
O bloqueio por palavras-chave, assim como no envio com tratamento de erros, s
ter utilidade aps o conhecimento do contedo da mensagem, normalmente depois que
o MTA de destino j recebeu boa quantidade do spam. Neste caso, entretanto, a gravidade
bem maior pois pode se tratar de uma ameaa como o phishing.
d) Envio atravs de botnets
O envio atravs de botnets tem muitas semelhanas com o mecanismo simples de
envio, porm, com um agravante o bloqueio por blacklists se torna ainda menos eficiente
visto que a origem das mensagens pode mudar mais ainda. Isto acontece porque uma
botnet uma rede de grande escalabilidade, formada por computadores comprometidos
de usurios espalhados pela Internet. O bloqueio por palavras-chave s ter utilidade aps
o conhecimento do contedo da mensagem, aps muito contedo spam ter sido recebido.
Por outro lado, a tcnica greylisting muito eficiente contra esse tipo de spam, visto que
os mecanismos de envio utilizados pelos spammers possuem as mesmas caractersticas
dos mecanismos simples de envio, ou seja, no tratam o reenvio da mensagem.
O uso de assinaturas digitais e SPF pode possuir boa eficincia contra este tipo de
envio, que caracterstico de mensagens como o phishing, onde o spammer encaminha
seus e-mails fraudulentos atravs de computadores comprometidos que esto espalhados
pela Internet, com o objetivo de dificultar a sua localizao.
e) Envio atravs de open relays
Quando se trata de spam enviado atravs de open relays, o uso de blacklists se
torna complicado pois o bloqueio de um IP do MTA de origem pode ocasionar tambm o
bloqueio de todas as mensagens de uma organizao confivel. O bloqueio de palavraschave, como de costume, possui pouca eficincia se utilizada isoladamente e s dever
ser considerado quando todas as outras tcnicas falharem. O greylisting ter pouca
eficincia visto que a open relay, que um servidor que normalmente pertence a uma
organizao confivel, normalmente capaz de reenviar a mensagem aps uma recusa
inicial. O SPF e a assinatura digital s tero utilidade nos casos j previstos anteriormente,
quando h a substituio de remetente e todos os pares da comunicao utilizam tais
recursos.
f) Insero proposital de palavras em mensagens de e-mail
Quando o spammer utiliza recursos textuais para enganar os classificadores de emails, normalmente o envio das mensagens mal-intencionado. Ou seja, no se trata de
um spam que permite que o usurio opte por no receber ou de uma simples divulgao
com fins publicitrios, feita por uma organizao confivel. Nesse caso, a tcnica de spam
baseada no contedo dificilmente utiliza somente recursos textuais ou visuais, podendo
vir acompanhada de alguma caracterstica que permita a variao do endereo de origem
da mensagem, a fim de dificultar ainda mais a sua deteco. Assim, o uso de blacklists
passa a ser pouco eficiente em quase todos os casos em que o spammer explora os
recursos disponveis no corpo da mensagem. O bloqueio por palavras-chave s ter
utilidade aps o recebimento (conhecimento) do contedo da mensagem.
As tcnicas baseadas em deteco de imagem so totalmente ineficientes contra
este tipo de tcnica, visto que neste caso o spammer usa subterfgios tcnicos para burlar
os mecanismos antispam, usando aspectos textuais da mensagem. J as tcnicas de
reconhecimento de padres com foco no texto da mensagem passam a perder sua
eficincia quando este tipo de tcnica utilizado.
Livro-texto de Minicursos
173
c
2015
SBC Soc. Bras. de Computao
Livro-texto de Minicursos
174
c
2015
SBC Soc. Bras. de Computao
k) E-mail marketing
O e-mail marketing um tipo de spam muito complicado de classificar. Porque
normalmente originado em servidores MTA de organizaes confiveis com fins
publicitrios (que normalmente no mudam de endereo com frequncia ou tentam
esconder a sua localizao); o uso de blacklists pode ser um pouco mais eficiente contra
esse tipo de e-mail. Porm, alguns usurios podem ter interesse em receber os e-mails de
algumas organizaes (e.g. sites de e-commerce) e o uso de blacklists deve ser
considerado em ltimo caso.
O bloqueio por palavras-chave passa a ser totalmente ineficiente, pois h o
agravante de determinadas palavras presentes em algum spam especfico tambm estarem
presentes em um e-mail publicitrio, que do interesse dos usurios, causando o bloqueio
indevido da mensagem. Tcnicas baseadas na autenticao da mensagem (SPF,
greylisting e assinaturas digitais) so pouco eficientes, j que so recursos que tambm
podem ser utilizados pelo spammer.
As tcnicas baseadas em reconhecimento de padres, especificamente aquelas
baseadas nas caractersticas textuais, costumam ter bons resultados na classificao dos
e-mails. H ferramentas que conseguem, inclusive, classificar boa parte dos e-mails em
trs categorias: no-spam, spam, e e-mail marketing, deixando a deciso quanto aos emails desta ltima categoria a critrio do usurio final. Tcnicas baseadas em redes sociais
tambm podem ser de grande utilidade, j que essas redes podem fornecer informaes
sobre os assuntos de interesse do usurio.
Tabela 4.5. Resumo da relao ente TD e TA.
Blacklists
Palavras-chave
Greyliisting
SPF
Assinatura Digital
Reconhecimento de
Padres
Redes Sociais
Spam de Imagem
1.
Mecanismo
simples de
envio
2. Envio
com
tratamento
de erros
3.
Substituio
de
remetente
4. Envio
atravs de
botnets
5. Envio
atravs de
open relays
TA
TD
Livro-texto de Minicursos
175
c
2015
SBC Soc. Bras. de Computao
Blacklists
Palavraschave
Greyliisting
SPF
Assinatura
Digital
Reconhecime
nto de
Padres
Redes Sociais
Spam de
Imagem
6. Insero
proposital
de
palavras
7. Troca ou
insero de
caracteres
8.
Contedo
falso
9. Uso de
imagens
10. Uso de
recursos
HTML
TA
TD
11. E-mail
marketing
176
c
2015
SBC Soc. Bras. de Computao
por terceiros (e no somente pelo MTA de destino), podem ser teis quando todos os pares
da comunicao utilizam a tcnica.
Para as tcnicas baseadas em informaes extradas de redes sociais, abordagem
muito recente e ainda com poucas evidncias de sucesso, a avaliao foi considerada
pouco eficiente em quase todos os casos, exceto para o item 11 da tabela (e-mail
marketing), visto que as informaes obtidas nessas redes podem dizer muito a respeito
dos assuntos de interesse do usurio.
A anlise das tcnicas baseadas em reconhecimento de padres a que deve ser
interpretada com mais cautela. Apesar de ter sido classificada como muito eficiente
somente em um dos casos, ainda a mais utilizada e uma das mais eficientes na deteco
de spam, com inmeras possibilidades de aplicao ainda no exploradas dentro do
problema em questo. Ou seja, suas tcnicas esto entre as mais eficientes para a deteco
do spam em geral, apresentando uma ampla gama de possibilidades de tcnicas que ainda
podem ser aplicadas para mitigar o problema. Ao analisar os scores atribudos em cada
avaliao, deve-se considerar que a TD foi avaliada em relao a TA que especificamente
visam violar tcnicas baseadas em reconhecimento de padres.
Enfim, o uso das tcnicas antispam no deve ser de executada de maneira isolada.
Ou seja, necessrio que haja uma combinao de tcnicas para que o problema seja
mitigado da melhor maneira possvel. Essa combinao pode ser feita para atender
alguma necessidade especfica, otimizando os resultados da classificao dos e-mails, ou
ainda para adequar o ambiente de deteco a capacidade computacional do servidor de emails.
4.6. Concluses
O envio indiscriminado de mensagens sem o consentimento de seus destinatrios,
prtica conhecida como spam, um problema que ainda est longe de ser solucionado,
apesar do e-mail estar presente na vida da maioria das pessoas atualmente. Alm do
aborrecimento dos usurios, o spam pode causar problemas como a gerao de custo
computacional adicional e despesas com tecnologia e infraestrutura para a deteco desse
contedo. Aps a criao de novas tcnicas para a deteco de spam, os spammers
costumam desenvolver novas artimanhas para burlar os mecanismos de classificao dos
e-mails, gerando uma situao de competio que parece no ter fim.
Este captulo apresentou a anlise das tcnicas antispam sob uma nova
perspectiva. Primeiramente foram apresentadas as principais tcnicas utilizadas na
disseminao de spam de e-mail. Em seguida foram apresentadas as principais tcnicas
de deteco existentes na literatura. Com este conhecimento j foi possvel avaliar a
eficincia de cada tcnica antispam que foi apresentada. Por ltimo, foram apresentados
alguns aspectos relacionados a cada tcnica utilizada pelos spammers e a eficincia das
abordagens para combat-las. Para cada tcnica de deteco de spam foi atribudo uma
nota (score) que representa a sua eficincia em relao a um tipo especfico de tcnica de
disseminao de spam.
A anlise realizada apresentou diversos resultados interessantes. Por exemplo,
ficou evidente que nenhuma tcnica antispam eficiente sozinha, pois sempre haver
situaes que levaro falha. As tcnicas baseadas em reconhecimento de padres,
observadas nas ferramentas antispam, so o alvo comum de ataque dos spammers devido
ao seu uso e eficincia.
Livro-texto de Minicursos
177
c
2015
SBC Soc. Bras. de Computao
4.7. Referncias
[1] Klensin, J. RFC 2821 - Simple Mail Transfer Protocol, disponvel em:
<http://www.ietf.org/rfc/rfc2821.txt>. Acessado em: 29/09/2015.
[2] Olivo, C. K.; Santin, A. O.; Oliveira, L. S. Obtaining the Threat Model for E-mail
Phishing. em: Applied Soft Computing, vol. 13, issue 12, p.4841-4848. 2013.
[3] Kleiner, K. Happy Spamyversary! Spam Reaches 30, disponvel em:
<http://www.newscientist.com/article/dn13777-happy-spamiversary-spam-reaches30.html>. Acessado em: 29/09/2015.
[4] Hoanca, B. How good are our weapons in the spam wars?, em: IEEE Technology
and Society Magazine, vol. 25, Issue 1, p.22-30. 2006.
[5] Whitworth, B.; Whitworth, E. Spam and the social technical gap, em: IEEE
Computer, vol. 37, Issue 10, p.38-45. 2004.
[6]
Symantec
January
2011
Intelligence
Report,
disponvel
em:
<http://www.messagelabs.com/mlireport/MLI_2011_01_January_Final_en_us.pdf>.
Acessado em junho de 2012.
[7]
Symantec
May
2013
Intelligence
Report,
disponvel
<http://www.symantec.com/content/en/us/enterprise/other_resources/bintelligence_report_05-2013.en-us.pdf>. Acessado em: 29/09/2015.
em:
[8] Symantec Symantec Internet Security Threat Report volume 19, disponvel em:
<www.symantec.com/content/en/us/enterprise/other_resources/bistr_main_report_v19_21291018.en-us.pdf>. Acessado em 29/09/2015.
[9]
[10] Li, P.; Yan, H.; Cui, G.; Du, Y. Integration of Local and Global Features for Image
Spam Filtering, em: Journal of Computational Information Systems, vol. 8, p.779789. 2012.
[11] The New York Times, Spam Doubles, Finding New Ways to Deliver Itself,
disponvel em: <http://www.nytimes.com/2006/12/06/technology/06spam.html>.
Acessado em: 29/09/2015.
[12] There are 600,426,974,379,824,381,952 ways to spell Viagra, disponvel em:
<http://cockeyed.com/lessons/viagra/viagra.html>. Acessado em: 30/09/2015.
[13] Olivo, C. K.; Santin, A. O.; Oliveira, L. E. S. Avaliao de Caractersticas para
Deteco de Phishing de E-mail, Pontifcia Universidade Catlica do Paran, Curitiba
PR, Brasil. 2010.
[14] Damiani, E.; Vimercati, S.; Paraboschi, S.; Samarati, P. P2P-based collaborative
spam detection and filtering, em: Proceedings of the Fourth International Conference
on Peer-to-Peer Computing, IEEE, p. 176-183. 2004.
[15] Dimmock, N.; Maddison, I., Peer-to-peer collaborative spam detection, em: ACM
Crossroads Magazine, vol. 11, issue 2, p. 4-4. 2004.
[16] Liu, Q.; Qin, Z.; Cheng, H.; Wan, M., Efficient Modeling of Spam Images, em:
2010 Third International Symposium on Intelligent Information Technology and
Security Informatics, IEEE, p. 663-666. 2010.
[17] Soranamageswari, M.; Meena, C., A Novel Approach Towards Image Spam
Detection, em: International Journal of Computer Theory and Engineering, vol. 3, p.
84-88. 2011.
Livro-texto de Minicursos
178
c
2015
SBC Soc. Bras. de Computao
[18] Xu, C.; Chiew, K.; Chen, Y.; Liu, J. , Fusion of Text and Image Features: A New
Approach to Image Spam Filtering, em: Practical Applications of Intelligent Systems,
Advances in Intelligent and Soft Computing, Springer, vol. 124, p. 129-140. 2012.
[19] Gao, Y.; Yang, M.; Zhao, X.; Pardo, B. Wu, Y.; Pappas, T.N.; Choudhary, A., Image
Spam Hunter, em: International Conference on Acoustics, Speech and Signal
Processing, IEEE, p. 1765-1768. 2008.
[20] Biggio, B.; Fumera, G.; Pillai, I.; Roli, F., Image Spam Filtering Using Visual
Information, em: 14th International Conference on Image Analysis and Processing,
IEEE, p. 105-110. 2007.
[21] Biggio, B.; Fumera, G.; Pillai, I.; Roli, , Image spam filtering by content obscuring
detection, em: Fourth conference on e-mail and antispam. 2007.
[22] Caruana, G.; Li, M., "A survey of emerging approaches to spam filtering", em: ACM
Computing Surveys (CSUR), vol. 44, Issue 2. 2012.
[23] Gansterer, W.; Ilger, M.; Lechner, P.; Neumayer, R.; Straub, J., "Anti-Spam Methods
State-of-the-Art", disponvel em: <security.taa.univie.ac.at/files/FA384018-1.pdf>.
Acessado em 30/09/2015.
[24] Blanzieri, E.; Bryl, A., "A survey of learning-based techniques of email spam
filtering", em: Journal Artificial Intelligence Review, vol. 29, Issue 1, p. 63-92. 2008.
[25] Goodman, J.; Cormack, G.; Heckerman, D. "Spam and the ongoing battle for the
inbox", em: Communications of the ACM, vol. 50, Issue 2, p. 24-33. 2007.
[26] Wang, X.; Cloete, I., "Learning to classify email: a survey", em: Proceedings of the
Fourth Conference on Machine Learning and Cybernetics, vol. 9, p.5716-5719.
[27] The Postfix Home Page, disponvel em: <http://www.postfix.org/>. Acessado em
30/09/2015.
[28] Bernstein, D. qmail: Second Most Popular MTA on the Internet, disponvel em:
<http://qmail.linorg.usp.br/top.html>. Acessado em 30/09/2015.
[29] Secure Enterprise Email Solutions for Business | Exchange, disponvel em:
<https://products.office.com/pt-br/exchange/email>. Acessado em 30/09/2015.
[30] Thunderbird Software Made to Make E-mail Easier, disponvel em:
<https://www.mozilla.org/pt-BR/thunderbird/>. Acessado em 30/09/2015.
[31] Software de E-mail e Calendrio Microsoft Outlook, disponvel em:
<https://products.office.com/pt-br/outlook/email-and-calendar-software-microsoftoutlook>. Acessado em 30/09/2015.
[32] Crispin, M. RFC 3501 Internet Message Access Protocol Version 4rev1,
disponvel em: <https://tools.ietf.org/rfc/rfc3501.txt>. Acessado em 30/09/2015.
[33] Myers, J.; Rose, M. RFC 1939 Post Office Protocol Version 3, disponvel em:
<https://www.ietf.org/rfc/rfc1939.txt>. Acessado em 30/09/2015.
[34] Freed, N.; Borenstein, I., RFC 2045 - Multipurpose Internet Mail Extensions
(MIME) Part One: Format of Internet Message Bodies, disponvel em:
<http://tools.ietf.org/rfc/rfc2045.txt>. Acessado em 30/09/2015.
[35] Crocker, D. RFC 882 Standard for the Format of ARPA Internet Text Messages,
disponvel em: <http://tools.ietf.org/rfc/rfc822.txt>. Acessado em 30/09/2015.
[36] Vaudreuil, G. RFC 3463 Enhaced Mail System Status Codes, disponvel em:
<https://tools.ietf.org/rfc/rfc3463.txt>. Acessado em 30/09/2015.
Livro-texto de Minicursos
179
c
2015
SBC Soc. Bras. de Computao
[37] Cdigo Penal Brasileiro, Ttulo II, Cap. VI, Art. 171, disponvel em:
<http://www.planalto.gov.br/ccivil_03/Decreto-Lei/Del2848.htm>. Acessado em
30/09/2015.
[38] Wang, P.; Sparks, S.; Zou, C. An Advanced Hybrid Peer-to-Peer Botnet, em: IEEE
Transactions on Dependable And Secure Computing, vol. 7, n 2. 2010.
[39] Bianchi, N. M., The Return of the Open Relays, disponvel em:
<http://www.spamhaus.org/news/article/706/the-return-of-the-open-relays>.
Acessado em: 30/09/2015.
[40] Duda, R.; Hart, P.; Stork D., Pattern Classification, 2 edio, Wiley-Interscience.
2000.
[41] The Unicode Standard Technical Introduction, disponvel
<http://www.unicode.org/standard/principles.html>. Acessado em 30/09/2015.
em:
[42] Liu, C.; Stamm, S. Fighting Unicode-Obfuscated Spam, em: Proceedings of the
Anti-Phishing Working Group - 2nd Annual eCrime Researchers Summit, p. 45-59,
ACM. 2007.
[43] SpamAssassin The #1 Enterprise Open-Source Spam Filter, disponvel em:
<http://spamassassin.apache.org/>. Acessado em 24/09/2015.
[44] Jargas, A. M. Shell Script Profissional, 1 edio, Editora Novatec LTDA. 2008.
[45] Harrys, E. The Next Step in Spam Control War: Greylisting, disponvel em:
<http://projects.puremagic.com/greylisting/whitepaper.html>.
Acessado
em:
30/09/2015.
[46] Sender Policy Framework, disponvel em: <http://www.openspf.org/>. Acessado
em: 30/09/2015.
[47] Levine, J. R. Experiences with Greylisting, em: Second Conference on e-mail and
Anti-Spam. 2005.
[48] Allman, E.; Callas, J.; Delany, M.; Libbey, M.; Fenton, J.; Thomas, M., RFC 4871
- DomainKeys Identified Mail (DKIM) Signatures, disponvel em: <http://www.rfceditor.org/rfc/rfc4871.txt>. Acessado em: 30/09/2015.
[49] Antispam.br, Domain Keys Identified Mail (DKIM), disponvel em:
<http://antispam.br/admin/dkim/>. Acessado em 30/09/2015.
[50] Hansen, T.; Crocker, D.; Hallam-Baker, P. RFC 5585 - DomainKeys Identified Mail
(DKIM) Service Overview, disponvel em: <http://tools.ietf.org/rfc/rfc5585.txt>.
Acessado em 30/09/2015.
[51] Linn, J. Privacy Enhancement for Internet Electronic Mail, disponvel em:
<https://tools.ietf.org/rfc/rfc989.txt>. Acessado em 30/09/2015.
[52] Callas, J.; Donnerhacke, L.; Finney, H.; Shaw, D.; Thayer, R. RFC 4880 - OpenPGP
Message Format, disponvel em: <https://tools.ietf.org/rfc/rfc4880.txt>. Acessado
em 30/09/2015.
[53] Crocker, S.; Freed, N.; Galvin, J.; Murphy, S., RFC 1848 - MIME Object Security
Services, disponvel em: <https://tools.ietf.org/rfc/rfc1848.txt>. Acessado em
30/09/2015.
[54] Ramsdell, B., RFC 3851 - Secure/Multipurpose Internet Mail Extensions (S/MIME)
Version
3.1
Message
Specification,
disponvel
em:
<https://tools.ietf.org/rfc/rfc3851.txt>. Acessado em 30/09/2015.
[55] Bishop, C. Pattern Recognition and Machine Learning, 1 edio, Springer. 2007.
Livro-texto de Minicursos
180
c
2015
SBC Soc. Bras. de Computao
[56] Karthika, D.; Hamsapriya, T.; Raja, M.; Lakshmi, P. Spam Classification Based on
Supervised Learning Using Machine Learning Techniques, em: International
Conference on Process Automation, Control and Computing (PACC), IEEE, p. 1-7.
2011.
[57] Schneider, K. A comparison of event models for Naive Bayes anti-spam e-mail
filtering, em: Proceedings of the tenth conference on European chapter of the
Association for Computational Linguistics - Volume 1, ACM, p. 307-314. 2003.
[58] Androutsopoulos, I.; Paliouras, G.; Michelakis, E. Learning to Filter Unsolicited
Commercial E-Mail, em: NCSR Demokritos Technical Report, n 2004/2,
disponvel em: <http://nlp.cs.aueb.gr/pubs/TR2004_updated.pdf>. Acessado em:
30/09/2015.
[59] Chen, C.; Tian, Y.; Zhang, C. Spam Filtering with Several Novel Bayesian
Classifiers, em: 19th International Conference on Pattern Recognition, IEEE, p. 1-4.
2008.
[60] Frank, E; Hall, M.; Pfahringer, B. Locally Weighted Naive Bayes, em: Proceedings
of the Nineteenth conference on Uncertainty in Artificial Intelligence, ACM, p. 249256. 2002.
[61] Zhang, H; Jiang, L.; Su, J. Hidden Naive Bayes, em: Proceedings of the 20th
national conference on Artificial intelligence - Volume 2, ACM, p. 919-914. 2005.
[62] Webb, G.; Boughton, J.; Wang, Z. Not so Naive Bayes: Aggregating OneDependence Estimators, em: Machine Learning, vol. 58, issue 1, p.5-24. 2005.
[63] Drucker, H.; Wu, S.; Vapnik, V. N. Support Vector Machines for Spam
Categorization, em: IEEE Transactions on Neural Networks, vol. 10, issue 5, p. 10481054. 1999.
[64] Ma, W.; Tran, D.; Sharma, D. A Novel Spam e-mail Detection System Based on
Negative Selection, em: Fourth International Converence on Computer Science and
Convergence Information Technology, IEEE, p. 987-992. 2009.
[65] Blum, A.; Mitchell, T. Combining labeled and unlabeled data with co-training, em:
Proceedings of the Eleventh Annual Conference on Computational Learning Theory,
ACM, p.92-100. 1998.
[66] Kiritchenko, S.; Matwin, S. E-mail Classification with Co-training, em:
Proceedings of the 2001 Conference of the Centre for Advanced Studies on
Collaborative Research, IBM Press, p. 8. 2001.
[67] Braga, I.; Ladeira, M. Um modelo adaptativo para a filtragem de spam, em: VI
Encontro Nacional de Inteligncia Artificial, Rio de Janeiro RJ, Anais do XXVII
Congresso da Sociedade Brasileira de Computao, p. 1381-1390. 2007.
[68] Zhou, Y.; Mulekar, M.; Nerellapalli, P. Adaptive Spam Filtering Using Dynamic
Feature Space, em: 17th IEEE International Conference on Tools with Artificial
Intelligence. 2005.
[69] Bratko, A.; Filipi, B. Spam Filtering using Character-level Markov Models:
Experiments for the TREC 2005 Spam Track, em: Proceedings of the 14th Text
Retrieval Conference. 2005.
[70] Chhabra, S.; Yerazunis, W.; Siefkes, C. Spam Filtering Using a Markov Random
Field Model with Variable Weighting Shcemas, em: Fourth IEEE International
Conference on Data Mining, p. 347-350. 2004.
Livro-texto de Minicursos
181
c
2015
SBC Soc. Bras. de Computao
[71] Ndumiyana, D.; Sakala, L. Hidden Markov Models and Artificial Neural Networks
for Spam Detection, em: International Journal of Engineering Research &
Technology, vol. 2, issue 4. 2013.
[72] Bratko, A.; Cormack, G.; Filipi, B.; Lynam, T.; Zupan, B. Spam Filtering Using
Statistical Data Compression Models, em: Journal of Machine Learning Research,
vol. 7, p. 2673-2698. 2006.
[73] Lee, H.; Ng, A. Spam Deobfuscation Using a Hidden Markov Model, em: Second
Conference on Email and Anti-Spam. 2005.
[74] Lee, S.; Jeong, I.; Choi, S. Dynamically Weighted Hidden Markov Model for Spam
Deobfuscation, em: Proceedings of the 20th International Joint Conference on
Artificial Intelligence, p. 2523-2529, Morgan Kaufmann Publishers Inc. 2007.
[75] Sculley, D.; Wachman, G.; Brodley, C., Spam Filtering Using Inexact String
Matching in Explicit Feature Space with On-line Linear Classifiers, em: Proceedings
of the 15th Text Retrieval Conference. 2006.
[76] Kiran, R. S. S.; Atmosukarto, I. Spam or Not Spam That is the Question, em:
Technical Report, University of Washington. 2005.
[77] Guzella, T.; Caminhas, W. A Review of Machine Learning Approaches to Spam
Filtering, em: Expert Systems with Applications, Elsevier, vol. 36, issue 7, p.1020610222. 2009.
[78] Nelson, B.; Rubinstein, B.; Huang, L.; Joseph, A.; Tygar, J. Classifier Evasion:
Models and Open Problems, em: Privacy and Security Issues in Data Mining and
Machine Learning, vol. 6549, Lecture Notes in Computer Science, p. 92-98, Springer.
2011.
[79] Barreno, M.; Nelson, B.; Sears R.; Joseph, A.; Tygar, J. Can Machine Learning be
Secure?, em: Proceedings of the 2006 ACM Symposium on Information, Computer
and Communications Security, p. 16-25. 2006.
[80] Li, Z.; Shen, H. SOAP: A Social Network Aided Personalized and Effective Spam
Filter to Clean Your E-mail Box, em: IEEE INFOCOM, p. 1835-1843. 2011.
[81] Chirita, P.; Diederich, J.; Nejdl, W. MailRank: Using Ranking for Spam Detection,
em: Proceedings of the 14th ACM International Conference on Information and
Knowledge Management, p. 373-380. 2005.
[82] Brown, G.; Howe, T.; Ihbe, M.; Prakash, A.; Borders, K. Social Network and
Context Aware Spam, em: Proceedings of the 2008 ACM Conference on Computer
Supported Cooperative Work, p. 403-412. 2008.
[83] Liu, P.; Chen, G.; Ye, L.; Zhong, W. Anti-spam grid: a dynamically organized spam
filtering infrastructure, em: Proceedings of the 5th WSEAS International Conference
On Simulation, Modeling And Optimization, p. 61-66. 2005.
[84] Chen, J. e Guo, C. Online Detection and Prevention of Phishing Attacks, em:
Communications and Networking in China, p.19-21. 2006.
[85] Cook, D., Gurbani, V. e Daniluk, M. Phishwish: A Stateless Phishing Filter Using
Minimal Rules, em: Lecture Notes in Computer Science, p.182-186. 2008.
[86] Fette, I., Sadeh, N. e Tomasic, A. Learning to Detect Phishing emails, em:
International World Wide Web Conference, p.649-656. 2007.
[87] M. Chandrasekaran, K. Narayanan, S. Upadhyaya Phishing email Detection Based
on Structural Properties, em: Cyber Security Symposium. 2006.
Livro-texto de Minicursos
182
c
2015
SBC Soc. Bras. de Computao