Buscar

Tanenbaum capitulo 9

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 41 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 41 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 41 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

9 
O tíhimo princípio de sislemas dislribuídos que dis-
<:uliremos é a segurança. Esse princípio não é. de modo 
nenhum. o menos impor1an1e. entretamo 1>0derfamos 
argumentar que é um dos mais difíceis. porque a segu-
rança precisa estar pre.senie cm todo o sisterna. Uma tínica 
falha de projeto cm relação à segurança pode inu1ili1 .. ar 
todas as outras medidas de segurança. Neste capítulo. 
focal izaremos os vários mocanismos que. de modo geral. 
são incorporados em sistemas distribuídos para suponar 
segu rança. 
Começaremos com a apresentação de questões bási-
cas d e segurança. Na realidade, não faz sentido construir 
todo~ os tipos de mecanismos de segurança em um sis~ 
tema. a menos c.]tle se saiba corno esses mecanismos 
devem ser usados e con1ra o quê. Isso requer que co-
nheçamos a 1>0lftica de segurança que-deve ser imposta. 
Em primeiro lugar, d iscutiremos a noção de uma política 
de segurança junto com algumas questões ,gerais de pro• 
jeto pàrà mcc:.lnismos que ájudam a impor cais políticas. 
Também comemarcmos um pouco sobre ;:i criptografia 
necessária. 
A segumnç.a em sis1emas dis tribuídos pode ser divi-
dida em duas partes. Uma pa11e traia da comunic.ação 
cn1re usuários ou processos. que possivelmente residem 
ém máquinas diferentes. O principal mecanismo para 
garantir comunicação segura é o uso de um canal seguro. 
Canais seguros e. mais especifica,nente. autenticação. 
integridade de mensagens e confidencialidade serão dis• 
cutidos em uma seção eSJ)l."CÍfic.a. 
A outra parte diz respeito à autorização, que trata de 
assegurar que um processo receba somente os direitos de 
acesso a recursos de um sistema distribuído aos quais est;\ 
habilitado. Auwrização será discutida ern uma seção 
específica que iram de controle de acesso. Além dos 
mecanismos de controle de acess.o tradicionais, também 
focalizaremos o controle de acesso <1uando !lemos de lidar 
com código móvel aais como agentes. 
Canais seguros e controle de acesso requerem 
mecanismos para distribui!' chaves criptog1•áficas. mas 
1ambém mecanismos para adicion:.r e remover usuários 
de um sistema. Es.ses tópicos são abrangidos pelo que é 
conhecido como gerenciamento da seguràJ1ça. Em uma 
seção específica. discutiremos questões que tratam do 
gerenciamento de c haves criptográficas, gerenciamento 
de gru1>0 seguro e distribuição de cenificados que provam 
que o proprietário es1á habilitado a acessar os recursos 
especificados. 
9.1 Introdução ã Segurança 
Começaremos nossa descrição de segurança em sis-
tcrnas dis tribuídos examinando a lgumas questões gel'a.is 
de segurança. Em primeiro lugar. é necessário definir o 
que é um sistema seguro. Distinguiremos polllicas de 
segurança de mecanismos de segurança e estudaremos o 
sistema Globus par-.1 redes de longa distância. para o qual 
foí cxplícíiumcn1c formulada uma polílíca de segurança. 
Nossa segunda preocupação é considerar algumas 
questões gemis de projeto para sistemas seguros. Por fim. 
discutiremos brevemente alguns algoritmos criptográfi• 
cos que desempenham papel fundamental no projeto de 
protocolos de segurança. 
9.1.1 Rmeaças a segurança. políticas e mecanismos 
A segurança em um sistema de co,nputação est,1 
fonememe relacionada com a noção de contiabilidade. 
Informalmente. um sistema de computação confiável é 
âquélé que j usüfica ríOSSa éOnfiançâ de que érilrégárá séus 
serviços (Lapric. 19<)5). Como mencionamos no Capítulo 7. 
conli abilidadc inclui dispo nibilidade. íidedig nidacle, 
segurança e capacidade de manutenção. Contudo. se é 
para confiarmos C.lll! um sislema de computação. também 
precisamos levar e111 conta a confidenc ialidade e a inte• 
gridadc. Confidencialidade se refere à propriedade de 
um sis1ema de computação por meio da qual suas infor-
mações sao reveladas apenas a partes au1oriz.adas. 
Integridade é a carracterística pela qual alterações rc.ali-
1.adas em ativos de um sistema só podem ser feitas com 
autori:,.ação. Em outras palavras, a lterações impróprias 
cm um sistema de <:amputação seguro devem ser dctec• 
1ávcis e re<:uJ>Crávei:S. Ativos importantes de qualquer sis-
tema de computação são seu hardware. soflwarc e dados. 
Uma ou1ra maneira de ver a segurança em sistemas 
de computaç.ão é na situação em que tentamos proteger QS 
Anderson
Realce
Anderson
Realce
s.erviços e dados que ele oferece contra ameaças a segu-
rança. Há quatro lipos de ameaças a segurança a consi-
der.\r (Pílecger, 2003): 
l. Interceptação 
2. Jntcrrupç.ão 
3. Modiric:,çào 
4. Invenção 
O conc..-eito de intercepraç,io refere-se à situação cm 
que uma parte não :lutorizada conscg,uiu acesso a um 
serviço ou a dados. Um exemplo típico de interceptação é 
o caso cm que a comunicação entre duas paJ1es é ouvida 
I>0r alsuém mais. A interceptaç-ào 1ambém ocorre quando 
dados são copiados i1cgalmentc. 1>0r cxem1>lo, após invadir 
o diretório privado de alguém cm um sistema de arquivo. 
Um exemplo de imerrupç,io é o caso cm que un1 
arquivo é corrompido ou _perdido. De modo mais geral. a 
intcl'rupção se refere à siluJção na qual serviços ou dados 
ficam indisponíveis. São im.niliwdost destruídos e assim 
por diante. Nesse sentido. ataques de recusa de serviço, 
pelos quais alguém mal--íntcncionado tenta fazer com que 
um serviço fique inace.~sívcl a outrtl!s partes. é uma 
a1neaça a segurança classificada corno i·ntcrrupção. 
M()d(/ica(:ile.t envolvem alteração não autorizada de 
dados ou interferir c.om um serviço de ~nodo que ele não 
siga mais suas especificações originais . Entre os exem-
plos de modificações estão interceptar e. na seqüência, 
a.Iterar dados 1.ransrnitidos. interferir com entradas de ban-
cos de dados e aherar un1 programa de m.odo que de re-
gisn·e secretamente as atividade-s de seu usuádo. 
lm·enç<it> refere-se à situação na ,qual são gerados 
dados ou atividades adicionais que nonnalmente não exis• 
tiriam. Por exemplo. um intmso pode tentar adicionar 
mna entrada a um arquivo de senhas ou a um banco de 
dados. Da mesma maneira. às vezes é possível invadir um 
sistema com reprodução de ,nensagens enviadas ames. 
Veremos esses exemplos mais adiante neste capítulo. 
Observe que interrupção. modificação e invenção 
()O(lem ser vistas como modos de falsific-ação de dados. 
Apenas declarar que uir1 sis1crna deve ser capaz de se 
proteger comra todas as possíveis ameaças a segurança 
1\ão basrn para construir um sistema seguro. 1\mes de mais 
l}ada. precisamos de uma descrição de requisi10~ de segu-
rança. isto é. de um:, política de segurança. Uma política 
d e segurtmça descreve com exatidão quais ações as enti• 
dades de um sistema têm pennissào de realizar e quais 
s.ào proibidas. Emidades incluem us uários. serviços. 
dados. máquinas etc. Uma ve-t estabelecida a polf1ica de 
s,e.gunmça. torna•se-possível focalizar os mecanismos de 
s-egurança pelos quais uma polÍli<:a pode ser imposta. 
Importantes mecanismos de segurança são: 
1. Criptografia 
e. Autenticação 
3. Autorização 
i . Auditoria 
Capílulo 9 Segurança 229 
Crti>109rafi,1 é fundamental para a segurança de com-
putadores. A cri ptografia transforma dados cm algo que 
um atacante não possa entender. Em outras palavras. a 
criptografia proporciona um meio de implcnicnlar a confi~ 
dcncialidadc de dados e. além disso. nos permite verificar 
se os dados foram modificados. Por isso. a t::dptograíia 
rambém fornece suporte para verificações de integridade. 
Ame111icl1ç.ão é u~ada para verificar a identidade decla• 
rctda de um us.u(frio, cliente, .servidor. hospt.-dciro <)u outrJ 
entidade. No caso de clientes. a prcinjssa b{isic-a é que. an1cs 
de começar a realizar <1ualqucr trabalho em nome de um 
clienle~. um scl'viço tem de conhecer a identidade desse 
cliente (a menos que o serviço esteja disponível para todos). 
Senhas são o mc.xlo típico de identificar usuários, mas h,t 
muitos outro~ modos de autenticar clientes. 
Depois que: um cliente foi aulcnticado. é 1\C<:éS..liádo 
\'Cri ficar se cfc c:stá maori;zad(, a executar a aç~o requi si-
lada.Acesso a registros em um bane.o de dados lllédicos é 
urn exemplo típico. Dependendo de quem acessa o ban,co 
de dad<.>s. o si&tema pode dar permi~.são par.1 ler registros, 
modificar certo.s. campos de um registro ou adicionar ou 
remover um registro. 
Ferramentas de muliu>rü, são utilizadas para rastrear 
quais clie-0tes 3(..."'Cssaram o que e de que modo. Embora ua 
verdade a auditoria não proporcione nenhuma proteç..ã.o 
contra ameaças a segurança.. os registros de auditoria 
púdcm ser de extrema utilidade parJ a análise de uma 
falha de segurança e, na seqUéncia. para tomar providên-
das contra invasores. Por essa razão, de modo geral, os 
arncante.5 tomam muiw cuidado para 11ào deixar nenhuma 
pista que possa eventualmente resultar na exposição de 
sua identidade. Ne!ise sentido. registrar acessos toma os 
ataques um negócio um pouco mais arriscado. 
Exemplo: arquilehma de segurança 61obus 
Muitas vezes é melhor explicar a noç-fio de política 
de segurança e o papel que mecanismos de .segurança 
desernpcnhmn em sistemas distribuídos para impor po1m .. 
c:1s examinando um exern1>lo concrelô. Considere a 
política de segurança definida paro o sis1e1na de-longa dis-
rância Clobus (Chervenak et ai.. 2000). O Cfobus é nm 
sistema que ~upona computação distribuída em gran,de 
escala na qua1 muitos hos1>edeiros. arqui\'OS e outros 
recursos são usados simultaneamente para fazer cálculos. 
Tais ambieme-s c:-un.bén1 são denominados grades de co1m-
pu1ação (f-osrer e Kesselman. 2003). Nessas grades. muicas 
vezes os recursos estão localizados em domfoios achni-
nistrativos diferentes <1ue podem estar localir,ado~ em 
partes diferentes: do mundo. 
Como o número de usuários e recursos é grande. e 
eles cst5o ampfamemc espalhados por diferentes dorníM 
nios adminislrat5vos. a segurança é essencial. Pru-a proje-
rnr e usar adequadamente me.:anh;mos de se,surnnça é 
necessário ente.nder o que. exatamente, precisa ser prole• 
gido e quais são as premissas adotadas cm relação à segu• 
Anderson
Realce
Anderson
Realce
Anderson
Realce
Anderson
Realce
Anderson
Realce
Anderson
Realce
Anderson
Realce
Anderson
Realce
Anderson
Realce
230 Sislem,s distribuídos 
rança. Simplificando um pouco. a política de segurança 
para o Globus implica oito declnraçõe~ que explicaremos 
a seguir (Fosterct ai .. 1998): 
l O ambiemc consiste em vários domínios admi-
nistrativos. 
2. Operações locais (isto é. operações que são eíe-
tuadas .somente dentro de um único domínio) 
estão sujeita..~ apenas a uma política local de scgu• 
rança do domínio. 
3. Operações globais (isto é. operações que 
envolvem vários domínios) exigem,. que o injcia-
dor seja conhecido cm cada domínio em que a 
operação for execurnda. 
4. Operações entre entidades que se cnl·ontram em 
domínios diforenws requerem autenticação mútua. 
S. Autenticação global substitui i,utenticação local. 
G. O controle de acesso a recursos está st,jeito so-
men1e a seguranç.a local. 
1. Usuários 1>0dcm delegar direitos a proces:,;os. 
8. Um grupo de processos no mesmo domínio pode 
compartilhar credenciais. 
A premissa adotada pelo Globus é que o ambiente 
consjste em vários domínios admhlisu-a.1ivos e que cada 
domínio lem sua própria política de segurança local. 
Considera também q\le as políticas locais não podem ser 
alteradas só porque o dcm1ínio pai1icipa do Globus. e nem 
que a política geral do GJobus desautorize de<:isõcs de 
scgwrança locais. Em conscqilência. a segurança cm 
Glol>us se restringirá a operações que afe-tam múltiplos 
domínios. 
Com relação a essa questão, () Globus considera que 
operações inlei.r.lmente locais a um domínio só estão 
sujeitas à política de scg_urança da<1uelc donlínio. Em ou~ 
tras palavras. se uma operação é iniciada e exocuH1da cm 
um ú11ico domínio. todas as questões de se:g.urnnça sel'ão 
tratadas somente com a utilização de medidas de segu. 
rança locais. O Globus não ímpor.l medidas adicionai5. 
A política de segurança do Globus determina que 
rC(Jufisições para operações possam ser ini<;iadai; global-
mente ou no local. O iniciador. seja um usuário. seja um 
proce-sso que age em nome de um usuál'io·. deve ser co-
nhecido localmente dentro de e.ada domínio em que aque• 
la operação é realizada. Por exemplo. um usuário pode 1er 
um 11ome global que é mapeado parn nome.:;: Jocais especí-
ficos do domínio. O exato modo como esse mapeamenlo 
ocorre fica sob responsabilidade de cada domínio. 
Uma importante declaração da política é que ope-
rações entre entidades que estão em domínfos difere.ntes 
requerem autenlicaçào mútua. Isso significa. por exem• 
pio. ,que, se um usuário que está em um domínio u1iliz.a.r 
ulll serviço de um outro dornínio. a idemid~~de do usuário 
ter~ de ser vel'lficada, Igualmente imponamc é que será 
preciso assegurar ao usuário que ele está usando um 
serviço que ele acredita estar usando. Mais adiante 11-es,c 
C-àpítulo voltaremos a abordar a autenticação com mais 
detalhes. 
As duas quc..'itões de polí1ica que ciw.mos são combi-
nadas no seguinte rcquisit• de segurança: se a identidade 
de um usuádo tivcir de ser verificada. e se esse usuário 
também for conhecido localmente cm um domfoio. ele 
1xxlc agir como amcnticado parJ aquele domínio local. 
ls:s,o significa que o Globos requer que sua.~ medidas de 
~mtcnticação no âmbito do sistema sejam suficientes para 
considerar que. um usuál'io já loi <1utcuticado para um 
domJoio remo10 (em que o usu,írio é conhcddo) quando 
cs1ivcr acessando recursos ilesse domínio. A autentic.aç.ão 
adicional por aquele domínio não deve ser necessária. 
Uma vez identificado um usuário - ou processo que 
age cin nome de um usuário -. ainda é necessário veri-
ficar os cxaios direitos de acesso em relaç-iio aos recursos. 
Por exemplo. um U!iu,"\rio que quer modificar um arquivo 
em primeiro lugar terá de ser autenticado e. depois, pode-
se ve.rificar ~e esse usuário tem ou não permissão para 
m<xJifictlr o arquivo. A política de segurança do Globus 
declara que tais c.tccisõcs de controle de acesso são 
t0madas imciramcnlc no toe.ai, dentro do domínio cm que 
o recurso adequado está localizado. 
Pam explicar ::i sé1ima declaração, considere um 
agente móvel em Gl,c>bus que execute uma lél.refa iniciando 
diversas operações i.:m domínios diferentes> uma após a 
outro. T;1l .agc111c pode lcv~\T um longo tempo para çonduir 
sua tarefa. Para evi, ar 1cr de se co1m.micar com o usuário 
em nome de. quem o agente está agindo, o Globus requer 
que aos processos possam ser delegados um subconjunto 
dos direitos do usu:iiiô. Em decó(rência, autenticando um 
agente e. na seqüência. ,,cri ficando seus direitos, o Globus 
deve permitir qué u1n agente inicie uma operação sem ter 
de comaia1· o proprietário do agente. 
Como última declaração da polílica~ o Globus requer 
que grupos de processos que executam com um único 
domínio e agem em nome d<) mesmo usuMio possam 
compartilhar um tínico c<>njunto <le c redenciais. Como 
explicaremos rnais adiante. credenciais siío ncccss.;.lrias 
1>,u:a autenticação. Em cs,ência. essu declaração abre 
caminho para soluçõc.s cscalá,·eis p i:1n1 autenticação por 
não exigir que. cada processo transporte com e le seu 
próprio e t!xclusivo conjunto de credenciais. 
A política de segurança do Globus perl'nile que seus 
projetistas se concentrem no desenvolvimento de uma 
solução geral parn ,,l segurança. Considerando <~ue cad.-i 
domínio impõe su.a própria polúica de segurança, o 
Globt1s se concentra somente em ame.aças a segurança 
que envolvam nníltiplos domínio~. Em particular, a políti~ 
ca de stgurrmça ind_ica que as questões de projeto impor-
tantes s.."'io a rcprcsemação de um usu.hio cin um domínio 
remoto e a alocação de recursos de um domínio ,·emot• a 
um usuário ou seu represe11tan1e. J>onanto. as necessi• 
dades primordit1is do Globus são mecanismos para auten• 
Anderson
Realce
Anderson
Realce
Anderson
Realce
Anderson
Realce
Anderson
Realce
Anderson
Realce
Anderson
Realce
Anderson
Realce
Anderson
RealceAnderson
Realce
tic.ação entre domínio~ e fa1..er com que um usuário fique 
conhecido em domínios remotos. 
Para essa finalidade sao introduzidos dois tipos de 
rcprcscntántes. Um ·proxy de usuário é um processo que 
1·ecebc pennissão pai-a agir em 11ome d,e um usuário por 
um período Jimüado. R<:cursos são representados por pro--
xics de recurso. Um pn:,xy de recurso é um processo que 
e:xeculct de1Hro de um domínio cspocífi<:o e que é usado 
para traduzir oper.tç<">es globais sobre um recurso para 
ôperaçõcs locais que obcdce<:m à política de segurança 
daquele domínio em particular. Por exemplo~ um proxy de 
usu,M.o normalmente se co,nunica com u1n proxy de re.-
curso <1uando é reque.rido acess() àquele recurso. 
A arquitetura de segurança do Globus consiste. em 
essência. cm entidades como usuádos. proxies de usuário1 
proxies de recurso e processos gerais. Essas entidades 
estão localiu ,das em domínios e imeragem umas cont as 
outras. Em particular; a arquitetura de segurança define 
quatro prot0colos diferente-s. como ilustl'ado na Figura 
9.1 f\'eja também Fosterct ai. ( 1998)1. 
O primeiro protocolo descreve exa1an.lente como um 
ltSuário pode criar um proxy de usuário e delegar direitos 
àquele proxy. Em panicular, para permitir que o proxy de 
usuário aja em n.ome de seu usuário, este d;.í ao proxy um 
conjunto adequado de credenciais. 
O segundo protocolo especifica como um proxy de 
usuário pode requisitar a alocaç.ão ele um recurso em um 
domínio remoto. 6m essência. o pro10co·10 diz ao proxy de 
PrCXOOOIO 3: 
Domi'nio 
Alocação de UITI 18C\.lrSO por um 
processo em um domínio remoto) 
1 Processo r ... Ptox.y de recurso 
: 
' 
Potftlcae 
mecanismos <10 
segu-ràr)Ça locais 
r..iapeamento de 
lôs globals p,a.ra 
JoeaiS 
Capílulo 9 Segurança 231 
recurso para criffr um processo no domínio remoto após ter 
ocorrido a autenticação mútua. Esse processo represe.ma o 
usuário (exat.run-ente c()mo o proxy de usuário o fozia). 
mas opera no mesmo domínio do recurso requisi1ado. 
O processo recebe acesso ao recurso sujeito às decisões do 
coou·ole de-accs..~ local daquele domfoio. 
Urn processo criado em um domínio remoto pode 
i.niciar compu1ação adicional em outros domínios. Em 
virtude disso, é prcci$O um protocolo para alocar recun;.os 
e.m um domínio remoto conforme requisitado por um 
processo que não seja uin prox)' de usuário. No sistetna 
Globus, esse tip,o de alocação é feito por meio do proxy 
de usuário. permitindo que um processo faça com que s,cu 
prox.y de usuário associt1do requisite a alt.)Caçâo de rccur• 
sos. seguindo. em essência. o segundo protoe-olo. 
O quarto e último protocolo na arquitetura de sego• 
rança Globus é o modo como um usuáiio pode ficar CO· 
nhe<:ido cm um domínio. Considerando que um usuáitio 
tenha uma conta em um domínio, é preciso estabelecer que 
as credenciais no âmbito do sis1cma possuídas por um 
proxy de usuário sejam convertidas automaticamente para 
credenciais que são reconhecidas pelo domínio específico. 
O pr<>tocolo prc.-;creve éQmO o mapeamento entre as cire-
denciais globais e. locais 1xxle ser registrado pelo usuáirio 
cm uma tabela de mapeamento~ loca.l àquele domínio. 
Oc,alhes c5.1>Ccílicos de cada protocolo são descritos 
em Fos1erc1 nl. (] 998) .. Para nós, a questão imponamc é que 
a arquitetura de segurança do Clobu~ reflete sua política de 
Domínio 
Proxycria 
proces-so 
1 Procosso r· 
' ' : 
: 
' 
Politie:ao 
mec:anismos de 
segurança toe.ais 
Processo gera 
prooesse>filho 
Protoc:Ok> 4; Usuário deve ser 
Fateodo com QOO ~do n<> domfntQ 
Oominio 
--o usuário seja conhecido 
no domlnlo remoto 
~ 
Uwário 
Protoeolo 1: 
Crlaç-ào de proxy 
de v.suário 
Fitmra 9.1 Arqu1te1vr.a de seg.:..irança do GlobUs. 
PtOlOCOfO 2; 
A~o de um recufSO 
pelo usuário em um 
domlnio remoto 
232 Sislem,s distribuídos 
segurança como declarada ames. Os mecanismos usados 
para implementare.o;;sa arquitetura, em panicular os protoco~ 
los que já menciomunos, são comuns a muitos sistema:.: <lis~ 
uibu:ídos e di.scul idos cxt·cnsivameme neste capítulo. A prin-
cipal dificuldade de projetar sistemas distribuídos seguros 
não é tanto a causada por mccanisn,os de s.cgur.mça1 mas 
pela decisão de como es-ses mecanismos devem ser usados 
para impor uma política de segurança. Na s:eçã<> seguinte, 
consiidernremos algumas dessas decisões de prójeto. 
9.1.2 ouestões de projeto 
Um sistema distribuído, ou. a pro1>6:sito, qualquer 
sistema de co111pu1aç1io. deve fornecer serviços de segu-
ranç;t com os quais s.eja possível irnpJerncn1ar uina \1asta 
coleçilo de 1>0líticas de segurança. Há várias questões 
importantes de projeto que precisam ser levadas em conta 
na implementaç.ão de serviços de segurança de uso geral 
1"'1fa$ páginas seguintes discutiremos quatrc, dessas ques .. 
tõcs: foco de cúntrole, mecanismos de :segurança cm 
camadas. dis1ribuição de mecanismos de: segurança e 
simplicidade [veja também Collmann (2006)]. 
foco de controle 
Quando c<>nsidcrarnos a proteçâo de uma aplicação 
(p0ssivelmcn1e distribuída) há, cm essência. u'ês aborda• 
gens diforen1cs que ilódem ser seguidas, como mos1ru u 
figu:ra 9.2. A pl'ímeira .ibordagcm é focalizar dirciamcme a 
pl'Qteção dos dados que estão as~QCiados à a1>licação. Nesse 
<·aso~ proteção direta quer dizer que, independente mente 
das vária~ opcr.i~-õcs que podcritLm ser executada.~ sobre 
um i tem de dados. it prcocupaç,.lo prirnordiaJ é garamir a 
Invocação 
03dOS sào protegidos COC"ltfa 
opetti.ç0é$ &uada.$ ou inválidas 
Mêto6o 
(a) 
imegridade dos dados. E.~se 1ipo de prote~ão ocorre nor-
malme nte em si.ste1111as de banco de dados nos quais podem 
ser formulada.~ várias restriçôcs de inlegridade que s.1o ve-
rific;t<las automatic.::tmcntc toda ,·cz que um item de dados 
6 modificado [veja. por exemplo. Ooom e Rivcro (2002)1. 
A segunda abordagem focali,.~ a pro1cçilo por meio da 
exata especificação de quais operações podem ser in-
vocadas. e por quem .. quando certo!. dados ou ~ursos estão 
para se,· acessados. Nesse caso. o foco de com.role está forte-
mente relacionado com mectlllismos de cinHrole de acesso. 
que discutire mos: extensiv:m1cn1c ma.is adiante neste capítu-
lo. Por exemplo. em um sistema baseado em objeto. pode• 
se d~idir especificar para cad.i nlé1<X10 que é ofet1,'Cido pa,'ll 
os clientes quais deles têm pennissão de invocar esse méto-
dô. Como alternativa. métodos de controle de: acesso podem 
ser aplicados a toda uma interface oferecida por um objeto, 
ou a todo o objeto propriameme dito. Assim. e.ssa abor-
dagem permite várias granul.:u•idadcs de comroJedc acesso. 
Uma terceira abordagem é focalizar dir<:tarncutc os 
usuários impondo medidas que garanram somente a pes• 
soas espccífica.s ter acesso à aplicação. independentemente 
das opeJ'ações que e las querem executar. Por exemplo. um 
banco de dados de urn banco pode ser protegido negando 
acesso a todos. c xCélO ao primeiro csc-altlo de gerência e às 
pessoas especificamente autorizadas a aces..'Sá~lo. Como 
ou1ro exemplo, em muitas universidades a miJizaçilo de 
certos dados e aplicações es1á restrita a professo,-es e ao 
pessoal de detemlina.da faculdade, e os estudantes não têm 
permissão para usá•los. Na verdade, o CQntrole é focaliza-
do na clcfiniç.ão de papéis que os usuários dc~,;empcnham e. 
uma vez vel'ificado o papel de um usuário, o acesso a um 
0.000$ sào pro!egkf0$ OOl'ltf3 
inv«:aQÕ8$ não autorizadas 
(b) 
Dados são protegidos pela 
verificação do papel do Invocador 
(e) 
figura 9.2 Tr~s aJX>fdagens p.3,a proc~ cont1<1 ameaças cl segutan,ça. f.a) PfO{eçi\o conffc1 opei-açôes 1nvJh~1s. 
(bt Ptoieção cootra invocaçÕé?S n.lo autôfitadas. (CJ PfOlcção coou a usuarios nao avtooi:ados. 
recurso pode-ser concedido ou negado. Por conseguinte. na 
e labol'ação do projero de um sistem~l seguro é necessário 
definir pap6i$ que as pessoas podem desempenhar e 
fornecer mecanismos pàrJ suponar c.,-Onlrole de acesso 
baseado no desempenho desses 1>apéis. Volt.1remos a esse,,ssun10 mais adiante neste capítulo. 
Mecanismos de segurnnça em camadas 
Uma quesrào importante no projeco de sistemas 
s-eguros é decidir cm qual nível os mecanismos de segu-
rança devem ser colocados. Nesse comc:xto, um nível está 
relacionado com a organização lógica de um ~istema em 
11111a série de camadas. Por exemplo, redes dé computa• 
dores costumam ser organizadas cm camadas que seguem 
algum modelo de referência. corno discutimos no 
Capítulo 4. No Capítulo I introduzimos a organização de 
sistemas distribuídos. que consistia ern camadas sepa-
radas para aplicações. middleware, serviços de !.istema 
operacional e núcleo do sistema operacional. A combi• 
nação da organização ém camadas de l'edcs de computa• 
dores e sistcn1as distribuídos resulta aproximadameme no 
que mostra a Figura 9.3. 
Em e.~ncia. ;,l Figura 9.3 separa serviços de uso gemi 
de serviços: de comunicação. Essa separação é i mponante 
para entender a disposição cm camadas da segurança em 
sistemas distribuídos e, cm panicular, a noção de confiança. 
A diforcnça entre confiança e ~egurança é importante. Um 
s.istema é seguro ou não (levando em conta vi\rias medições 
probabilís1icas). ,nas o foto de um clien1e -considemr um sis-
tema seguro é uma questão de confiança (Bh.llop. 2003). 
Segurança é técnica: confiança é emocional. A camada na 
Apicação 
Capílulo 9 Segurança 233 
qual os rnecanismos de segurança são colocados depende ,da 
C-Onfot11<i--a que um cliente tem na :;egumnça dos ::-erviços que 
estão cm detcm1inada camada. 
Considere. como exem.plo. uma organização loca-
lizada cm difcrêntes sites que são conectados por um 
sen1iço de comunicação como o Serviço de Daclos 
M ultimcgabit Comutado (Switched Multi-megabit Dm• 
Service - SMDS}. Uma rede SMDS pode ser imaginada 
como um backbonc de nível de enlace que conecta vármas 
redes locais cm sites que poder-lo es1ar geogrMicamcnte 
dispcr:-sos. como mos1ra a Figura 9.4. 
Podc•SC folllccer segurança ao se colocar disposi-
Ü\'OS de cl'ip1ogratia em cada repassador SMDS. como 
camb<Sm 111ostra a Figura 9.4. Esses dispositivos crmp• 
togrnfam e decifram auto1uaticamente pacotes que são 
enviados entre sites. porém. quanto ao mais. não ofcric-
cern comunicação segura entre hospedeiros que estão 110 
mesmo site. Se A l ice no site A envlar uma mensagem a 
Bob no site 8. e estiver preocupada com a possibilidade 
de interceptação de sua mensagem. ela deve. no mínilllo. 
confiar que a criptografia do tráfego entre sites funcione 
adequadamente. lsso significa, por exem1>lo. que ela deve 
co11fiar que os ,,dministradores de sistema de ambos os 
~ites tomaram as providências necessárias éOntra a inter-
ferênch1 indevida com os disposi1ivos. 
Agora. suponha que Alice não confie na segurança <lo 
tráfego entre sires. Então, ela pode decidir tomar suas 
próprias providências usando um serviço de segurança -de 
UÍ\'él de transporte como o SSL. SSL quer dizer camadn d e 
s0<1uctes seguros (Securc Sockets Layer} e pode ser usado 
para enviai' mensagens com seg.urança por uma conexão 
TCP. Discutiremos os detaU1e.,'ô do SSL mais adiante 110 
Apf,caçáo 
Middlewate Prot0004os de Jlto nfvel Mkk:llewafO 
Se,vlços do S.O SetvlçosdoSO 
---··-·-------··---·-·-----
N(,cieo 
Transporte Tr~te Nôcleo 
doSO Rede Rede 00SO 
Enlaot Ptotooolos de ~ .txo nível Enl&el) 
Hard'Nare Física Física Hardwate 
IRed• 1 
234 Sislem,s distribuídos 
Capítulo 12, quando veremos sistemas b.1se~1dos na \Veb. 
Ness.e caso, o impor1ante a ob5en•ar é que o SSL pem1ile 
que Alice cstnbéleç-a uma conexão segura com Bob. Todas 
as mensagens de nível de lrànsponc scrJo criptografadas -
e também as de nível SMDS, mas AJicc não precisa saber 
di5SO. Nesse caso. ela tcni de dcposl1ar sua c:onfiaiwa no 
SSL. Em outras palavras. ela acredita que o SSL é seguro. 
Os mecanismo~ de segurança cm sistemas dis• 
tribuídos costumam ser colocados na cama.da de middle--
warc. Se Alice nãoc<mfiar no SSL. ela talvez queir;l us.ar 
um serviço local seguro de RPC. Novamente. ela terá de 
confiar que esse serviço de RPC faz o que pl'omcrc. 
como oão vazar informações ou autenticar clientes e 
servidores adequadamente. 
Só se pode <..·onfou c1n serviços de segurança que são 
colocados na camada de middlcwarc de unn sis,cma dis-
tribuído se os serviços aos quais eles 1-ccorrcrn para garon-
lir sua pl'ópria scguranç.a forem. de fa10, seguros. Pol' 
exemplo, se um serviç-0 seguro de RPC for parcialmente 
impl-emenladt.) por mei<> de SSL, a confiança no serviço 
de RPC depende da confi.ança dcposit:ida no SSL. Se o 
SSL não for de conlianç;1. então não se pode ter confümça 
na segurança do serviço RPC. 
Distribuição de mecanismos de segurança 
As dependências entre serviços no que se refere à 
segurança rc.~ultam na noção de uma base de computação 
confiável (Trusted Computing Base - TCB). Uma TCB é 
o comjunlO de todos os ffil-'éánismos de scgur..l.nÇa prcscnlC.'i: 
cm um sis1ema de computação (distribt.~ído) que s..lo 
nece:ssários para. impor uma polí1ica de segurança e que, por 
isso. devem .sei· d ignos de confiança. QuanlO menor a TCB. 
melhor. Se um sistema distribuído for col'1struído como 
midcllcware em cima de um sislCma operacional de rede. 
sua segurança pode depender da segurança dos sis1emas 
opcmcionais locai:-. subjacentes existente:s. Em outras 
palavras. ;t 1'C8 em uir1 sistema distribuído 1:>ode i11duir os 
sistemas operacionais em vários hospedeiros.. 
Considere um servidor de arquivos cm um sistema de 
arquivos distribuído. 1àl sen1idor pode precis:ar recorre.- aos 
vários mecanismos de proteção oferecidos por seu sistema 
operacional local. Entre el)Ses mecanismos estão não 
somente os de proteção de arquivos comra acessos por 
processos que oão sejam o servidor de arquivos. ma.~ tam-
bém os destinados a proteger o servidor de arquivo~ comra 
ataque.~ maliciosos que possam causar sua queda. 
Por isso. sistemas dis1ribuídos baseados em nliddJe-
ware exigem confiança nos sistemas operacionais locais 
existentes dos quai.s eles dependem. Se essa confiança 
não exislir. lalvcz seja preciso incorporar parle da fun-
cionalidade dos sistemas operacionais locais ao próprío 
sistema distribuído. Considere um sistema operacional de 
micromíclco no qual a maioria dos serviços do sislcn1.a 
operacional executa. como processos nonnais de usu;:11'io. 
Nesse caso. o sistema de arquivos. pór exemplo. pode ser 
imeirnmente subs1ituído por um sistema talhado para as 
ncccssid~ldes: específicas- de um sislcma moldado. incluí-
das suas v&rias medidas de segurança. 
Coerente com essa abordagem é separar serviços: de 
segurança dos oulros tipos de serviç<>s distribuindo servi• 
ços por máquinas di feL·entes confo1-r11e o níveJ de seguran-
ça requerido. Por exemplo. no caso de um sistema de 
arquivos dis1ribuído seguro, pode se,· possível isolar o scr-
,,idor de arquivos dos clientes colocando o servidor em 
uma máquina que tenha um sistema OJ>erncional ele con-
fiança e que possivelmente executa um sistema de arqui-
vos seguro <lcdic.üdo. Clientes e suas aplicações são colo-
cados cm máquinas oiio confiáveis. 
Na ,•erdadc. cs.~ separação reduz a TCB a um mímero 
rclativarnentc pequeno de rn5qoinas e componemes de soft-
ware. Se. na seqüência. ess,L\ máquinas forem protegidas 
contm ataques: a segurnnça. vindos do exterior. a conti.ança 
global na segurança do sistema dislribuído pode ser aumen-
tada. A abordagem seguida em interfaces reduzidas para 
componentes de sistema seguro (Rcduced lntcl'faces for 
Secure System Com1XJnents - RISSC). como clescri1a por 
Neumann (1995). impede qne cliente., e suas aplicações 
tenham ttccsso direto a serviços crílicos. Na abordagem 
RJSSC. qualquer servidor crítico e.ol questão de segurança 
é colocado em uma máquina scp:-i.rada, isolad;l dos sistemas 
de usuári(>s finais mediante a utiliz.aç.ão de interface.s ele 
rede seguras de baixo nível, como mostra a Figura 9.5. 
Clientes e suas aplict1çõcs executam em máquinas difo-
rentes e. s(.) podem acessar o servidor seg,1.1roIX)r meio 
dessas interfa<.'és de rede. 
Simplicidade 
A simpl icidade é urna outra importan1e que-Stão de 
projeto relacionada i, escolha da camada cm que serão 
Nenhum acesso dtreto 
de ouw:ts máquinas 
Olspo$1!ivo <Je 
oontro10 do a(OSSO 
figura 9.S Prin<fp«> da RISSC ap,;c;ido a ••temas d<Srtibuidos seguros. 
colocados os mecanismos de segurança. De modo geral, o 
projeto de um sistema de computação seguro é considc• 
r:ado uma tarefa difícil. Em decorrência., .se um projclista 
de sistcma.i:; puder utiliz.ar alguns poucos mccanis-mos 
s.implcs que sejam fáceis de entender e cm cujo funciona-
men10 seja possível confiar. tan10 melhor. 
lnfclizmcmc. mecanismos simples. nem sempre são 
suficjcme-s para implementar políücas de segurança. 
Considere. mais uma vez. a situação na qual Alice quer 
enviar urna mensagem a Bob. como j~1 disculimos antes. 
A criptografia no nível de enlace é um mecanismo sim-
ples e fácil de entender p;\ra proteger contra interceptação 
do tráfego de mensagens cmre sites. Enuetanto. é preciso 
muito mais do que isso se Alice quiser ter certeza de que 
somente Bob receberá suas mensagens. Nesse caso são 
necessários serviços de autenticaç-ão no nível de usuário, 
e talvez. Alice queira saber como esses serviços fun• 
e ionam para poder depositar !-ua confümça neles. 
Portamo, a autenticação no nível de usuário pode exigir. 
1\0 mfllimo. urna noção de chaves cripcogr.H'icas e o co-
11hccimcnto de mecanismos como certificados. embora 
n1uitos serviços de segurança tenham ;;1lto grau de auto·• 
matização e fiquem <>Cultos dos usuários. 
Ern outros casos. a aplicação já é inierentemente com• 
1,lexa. e introduzir seguran~,:".a somente piora as coisas. Um 
exemplo de domínio de aplicação que envolve complexos. 
protocolos de segurança (como dlscutiremos mais adiaote 
11es.tc capítulo) é o dos sistemas de pagamento digitais. A 
complexidade dos pro1ocolos de pagamento digital muitas 
vezes é causada pelo foto de que ,1árias partes prechmm se 
comunicar para fazer um pagamento. Nesses casos. é 
imponante que os mecanismos subjacentes que são usados 
para implementar os protocolos sejam relativamente sim• 
pies e fáceis de entender. A simplicidade contribuirá para a 
confiança que os usu::í.rios: finais depositar.lo na aplicação e. 
mais importante. oontribuir.i para conve1lcer os projetistas 
de sistemas de que o sistema não tem tàJ has de segurança. 
~.1.3 Criptograna 
A utilização de técnicas criptográficas é fundamental 
para a segurança cm sistemas distribuídos, A idéia básica 
Capílulo 9 Segurança 235 
da aplicação dessas técnicas é simples. Considere um 
remetente S que quer transmitir a men&'lgcm m a um 
receptor R. Parai proteger a mensagem contra ameaç-as a 
segurança. em primeiro lugar o reme1en1e a crip(ografa 
em uma mensagem inimeligível m' e. na seqi.iência, envia 
m' a R. Púr sua vez. R tem de decifrar a mensagem roce• 
bida para obter sua forma original m. Criptografia e 
decifração são realizadas com utilização de métodos crip~ 
tográficos parametrizados por chaves, como mostra a 
Figura 9.6. A forma original da mensagem en\liada é 
dcnomioada te,rto aberto, representado 1>0r P na Figurn 
9.6; a forma ciírttd:., é deno1ninadtl ltxto cifrado, reprc• 
sentado por C. 
Para descrever os vários protocolos de segurança q·ue 
são us.'tdos: para construir serviços de segurança para s:is~ 
temas djstrib\1fdos. é útil 1e.r uma no1ação par-.i relaciooar 
texto aberto, texto cifrado e chaves. Confom1e ttS C()ll• 
venções comuns de notação. usaremos C = E,..,(J') para 
denotar que o texto c ifr•do C é obtido pela criptogrJfia do 
texto aberto P usando a chave K. Da mesma maneira. 
P = 0,,(C) é usada para expressar a decifração do texto 
citi1,do C usando a chave K. resultando no te.-<to abcno P. 
Voltando ao no;;so exemplo mostrado na Fi,gu,·a 9.6. 
durante a transferência de uma mensagem co1no texto 
cifrado C. há três ataques diferentes contra os quais pre-
cisamos nos proteger e, para tal. a criptografia ajuda. Em 
primeiro lugar, um intruso passivo po<lc intcn.-cptar a 
mensagem sem ,que o servidor nem o n.:.ccptor percebam 
que es1ão sendo bisbilhotados.. É claro que. se a mensagem 
1ra,1smitida foi criptog.rafada de modo tal que não possa ser 
decifrada facilmente sem a chave adequada. a interceptação 
é inútil: o inlniso só verá dados inintcli'gívcis. (A prop6si• 
tú. só o foto de uma mensagem estar cm transmissão às 
vezes pode ser suficiente para um intruso tirar conclusões:. 
Por exemplo, se-durante uma c:1ise mundial hou,i-er uma 
redução drástica e repentina do tráfego que chega à Casa 
8rnnca e, ao mesmo tempo, o tráfego que chega a uma 
certa montanha do Colorado aumentar na mesma pro• 
porç.ão. saber isso já pode ser uma iníonnação útil.) 
O segundo tipo de ataque coin o qual prc<:isam.os 
lidar é aquele que modifica a mensagem. Modificar texto 
rntn.is-o passivo 
apena$ouveC 
lntNs-o ativo pooe 
al!etat n'IC0$~QOO$ 
hnlNSO a1ivo pode 
in$Crif mentag(IOS 
Te,.,o aneno, P 
Flé,meténté 
Mélodo 
criptográfico 
Chave de 
c~prog,.11$. E, 
Texto cifradO 
e. é,(P) 
Fitora 9.& 1nuusos ativos e passNOS em comun1caç:io. 
Chave de 
d~lrr~.o, 
Te,.,oablulo 
236 Sislem,s distribuídos 
comum é fácil : modificar texto cifrado que foi crip-
tografado adequadamenle é muito mais difícil porque, em 
prim.c irú lugar, o intruso terá de decifrar a mensagem 
an1es de poder rnodilic;l•là de múdo significativo. Além 
disso. ele também terá de-cripwgrafar no,iall'1emc a men-
sagem adequadamente. senão o receptor poderá ,1ota1· <1ue 
a mensagem sofreu interferência. 
O terceiro ti1>0 de at..:1que se dá quando um intmsc> ativo 
insere mensagens cifradas no sistema ele comunicação. na 
tcmati\'a de fazer com que R acredite que essas mensagens 
vieram de S. Mais uma ve7 .. 001no veremos mais adiamc 
neste capítulo. a criptogrn6a pode ajudar a pl'oteger contra 
tai!; maque;S. Observe: que, se um intruso puder modificar 
mensagens. também J)Qdcrá inserir me.nsagens. 
Há uma distinção fundamental entre diferente.-; sis• 
tem~•s criptogníficos que se baseia no fato d,c fü~ cha\'CS de 
crip1-0,grafia e decifração serem as mesmas ou não. En, tun 
c1·iptossistema shnéb·i.co. a rncsma chave é usada pa.ra 
cifrar e decifrar urna mensagem. Em outra~ palavras, 
Criptossistemas simétricos tamMm são conhecidos 
como sis1crnas de chaves secretas ou chaves conlpanilha• 
das. imrque o remetente e o tecepwr deven1 companilhar 
a mesma chave e, para garamir que a proteção ftrncione. 
essa chave compartilhada deve ser rnantida em sigilo: nin• 
guém mais tem pennis:,;ão de, vê--1,l. UsarenH>S a notação 
K1o.n para denotar uma chttvc cornpartilhadai por A e 8. 
E.m um criptossistema assimétrico. as chaves ptLra 
cript-0,gra.fla e decifraçã.o são diferentes~ porém. jumas. 
fomlam um par exclusivo. Em outras J)iJ,lavras. h,t uma 
chave separada K,: para crip1og.rafia e uma para 
decifração, Kv, tal que 
I' = DK.,(é,,(I')) 
Urna das chaves de u1n criplossistcma assimétrico é 
privad:-1~ a outra é pública. Por essa razão. cr iptossistcmas 
assimélricos também são conhecidos como sistemas de 
chave p1íblica. A seguir. usarem.os a no1:1ção K.: para 
deno1ar uma chave pública que pertence a A .. e K; para de~ 
no1ar sua chave privada corresp<mdcnte. 
Antes mesmo das discussões dct~\lhadas sobre proto-
colos de segurança que faremos mais adiante neste capítu-
lo. i~fonnamos que determina,· qual das ctilaves de cl'ip• 
tografia ou decifração será a pública, depende do modo 
como ª" chaves são usadas. Por exeolplo. se Alice quiser 
enviar uma mensagem confidencial a Bob, e la deve usar a 
cht1w pública de Bob para criptografar a mensagem. Como 
Bob é o tlnico que tem a chave privada de decifração. ele 
também é a única pessoa que pode decifrar a mensagem. 
Por outro lado. suponha que 8ob quer ter certeza de 
que a mensagem que acabou de receber veio realmente de 
Alice. Nesse caso, Alice pode usar uma chave criptográ• 
fica pri1•adi1 para criptografar i,~ mens:tgcns i1ue envia.Se 
Bob conscg.uir decifrar uma mensagem usando a chave 
pliblica de Alice (e o 1exto abe.rto da mensagem tiver 
informações suficientes para significar algo para Bob), 
ele sabe que a mensagem deve ter vindo de Alice porque 
á <.:have de dc<:ifração está cxclusivanltnte vinculada à 
chave de criptografia. Mais adiante voltaremos a esses 
algoritmos com mais de1alhes. 
Uma utilização final da criptografia em sistemas dis. 
1ribuído~ é a utilização de funções de hash. Uma função 
de hrtsh H tôma u1na mensagem m de comprimento arbi • 
trário como entrada e produz uma seqüência de bits h de 
comprimento fixo como saída: 
/r : /1(111) 
Um hash /, é mais ou menos comparável com os bits 
extra$ que são anexados a uma mensagem em sis1emas de 
col'nunic.lçílo para 1>ennicir delecção de erros. como é 
feito na verificação a>or redundância cíclica (cyc/ic rcdun• 
,1,mcy cl,eck - CRC). 
Funçõe~ de hash que são US.ldas em sistemas cl'ip• 
1ográticos têm várias propried,tdes essenciais. A primeira 
é que elas são funções não re,·ersíveis. o que significa 
que. por computação. é inviável achar a entrnda m que 
corresponde a uma saída conhecida h. Por outro lado. é 
rncil c.alcular h com base em m. A segunda é que elas têm 
a propriedade de fraca resistência à colisão, o que ~ig-
nifica que, dadas uma entrada m e sua ~aída associada. 
h = H(m.). é inviável, por computação. achar urna ou1ra 
emrada diferente. m' :1-.m. tal que f/(m) i= f/(m'). Por fim, 
as íunÇôes criptográficas de httsh também têm pro• 
priedade de forte r<-sistência a colisão. o que significa 
que. quando é dada somente H, é inviável, por com• 
putação, achar quaisquer dois valores de entrada <lifc~ 
rentes. m e m'. tal q uc H(m) = H(m'). 
Propriedades sintilarcs devem ser válidas para qual· 
quer função de cripwgrafia E e para as chaves que são 
usadas. Além do mais, para qualquer função de criptogmfi:i 
E. é preciso <1uc seja inviável :i.char a chave K por com• 
putaçào quando é dado o texlo aberto i' e o texto cifrado 
associado. C = E,I.P). Da mesma maneira. análogo à 
rcsistCncia a colisão. quando ~ dado um 1cx10 alieno P e 
urna chave K. deve ser efetivamente impossível achar uma 
outra chave K'. ral <1ue E,{I') = E,-(1'). 
A arte e a ciência de inventar algoritmos para siS• 
ternas criplográficos tem uma h.is,ória longa e fasciname 
( Kahn, 1%7), e construir sistemas seguros muitas ve.zes é 
surpreendentemente difícil ou até impossível (Schncier, 
2000). Está além do escopo deste livro discutir qualquer 
dc-s.s:es algoritmos cm detalhes. Contudo, para dar uma 
idéia da criptografia em sistemas de compuiação. apre-
sentaremos resumidamente três algoritmos representa-
tivos. Informações detalhadas sobre esses e ou1ros 
a.Jgoritmos criptográficos podem ser encontradas em 
Fergtísón e Scli,;eier (2003). Me,1eze$ él âl. (1996) e 
Schneier (1996). 
Antes de entmnnos no~ detalhes dos vários protoco-
los, a Tabela 9.1 resume a notação e as abreviações que 
llSamo.s nas exprc~-;sões matemáticas que virlo em seguida. 
No1nçJ1.o ~s-cflção 
K,, 8 Chave secreta oompartilhada por A e 8 
K1 Chave públlca de A 
K; Chavo privada d& A 
Driptossistemas simétricos: OES 
Nosso primeiro exemplo de um algorilmo criptognífi-
co é o padrão de criptografia de dados: (Darn Encryption 
Standard - DES). que é usado para cripcossistemas 
s.imétricos. ODES foi projetado para operar sobre blocos de 
dados de 64 bits. Um bloco é tr.tm:fonnado em um bloco 
criptografado (ele 64 bits) de saída em 16 rodadas. Csdtt 
rodada usa uma chave diference de 48 bits para cri1>togralia. 
Cada uina dessas 16 chaves é derivada de uma chave mes-
1ra de 56 bhs. como mostm :1 Figura 9.7(a). Anres de 
começar suas 16 n)dadas de criptogmtia. Utm bloco de entra• 
da pas...~ por uma troca inicial, cttio inverso é mais tarde 
aplicado à saída cifr-jdá (1ue leva ao blocú de s..-:i.ída final. 
Cada rod"da de criptoi,rafia i toma o bloco de 64 bits 
1>roduzido pela todada amel'ior. ; - l. como sua entrad~. 
como mostra a Figura 9.7(b). Os 64 bits são divididos e rn 
uma parte esquerda, L.,._ ,. e uma parte direita. R; ... 1, cada 
uma com 32 bits. A parle direita é usada para a parte 
esquerda na próxima rodada, isto é. L; = R;-,, 
K, 
~ " 
:ll l t ~ 
f e t, ~ G 
K,• 
(a) 
Capílulo 9 Segurança 237 
O trabalho duro é realizado na funç?io de embar,a. 
lhamento / E.~~ funçà<> pega um bloco de 32 bits, R,_ 11 
como entrada, junto com uma thave de 48 bits, K;, e pro• 
duz um bloco de 32 bit.s que pas.sa por uma operação XOR 
com l 1_, para produzir R,. (XOR ~ uma abreviatura da 
operação OU EXCLUSIVO.) Em primeiro lugar, a funyão 
de embarnlhamemo expande R; ... 1 para um bloco de 48 bits 
e aplic.a XOR e rure esse bloco e K ... O resultado é parti-
cionado cm oito porções de seis bit-5 cada. Então. c:1,da 
porção alimenta uma S-box diferente. que é uma opcra~io 
que subs titui cada umH da.~ 64 poss.ívcis entradas de 6 bits 
em uma de 16 pQssíveis saídas de 4 bits. Portanto . .is oi to 
porções de saída de 4 bits cada são combinadas cm um 
valor de 32 bits e trocadas mais uma vez. 
A chave de 48 bits. K;. para a rodada i é derivada -de 
uo1a cha\'e mestra de 56 bits c.omo descreveremos a 
seguir. En1 primeiro lugar. a chave mestra é trocada e div i-
dida em duas nletades de• 28 bi,s. Sm cada rodada, ca,da 
uma das metades é primeiro girnd:1 1 <m 2 bits parai a 
esquerda. depois do que são extraídos 24 bits. Juntando-
se esses 24 bits com os 24 bits da outra metade girada~ é 
constroída uma chave de 48 bits. Os detalhes de un'ln 
rodada de cripto,grafia são mostrados na Figura 9.8. 
O princípio do DES é bastante simples. mas o algorit-
mo é difícil de quebrar usando métodos analíticos. Usar um 
ata<1uc de força. bnua para pn.x:urjr uma chave que fará o 
tl'abalho ficou (okit como já foi demonstrado inúmeras 
vezes. Contudo. usar DES três vezes em um modo especial 
criptografia-decifraçào-cl'i1>lografia com chave.~ diferentes. 
também conhecido como DES triplo. é muito mais seguro 
e ainda bastante util izado [veja também 8arkcr (2004)] , 
L, -1 Rrc· I 
L,- 1 $ 1(R1_1J(J 
(b) 
flg1ra 9.7 ta) Principio oo DES. lb) Esb()Ço de um.1 rôda<la de criptograna. 
238 Sislem,s distribuídos 
O que 1orna o DES difícil de macar por análise é que 
o princípio racional cm que se baseia o projeto nunca foi 
explicado ao público.* Por exemplo. sabe-se que romar 
o utras S-boxcs que não são as usádM cúrrcntemcnlc no 
padr~o faz. com que o algori1mo fique substancialmente 
mais: fácil de quebrar fveja Pílccgcr (2003) para uma 
breve análise do DESJ . Um princípio racional para o pro-
jeto e utilização das S•boxcs foi publicado :-omeote 
depois que ·oovos · modelos de ataque foram inventados 
na década de 1990. O DES mostrou ser bas1:ante resistente 
a C!>SCs arnques. e seus projetistas revelaram que eles já 
conheciam os modelos recém-projerndos quando desen-
volveram o DES em 1974 (Coppersmilh, 1994). 
O DES é usado como técnica padrão de crip1ografia 
há anos, mas está em proce-sso de substituição pelo algo-
ri1mo de blocos de 128 bits de Rijndacl. Também h1í va-
riantes com chaves maiores e blocos de dados maiores. O 
alg(>ritmo foi projetado par.l ser r.ípido o s:uficicnte para 
podei' ser implementado mé mesmo em sma1·t cards. que 
são uma área de crescente importância para a criptografia. 
Criptossistemas de chave pública: ASA 
Nosso ~egundo exemplo de algoritmo criptográfico é 
muit-0 usado para sistemas de chave pública: o .RSA. cujo 
nome se deve às iniciais de seus inventores: Rivest, 
Shamir e Adleman (1978). A segurança do RSA se deve 
ao rato de que não há nenhum mérodo conhecido para 
achar com eficiência os fatores primos de grnndcs 
ntímeros. Pode-se demonstror qoe cada inteiro pode ser 
escri to como o produto de números primos. Por exemplo. 
2. 100 pode ser escrito como 
2.100 = 2 X 2 X 3 X 5 X 5 X 7 
tomando 2, 3. 5 e 7 como fatores primos de 2.100. Em 
RSA. as chaves pública e privada são oonstruídas de acor• 
do com n<nneros primos muito gru11des (que consistemem tcntcnas de dígitos decim:tis). Ocorre que quebrar o 
RSA equivale a achar esses dois números primos. Até 
agora, tal façanha mostrou ser inviável em termos de 
computação. se bent <1ue os matemáticos estudem o pro• 
blema há ~éculos. 
A geração das chaves privada e pública requer qua-
1w e1apas: 
1. Escolher dois números primos muito grandes. 
t> cq. 
2. Calcular 11 "' p X if e z = (J> - 1) X (q - 1). 
3. Escolher um número 1/ que seja primo cm relação 
a:. 
4. Calcular o número e tal que e X d = 1 mod z. 
Na seqüência. 11ul1 dos mímeros. digmnos. d. pode ser 
usado para dccjfr-dç~1o. ao passo que e é usado para crip• 
wgrafül. S6 um desses dois é público. dcpeode11do do 
algoritmo para o qu.af está em uso. 
Vamos considerar o caso cm que Alice quer manter 
como confidencia.is as mensagens: que envia a Bob. Em 
outras palavras. ela quer garantir que ninguém, exceto 
Bob. possa interceptar e ler as mensagens que ela lhe 
enviã. O RSA considera cada mensagem m apenas como 
uma sequência de bils. Em primeiro lugar. cada men• 
sagcm é dividida em blocos de comprimento fixot e cada 
bloco m 1-. imerprl!tado como um nú1nero binário. de,1e se 
encomrar no intervalo O s: m; < 11. 
Para criptografar a rnensagem m. o remetente cakula 
para eada bloco m; o valor C; = mf (mod 11). que enlâo é 
' de28bit$ 
usada para 3 
próxima rOdada 
Chavo dé 48 bit$ 
figura S.8 e>e<arhe, da ge,açlk> de chave Por rooacta em Ol;S. 
• O amor .l.J)resenta nesse mx:ho seu pomo de vis1a numa qvestão bast3nte polêmica. Tem-se a i1Upress.-\o de qUç os invcmorcs do DES 
devem conhecer um modo simples de <1ucbr-j-lo (N. do R.T.). 
enviado ao receptor. A decifrnç-ão no lado do r~ceptor 
OC0O'C com o c:.11culo m, = e'{ (mod u). Obser:c <1uc. para a 
criprografüt ambos. e e n. são necessários. ao passo que a 
decifração requer conhecer os valores de d c. n. 
Quando se compara o RSA com criptossistemas 
simétricos CQmo o DES, o RSA te1n a desvantagem de ser 
mais compll!XO ern tcnuos de comptnação. Ocorre que 
criptogr.ifar mensage.ns usando RSA é aproxjmadamente 
cem a mi l vezes mais lento do que usando DES, depen-
dendo da técnica de implcmcmação urjl i.zada. Em conse-
qiiência, muitos sistemas criptográficos: usam RSA para 
trocar some111e chaves compartilhadas de modo seguro, 
l)Orém muito menos para realmente criptografa.r dados 
'1lorn1ais ·. Veremos exemplos da com biunção dessas duas 
1écnicas rnais adiante em outras seções. 
Funções de hash: MOS 
Como último exemplo de algoritmo criptogrâfoco de 
ampla utilização. examinaremos o M05 (Rh1es1. 1992). O 
~105 é uma função de ha.~h parn calcular um resumo de 
mensagem de comprimcnlo fixo de 128 bits com base cm 
umà cadeia bin~lfia de cnlrada de compdmcnto arbitrário. 
Em primeiro lugar. a <:adcia de entrada é preenchida até 
um comprimento 101al de 448 biis (módulo 512); depois 
disso, o comprimento da cadeia de bits original é adi-
e ionado como um inteiro de 64 bits. Na verdade, a entra-
da é convertida em uma ~érie de blocos de 512 bits. 
A estrutura do algoriuno é mostrada na Figutã 9.9. 
Começando com certo valor constame de l28 bits. o algo-
Capílulo 9 Segurança 239 
ritmo pros.segue em k fa$C-S. onde k é a quantidade -Oe 
número de bloc<>s de 512 bits que abrange a mensagem 
preenchida. Durante cada fase é calculado um resumo ,de 
128 biis de acordo com um bloco de dados de 512 bits que 
vem de umn rncnsagcrn preenchida e do resumo de 128 
bits calculado na fase precedente. 
Uma fase em MD5 consiste em qumro rodadas de cál-
culos. e cada rodada usa uma das quatro funções seguintes: 
1:(x, y. z) = (.< AND y) OR ((N()T x) ANO ú 
G(x, y, z) = (x ANO z) OR (y AND ( NOT z)) 
H (.<. y . z) = x XOR y XOR z 
l (x. y. z) = y XOR (x OR (NOT z)) 
Cada uma dessas funç(,cs opera sobre ,1ariáveis de 32 
bits • • r. y e z. Pum ilust1·a1· como essas funções são us;;idas. 
considere um bloco b de 512 bits da mensagem preenchi-
da que está cm processo durante a fa.~ k. O bl<.)(':ô b é divi-
dido em 16 sub-blocos de 32 bits. b,. b, .... b,,. Durante a 
primeira rodada,, a função F é usada para mudar quauro 
varh\vcis (denotadas por p. (J , r e s, tespeclivamcnte) enl 
16 iterações, como mostn\ a TabeJa 9.2. Ess,,s variáveis 
são trnm:portadas para cada rodada seguinte e, após o tér-
mino de uma fase. passadas para a próxima fase. Há um 
total de 64 conMantcs C, predefinidas. A nolaçào x «< n 
é usada paro denotar uma rotação ptun a esquerda: os bits 
em x são deslocados ,, posições para a esquerda. e o bit 
que. 1H1 rotação. ficar fora ~ esquel'dtl é colocado na 
posição da extrema direita. 
Mensagem preénCNda (mtíltipfode $12 brts-) 
Rétumo 
512bll$ 
5t2bits 
Fig1ra 9.9 emu(U{a dO MOS. 
lle-rações, 1-8 tteraçõos 9-16 
,, ..,. (p + F(q.r.s) + b 0 + C 1) e: 7 ,,.,_ (p+ F(q.r .. ,) +b8 + C?) e: 7 
s .,_ (x + F(p,q.r) + b, + C2) «: 12 s .... (s + F(p,11,r) + h9 + e ,0) « 12 
r <-(r + F(S,/>,q)+b2 +C3) e 17 r..,. (,· + F(,,.p.q) +b,o + C 11 ) « 17 
t/ <- (q + F(r .. <.p) + b 3 + C4) e 22 q.,_(q+F(r.s.p) +b 11 +C,2) «22 
J> <- (p + F(q.r,s) + b, + Cs) « 7 p .,_(p+F(q.,·,s) +/J 12 +C,,) c:7 
s .,_ (s + F(p,q,r) +b, + C 6) e 12 s ..,. (s + F(p,q.r) + /J 13 + C 14)"" 12 
,. ..,.(r+F(s.p.t1)+b6 +C1)c:. 17 r t- (r + F(s,p.q) + b 14 + C 1~) e: 17 
,, <- (q + F(r,s.p) + b 1 + Cs) e: 22 q <- (q + F(r.s.p) + b,s + C ,o)« 22 
Iabela 9.2 As ll> irerac;~ dl;ra,ólê a p,imeira tOClada éfn vm.,:t rase t;'f1l MOS. 
240 Sislem,s distribuídos 
A seiunda rocfad,1 usa a função G de modo similar. 
ao pa-.s() que H e/ são usada!\ na terceira e q,uarta rodadas. 
respectivamente. Assim. e.ada etapa consiste cm 64 itera .. 
çt>es~ após as quais é iniciada. ~\ fase seguinte. mas àg:Ora 
com os valores que p. q1 r e s tCm nesse ponto. 
9.2 Canais Seguros 
Nos capítulos anteriorc$. usamos freqüentemento o 
m()Clc lo cliente-servidor como modo conveniente de orga .. 
niwr um sistema distribuído. Nesse moclelo0 os servidores 
podem ser possivelmen1e distribuídos e replicados, mas 
também agiJ' como cJ.ieínes em relação a outros servidores. 
Quando se considera a segurança em sistemas disuibuídos. 
mais ull'ta vez é füH 1:>ensar em 1ermos de cl icntes e servi-
dores. Em particul;\r. 1on1ar seguro um sistema distribuído 
se resume. cm essência. a duas questões prc(lominrmtcs. A 
primeira é como tornar segura a comunicação entre clientes 
e servidóré$. Comunicação segura requer autentici,ç.ão das 
partes comunicantes. Em muitos ca-.os também reque.r 
garantir a integridade das mensagens e. possivelmente. 
ninda a confidencialidade. Como parte desse problema. 
precisamos considerar a proteção da comunjcação denrro 
de um gn1_po de servidores. 
A segunda questão é a da nucorizaçiio: uma vez que 
um servidor tenha aceitado uma requisição <!e um cliente. 
como ele descobre ~e esse cliente está autorizado a ter 
essa requisição executada'? A autorização está relaciona• 
da com o problema d"c controlar acesso a rc-::ursos. assun-
to que discutiremos extensivamente na prróxima seção. 
Ne.5ta seção. focalizaremos a proteção da comunicação 
dentro de um sistema distribuído. 
A questão da proteção da comunicação entre cliell1e$ 
e servidores pode ser pen:--ada em termos do e~aabeleci-
mento de um canal seguro entre as partes comunicante$ 
(Yoydock e Kcnt, 1983). Um canal seguro protege reme• 
tentes e receptores contra in1erccprnçâo, rnodificaç..io e 
invc111ção de mensagen$. Não protege necessariamente 
contra interrupção. A proteção de mensagens contra inter• 
ccp1ação é feita corn a garantia de confidencialidade: o 
<:ana.l seguro garante que suas mensagens não podem .ser 
bisbilhotadas por intrusos. A proteção contra modilicação 
e invcJ1ção por intrusos é feita púr meio de protocolos 
para autenticação nnítua e integridade de m.cnsagcm. Nas 
páginas seguintes, em primeiro lugar discutiremos vários 
protocolos que podem ser usados paro autemicaç.::io. usan• 
do criptossistcmas sim6tricos bem corno ca-iptossistcinas 
de chave pública. Uma descrição dcrnlhada da lógica sub-
jacente à muemícaçãopode ser encontrada cm Lampson 
et ai. (l 992). Discutire.inos confidencialidade e integrida-
de de mensa,gens separadamente. 
911 Autenticação 
Antes de emra:rmos nos detalhes de vários pro1oco-
los de autenticação, vale a pena observar que não se pode 
ter autenticaç'âc> sem ter integridade de mensagem e vice-
vcrs:.l. Considere. por exemplo1 um sistema distribuído 
que suportâ autcnti.cação de du.,s partes comunicantes, 
mas não provê ,nccanismos para g~\rami1· a integridade da 
mensagem. Em 1al !-istcma, l3ob pode ter certeza de que 
Alice é a remetente de uma m.ensngem m. Contudo. $C 
Bob nã() puder garan1ir que m não foi alterada dur.mte a 
transmissão. de que vale ele saber que Alice envi<m (a 
vcrstlô original de) m? 
Da rncsma maneira. suponha que apenas a i1negri-
dade da mensagem seja supo1·tada, mas que não exista 
nenhum mec:anismo para autenlicação. Quando 8ob rece-
ber uma mensagem declarando que ele acabou de ganhar 
$ 1.000.000 na loteria. como ele vai comemorar se. nt10 
puder verificar que a mensagem foi enviada pelos orga.ni• 
zadores daquela loteria? 
Em conseqüência. au1en1icação e integridade de men-
sagem devem andar juntas. Em muitos protocolos, a combj-
nação funciona apr<Jximadameme como de.~revem•s em 
seguida. Considere. mais uma vez, que Alice e Bob queiram 
se comunicar e que Alice tome a iniciali"a de estabelecer 
um canal. Alice com,cça enviando urna mensagem a Bob ou 
a um terceiro de confia11ça que ajudar-á a estabelecer o canal. 
Uma vez estabelecido o canal. Alice tem ce1te1,a de que e~lá 
falando com Bob, e Bob tem certeza de que •~•á falandc1 
com Alice. e assim e les podem trocar mensagens. 
P,u·a garantir a subseqi.lcntc integridade <las mensagens 
de dados que Selo trocadas de1X>is da au1emicação. a prático 
comum é usar cript<>grafia de chave secreia por meio de 
chaves de sessão. U:ma chave de sessão é uma cha\·e (se-
creta) usada parJ crip1ografar mensagens visando à intcg.ri .. 
dade e. possi\'elmc11tc, tamlx':m ll confidencialidade. De 
modo geral, tal cha"c é usada somente enquanto o canal e.xi• 
sltr. Quando o canal é feehado. sua cha"e de sessão associ-
ada é descartada (ou. na verdade. destl\lfda com segurança). 
Mais adia.me vol1.aremos às chaves de sess..1o. 
Rulenlicaçao baseada em uma chave secreta compartilhada 
Va1nos corneçaI examinando um protocolo de auteo• 
ticaç-ão baseado em uma chave secreta que já é compnnj-
lhada entre Alice e Bob. Mais adiante neste capítulo discu• 
1ir<:inos como os dois conseguir:1.m obter a ch;we compar• 
tilhada de modo segu,·o. Na descrição do protocolo. Alice 
e Bob são representados por A e 8, respectivamente. e sua 
chave compartilhada é K;..6 • O protocolo adotà uma abor• 
dagem comum peta qual uma pane desafio a outrn a dar 
uma resposta que só 1>0de estar correta se o outro conhe• 
ccr a chave secreta compartilhada. Tais soluções são lám• 
bém conhecidas como protocolos de desafio-resposta. 
Anderson
Realce
Anderson
Realce
Anderson
Realce
Anderson
Realce
No caso da autentic<lÇâO baseada e m uma chave se-
creta cúmpartilhada, o protocolo funciona como mostrá a 
Figura 9.10. Em primeiro lugar. Alice e1wia sua identidade 
a Bob (mensagem 1) indicando que quer estabelecer um 
canal de comunicação entre os dois. Na seqiiência. Bob 
envia un1 desafio R8 a Alice. representado pela mensagem 
2. Esse desafio poderia romar a fol'fna de uin n(lmero 
a le.atório. Alice tem de criptografar o desafio com a chave 
secreta K,1.n qu1t ela companilha com Bob e devolvê-lo 
c1·lptog,rafado. Essa res1>0sta é represem.ada 1x:-la mcn-
s.agem 3 da Figura 9.1 O. que contém K,.8 (R8) . 
L---.'...J AL----.1 
1+----.!.-1' A, '-------J 
fig111 9.10 Autenocaçlio baseada em uma C""'1e secrew 
comparnlhada. 
Quando recebe• resposia K, .• (R8 ) a seu desalio R8 , 
Bob pode çlççjfror ~ n1e11sªg~i11 usa11cJ9 11,ovameniç ç1 çh:,ve 
companilhada para ver se ela contém R8 . Se comiver. emão 
e lc sabe que Alice está do outro lado porque. antes de mais 
nada. (Jucm mais poderia ter ériptografudo R8 com KAJ,'! 
Em ouu·a$ palavras. agora Oob verificou que cs1á de fmo 
falando c.om Alice. Contudo. observe que Atice ainda não 
verificou se é de fato Bob quem está do outro lado do canal. 
f><>rtanto, ela e.nvia um desafio R11 (mensagem 4), ao quaJ 
Bob responde re tornando K,t1,(R,l). representada pela mén• 
s.agcm 5. Quando Alice decifra C$Sa mensagem com K..,1, e 
va seu RA. ela sabe que es1á falando con, Bob. 
Uma das questões mais djfíccis em segurança é cfa-
lx>rar prolocolos que realmente funcionem. Para ilustnu-
como é fácil as coisas darem ermdo. considere uma 
·()1imi1.ação' do protocolo de auténlicação na qual o número 
(k 1i\Ci\Sagci\S foi !Mtizido de ci1iC() 1)àfti tl'ê,,. êônió MôSl(it 
a. Figura 9. 1 I. A idéia básica é que. se Alice quisesse mesmo 
<lcsafiar l3ob. ela poderia perfeitamente enviar um desafio 
junto com a identidade dela ao estabelecei: o canal. Da 
mesma maneira, Bc,b retomari~l sua resp<}sta àquele desafio, 
junto com seu próprio desafio, cm uma únic:.l mensagem. 
lnfcliz.,ncntc. esse prolocolo não funciona mai$, Ele 
1>0de ser den'Otado com facilidade pelo denon1ínado ata-
que de reflexão. Pam explicar com:o esse ataque funciona, 
considere um intmso chtunado Chuck, que repre._,;entare-
mos por C em nos...'>()S protoc..'-Olos. O ohjeüvo de Chuck é 
estttbcleccr um canal com Bob de modo que c:;te acredite 
estar falando com Alice. Chuck pode cstabclcccr esse 
canal se responder corrc1am.cntc ao desafio enviado por 
Bob, por exemplo~ retorna11do a vers~o c.riptografada de 
Capílulo 9 Segurança 241 
um número que Bob enviou. Sem conhecer K11.JI, só 8()b 
pode realizar 1al criptografia e é exatamente isso que 
Chuck induz Bob a fazer. 
il..--12fi;R~87,K~.~~J(RR•])íl------l ~ 
figu1a 9.H Autcm><:ac;~o bale- em uma Chilv<! 
s~e(a compartilhada. ma$ us.;indo três 
01e1,sageos em vez de ôf'ICO. 
O ataque é ilusrrado na Pigura 9.12. Chuck come·ça 
enviando uma mensagem que contém a identidade A . ,de 
AI.ice. junto coni um de .. ~afio Rc. Bob rel<)rna seu desafio 
R6 e a resposta K,u/..R<·) em uma única mcn~lgem. Nesse 
ponto. Chuck precisaria provar q\le conhece a chave secre-
ta retomando K,,.,J,R8) a Bob. l,tfeliunente. ele não tem 
K,1.8 • Em vez disso. o que ele faz é 1enrn,r es tabelecer um 
segundo canal para que Bob faça a criptografia por ele. 
Pmtamo, Chuck envia A e R8 cm uma única men• 
sagcm como antes. mas agora finge que quer um segund o 
canal. Isso é representado pela n1ensagem 3 da l'·igura 9.12. 
13ob. sem perceli>er que ele próprio tinha usado R8 ames 
como desafio. res1,onde com K,...,J.88) e um outro desafio. 
R81• representad<> pela mensagem 4. Nesse pomo. Chu,ck 
tem K,1,8 (.R8) e :acaba p()r cst~lbelecer a primeira sessão 
retornando a mensagem 5. que: contém a resposta 
KA,8'.R11). originalmente requisitada pelo desafio enviado 
na mensagem 2. 
Como explicam Kaufman el ai. (2003), um dos erros 
come.tidos dur.tnte a adaptação do protOCQlo original foi 
que as duas partes da nova versão do protocolo estavam 
usando o mcsm<J desafio cm duas rodadas diferentes do 
pro1ocolo. Um 1,rojeto mclhol' seria sempre usar desafios 
diforcnle.s para o iniciador e pan1 <1uem responde. Por 
exemplo, se Alice sempre usar um mímero ímpar e Sob, 
um número par,. este teria percebido que estava aconte-
<.-endo a lgo suspeit<J ao receber R8 ná mensagem 3 da 
Figura 9.12. (l11felizmcntc. essa solução está sujeita a ou-
cros alaques. c:m parcicular àquele conhecido como 
·ataque do ho,mem do meio' , que C expJicado em 
Fecguson e Sclmeier~ 2003.) De modo geta.l, permiti( às 
duas partes que estão estabelecendo um canal seguro 
fazer várias c-0isas idênticas nã() é uma boa idéia. 
Um outro princípio que foi violado no protocolo ad<1p-
1ado é que Sob deixou escapar i1lfonnações valiosas sob a 
forma da resposta K •. bCRc) sem saber ao """° para quem 
eJe estava passando essas informações. Esse princípio não 
era violado no protc.x:olo original no qual, antes de mais 
242 Sislem,s distribuídosA.R< 
2 
R,.K~,I.Ri, 
'6 • A,R8 5 • Rs,K._,l,R,,) 
L---'·~K~~J,1,RR.,,):i"l-----l-1 
figura 9.11 A(a,qu,, de rellex:lo 
) Primeira Sl8Ss.ão 
nada. Alice precisava provar sua idcmidadc e só depois Bob 
estaria disposlo a lhe pass:u· infonnações crip1ogtafad,1s. 
Há oulros princípios que os desenvolvedores de protoco-
los criptográficos aprenderam gr~ativaineme ao longo dos: 
anos~ e nós apresentaremos alguns deles quando discu1innos 
outros protocolos mais adi.ante. Uma lição imp0r1anl'C é que 
projctru· protocolos de segurança que fazem o que devem fazer 
C-. muitas vezes, mais difícil <k> que pan..---cc. Ademais. m0<1j-
ficar um pn)tocolo existente para melhorar seu de...~mpcnho 
Pode. facilmente afetar sua con'e\-.1o, como ac.abamos de 
dcmon.strar. Se quiser saber mais $Obre princípios de projeto 
pam protocolos. consullcAl>adi e Ne<.<lham (1996). 
Rutenttcação que utiliza uma central de distribuiç~o de chaves 
Um dos problemas da uti1iza~·.ão de uma chave secre• 
ta cornpartilhada para autenticação é a csc:1labilidadc. Se 
um s.istcmá distribuído conliver N hospedeiros: e cada hos-
pedc·iro tiver de comparlilhar uma chave secreta com cada 
um dos ou1ros N - 1 hospedeiros. o sistema vai precisai'• 
gerenciar, no 101al, N(N - 1 )/2 chaves. e cada hospedeiro 
terá de gerenciar N - 1 chaves. Para N grande, isso resul• 
tará em problemas. Umá a lternativa é usar uma abord;\• 
gem centralizada por meio <lc uma central d e dislríbui-
çJio de chaves (Key Distribulion Center - KDC). A 
KDC companilha uma chave secre1a com cada um dos 
hospedeiros. rnas nenhum dos pares precisa ter também 
uma chave secreta comparti1hada. Em outras palavras. 
usar uma KDC rt:<"1ucr • gercnciamcnw de N chaves cm 
vez de N(N - 1 )/2. o que é urna evidente melhoria. 
Se Alice quiser estabeloccr um canaJ seguro com 
.Bob .. poderá fazer isso com a ajuda de uma KDC (de con-
' A,8 
<I) 
,li 
<( 
2 
l<4t<«J.KI\,) 
• ,l 
! 
·~ 
~ 
figu,a 9.ll Princi,::xo da vtitízac;ão oe vma KDC. 
fiança). A idéia toda é que " KOC entrcsue uma chave a 
ambos. AIJcc e Bot>, que eles possam usar para comuni• 
e.ação, conforme mostrado na Figura 9.13. 
Em primeiro I ugar, Alice c1wta uma mensagem a 
KDC informando que quer falar c-0111 Bob. A KDC retor• 
na um.a mensagem que contém uma chave sccrel.a com• 
panilhada K,1,8 que ela possa usar. A mensagem é crip-
t0grafada com a chave secreta K,.,,.,:,x: que Al ice compar-
1ilha com a KDC. Além disso. a KDC envia K,,.fl 1;tn)bém 
a Bob, mas agora criptogmfada com a chave secreta 
K8.xocque compartilha com Bob. 
A principal desvantagem dessa abordagem é que 
Alice pode querer começar a estabelecer urn canal seguro 
com 0ob aincs mesmo de Bob ter recebido a chave com-
ponilhada da KDC. Além disso, a K.DC 1em de inserir Hob 
no laço passando a chave para ele. Esses problemas podem 
ser contornado!- se a K DC apena~ p.,s...,.ar K11..1:.1X·(K".n) de 
voha pru11. AI ice e de i,--.~'lr que ela se encarregue de se concc• 
car com Bob. Isso resulta no protocolo n1ostrado na figura 
9. 14. A mensagem K8.xod.K,w) também é conhecida con,o 
tíquele. Cabe a Alice a tarefa de passar esse tíquete a Bob. 
Observe que B<>b ai nda é o tínico que J>Odc fazer um uso 
sensato do tíquete. vorque é o único, além da KDC. que 
sabe como decifrar a informação que ele cont·ém. 
O protocolo mostrado na Figura 9. 14 é. na verdade. 
vma "arian1e de um exemplo bem conhecido de um prolO• 
colo de autenticação que u1ili1,a uma KDC. conhecido 
como protocolo de autenticação Needham-Schroeder , 
nome que ~e deve a seus inremorcs (Needham e 
Schroedcr. 1978). Uma variante diferente do protocolo 
está crn uso no sistema Kcrberos. que dcs.crovcrcmos mais 
D 
~ 
2 
K..,,,JK,._,,) 
a.diante. O protocolo Needham-Schroeder, mostrado na 
Figura 9. 15, é um protocolo desafio-resposta multivias e 
funciona como descrevemos: a seguir. 
Quando Alice quer cstabcle<:tr um canal seguro com 
Bob. ela envia um,, requisição a KDC que comém urn 
desafio R,1.juntocom su3 identidade A e. éclal'O. a de 8ob. 
A KDC responde dando a ela o 1íque1c Kts,Ktx:(K,t.ti) , junto 
com a chave secreta K11.s, que. na seqüência. ela pode 
compmtilhar com B<,b. 
O desafio R,u que A lice envia a KDC com :;ua rc(1ui-
s ição para cswbcl(.-ccr u,n canal com B-0b também é co--
1\hecido como nonce. Um nonce é um mímero aleatório 
l-sado :::omc!lle uma ve7,.. por exernplo. um mímem e.scolhi-
do de um conjunto muito grande. O pr<)pósito principal de 
llm noncc é relacionar duas mensagens exclusivamente 
mna com a oulra. nesse ca.so a mcnsage,·n 1 (.:Om a mensa-
gem 2. Em panicular. incluindo R1,1 novamemc na n-1cn-
s . .1gcm 2, Alice sabcl'á, com ccncza. que a mensagem 2 é 
e nviada como uma resposta à mcn!.<lgem I e que não é-. por 
exemplo, uma reprodução de uma mensagem mais velha. 
P,lra entender o problema cm mãos, considere que 
niâo us:unos nonccs e que Chuck roubou uma das chaves 
velhas de Bob, digamos, KrJ.i,,c, Ademais, Chuck inter-
ceptou uma re..<i:posta velha. K,..,.Koc(8, K,,.k> Kf.frx· (A, 
K",8)) que a KDC tinha rct~)rnado par.a uma re.quisição 
que Alice enviara anteriQrmente para falar com Bob. 
Nesse meio-tempo. Bob ter.l n.cgociad(> uma nova chave 
s-ccrcta compartilhada com a KDC. Contudo, Chuck é 
pacicmc e espera até que Alice solicite no,famente-o csta-
t>elecimemo de um canal scgul'o com Bob. Nesse pomo, 
Capílulo 9 Segurança 243 
ele reproduz a respo~ta velha e engana Alice. que passa a 
acreditar que está falando com Bob porque ele pode 
decifrar o líquele e provar que conhece a chave secreta 
compartilhada K A,h• Cklro que tal fato é inaceitável e 
devemos nos defender contra ele. 
Com a inclusão de um nonce. tal ataque é impossí-
vel porque a reprodução de uma mensagem mais velha 
será descober1a imediatamente. Em panicular. o nonce na 
mensagem de resposta não C()mbinará com o n(mce na re .. 
qujsição original. 
A mensagern 2 também contém B. a idemidadc -de 
Bob. Com• inclusão de ll, a .KOC protege Alice contra o 
ataque descrito a seguir. Suponha que R tenha iicado de 
fora da mensagem 2. Nesse caso. Chuc:k poderia mocfi .. 
ficar a mensagem I subslituindo a identidade de 13ob por 
sua própria identidade, digamos, C. Então. • KDC pen-
saria que A lice queria estabelecer um canal seguro co,n 
Chuck e respo1,dcl'ia de acordo com isso. T~o logo Alice 
quisesse con1.11am· Bob, Chuck interceptaria a mensagem e 
enganaria Alice,. fazendQ•a crer que es,tava falando com 
Bob. Ao copiar a identidade da outra ptu'le da mensagem 
1 para {t mensagem 2. Alice perceberia imcdiat:rn,cnte que 
sua requisição 1inha sido modificada. 
.Dc1>0is que a K.DC passou o 1íque1c a Alice. o canat 
~cguro entre Alice e Bob pode ser estabelecido. Alice 
começa enviando a mensagem 3, que contém o tíque te 
para Bob e um desafio R,,1 criptog.rafudo com a clm.,,e 
co111panilhada K.<.8 que a KDC acabou de gerar. Então, 
Bob decifra o tíqucte para achar a chave com1xu·tilhada e 
retoma a resposta R,t2 - 1 com um desafio R8 para Alice. 
>-------<AB l-----+-1 
figura 9.14 u tiiizaç.ao <te un1 dquete que pe,mfte a .Alk:e est<'!be.lecer e~ com Soo. 
- - -1 
.RM,A.8, 
u 
HK.xoe<R.,, B.K.._8 , K8J<DC(A, K4 _8 ))t-
o 
"' 
i 3 , K._8 (R_..), K8J<OC(A,K._8 ) 
~ 
D 
c8 
- ' , K._8 (R.,- 1.R8) , 
~ 
5 1 K (R - 1) 1 
1 A,B 8 · 1 
~ 
figu1a S.IS Protocolo de autemtca<;~ Neroham-Schroede<. 
244 Sislem,s distribuídos 
- ' .-A 
2 
Ke.K«f..R81) : 
3 -
R.-.,.A.8.Kal<JX!.Ra,) , 
~ .. ·" <( H K.-.KIXÍ-Fl,.1.8.K,._t,. K~A.K,-.e,Rs,l> f- ~ 
~ 
5 K,vl.R,.J.KqJ«XtA.K,_,.R, ,) ' 
' ' 
• K,._,J.R.,- t,R.,) 
'' ' 1 K,,.,rl,.Re:- I) r - -
figura 9.1& P,ot«<'lo (Ontr.a ret.Jtihtaç<'I<> 1nal-intenci0nada Cle uma chav~ de S,C~~o 
gercl(23 anteti0<menté no ()(olOCOIO Nee<lha,n-S(hroetJer. 
Há uma obscl'vação que é pteeiso fazer sobre a ,nen-
sagem 4: em gern.l. retomando R112- l . e não apenas R"1• 
Bob não somente prova que conhece a chave secreta com-
parli lhada. mas também que decifrQu o desafio propria• 
mente dito. Mais uma vez. isso vincula a mensagem4 à 
mensagem 3 do rn.csrno modo que o nonce R" vinculou 
a mensagem 2 à mensagem 1. Portanto. o protocolo é 
mais protegido contra reproduções. 
Contudo, nesse ca"-O especial, teria sido suficiente ape• 
nas retomar KAJJ(R. 1• R8), pela simples rn,.ão de que essa 
snensagçm ainda não lbi usada em nenhum lugar do proto~ 
eolo. K,,IJl,,.R•) já prova que Bob foi eapáz de decifrar o 
desa.fio enviado na mc-1ts..1gcm 3. A lllC11sag;cm 4. como 
n10s1:ra a Figura 9.J 5. se deve a razões históricas:. 
O protocolo Ncedham-,Schroeder apr-esentado aqui 
ai.nd:t tem um ponto fr.tco: se acontecer de Chuck !)e apos-.. 
Sttr de uina chave velha K~.6 , ele poderia reproduzir a 
mensagem 3 e fazer com que Bob csrnbclcça um canal. 
Então, J3ob acredital'á que está falando com Alice quando. 
na verdade, é Chuck quem está na outra extremidade. 
Nesse caso. precisamos relacionar a mensagem 3 com a 
mensagem 1. isto é. fazer com que a chave deJ>Cnda da 
requüsição inicial de Al ice para estabelecer um c:mal com 
Bob. A solu<;?to é mostrada na Figura 9. 16. 
O 11\lque é incorporar um oonce na re<1uisição envia-
da por Alice a KDC. Contudo, o nonce tem de vir de Bob: 
is~o ,garante a Bob que quem quiser estabelecer um canal 
segu.ro com ele terá obtido a informação apr<)priada com 
a KDC. Portanto, cm primeiro luga.r. Alice: requisita que 
Bob lhe envie um non.cc R,,,. crip10grafndo con, a chave 
compartilhada entre llob e a KDC. Alice incorpora esse 
nonce a sua requisição à KDC. que depois, na seqüêncfa. 
a decifra e coloca o resultado no tíquete gerado. De.5se 
modo. Bob ter-.í certe1..a de que a chave de sessão está vin~ 
culada à requisição original de Alice para falar com Bob. 
RutenNcação usando c1iplog1a~a de chave pública1 
Agora vamos estudar a aucenticaç.:lo com um crip--
tossi stcma de chave pública <JUc não requer uma KDC. 
Mais umn vez. considere a situação em que Alice queira 
estabelecer uni canal seguro com Uob e que cada um pos• 
sui a chave pública do outro. Um protocolo de autenti• 
ca,·ão típico baseado em criptografia de chave pública é 
mos1r--ddô na Figura 9.1 7. que explicaremos a seguir. 
1 
i KiJ,A.R,,J ' 
figu1a S.17 Autenuc.iç.io mutua em um 
COJ'.)4~St~ de Ch;Jvê públkct. 
-
Alice c.omeça ,em•iando um desafio R,, .:t 8ob cfip-
tografado com sua clrnve pública K'/i. Cabe a Bob decifrar 
a mensagem e rctorn.ar o desafio a Alice. Como Bob é a 
única pessoa que pode decifrar a mensagem (usando a 
chave privada que está associada com a chave pública que 
Alice usou), Alice saberá que está falando com 801>. 
Observe que é imporrn.n1c que Alice lenha a garantia de 
que está usando a chave pública de Bob. e não a chave 
plíbliç~ dç. alguém que çstá se f~iendQ pf!s.,~.u- por Bol>. 
Mais adiante nesie capíiulo discuri.remos como essas 
garantia.,; podem ser dadas. 
Quando Bob recebe a requisição de Alice para esta-
belecer um canal. ele retoma o desafio decifrado junto com 
seu próprio desa.fio R8 para autemicar Alice. Além disso. 
ele gera uma chave de sessão K11.H que pode ser usada p,.ll'a 
comunicação ulterior. A 1\!sposta de Bob ao des;,fio de 
Alice, seu próprio desafio e~• thavc de sessão são coloca~ 
dos em uma mensagem criptografada com a chave plíblic-a 
K,t que I:>eI1ence a A !ice. 1-eprcsentada pela mensagem 2 da 
Figura 9. l 7. Só Alice será capaz de decifrar essa mensagem 
usando a chave privada K; a:;sociada t'Om K1. 
Por fim, Alice retoma sua reSp(>Sta ao desafio de Bob 
usando a cha,-e de se:ssão KM, gerada por Sob. De.,~ 1nodo. 
e la terá pro\!ado <1ue podia decifrar a 1ilensagem 2 e. assim, 
que é com ela. Alice. que 8ob ,-ealmeme está falando. 
9.2.2 Integridade e con~dencialidade de mens~gens 
A lém da autcntic..1ç-ão. um <:anal seguro tàrnbém deve 
fornecer garantias ptu1, tl integridade e conlideucialidadt..:, 
de mensagens. Integridade de mcnsr1ge111 significa que as 
n,cnsagcns são protegidas contra rnodi licaçt>C.$ sub-rcptí-
das: confidencialidade gamntc que as me1lsagens não 
possam ser intcrccputdas e lidas por intrusos. A confidcn-
c ialidade é estabelecida con1 facilidade tão-somente com 
a criptografia de tuna mensagem antes de cn\'iâ-la. A crip-
1og.rafia pode ocorrer por meio de uma chave secreta 
comparülhada com o receplor ou. como ahernativa. uli-
lizando a chave pública do recepror. 1"odavia. proteger 
mna me11sagem contr.i modificações é um pouco mais 
com1>licado. como discutiremos a seguir. 
Rssinaturas digitais 
A imegridade de mensagem quase sempre vai além 
da transferêncja propriamente dita por meio de um canal 
seguro. Considere a siluação na qual Bob acabou de 
vender a Alice uin item de colecionador. tal como uin 
d isco de fonógrafo. por S 500. ioda a negociação foi fei1a 
l)Or e-mail. No fim. Atice envia a Bob urna mensagem 
confirmando que ela comprará o disco por $SOO. Além da 
autenticação. há no mínimo duas quest,ôes que precisam 
s,cr consideradas em relação à integridade da mensagem. 
l. Alice precisa ter certeza de que Bob não alterará 
maliciosamente os $ 500 mencionados cm sua 
mensagem para uma quantia rmdor e alinnará <1uc 
ela prometeu mais do que $50(L 
2. Bob precisa ter ce11c.za de que Alice não pode.rá 
negar que tenha enviado a rnens..'l.gcm. por exem-
plo. 1>0rque eJa pensou melhor no assunto. 
Essas duas questões 1>0dcm ser resolvidas se Alice 
assinar digitalmeote a 111ensagem de modo tal que sua 
assinatura fique vinculada exclusivllmeote ao contexto da 
mensagem. A associação exclusiva entre uma mensagem e 
:rna assinatura impede que modificações na mensagem 
pm;scm despercebidas. Alé1n dis:.o. se a ass:in:uura de 
Alice puder ser confirmada como gcnuí na. rnãis tarde ela 
n1ão vaj poder negar o fato de que assinou a me1lsagern. 
pu ' .. 
,l co • .,. """""" coa.,. ptill<ica 
m deAIICe, - + deBob, 
x; Kã 
' : . .. . ' 
'' 
r 
Capílulo 9 Segurança 245 
Há váiios modos de colocar assinaturas digitais. Uma 
fonna popular é usar um criptossistema ele c.have pública 
como o RSA, como mostra a Figura 9.18. Quando Alice 
cn"ia uma men.s.agen\ m a Bob. ela a criptografa com sua 
chave prfr(U/a /Çi e a despacha para 8ob. Se também q~i-
scr mante,· o con teúdo da mensagem em segredo. ela pode 
usar a chave pública de 8ob e enviar K'J(m. K,\{m)). que 
combinam e a versão assinada por Alice. 
Quando recebe a mensagem. Bob pode decifrá-la 
usando a chave pública de Alice. Se ele puder ter cer1eza 
de que a chave pública é. de falo. de propriedade de Alice. 
então decifrar a versão assinada de m e compnrápla com 
sucesso a m só p,odcs.igniíicarque ela veio de Alice. Alice 
está protegida CQntm quais.quer modi fic.açõe-s rnaliciosa:, 
de m por Bob, porque Sob sempre terá de provar que a 
versão modific~l<la de m també1n foi assinada por Alice. 
Em omras palavl'as, em essência, só a mco:-:age.m dccifr.a-
da nunca conta como prcwa. Também é do próprio intc• 
ressc de. Bob manter a versão assinada de m para se pro-
reger contra rejeição da parte de Alice. 
Há válios 1>robJcmas nesse esquema. embora o proto-
colo cm si esteja. cotTCto. Em primeiro lugilr. a ,,alidadc <la 
assinatura de AI ke só estará em vigor enquanto a cha.ve 
privada de Alice permanecer um segredo. Se Alice quisi;r 
se safar do negócio mesmo depois de ter enviado sua eon-
finnaç.ão a Boh, ela poderia declarar que sua chave priva-
da havia ~ido roubada antes de a mensagem ser enviadai. 
Ocorre mn outro problema quando Alice decide 
mudar sua chave privada. Jsso. em si, não é uma má idéfa, 
porque trocar chaves de tempos cm tempos cm g_cral ajt1,da 
a hnpcdir imrusiio. Comudo. liio logo AHcc lenha mudado 
sua chave. a declaração que ela enviot1 a Bob não cem mais 
,,aJor. Ncs..ws éasos. tálvez seja ncc<:ss..'trio uma autorida,dc 
<..~ncr:ll que monitore <1uar'1do as chaves são trocadas. além 
de usar marcas: de tempo na assina1ur~\ das mensagens. 
Um outro problema com cs!)e esquema é que Alice 
criptografa a mensagem inteira côm sua chave privada. 
Tal criplOgrnfia o>ode ser cata em termos de requisitos ,de 
processamento (ou até matematicamente inviável

Continue navegando