Ajax e RIA – Radar do mercado

O instituto Gartner atualizou recentemente seu relatório “MarketScope for Ajax Technologies and RIA Platforms”. Aproveito para apresentar o resumo dessas tendências e alguns diagramas explicativos e estatísticas sobre Ajax e RIA.

Introdução

A técnica de interação e troca de dados assíncrona entre o cliente e o servidor web, identificada pelo acrônimo Ajax — Asynchronous Javascript And XML –, termo introduzido pela Adaptive Path em 2005, se populariza cada vez mais nas aplicações web e tem contribuído significativamente para melhorar a interatividade e experiência do usuário, oferecendo respostas imediatas à interação do usuário.

Vão se multiplicando as alternativas de bibliotecas e frameworks para desenvolvimento de aplicações web com suporte a Ajax, visando tornar o uso da técnica mais fácil, organizado e produtivo na construção de aplicações, de forma cada vez mais transparente, integrada e sistematizada.

Também têm se popularizado o uso de plataformas tecnológicas para web visando RIA — Rich Internet Applications –, termo introduzido pela Macromedia (Adobe) em 2002, que significa uma interface com usuário web mais rica — em componentes e comportamentos — e responsiva (resposta imediata, sensível ao contexto), similar a aplicações desktop.

As plataformas RIA podem ter como base um runtime específico, incorporado ao navegador web cliente através de plug-ins, ou se beneficiar do avanço da sofisticação das técnicas e componentes nativos baseados em Ajax.

O diagrama de blocos a seguir correlaciona esquematicamente RIA, Ajax e DHTML.

[photopress:RIA_AJAX_DHTML.png,full,centered]
Créditos: Márcio d’Ávila, 2008-2011.

RIA

Enquanto as aplicações gráficas Cliente/Servidor trouxeram riqueza à experiência de usuário que não havia no ambiente mainframe, plataformas RIA fazem o mesmo em relação às aplicações web primitivas.

[photopress:RIA_IU.png,full,centered]
Créditos: Uday M. Shankar, Adobe Flex – an introduction, mar/2008 (em Slideshare).

Segundo estatísticas do site Stat Owl, levando em consideração os diversos sistemas operacionais e navegadores web existentes, em setembro de 2008 o suporte runtime instalado para Adobe Flash já era 97,48% (verdadeiro padrão de facto), Java 81,37% e Microsoft Silverlight apenas 17,64%. Em abril de 2011, estas mesmas plataformas evoluiram para percentuais de penetração 95,65%, 77,31% e 63,92% respectivamente.

Percebe-se, portanto, uma notável expansão do suporte à tecnologia RIA da Microsoft no período medido, enquanto o pequeno decréscimo de Flash pode ser explicado pela ausência de suporte ainda existente em alguns ambientes operacionais de dispositivos móveis que vem se popularizando, como Apple iOS (iPhone e iPad).

[photopress:Suporte_RIA.png,full,centered]
Fonte: Stat Owl, Rich Internet Application Market Share – RIA Market Penetration and Global Usage comparing Adobe Flash, Microsoft SilverLight and Java, set/2008 a abr/2011.

2009

Em 2009, o mercado ainda estava incipiente e muitos produtos foram considerados pelo Gartner em tecnologias Ajax e plataformas RIA, dez deles classificados com tendência positiva ou muito positiva.

Forte
Negativo
Cuidado Promissor Positivo Forte
Positivo
Adobe Plataforma Flash RIA ($/L)
Backbase Ajax framework Ajax ($)
DevExpress para .NET RIA ($)
Dojo Ajax toolkit Ajax (L)
Ext JS JavaScript, Ext GWT Ajax ($/L)
Google GWT Java, Closure Ajax (L)
IBM Ajax, Lotus Expeditor Ajax/RIA ($/L)
ICEsoft ICEfaces JSF Ajax (L/$)
Infragistics para .NET Ajax ($)
Isomorphic Soft SmartCli, GWT Ajax/RIA (L/$)
JackBe Ajax framework Ajax ($)
jQuery JavaScript Ajax Ajax (L)
Magic Software uniPaaS RIA ($)
MB Tech Bindows Ajax ($)
Microsoft Silverlight, WPF RIA ($)
Nexaweb E.Web Suite Ajax/RIA ($)
Oracle ASF Faces JSF Ajax ($)
Prototype/
script.aculo.us
JavaScript Ajax (L)
Sun Microsystems JavaFX RIA (L/$)
Telerik para .NET Ajax ($)
Tibco Software GI Ajax (L)
Yahoo YUI toolkit Ajax (L)

Fonte: MarketScope for Ajax Technologies and RIA Platforms, Gartner, por Ray Valdes e outros, 2009-12-31, reproduzido por Adobe (PDF).

2011

Atualizando a pesquisa em 2011, o mercado ainda se mostra em evolução, com oito produtos apontados como tendência positiva ou muito positiva.

Comparando com 2009, Adobe Flash e Microsoft Silverlight tiveram sua tendência refreada (Positivo), enquanto a versátil biblioteca livre JavaScript jQuery obteve maior evidêcia (Muito Positivo).

Saíram da lista Magic Software uniPaaS e MB Tech Bindows; Ext JS se tornou Sencha, enquanto Sun foi incorporada à Oracle; e entram agora Canoo Engineering RIA Suite (UltraLightClient framework baseado em Java EE) e Vaadin (framework RIA Java baseado em GWT widgets e extensa coleção de componentes UI).

Forte
Negativo
Cuidado Promissor Positivo Forte
Positivo
Adobe ⇓ Plataforma Flash RIA ($/L)
Backbase ⇓ Portal Ajax ($)
Canoo Engineering UltraLightClient RIA ($)
DevExpress para .NET RIA ($)
Dojo Ajax toolkit Ajax (L)
Google GWT Java, Closure Ajax (L)
IBM Ajax, Lotus Expeditor Ajax/RIA ($/L)
ICEsoft ICEfaces JSF Ajax (L/$)
Infragistics para .NET Ajax ($)
Isomorphic Soft SmartClient, GWT Ajax/RIA (L/$)
jQuery jQuery JS lib Ajax (L)
Microsoft ⇓ Silverlight, WPF RIA ($)
Oracle ASF Faces JSF, JavaFX Ajax/RIA (L/$)
Prototype/
script.aculo.us
JavaScript Ajax (L)
Sencha Ext JS, Ext GWT Ajax ($/L)
Telerik ASP.NET Ajax Ajax ($)
Tibco Software General Interface Ajax (L)
Vaadin Vaadin RIA RIA (L)
Yahoo YUI Library Ajax (L)

Fonte: MarketScope for Ajax Technologies and RIA Platforms, Gartner, por Ray Valdes e outros, 2011-03-31, reproduzido por Microsoft.

Conclusão

Tecnologias RIA e Ajax têm se tornado cada vez mais difundidas e maduras.

Podemos inferir, pela evolução do Gartner MarketScope, que plataformas RIA com componentes ricos nativos (Ajax e DHTML) — boa parte delas baseadas em frameworks livres e Java server/EE) — tem ganhado força, em detrimento daquelas baseadas em runtime próprio.

É provável que o emergente padrão HTML 5, quando se estabelecer, reforce ainda mais esse movimento.

Para saber mais:

Vem aí o LibreOffice 3.4

Está em fase Beta a versão 3.4 do pacote de programas de escritório LibreOffice, mas você ainda pode chamá-lo de BrOffice.

LibreOffice é o mais popular e bem sucedido pacote de escritório como software livre, com editor de textos/documentos, planilha eletrônica, apresentações, desenhos/ilustrações e banco de dados, baseado no formato aberto de documentos OpenDocument (ODF), e também compatível com os formatos do Microsoft Office.

Contudo, o nome e andamento do projeto de software livre desse pacote tem passado por vários caminhos.

Nascida como StarOffice, a suíte foi rebatizada para OpenOffice.org após a compra da empresa alemã StarDivision pela Sun Microsystems em 1999.

O projeto OpenOffice.org surgiu em 2000 e contou com a participação brasileira a partir de 2001. Naquela época, surgiu a comunidade OpenOffice.org.br que o traduziu e o divulgou no Brasil até 2004. Em 2005, a comunidade enfrentou problemas com o registro da marca no país. Assim surgiu o BrOffice.org, o mesmo produto OpenOffice.org em português do Brasil (pt-BR), mais as ferramentas linguísticas para nosso idioma.

Depois que a Oracle comprou a Sun — principal mantenedora do projeto OpenOffice.org — em 2009, um grupo de desenvolvedores da suíte de produtividade OpenOffice.org, que não concordava com os rumos que o projeto seguia desde então, acabou por se desvincular da Oracle em setembro de 2010. Dessa dissidência surgiu a organização livre The Document Foundation (TDF), com a missão de apoiar e evoluir o conjunto de formatos de documentos OpenDocument e dar continuidade ao projeto original de software livre do OpenOffice.org, adotando o nome LibreOffice.

A comunidade brasileira de desenvolvedores do BrOffice apoia o projeto LibreOffice. Na versão 3.4 do produto, passará a adotar o nome LibreOffice, para maior homogeneidade. A TDF solicitou a marca original OpenOffice.org à Oracle e convidou a empresa a participar do projeto, mas sem sucesso até agora.

Um ponto central da dissidência é que o OpenOffice.org mantido pela Oracle tem seus release gerados por um ambiente de build proprietário, mantido por um pequeno time de engenheiros. O LibreOffice é software livre e baseado em ferramentas livres. Os mantenedores do projeto LibreOffice estão trabalhando na migração total para GNU Make como primeiro passo para facilitar compilações cruzadas de Linux para Windows. O objetivo é que, com o tempo, qualquer pessoa com tempo e um PC possa construir releases do LibreOffice a partir dos códigos-fonte.

StarOffice, OpenOffice.org, BrOffice.org, BrOffice ou LibreOffice, o que importa é que este é o mais competente pacote de programas de escritório em software livre disponível no Brasil, e se apresenta como uma alternativa realmente viável ao pacote comercial Microsoft Office.

Para saber mais:

Autenticação multifator

A autenticação multifator é algo que tem se popularizado rapidamente nos sistemas de internet banking (transações bancárias pela internet) e outras aplicações de identidade digital no Brasil e no mundo.

Espero que com esse artigo você tenha uma visão prática e abrangente dos fatores de autenticação, um aspecto da segurança que a maioria das pessoas utiliza de alguma forma em seu dia a dia.

Vamos começar definindo autenticação e seus fatores.

Autenticação

Autenticação, no âmbito da segurança digital, é o procedimento que confirma a legitimidade do usuário que realiza a requisição de um serviço, para o controle de acesso identificado. Este procedimento é baseado na apresentação de uma identidade junto com uma ou mais credenciais de confirmação e verificação.

Na definição objetiva de Wel. R. Braga, o processo de autenticar usuários consiste em determinar se um usuário é quem ele afirma ser.

A identidade ou identificador do usuário pode ser um nome criado especificamente para determinado ambiente, serviço ou aplicação, que se costuma denominar login ou logname. O login pode ser textual (um codinome) ou numérico (similar a um número de identidade).

Em algumas situações, pode-se aproveitar um identificador que o usuário já possui como login. Logins textuais muitas vezes permitem que se utilize o nome de uma conta de e-mail do usuário. Logins numéricos podem utilizar um número de documento de identidade como CPF, número do título de eleitor, RG, número de registro profissional (OAB, CRM, CREA etc.), número de inscrição do usuário no serviço, matrícula funcional etc.

Para confirmar a credencial, usa-se um elemento que deve casar unicamente com o identificador do usuário. É aí que entra o fator de autenticação.

Os fatores de autenticação para humanos são normalmente classificados em três casos:

  • algo que o usuário sabe: senha, PIN (número de identificação pessoal), frase de segurança ou frase-passe, que normalmente deve ser apenas memorizada e não escrita, para garantir o segredo que torna o fator seguro;
  • algo que o usuário possui/tem: certificado digital A3 (token ou smart card), cartão de códigos numéricos, token de segurança (gerador eletrônico de senhas únicas temporais), token por software, códigos enviados por telefone celular (SMS) etc.;
  • algo que o usuário é: impressão digital, padrão de retina, sequência de DNA, padrão de voz, padrão de vasos sanguíneos, reconhecimento facial, reconhecimento de assinatura, sinais elétricos unicamente identificáveis produzidos por um corpo vivo, ou qualquer outro meio biométrico.

A autenticação mais comum é a combinação de login e senha, ou seja, utilizando apenas um fator. A senha memorizada, contudo, tem sua fragilidade. Tanto a identificação (login) quanto a senha (este fator “algo que você sabe”) podem ser revelados ou descobertos, permitindo a fraude de utilização ilegítima de identidade de uma pessoa por outra. Pode ainda ser esquecida, causando transtornos ao usuário, pois exigirão alguma forma de redefinição ou reposição de uma nova senha.

Por isso, bancos e outras instituições têm cada vez mais recorrido à utilização de mais um fator, como veremos na seção seguinte.

Referências:

Fatores de autenticação e aplicações bancárias

Vistos os conceitos básicos, vamos comentar os fatores de autenticação exemplificados por sua utilização pelos bancos, em caixas eletrônicos e, principalmente, nas aplicações de internet banking.

O cartão magnético sempre foi utilizado pelos bancos. Além de armazenar a identificação numérica do usuário (banco, agência e conta), que é automaticamente lida nos caixas eletrônicos, ele é um fator de autenticação física do tipo “algo que você possui”. É combinado com a senha do cartão, fator do tipo “sabe”.

Com o aumento das fraudes e golpes em caixas eletrônicos, desde malfeitores próximos que observavam a senha digitada até o uso de equipamentos eletrônicos de fraude instalados nos caixas, os bancos começaram a inovar.

Algo que você sabe

Primeiro, vieram as técnicas de fornecimento indireto da senha. Menus de escolha mostrando mais de um dígito em cada opção. Isso faz com que um observador não saiba qual dos dígitos de cada opção é o da senha, sem reduzir a segurança — em termos matemáticos, em uma senha de 6 algarismos, escolhê-los em pares reduz as possibilidades de 10 dígitos para 5 pares, mas cada escolha (par) contém 2 opções de dígitos, então 106 = 56 * 26 = 1 milhão.

Depois, veio o uso de mais de um fator na autenticação, o que caracteriza a chamada autenticação multifator que intitula este artigo. Primeiro, a criação de mais de uma senha, como senha do cartão, senha eletrônica de internet, senha de telefone, código mnemônico de letras. Em internet banking, o banco costuma solicitar uma senha eletrônica para autenticar no início, e depois pede a senha do cartão para confirmar uma transação bancária.

Ainda assim, os fatores do tipo “sabe” têm o problema de serem basicamente um segredo único memorizado, que pode ser descoberto involuntariamente, ou mesmo repassado voluntariamente. Saber algo não é um fator intrinsecamente único e individual. Ainda tem o problema de que quando são escolhidos pelo próprio usuário, este pode por comodidade ou preguiça escolher para senha um dado comum (como usar uma data de aniversário como senha numérica) e que pode ser conhecido por outras pessoas.

Algo que você possui

Então, os bancos passaram a acrescentar um fator do tipo “possui”. O fator desse tipo costuma ter o objetivo de transpor códigos que antes eram escolhidos e memorizados para dispositivos que transportam códigos seguros.

O primeiro fator desse tipo costuma ser o cartão de códigos. Um cartão impresso com vários códigos numerados (em geral, são 50 a 70 códigos de três ou quatro dígitos) é fornecido pelo banco e, na autenticação ou confirmação de uma transação, ele solicita um desses códigos. Bancos como Bradesco, Itaú e Real utilizam este fator. As fraudes sobre esses cartões são mais fáceis do usuário identificar, pois em geral solicitam que o usuário forneça todos os códigos numéricos do cartão ao mesmo tempo, e não apenas um por vez como o banco faz. O caso típico desse tipo de fraude é se travestir de uma operação de recadatro ou confirmação de segurança do próprio banco.

Outro fator que alguns bancos passaram a utilizar foi um dispositivo físico de geração de senhas únicas a intervalos de tempo. Tecnicamente conhecidos como dispositivos OTP (one time password), eles funcionam assim: em um mecanismo eletrônico, o dispositivo gera um código numérico válido por um período de tempo, em geral um minuto. Depois desse período, o dispositivo automaticamente gera outro código. A fórmula matemática utilizada para a geração desses números é conhecida pelo banco e sincronizada com seus computadores centrais, mas é um técnica complexa e praticamente imprevisível, denominada função pseudo-aleatória.

Bancos como antigo Unibanco (“multisenha”) e Itaú (“iToken”) utilizaram este fator (ilustrações a seguir). Apesar de seguro, ele tem alguns inconvenientes práticos. Para o banco, representa um custo extra da aquisição desse dispositivo para cada cliente, o que tem que compensar frente à redução de prejuízo em fraudes. Para o usuário (cliente), é um penduricalho a mais que ele tem que guardar e transportar consigo para onde precisar usar.

Multisenha Unibanco iToken Itaú pessoa física iToken Itaú pessoa jurídica (RSA SecurID)

Outra variante do fator “possui” tem sido o envio de códigos para o celular do cliente via SMS. Similar ao dispositivo OTP, esse fator permite que um código diferente seja gerado a cada uso. O que o cliente deve efetivamente possuir de forma única é o seu telefone celular. Como hoje em dia as pessoas em geral portam consigo o celular, isso evita ter que se carregar o dispositivo OTP. Essa técnica exige uma abrangência e eficiência da rede celular da operadora, pois o usuário terá de receber o código via SMS no momento em que está realizando uma operação bancária eletrônica. Bancos como Citibank, Itaú e Banco do Brasil tem utilizado esse fator.

Para que um fator do tipo “possui” utilizando um dispositivo físico como o OTP ou celular seja utilizado indevidamente, é preciso que o pretenso usuário ilegítimo (fraudador) consiga obter o dispositivo, minimizando o risco de fraudes eletrônicas à distância.

Certificação digital

Merece destaque o fator de autenticação usando certificado digital. Certificado digital é um mecanismo genérico, padronizado e amplamente utilizado para identificação e assinatura digital seguras nas mais diversas aplicações. Funciona como uma carteira de identidade digital. São emitidos por entidades credenciadas confiáveis chamadas autoridades certificadoras (AC) e autoridades de registro (AR). Exigem a comprovação de documentos do usuário titular para emissão, e uma série de procedimentos técnicos e operacionais de segurança.

O governo Brasileiro definiu a estrutura nacional de emissão de certificados digitais, a ICP Brasil (Infraestrutura de Chaves Públicas Brasileira), seguindo o padrão mundial já estabelecido. Através da ICP Brasil, pessoas físicas podem emitir o seu e-CPF e pessoas jurídicas (empresas) o e-CNPJ. O uso de certificados digitais tem sido impulsionado no Brasil pelo governo, em especial:

Entre aplicações de internet banking de pessoa física em geral, só tenho conhecimento do Banco do Brasil que atualmente permite a utilização de certificado digital como forma de autenticação do cliente. (Podem haver outros bancos utilizando, mas desconheço.)

[photopress:bb_autentica_certificado.png,full,centered]

Este fator não é necessariamente emitido pelo banco (para o banco emitir, deve ser AR devidamente credenciada a uma AC), mas sendo um padrão mundial estabelecido, ele consegue identificar seu cliente pelo nome completo e pelo CPF contidos na identidade digital.

O certificado digital tem diversas vantagens. Sendo um dispositivo de identidade universal amplo, serve não apenas para aplicações bancárias mas para qualquer uso de identificação digital da pessoa que seja disponibilizado.

O certificado do tipo A3 utiliza um dispositivo físico — um chip que pode ser em um token USB similar a um pen drive, ou em um cartão inteligente smart card (que exige uma leitora própria) — funcionando portanto como fator tipo “possui”. Existe também um certificado tipo A1 via software que é gravado no disco do computador, mas é considerado um pouco menos seguro.

Token da marca Alladin Smart card

O certificado digital é baseado na técnica de segurança digital chamada criptografia de chave pública, onde existe um código secreto (chave privada) que fica inviolável dentro do dispositivo físico do certificado A3, e uma contraparte para identificação pública do titular do certificado (chave pública), preservando o segredo da chave privada.

O uso da chave privada é protegido por uma senha (PIN) ou mesmo por um leitor biométrico (atualmente, os certificados digitais com biometria mais difundidos acoplam um leitor de impressão digital). Ou seja, o do certificado digital embute múltiplos fatores de autenticação.

O empecilho essencial para popularizar o certificado digital como fator de autenticação é o custo. Atualmente, a emissão de um certificado A3 com validade de três anos custa algo entre 100 e 300 reais, incluindo o custo do dispositivo (token ou smartcard). Por medida de segurança, essa identidade digital precisa ser renovada ou reemitida ao término de cada período de vigência, a um custo que hoje gira em torno de 100 reais.

No sistema da novo documento de identidade brasileiro, o Registro de Identidade Civil (RIC), há a possibilidade de ele incorporar um certificado digital. Iniciativas como essa para popularização de meios de armazenamento de certificado digital, mais a disseminação de serviços públicos (governamentais) com uso destes, podem levar nos próximos anos a uma grande popularização que leve a um aumento de escala e consequente redução drástica do custo. Essa é uma grande esperança!

Para saber mais:

Algo que você é

E a biometria como fator de autenticação? Teoricamente, parece ser o mais seguro e prático. Seguro porque parece difícil fraudar características físicas pessoais exclusivas como padrões de impressão digital, retina, veias, face etc. Prático porque você não precisa memorizar nem possuir nada, são características físicas que existem em seu corpo.

Mas dos três fatores, este é o que ainda possui os maiores desafios. Na prática, padrões biométricos ainda são sujeitos a problemas de abrangência e precisão. Não reconhecimento de uma pessoa legítima (“falso negativo”), a possibilidade mesmo que remota de identificar uma pessoa como a característica biométrica de outra (“falso positivo”), e a dificuldade de se estabelecer padrões biométricos que funcionem de forma efetiva para todos. Só para se ter ideia, na impressão digital, que é um dos padrões biométricos mais conhecidos e utilizados, uma pessoa muito jovem, idosa, que utiliza produtos químicos ou que faça trabalhos manuais duros que desgastem a pele podem simplesmente não ter uma digital legível de forma precisa.

Outro desafio preponderante de decisão da viabilidade e popularização no mercado é o alto custo. Dispositivos de leitura biométrica ainda são muito caros para se popularizar em larga escala atualmente.