Discutimos hoje os dois projectos relacionados com extensões para o OpenID, desenvolvidos no âmbito do SAPO Summerbits, o primeiro programa nacional de bolsas de apoio ao software livre, organizado pela Associação Ensino Livre e o SAPO. A entrevista é longa e interessante, mantenham-se connosco…
Boa tarde caríssimos Manuel Correia, Filipa Reis e Diana Almeida, e boa tarde também ao colaborador Luís Valente. São os mentores dos 2 projectos relacionados com o OpenID no âmbito do SAPO Summerbits. Antes de continuarmos a nossa entrevista, gostaríamos que explicassem aos nossos leitores em que consiste o OpenID e de que forma poderá vir a mudar hábitos estabelecidos na utilização da web…
Boa tarde,
Antes de mais, e para começar, consideramos que é importante explicar o conceito de “Identidade Digital” para depois estar em condições de explicar em que consiste o OpenID. O conceito de Identidade é muitas vezes descrito como a concepção que um sujeito tem de ele próprio, como uma entidade separada e distinta num determinado contexto. Esta entidade pode ser vista como um conjunto de características, agregadas ou não, definindo os atributos que a distinguem das demais entidades. Podemos portanto começar por definir “Identidade Digital” como uma forma de representar digitalmente os dados e características relacionados com um sujeito, sendo que este pode não ser necessariamente humano, como por exemplo, uma empresa ou uma máquina. De acrescentar que para além de conter dados ou características que descrevem de forma única um sujeito, uma identidade digital contém também informação sobre os relacionamentos desse sujeito com outras entidades, tal e qual como acontece no mundo real. Tal evidencia o comportamento natural do ser humano – o Homem cria, gere e escolhe perfis de identidade de acordo com um dado contexto social. Por isso, no mundo digital faz cada vez mais sentido a existência de sistemas de gestão de identidades digitais que ajudam o utilizador a gerir a sua identidade digital e os seus perfis de identidade no mundo online.
O OpenID é um protocolo descentralizado e simples para “Single Sign On” (SSO) e gestão de identidades digitais na Internet. Nos últimos anos temos vindo a assistir a uma profunda mudança na forma como a Internet se tem enraizado ubiquamente na realidade do dia-a-dia dos cidadãos. Daqui resulta a necessidade acrescida de transitar de uma forma segura, simples e prática para a Internet, os processos burocráticos formais que foram sendo desenvolvidos ao longo dos séculos e que constituem um dos pilares fundamentais da sociedade tal qual a conhecemos. O OpenID surgiu como uma resposta simples e eficaz à problemática da gestão de identidades digitais, associada à vivência cada vez mais intensa que os cidadãos vão tendo na Internet. Este protocolo permite aos cibernautas autenticarem-se em diferentes sites, usando para o efeito uma identidade digital que eles próprios se podem encarregar de gerir. Elimina-se, assim, a necessidade de criar diferentes nomes de utilizadores e passwords para cada site, podendo passar a usar-se apenas um OpenID para todos os processos na Internet que requeiram um serviço de identidade.
Ao usar sites que permitam o “login” por meio do OpenID, os utilizadores apenas necessitam de se registar junto de um provedor de identidades apropriado, onde poderão ser eles próprios a gerir as características das identidades digitais com que se querem dar a conhecer na Internet. Como o serviço é completamente descentralizado, qualquer site pode usar o OpenID como forma de “sign-in”. Os utilizadores são livres de escolher o provedor de identidades que melhor se adeqúe ao seu perfil de actividades na Internet, podendo mesmo mudar de provedor caso seja esse o seu desejo. O utilizador pode assim passar a ter muito mais confiança nos serviços e na gestão dos dados que constituem a sua identidade digital.
Actualmente estima-se que milhares de sites já aceitam OpenID e que existem milhões e milhões de identidades OpenID registadas em diversos provedores de identidades. A tendência é a de estes números continuarem a aumentar de uma forma exponencial, uma vez que os grandes “players” da Internet a nível mundial, como a Google, Sun Microsystems, IBM, Yahoo, Microsoft, AOL, entre outras já terem adoptado ou já terem anunciado a intenção de suportar identificação/autenticação por OpenID.
Como funciona o login com OpenID?
Um utilizador tem que se registar previamente num provedor de identidades OpenID por forma a obter um identificador OpenID e a definir diferentes “Identidades Parciais” ou “Personalidades” (personas) conforme assim o desejar. Quando este utilizador pretende autenticar-se num site que suporte OpenID (relaying party), este começa por apresentar um formulário que despoleta o processo de login. O utilizador introduz o seu identificador OpenID no formulário e o “relaying party” faz com que o browser do utilizador efectue um redireccionamento para o provedor de identidades relativo ao identificador que lhe foi fornecido pelo utilizador. O provedor de identidade pede então ao utilizador uma password e pergunta-lhe se ele confia nesse “relaying party” e se autoriza o envio das suas credenciais e detalhes de identidade que lhe estão a ser pedidas. Se o utilizador não aceitar ceder essa informação o browser do cliente é de novo redireccionado para o “relaying party” com uma mensagem indicando que a autenticação foi rejeitada, pelo que o site recusa também a autenticação e registo do utilizador. Se o utilizador aceitar ceder as suas informações o browser é redireccionado para uma página do “relaying party”, desta vez acompanhado de credenciais fornecidas pelo provedor de identidade. O relaying party verifica se essas credenciais tiveram origem no provedor de identidades e se isso se confirmar a autenticação OpenID é considerada bem sucedida e o utilizador é autenticado no web site do relaying party.
Actualmente quais as organizações responsáveis pelo desenvolvimento da tecnologia OpenID? Quais os temas principais que estão no momento a ser debatidos? Em Portugal já existe alguma entidade responsável pelo desenvolvimento e divulgação das tecnologias OpenID?
No momento actual a principal organização é a OpenID Foundation, cujo objectivo principal é o de promover e desenvolver tecnologias OpenID. Relativamente aos temas “quentes” que estão a ser activamente debatidos pela comunidade, temos que realçar:
- Extensão ao Protocolo OpenID providenciando aos sites consumidores de OpenID, mecanismos de autenticação que poderão ser utilizados pelo provedor de identidades para garantir a autenticidade dos utilizadores, permitindo por exemplo que o relaying party ou o utilizador exija que o processo de autenticação seja efectuado utilizando mecanismos resistentes a phishing e que esta seja “multi-factor”, podendo exigir, entre outros, a participação de tokens como smartcards e até de processos e mecanismos biométricos.
Em Portugal existe a Associação OpenID Portugal, da qual todos nós somos membros fundadores. A Associação OpenID Portugal é uma associação sem fins lucrativos membro da OIDF – OpenID Foundation e da OIDE – OpenID Europe Foundation, cuja principal missão consiste em divulgar e impulsionar a utilização das tecnologias e soluções OpenID em Portugal, promovendo o seu desenvolvimento e adopção como forma privilegiada para a construção de mecanismos de gestão de identidades centrados no utilizador. A associação OpenID Portugal tem como principais objectivos não só a promoção e divulgação das tecnologias OpenID na comunidade portuguesa, mas também a criação e a promoção de novas tecnologias que tirem partido do OpenID e que se traduzam em benefícios acrescidos para o dia-a-dia do cibernauta. Pretendemos simplificar toda a experiência OpenID, por forma a que os utilizadores se possam sentir mais confortáveis e seguros na sua utilização e encontrem soluções úteis para a sua interacção com a Internet e serviços online. É também nossa intenção desenvolver projectos que possam tirar partido desta tecnologia, envolvendo para o efeito a comunidade científica e académica Portuguesa.
Comecemos pelo projecto de integração do OpenID com o Cartão do Cidadão (e não só). Quais são
os objectivos principais deste projecto?
O projecto EOID surge da oportunidade que existe em criar uma simbiose entre o novo cartão do Cidadão e a gestão de identidades digitais por parte do utilizador, por forma a potenciar uma autenticação mais segura no mundo virtual. Proporcionar a todos os internautas nacionais a possibilidade de navegarem e usufruírem de serviços na Internet de uma forma segura, fácil e ao alcance de qualquer um, através do cartão do cidadão conjuntamente com uma identidade digital OpenID – esta é a nossa motivação. Estamos portanto em condições de enumerar os principais objectivos destes projectos:
- Criação e promoção do servidor de identidades OpenID Portugal, por forma a poder fornecer uma identidade digital segura e confiável a todos os cidadãos que assim o queiram.
- Criação das extensões necessárias para que o processo de autenticação faça um uso efectivo e simbiótico de smart cards, nomeadamente o cartão de cidadão.
- Desenvolvimento de um cliente OpenID, sob a forma de plugin para o Firefox, que facilite o processo de autenticação nos diferentes sites que suportam OpenID.
Será realista a visão de que num futuro próximo um cidadão se possa identificar de forma unívoca com o seu OpenID em qualquer serviço online português? Para que isso venha a acontecer, consideram essencial que exista um provedor OpenID estatal confiável, compatível com o cartão do cidadão?
Relativamente à primeira questão consideramos importante que tal venha a acontecer. Naturalmente que a adesão por parte dos portugueses a este tipo de tecnologias será tanto maior quanto a sua divulgação e promoção. Esta foi uma das principais razões que nos levou a fundar a associação OpenID Portugal, para estarmos em condições de poder chegar a todos os portugueses e que todos possam ter a oportunidade de poder usufruir desta tecnologia.
Diana e Filipa: No entanto, e respondendo à segunda questão, consideramos que uma possível participação do Estado daria naturalmente outra dinâmica ao projecto, conferindo-lhe talvez um cariz mais confiável. A ideia do provedor estatal confiável é uma hipótese forte, no entanto há que considerar que provavelmente o papel do Estado Português como entidade única provedora de identidades não seria o ideal. Dizemos isto no sentido em que não só seria detentor do monopólio do mercado no âmbito de provedores de identidades em Portugal, mas também não permitiria que se usufruíssem de todos os benefícios que a dinâmica gerada por um mercado livre e concorrencial o permite: evolução das tecnologias, melhor qualidade de serviço, livre escolha, entre outras. Assim sendo, consideramos que o Estado deveria ter antes um papel de regulador ou então que atribuísse esse papel a uma entidade designada para o efeito. O objectivo seria o de regulamentar e acreditar os potenciais provedores de Identidades, permitindo assim que só os provedores que preenchessem determinados requisitos obtivessem uma licença para exercerem a sua actividade, elevando não só os níveis de qualidade dos serviços, mas também estimulando a dinâmica própria do mercado concorrencial, dando ao mesmo tempo força de lei a todos os processos burocráticos desencadeados online no contexto dessas identidades.
Luís: Julgo que não será estritamente necessária a existência de um provedor OpenID estatal confiável, compatível com o Cartão de Cidadão. A própria filosofia do OpenID é que o sistema seja livre, aberto e descentralizado, logo deveremos sim é promover o surgimento de provedores OpenID que utilizem mecanismos que lhe permitam garantir níveis de autenticação elevados. Poderemos se calhar assistir ao surgimento de provedores OpenID junto das Universidades o que já criará locais confiáveis e compatíveis. Neste momento a Fundação OpenID está a desenvolver tecnologia e protocolos que permitem automaticamente aos sites consumidores de OpenID a capacidade de escolherem o nível de segurança que desejam na autenticação dos utilizadores, pelo que devemos isso sim contribuir para a que a comunidade receba exemplos de provedores OpenID OpenSource que utilizem outros mecanismos para garantirem uma autenticação segura, como por exemplo o Cartão de Cidadão.
Manuel Correia: Uma vez que concordo com ambas as opiniões resta-me salientar a importância de manter o protocolo o mais aberto possível de modo a que se possa garantir a interoperabilidade entre os diferentes operadores. Acredito que quanto mais provedores credíveis, como ministérios, universidade, instituições bancárias, associações comerciais, etc… desejarem e estiverem em condições de actuar no mercado da identidade digital de uma maneira livre e aberta e em regime de “cooptição”, maior e melhor será o leque de serviços de identidade seguros e fiáveis que poderão ser oferecidos a todos os internautas. É a promoção deste tipo de ecossistema de provedores de identidade que constitui a principal linha orientadora para as actividades da associação portuguesa de OpenID.
Vamos imaginar um caso prático. Um indivíduo com cartão do cidadão e um OpenID atribuído, por exemplo, http://manuellopes.id.gov.pt visita um sítio web de uma Câmara Municipal compatível com OpenID no sentido de pedir uma certidão. Quais seriam os passos que o utilizador teria de seguir para se identificar perante a Câmara?
Do ponto de vista do utilizador, este apenas teria de se autenticar no seu provedor de identidade, o que corresponderia a um simples clicar no plugin Firefox desenvolvida para o efeito, digitar a sua password e introduzir o seu cartão do cidadão no leitor caso o utilizador opte ou a câmara requeira um esquema de autenticação mais forte. O provedor estabelecerá então uma comunicação segura (TLS/SSL) com exigência de apresentação e verificação de certificados de autenticação por parte do cliente. O processo de autenticação SSL com certificados exige a presença do cartão do cidadão no leitor de cartões e a correcta introdução do PIN associado ao certificado de autenticação do cartão. Se todos os dados foram inseridos correctamente o utilizador estará autenticado e poderá usufruir dos serviços prestados pelo website da Câmara Municipal. Todo este processo na prática significa que do lado do cliente está uma entidade que tem na sua posse o cartão do cidadão correspondente à identidade que consta no certificado que foi enviada ao servidor e que conhece o PIN de autenticação desse cartão. De acordo com a lei actual isso são condições suficientes de autenticação e de não repúdio equivalentes à presença física do cidadão portador desse cartão, para que a Câmara possa fornecer online de forma legal e segura todos os serviços que de outro modo requerem a presença física do portador desse cartão.Quanto ao fluxo protocolar associado ao processo de autenticação do OpenID, já tivemos a oportunidade de o sumariar anteriormente.
Que riscos de segurança poderá um cidadão incorrer ao usar um sistema deste género? Ou se
quiserem, por outras palavras, como responderiam aos críticos do OpenID por causa de vulnerabilidades como “phishing” ou “man-in-the-middle”?
Relativamente ao “phishing”, o desenvolvimento da plugin Firefox foi especialmente concebido para proporcionar ao utilizador um “link” directo aos serviços de gestão de identidades OpenID, evitando ou minimizando assim este tipo de ataque, que nos dias de hoje se têm tornado bastante frequentes.
Assistimos ainda ao surgimento de um número considerável de cartões de identificação pelo mundo fora que já fornecem aos seus utilizadores certificados digitais assinados por entidades credíveis e bem conhecidas. Neste contexto, começa a ser viável pensar em requerer que todos os mecanismos que necessitem de autenticação segura passem a exigir a apresentação de certificados X509 por parte do cliente, que sejam validados por uma infraestrutura PKI (pública e/ou privada) devidamente instalada e configurada no servidor que os requerer. A tecnologia existente fornece ao OpenID protecção contra estes dois tipos de ataques. Com efeito neste momento está em discussão e análise um documento na OIDF que irá dar resposta a estes tipos de situações: OpenID Provider Authentication Policy Extension 1.0 – Draft 5.
No entanto, o problema maior não passa pelos mecanismos de segurança que se possam vir a acrescentar ao OpenID ou à tecnologia em geral, mas passa fundamentalmente, isso sim, pela adequada formação dos internautas em termos de segurança. Do mesmo modo que nos dias de hoje necessitamos de ter uma carta de condução para andarmos na estrada com um veículo automóvel é nossa opinião que a médio prazo tal vai ter que acontecer com a posse e utilização de computadores ligados à Internet. Só com uma boa formação é que podemos evitar grande parte dos ataques de phishing e outras burlas e ataques à infra-estrutura que abundam na rede. Só com formação adequada e respectiva certificação podemos começar a pôr cobro ao crescimento exponencial que este tipo de ocorrências tem vindo a sofrer nos últimos anos. Necessitamos também de melhores interfaces de segurança para o utilizador, do qual o Firefox 3 constitui a nosso ver um grande avanço, ao dificultar de maneira óbvia e directa a aceitação de certificados SSL não válidos.
Ainda sobre segurança… é expectável que o Open ID possa no futuro vir a ser usado em aplicações críticas como comércio/banca online?
Consideramos que sim. Actualmente os bancos já usam mecanismos de autenticação como username, password, cartão matriz e até SMS. É portanto natural que queiram integrar nas suas aplicações outros sistemas alternativos de autenticação forte, como por exemplo o OpenID associado a um smart card, desde que estes cumpram os níveis de segurança definidos na [NIST_SP800-63] (Burr, W., Dodson, D., and W. Polk, Ed., “Electronic Authentication Guideline,” April 2006).
Em relação à extensão para Firefox em que também têm estado envolvidos… Querem-nos dar alguns exemplos de casos de utilização típicos? Isto é, imaginemos um utilizador intensivo de Firefox. De que forma as extensões poderão facilitar a utilização do OpenID (com e sem suporte para o cartão do cidadão)?
O objectivo principal do plugin é o de simplificar toda a experiência online que um serviço de gestão de identidades digitais pode proporcionar, evitando também os comuns ataques de “phishing”. Actualmente este plugin apenas será responsável pelo processo de autenticação. A curto prazo esta funcionalidade irá ser expandida ao domínio da gestão de atributos e à criação e gestão dinâmica de novas identidades.
Um exemplo prático…
Um utilizador que já possui a sua identidade digital pretende simplificar a sua experiência online pelo que recorre ao uso do plugin. Após a sua instalação o utilizador apenas tem de indicar o seu URI de identidade, no nosso caso poderia ser algo como http://openid.dcc.fc.up.pt/user1, e a password. O estado indicado na barra do browser passaria de Offline para Online. O utilizador pode agora navegar pelos mais diversos sites que suportam OpenID sem necessitar mais de se autenticar. No caso de se querer autenticar usando também o cartão do cidadão deverá indica-lo no formulário de autenticação inicial, pelo que depois terá apenas de introduzir o seu cartão do cidadão no leitor e o PIN sempre que o plugin necessitar de estabelecer uma sessão com um dos provedores de identidade.
Futuramente…
Outras funcionalidades estarão disponíveis para serem controladas pelo plugin, como por exemplo a especificação dos atributos a serem usados em determinados sites. Por exemplo, o utilizador com o URI http://openid.dcc.fc.up.pt/user1 possui a seguinte lista de atributos: nome->Manuel, email->aluno@alunos.dcc.fc.up.pt, curso->MIERSI, que pretende assumir quando entra no site http://www.dcc.fc.up.pt. Tudo o que tem de fazer é digitar o URL do site num campo disponibilizado por um formulário da plugin e seleccionar aqueles 3 atributos que pretende assumir quando está online naquele site. Todos os outros atributos anexados à sua identidade digital não serão considerados.
Quais são as vossas expectativas relativamente à disseminação dos dois projectos? Nº de utilizadores, comunidade de desenvolvimento, etc. , . . .
Relativamente à disseminação dos dois projectos, as nossas expectativas são bastante elevadas, sentimos que os utilizadores web começam agora a interessar-se seriamente por mecanismos que permitam a gestão da sua identidade digital. Ao que não será de todo alheio as histórias de “horror” relacionadas com roubos de identidade e outros tipos de incidentes que se têm vindo a difundir pela comunicação social.
As comunidades de desenvolvimento estão a aumentar. Em Portugal já existe um grupo em manifesto crescimento de pessoas interessadas e a desenvolver projectos na área. Mais uma vez a função da Associação OpenID Portugal é primordial, devendo promover, divulgar e criar sinergias entre todos os projectos existentes de âmbito nacional e se possível internacional. O interesse também demonstrado por algumas entidades públicas e privadas em sistemas de gestão de identidades faz-nos querer que num muito curto espaço de tempo vamos assistir ao aparecimento de vários provedores de identidades, alguns dos quais utilizando tecnologia OpenID.
Saindo um pouco do âmbito do Summerbits, alguma sugestão que gostassem de dirigir aos responsáveis técnicos pelo cartão do cidadão e pelos portais que fazem uso do mesmo?
Gostaríamos de ter tido algum contacto durante o desenvolvimento do projecto, tal não o foi possível não porque não o tivéssemos tentado, mas pelo facto de os dados disponibilizados estarem desactualizados e ainda a incapacidade de se identificar as pessoas que seriam responsáveis por tal apoio. Consideramos também lamentável mais uma vez a falta de suporte dada ao software “open source”. A meio do projecto constatamos que houve uma mudança de versão do cartão, que o tornou incompatível com o software providenciando para plataformas que não a da Microsoft. Até agora ainda ninguém se deu ao trabalho de nos dar uma explicação ou de publicar uma versão nova do software de suporte para Linux e Mac que funcione com as novas versões do cartão do cidadão que têm vindo a ser emitidas nos últimos meses. Apenas constamos que a versão do software para windows vai na versão 1.20 enquanto a das outras plataformas se ficou pela 1.16. Esperamos sinceramente para bem da nação que a nota que se encontra no site oficial “Brevemente será também disponibilizada a versão 1.20 para os demais sistemas operativos”, se torne uma realidade efectiva o mais brevemente possível.
Por último, uma opinião sobre o SAPO Summerbits …
Obrigado pelo apoio aos nossos projectos. O SAPO Summerbits possibilitou não só uma melhor estruturação do projecto EOID, mas também a sua divulgação. Não teríamos certamente conseguido alcançar o estado actual de desenvolvimento sem o apoio e incentivo que a vossa confiança em nós possibilitou. A organização do Summerbits está mesmo de parabéns pelo excelente trabalho efectuado! Que esta iniciativa se repita por muitos e bons anos. Até breve no Codebits!