Tablets : mais um segmento no mercado de computação

Hoje é quase lugar-comum ler algo sobre o mercado de e-readers ou mesmo de tablets, em especial o iPad.   Semanalmente é possível encontrar um anúncio sobre um produto que está ou estará no mercado em breve.

Recentemente um evento mostrou mais de uma dúzia de iPad-killers rodando alguma versão do Android.  Se é possível resumir a lista vejo hoje os principais players:

  1. Microsoft Slate (hardware da HP e Windows 7).
  2. A própria HP com o WebOS (comprado da Palm)
  3. Samsung com o Galaxy (Android 3.0?)
  4. RIM com o  Playbook
  5. iPad da Apple

A confusão está formada.   De um lado mais uma vez a Apple sai na frente* ao ter lançado por primeiro o seu produto, aproveitando a experiência que teve com o iPhone e atacando os pontos que provavelmente fizeram das primeiras gerações de tablets um fracasso comercial : preço, peso, autonomia e interface imprópria.

Na sequência desse lançamento todas as empresas acordaram para esse “mercado” e correram para lançar (ou pelo menos anunciar) seus produtos e como eles são melhores que seu concorrente.

Na prática ainda nenhum dos maiores players lançou seu produto comercialmente e, como de esperado, a Apple não está parada.   Resta saber se algum desses produtos conseguirá ser lançado até o final do ano a tempo do natal.

Caso contrário é possível que todos fiquem no aguardo do iPad 2.0 ano que vem antes de tomarem a decisão de compra.

Para os desenvolvedores e se abre mais um mercado com características próprias e seus desafios.

Com sorte do ponto de vista de desenvolvimento ficaremos com as mesmas opções que o mercado móvel: iOS (Objective-C), PalmOS, RIM OS (C) e Android (Java).

Por enquanto optei por investir em um iPad.  Só o tempo dirá se foi uma boa ou má decisão.

Share
Posted in Desenvolvimento | Tagged , , , , , , | Leave a comment

HipHop : novidades sobre o compilador PHP

Há pouco mais de 6 meses atrás a equipe do facebook lançou uma notícia que balançou a comunidade de desenvolvimento, sobretudo de PHP.  Ele haviam desenvolvido um produto, chamado de HipHop que tria reduzido em 50% o consumo de recursos, CPU entre eles.

O HipHop não é um compilador e sim uma ferramenta que transforma o código PHP em código C++.  Com isso você pode gerar, usand o GCC, versões compiladas nativamente e executá-las em seu servidor web.

É possível ter assim ganhos com redução de consumo de memória e de CPU já que é removida uma etapa de de parsing na qual o código PHP é validado e interpretado.

Apesar de ambicioso o HipHop ainda apresenta algumas limitações quanto a que funções/extensões do PHP podem ser compiladas.

Em um post recent houve anúncio de que foi possível conseguir mais ganhos de performance e que a comunidade começa a participar com patches e suporte a novas plataformas.

Por enquanto apenas o Linux em versão 64 bits (com suas respectivas bibliotecas em verões específicas) é suportado oficialmente.  Entretanto versões para o FreeBSD e Mac OSX começam a aparecer.

Saiba mais em http://www.facebook.com/note.php?note_id=416880943919

Share
Posted in Desenvolvimento | Tagged , , , | Leave a comment

Zend Framework 2.0 (o que esperar)

Olá,

Recentemente foi liberada a primeira versão do Zend Framework 2.0.   Apesar de ser uma versão ainda em desenvolvimento e com muitas mudanças à vista já é possível ter um gostinho do que está por vir.

Neste post irei resumir o que se sabe publicamente sobre o projeto até o momento.

Segundo o lead developer (Matthew Weier O’Phinney) os objetivos básicos são:

  • Facilitar o aprendizado (reduzindo a learning curve)
  • Tornar a extensão do framework simples (trivially simple segundo o mesmo)
  • Melhorar a performance do framework
  • Simplificar a manutenção do framework
  • Ser um exemplar de uso do PHP 5.3
  • Prover mecanismos para permitir que apenas as partes necessárias por uma aplicação possam ser usadas

No blog do Sr. O’Phinney foi possível perceber que em vez de buscar prover novas funcionalidades, foi escolhido o caminho de se melhorar, com a quebra de compatibilidade reversa com o ZF 1.0, alguns componentes que perderam o “rumo” ao longo desses 3 anos.   Além de permitir incorporar  as funcionalidades que o PHP 5.3 trouxe (como namespaces e closures) e melhorar a velocidade do framework não espere nada “revolucionário”.

Um ponto, dentre vários, ainda obscuro para mim será o relacionamento com o Doctrine.  Para quem não conheçe, Doctrine é um ORM (Object Relational Mapping) muito bom e que está, assim como o Zend, em desenvolvimento para a sua versão 2.0.     Na lista de desenvolvimento do Zend há alguns meses foi indicado que o componente Zend_Db, apesar de bom, não poderia oferecer as mesmas funcionalidades sem acabar por duplicar esforços.  Na ocasião chegamos a ver um proposal para um Zend_Entity que acabou encerrado quando foi visto o que iria representar.

Agora para a versão nova o que irá acontecer com o Zend_Db, mas não creio que ele irá sumir.  Talvez receba apenas as mudanças sintáticas que o PHP 5.3 oferece e continue com a mesma funcionalidade.  O que está certo, tanto quanto possível, é que a integração entre o Doctrine e a Zend Framework irá acontecer.    É possível que vejamos o Zend_Tool com opção para geração de entidades baseadas no YAML.

Recomendo a todos que usam esse framweork, ou estão pensando em mudar, que acompanhem o desenvolvimento do Zend que promete ser, no mínimo, interessante.

Para obter a versão atual use o git
git clone git://git.zendframework.com/zf.git

Para ver o anúncio original acesse http://weierophinney.net/matthew/archives/241-State-of-Zend-Framework-2.0.html

Share
Posted in Desenvolvimento | Tagged , , | Leave a comment

E-readers/E-books – estamos prontos para eles? (aka Kindle vs Nook)

500x_nook_kindle_beauty

Há muito tempo a maior reclamação de quem lia algo maior que uma página em formato digital era a comparação (desfavorável) com a mídia impressa.

Ler algo em formato digital sempre esteve associado ao computador, o que significa restringir os locais/horas que você pode fazer isso.  No passado leitores digitais (quer seja sob a forma dos PDAs) resolviam o problema da mobilidade mas traziam consigo outros fatores que limitavam, na prática a sua adoção:

  • Preço
  • Duração da bateria
  • Peso
  • Facilidade de leitura
  • Disponibilidade de títulos

Preço

Como toda tecnologia emergente a falta de escala e a própria natureza, muitas vezes recém saída da fase experimental, faziam com que o custo dos leitores digitais (e-readers) fossem acima dos US$500 (mais próximos de US$1000) o que limitava o uso desse aparelho ao entusiastas mais abonados.

Duração da bateria

Nada mais frustrante que ter um dispositivo como um e-reader e se encontrar tendo que ficar com ele ligado na tomada (que nunca está próxima) a cada 4h de uso.  Os primeiros modelos utilizavam tecnologias de LCD que, mesmo com os avanços, duram pouco.

Assim o e-readers das primeiras gerações eram rapidamente deixados de lado pela falta de autonomia de vôo que apresentavam no dia a dia.

Peso

Quase que como uma consequência das tecnologias utilizadas no display o uso de baterias de alta capacidade eram usadas para dar uma autonomia maior.  Isso trouxe um peso que fazia o e-readers mais incômodos do que transportar as versões impressas dos livros.

Facilidade de leitura

Quando você compara um livro impresso com um lido em um e-reader das primeiras gerações a primeira coisa que você notava é que a leitura não era tão fácil depois de alguns minutos.   Fatores como reflexo e ângulo de leitura eram facilmente detectados.

Disponibilidade de títulos

Esse, em minha avaliação, foi o principal limitante.  Mesmo que você conseguisse esquecer os demais fatores citados anteriormente você esbarrava em um ponto.   O que irei ler no meu e-reader?

Aqueles que trabalham na área técnica tem resposta fácil para esta pois no começo você colocava documentos, principalmente em PDF, que eram disponibilizados ou gerados sob a formas de manuais de referência.  Entretanto quando se afasta desse conteúdo quase ninguém lançava títulos nesse formato.

O usuário ou apelava para versões pirateadas em PDF dos livros ou não tinha nada o que fazer.

A evolução

Há pouco mais de 1 ano o mercado (que mercado?) de livros digitais foi sacudido.  Muito parecido, mas em menor proporção, com o que se viu quando do lançamento do iPhone, a Amazon lançou um e-reader chamado Kindle que prometia resolver todos os problemas citados: era razoavelmente barato, leve, tinha uma duração da bateria excelente e tinha o que ler!  Somado a isso o mecanismo de “entrega” dos livros via rede de dados de celular (3G) prometeu tempos de entrega imediatos.

Nada mais de ficar esperando pelo livro chegar no correio, nada mais de ficar tendo que ligar o leitor na tomada a cada x horas.

A evolução da tecnologia, dentre elas o e-ink e o barateamento do armazenamento em estado sólido, ajuda a entender como foi possível mudar o quadro mas o fato desse e-reader estar vinculado a um grande distribuidor de títulos resolveu o grande problema que era a falta de títulos disponíveis.

Agora em sua segunda versão e contando com uma cobertura quase global (inclusive no Brasil) é possível notar como o Kindle está ganhando momentum.  Eu tive a oportunidade de usar o Kindle2 e posso dizer que todos os meus receios foram resolvidos.

A agilidade com que pude adquirir um livro e em poucos minutos ter o mesmo disponível é imbatível.  A leveza do aparelho, a nitidez da tela e as funcionalidades como fazer anotações, consultar a wikipedia complementam a idéia de que o produto, mesmo em sua segunda geração já atingiu um grau de maturidade que permite ser usado não só por quem é fã de tecnologia.

Mas antes que possam me acusar de receber comissão da Amazon é preciso ressaltar alguns pontos negativos na solução adotada.

O primeiro ponto é que apesar de todos os avanços o reader ainda é preto e branco.  Nada de mais para quem só lês romances ou livros técnicos mas deixa a desejar quando comparamos com jornais (mesmo impressos) ou revistas com suas fotos e livros com ilustrações.

A disponibilidade de títulos em português.  Hoje apenas o jornal “O Globo” possui uma versão para o Kindle.    Os demais títulos, dentre eles revistas e livros apenas em inglês.   Ou seja, nada de achar que irá poder comprar o próximo título do Paulo Coelho no Kindle (apesar de isso não ser extatamente um problema).

Esses pontos podem diminuir o interesse inicial mas a meu ver são temporários.  Em breve a tecnologia o e-ink irá evoluir para permitir cores com a mesma característica.  As editoras nacionais irão lançar seus títulos para a plataforma e outros jornais, revistas e livros serão disponibilizados.

O ponto que pode influenciar o crescimento e o sucesso do Kindle está no modelo como ele se relaciona com o Cliente e a concorrência.  No Kindle quando compro um livro não posso emprestá-lo (sem entregar o aparelho) ou mesmo revendê-lo quando não mais tiver interesse.

E é apostando em se diferenciar que a Barnes & Noble lançou o Nook.  Essencialmente um clone do Kindle que chegará ao mercado com mais de um milhão de títulos disponíveis, uma flexibilidade maior na operação com livros – será possível emprestar seu livro digital e a capacidade, via um slot SD, de expandir o espaço para até 17000 livros (contra 1500 do Kindle2 e 3000 do Kinde DX).

Num primeiro momento o modelo da B&N parece mais atrativo para o consumidor.  Resta saber como a dinâmica do mercado irá atuar para definir se teremos um vencedor ou a continuidade da operação dos dois players.

Share
Posted in Geral | Tagged , , , | Leave a comment

Controle de acesso – Tokens, single sign on

No arsenal de tecnologias para uso do controle de acesso vimos que a biometria provê um grau de segurança a mais quando relacionada a autenticação de dois ou três fatores.  Além da biometria outras formas como senhas de um único uso (one-time password) e tokens podem ser usadas.

One-time password

One-time password é uma senha que só é valida para uma sessão de logon.  Ela é considerada dinâmica pois muda em intervalos regulares ou segundo algum evento.  A senha dinâmica provê o mais alto nível de segurança para esse tipo de controle de acesso.

Os tokens e o protocolo S/key são exemplos de implementações de one-time password.

Tokens

Tokens são dispositivos de controle de acesso tais como smart cards, cartões magnéticos que armazenam senhas estáticas (ou certificados digitais) ou geram senhas dinâmicas.

Os tipos de tokens são :

a) Tokens de senhas estáticas

Armazenam senhas estáticas ou certificados digitais

b) Tokens de senhas dinâmicas síncronas

Geram continuamente senhas dinâmicas em intervalos de tempo regulares (ex. a cada 60 segundos) ou decorrentes de um evento (pressionar de um botão).  Tipicamente a senha gerada só é válida durante uma janela de tempo e para um logon.

c) Tokens de senhas dinâmicas assíncronas

Geram as senhas ao calcular a resposta correta para um desafio gerado aleatoriamente pelo sistema.   O sistema ao qual você deseja ter acesso irá gerar um desafio e você deve informar o mesmo no dispositivo e ele irá gerar uma resposta que deve ser usada para efetuar o logon.

Single sign-on (SSO)

Com o advento do crescimento do número de sistemas e dado o ambiente heterogêneo encontrado nas empresas, o usuário médio é apresentado a um grande número de contas, uma para cada sistema.

Isso como já vimos tem duas desvantagens:

  • Usuários com várias contas tendem a escolher senhas mais frágeis
  • Multiplas contas afetam a produtividade já que são várias contas para serem criadas, mantidas, resetadas etc.

Para auxiliar nesse sentido sistemas que ofereçam SSO auxiliam no processo.  Dentre os sistemas de SSO mais conhecidos estão:

  1. Kerberos
  2. SESAME
  3. KryptoKnight

Metodologias de implantação de controle de acesso

As metodologias de controle de acesso são normalmente classificadas como centralizadas ou descentralizadas.

  • Centralizadas

LDAP – Provê serviços para autenticação de usuários e recursos.

RAS (Remote Access Service) – Utilizam protocolo PPP para encapsular pacotes IP.

RADIUS (Remote Authentication Dial-in User Service) – Utiliza UDP para enviar usuário e senha para o servidor realizar autenticação

TACACS (Terminal Access Controller Access Control System) – Provê o AAA (Authorization, Authentication e Accountability)

  • Descentralizados

Nos sistemas descentralizados a localização das informações do usuário estão espalhadas em localizações diferentes e mantidas por administradores distintos.

No próximo post encerraremos esta introdução ao controle de acesso ao discutirmos sobre os métodos de ataque e controles de acesso de dados.

Share
Posted in Segurança | Tagged , | Leave a comment

Controle de acesso – biometria

Como vimos o uso de senhas ou mesmo PINs possuem desvantagens que reduzem sua eficácia e o nível real de segurança. Assim sendo a biometria, com o terceiro fator (algo que você é) auxilia dada a maior dificuldade de se burlar a mesma.

O uso da biometria é normalmente encontrado em dois cenários :

  • Controle de acesso físico

O indivíduo apresenta a característica biométrica e o sistema tenta identificar o indivíduo ao buscar em uma base de dados essa característica. Busca um-para-vários.

  • Controle de acesso lógico

O indivíduo apresenta um código (nome do usuário ou PIN) e em seguida a característica biométrica. O sistema tenta autenticar o usuário ao casar a identidade apresentada com os dados biométricos associados a conta (nome do usuário ou PIN). Busca um-para-um.

Fatores necessários para um sistema biométrico eficaz:

a) Acurácia

É a característica mais importante em um sistema biométrico. A característica única sendo medida garante a identificação positiva do solicitante. A acurácia é medida em percentual com os termos abaixo

FRR – False Reject Rate (erro tipo I). Quando o sistema rejeita o acesso de usuários genuinamente autorizados.
FAR – False Accept Rate (erro tipo II). Quando o sistema garante o acesso de usuários não autorizados
CER – Crossover Error Rate. É o ponto no qual o FRR e FAR se encontram.

b) Velocidade

Define o tempo necessário para completar o processo de autenticação Isso tem que incluir se apresentar ao sistema, fornecer o cartão/pin, entrar a característica biométrica, processar os dados de entrada.

Alguns parâmetros comumente aceitos : velocidade de menos de 5 segundos, vazão de 6 a 10 por minutos e tempo de cadastramento menor que 2 minutos

c) Necessidade de armazenamento

Apesar de cada vez menos significativo esta característica indica o espaço necessário para se armazenada os dados biométricos de um usuário.

d) Confiabilidade

O sistema deve ser capaz de funcionar corretamente e de maneira precisa sem necessitar de manutenções constantes

e) Aceitabilidade

É a facilidade com que o método é aceito pelo usuário. Questões sobre ética e de saúde são postas pelos usuários e podem representar o principal fator de problema na adoção do modelo.

Tipos de controles de acesso biométrico

a) Digital (finger scan)

b) Geometria das mãos (hand geometry)

c) Retina (Retina pattern)

d) Iris (Iris scan)

e) Voz (Voice recognition)

f) Assinatura (Signature dynamics)

Digital

É a forma mais comum de biometria utilizada hoje, com cerca de 78% do total de vendas. Ela armazena informações sobre pontos das digitais para realizar a comparação.

Geometria das mãos

É mais acurado do que o sistema de digitais, utiliza um dos menores tamanhos de arquivo para armazenar os dados e é conseguido gerando-se uma geometria tridimensional através de uma câmera digital que captura simultaneamente informações verticais e horizontais da mão.

São capturadas comprimento, largular, altura e outras características únicas da mão e dedos.

Retina

Os sistemas armazenam elementos únicos no padrão vascular da retina. As maiores preocupações são medo de dano no olho pelo laser. Na verdade é apenas uma câmera com uma luz de baixa intensidade).

Problemas como diabetes e de coração podem causar alteração no padrão da retina e causar falsos negativos.

Iris

É o tipo com maior acurácia dos sistemas biométricos. A iris é a parte colorida do olho que contorna a pupila.

O usuário deve se colocar a uma distância de 7.5 a 25 cm do dispositivo para permitir o processo de scan da iris por uma câmera.

Reconhecimento de voz

Capturam características únicas da voz do usuário e podem realizar padrões fonéticos e linguísticos. A maioria dos sistemas depende de um texto específico que deve ser repetido pelo usuário. Esse requisito também ajuda a elevar a segurança ao prover um sistema de dois fatores.

Assinatura

O sistema requer que o usuário assine seu nome em um tablet. São analisadas características da assinatura para comparação com um valor previamente salvo.

Tem como principal problema o fato da assinatura poder ser forjada ou ainda apresentar variação e com isso gerar falsos negativos.

Comparação entre os vários tipos de biometria

Comparação entre as formas de biometria

Share
Posted in Segurança | Tagged , | 1 Comment

Controle de acesso – sistema, senhas e pin

No controle de acesso é possível identificar duas categorias:

  1. Sistema (system access controls)
  2. Dados (data access controls)

Controles de acesso de sistema

Eles protegem o sistema inteiro e provêem a primeira linha de defesa para os dados contidos no sistema. A proteção destes se dá ao restringirem o acesso ao sistema.

Eles podem prover o AAA mas são mais conhecidos pela autenticacão.

A autenticação é baseada em qualquer um dos três fatores:
a) Algo que você conhece (something you know)

Se baseia no fato de que apenas o dono da conta tem o conhecimento de uma senha ou código de identificação necessário para acessar a conta.

b) Algo que você possui (something you have)

Se baseia no fato de que apenas o dono da conta tem a posse de uma chave para acessar a conta. Essa chave é comumente um smartcard ou token card

c) Algo que você é (something you are)

Se baseia no fato de que só você é você! :-) Ou seja, só você tem a sua impressão digital, iris, voz etc.

Autenticação é então baseada em algo que você conhece, tem ou é!

Autenticação de dois fatores (two factor-authentication) utiliza quaisquer dois fatores dos descritos acima. Autenticação de três fatores utiliza todos os fatores vistos.

Identificação e autenticação

O componente de identificação é normalmente simples, baseado em um nome de usuário, endereço MAC (medium access control), endereço IP ou identificador de processo.

Os únicos requisitos para a identificação é que eles possam identificar de maneira única o usuário e não deve identificar a posição do mesmo dentro do sistema/organização.

Lembrando que identificação é o ato de reivindicar uma identidade e autenticação é o ato de verificar essa identidade!

Senhas e frases secretas

A senha é o mecanismo mais comum para autenticação. A frase secreta é uma variação que usa uma sequencia de palavras em vez de uma só.

Problemas com senhas e frase secretas:
a) Inseguras

  • natureza humana – os usuários tendem a escolher senhas que são fáceis de lembrar (e consequentemente fáceis de se advinhar). Os usuários tem a tendência de escrever a senha ou compartilhar com outros
  • transmissão e armazenamento – alguns aplicativos e protocolos transmitem a senha em texto puro (clear text) ou a armazenam sem estar criptografada ou usando um hash fraco

b) Facilmente quebradas

Senhas são alvo de ataques por força bruta e de dicionário

c) Inconvenientes

Digitar a senha pode ser cansativo para usuários que tem que fazê-lo muitas vezes. É comum que por conta disso o usuário escolha uma senha muito pequena, de fácil digitação, ou se recusem a travar a estação enquanto estiverem ausentes.

d) Refutáveis

Transações autenticadas apenas com a senha não necessariamente incluem mecanismos para provar a identidade do usuário. Assim falham ao prover a não repudiação.

Controles e gerenciamento de segurança aplicado a senhas

Alguns controles que podem (e devem) ser aplicados em sua política de segurança:

  • Tamanho : quanto maior melhor já que a senha nada mais é do que uma chave de criptografia. No mínimo de 6 ou 8 caracteres
  • Complexidade : quanto mais difícil melhor (do ponto de vista da segurança). Usar letras maiúsculas e minúsculas, números e caracteres especiais (tais como @) ajudam.
  • Validade : Toda senha deve ter um limite máximo de validade que força que o usuário tenha que alterá-la periodicamente. Prazos como 30,60 ou 90 dias são recomendados. Recomenda-se também um tempo mínimo de 1 dia para evitar que o usuário altere a senha e evite o próximo controle
  • Histórico : O sistema deve ser capaz de se lembrar das últimas 5 senhas e com isso evitar que o usuário (forçado pelo item anterior) escolha a mesma senha ou fique fazendo ciclos.
  • Limitar tentativas : O sistema deve limitar o número de tentativas sem sucesso para acessar uma conta. É composto de dois componentes : um limite (counter threshold) e tempo de reset (counter reset). Ex. counter threshold = 3 e counter reset = 30 minutos. Se houver 3 tentativas sem sucesso no período de 30 minutos a conta é bloqueada.
  • Duração de bloqueio : Define a duração de tempo na qual uma conta não pode ser acessada depois de se ultrapassar o limite de tentativas sem sucesso.
  • Período de acesso : Define o período do dia no qual o usuário pode fazer o acesso.
  • Mensagens de sistema :
    Desabilitar os banners de logon
    Desabilitar funcionalidade que exibe o login que realizou acesso com sucesso pela última vez
    Exibir o último acesso com sucesso

Além das senhas e frases secretas é comum o uso de números de identificação pessoal (PIN) e de biometria.

Enquanto o PIN é um número com 4 dígitos e a biometria se baseia em características do usuário que deseja se autenticar e será vista no próximo blog.

Share
Posted in Geral | Tagged , , | Leave a comment