Baixe o app para aproveitar ainda mais
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
Compartilhar