IT, Information Security, System Archictecture, Cloud Computing and nerd stuff.
segunda-feira, 20 de dezembro de 2010
Android no Desktop com VirtualBox
A primeira coisa que fiz foi "googlar" para "Android X86", nas esperança de encontrar alguém que já tivesse tentado. Olha só o primeiro site (tô atrasado hein?): http://www.android-x86.org/. O projeto está ativo desde março de 2010 preparando a versão para x86.
Bom, fui direto ao assunto:
1. Fui para Download.
2. Em "StableRelease" baixei "android-x86-1.6-r2.iso" (baixe uma mais nova, se encontrar).
3. Gerei uma virtual machine no virtual box escolhendo "Linux" e "Others" (outros linux).
Não é que rodou de cara?
Olha o sistema rodando aí de primeira, sem necessidade de qualquer ajuste
Bem no momento de escrita do post.
Experimente ai!
quarta-feira, 17 de novembro de 2010
IOWait causando 100% de consumo de CPU no Ubuntu - SOLUCIONADO
Após "fuçar" por uns dois dias (efetivamente umas 4 horas ao longo de 4 semanas...) descobri o iotop, que permite monitorar os processos consumindo operações de I/O. Foi rodar o programa imediatamente após uma inicialização e logo os vilões apareceram: gdl_fs_crawler e gdl_indexer. Quem são? Estes dois são processos de background que cuidam do serviço de indexação do Google Desktop. Sim, estava com o Google Desktop instalado no Ubuntu e configurado para inicializar automaticamente.
Identificado o problema, a solução não poderia ser mais simples: tirar o Google Desktop da inicialização (System→Preferences→Startup Applications). Reinicializada a máquina, praticamente zero de IOWait e a máquina voltou a funcionar excelentemente, permitindo a inicialização do OpenOffice logo de cara.
Colocando o Google Desktop para rodar após a inicialização o IOWait fica menos exagerado, mas ainda bate 2000Kb/s de leitura de disco. O ideal é deixar o Google Desktop indexando durante a noite e desligar a indexação durante o período de uso normal, mantendo-o fora da inicialização.
Mas ele ainda é minha ferramenta preferida de pesquisa no desktop.
segunda-feira, 18 de outubro de 2010
Pesquisando imagens na web
Uma das funcionalidades interessantes de meu Motorola Droid é o MotoID, programa que "escuta a música" e identifica qual é. Interessante aplicação de análise de espectro... isso me lembra minhas aulas de identificação, estimação e processos estocásticos com meu orientador, José Manoel.
Da mesma forma, estão surgindo as ferramentas de reconhecimento de imagens por similaridade. Existem algumas como o Similar Images do Google, Tiltomo e Bing que ainda são baseadas nos atributos informados sobre a imagem, mas as mais interessantes são aquelas que realizam a análise da imagem.
Então, há algum tempo recebi a imagem de um logo anexado a um e-mail e fiquei curioso de saber de onde tinha saído. Mexi na internet e achei o TinEye, uma excelente ferramenta de busca reversa de imagens. O funcionamento é bastante simples: você faz o upload da imagem (ou mesmo parte de uma imagem), a ferramenta faz a análise e vasculha a web buscando aquela imagem em particular.
Outra da mesma família é a Byo Image Search, que não tem uma base tão extensa quanto o TinEye e funciona principalmente pela distribuição de cores da imagem.
De qualquer forma, vale a pena dar uma avaliada em todas elas.
A era de reconhecimento de imagem, voz e sons está muito mais próxima do que imaginamos.
quarta-feira, 6 de outubro de 2010
Padrões internacionais para tabelas com nomes de países, estados, cidades e unidades monetárias
O fato é que para a lista de países, estados (províncias), moedas e muitas outras existem padrões internacionais ISO que formalizam estes valores.
A ISO 3166 é uma norma internacional para codificar nomes de países e dependências, com suas principais subdivisões administrativas. Na realidade trata-se de um conjunto de três normas:
- ISO 3166-1 - códigos para países e dependências, publicado desde 1974
- ISO 3166-2 - códigos para as principais subdivisões de um país ou dependência
- ISO 3166-3 - códigos obsoletos (retirados de ISO 3166-1), publicado desde 1998
E não é necessário visitar a Wikipedia e baixar as informações de lá. Como era de se esperar, existem repositórios na web para estes dados, que podem ser baixados ou consultados on-line. Um bom exemplar destas fontes dinâmicas destes padrões é o CommonDataHub, site que disponibiliza estes e outros padrões nos mais diversos formatos, além de fornecer webservices para consumo on-line. É cobrado, mas é um serviço com garantia de informações. Para a consulta a todas as cidades - com população superior a 5000 habitantes - o valor é de US$750,00/ano.
As informações parecem ser de boa qualidade pois achei São Simão/GO lá. :-)
Então, para estas tabelinhas básicas, melhor buscar a informação na fonte. Seu sistema ficará mais fácil de integrar com outros sistemas do mundo.
sábado, 2 de outubro de 2010
Problemas de som no Ubuntu 10.04 - apenas browser com som
Por incrível que pareça, apenas os browsers conseguiam reproduzir som.
Então, após procurar em vários blogs e posts, comecei a olhar os arquivos de configuração. Então encontrei a pasta ".pulse". Como acontece normalmente com o Gnome, os arquivos de configuração ficam nestas pastas.
Dei uma olhada nas datas, tirei uma cópia e removi a pasta (um simples rm -r .pulse).
Um restart e pronto, voltou a funcionar! :-P
domingo, 19 de setembro de 2010
Sem permissão para acessar o Google?

Forbidden
You don't have permission to access /accounts/SetSID on this serverO que eu fiz de errado para não ter mais acesso ao Google? :-P
Bem, o blogger estava funcionando. Alguns segundos depois, o acesso ao Google voltou, mas ao GMail não.
Vamos ter notícias disso.
sábado, 11 de setembro de 2010
Resetando as configurações do GNome
Então a solução foi levar o gnome às configurações iniciais. Como fazer?
quinta-feira, 17 de junho de 2010
Ataques por buffer overflow – e além deles
- function-pointer clobbering: consiste na modificação do código de uma função quando a mesma está sendo acionada por ponteiros (void (*function) () = ….)
- data-pointer modification: consiste em utilizar um buffer oveflow para escrever sobre um ponteiro dentro da função.
- exception-handler hijacking: no windows ponteiros para os manipuladores de exceção são armazenados na pilha. Se sobrescrevemos estas posições por meio de um buffer overrun e em seguida disparamos a exceção, não é ela que será executada mas sim o código armazenado no endereço escrito no ponteiro.
- virtual pointer smashing (VPTR Smashing): A “virtual function table” (VTBL) é um array para funções virtuais disponibilizadas para uma classe e é, normalmente, armazenado no cabeçalho do objeto. A VTBL é acessada por um VPTR (virtual pointer). A substituição do VPTR por um valor próprio, apontando para uma estrutura VTBL forjada, construida intencionalmente para apontar para funções injetadas no sistema pelo atacante (na pilha, por exemplo, por stack smashing).
- Jonathan Pincus , Brandon Baker, "Beyond Stack Smashing: Recent Advances in Exploiting Buffer Overruns", IEEE Security and Privacy, vol. 2, no. 4, pp. 20-27, July-August, 2004.
- Nathan P. Smith, "Stack Smashing Vulnerabilities in the UNIX Operating System", Computer Science Department, Southern Connecticut State University, 1997.
- http://www.napolifirewall.com/Buffer%20Overflow%20Attacks.htm
- https://buildsecurityin.us-cert.gov/bsi/articles/knowledge/coding/310-BSI.html
- http://www.w00w00.org
- http://www.linuxjournal.com/article/6701
terça-feira, 25 de maio de 2010
Reflections on trusting trust - uma visita ao artigo de Ken Thomson
Existe também um conjunto de especificações da ISO que tratam do tema:
- ISO/IEC 11889-1:2009 Information technology -- Trusted Platform Module -- Part 1: Overview
- ISO/IEC 11889-2:2009 Information technology -- Trusted Platform Module -- Part 2: Design principles
- ISO/IEC 11889-3:2009 Information technology -- Trusted Platform Module -- Part 3: Structures
- ISO/IEC 11889-4:2009 Information technology -- Trusted Platform Module -- Part 4: Commands
domingo, 25 de abril de 2010
Criptografia com curvas elítipticas
O problema da escolha de um método para criptografia na comunicação entre duas entidades tem duas restrições fundamentais:
Temos portanto uma exponencial e encontrar as chaves requer o cálculo de um logaritmo sobre um campo numérico discreto baseado em números primos muito grandes, o que é computacionalmente imprático (o que, hoje, significa "impossível"). Fica clara a relação recorrente que envolve a dificuldade do cálculo da inversa e o tamanho da chave para garantir a segurança da estratégia de criptografia.
Logicamente a descrição aqui simplifica bastante o modelo - que exige números primos bastante grantes e uma boa qualidade no algoritmo de geração de números aleatórios - mas é o suficiente para que possamos entender a simplicidade brilhante do método.
O algoritmo RSA
Como mencionei ao início do artigo, espaço (memória) e velocidade são dois fatores importantes na escolha de um algoritmo de criptografia. E é aí que surge o especial interesse nas curva elípticas: elas oferecem mais segurança para um mesmo tamanho de chave. Por outra óptica, elas oferecem mais segurança para uma chave menor, o que significa mais velocidade (menos ciclos, menos energia, menos calor produzido).
A matemática das curvas elípticas
Enquanto o algoritmo de Diffie-Hellman baseia-se no problema do logaritmo discreto sobre um campo finito formado por números primos, as curvas elípticas baseiam sua técnica num campo finito formado por pontos - pares (x,y) - de números primos que estão sobre a curva elíptica definida por uma determinada equação.
Em geral os pontos (x,y) são definidos pela equação a seguir
Bob determina Qb = Kb*P, sendo Qb sua chave pública e Kb sua chave privada.
terça-feira, 6 de abril de 2010
Especificação formal de protocolos de segurança
Neste artigo introdutório abordamos o tema da especificação dos protocolos. A verificação ficará para um outro momento. Aguardo comentários e dicas que possam me auxiliar a enteder melhor o tema.
sábado, 3 de abril de 2010
Disney baseado em objetos
domingo, 10 de janeiro de 2010
Tchau, Windows!
Eu vinha usando o Windows desde 1998 como meu principal sistema operacional, mais por que todo mundo usava, por causa dos jogos, e por que praticamente a totalidade dos meus clientes o utiliza.
No entanto de uns tempos pra cá vinha me cansando das "blue screen of death", das atualizações duras (sempre tendo que reinicializar a máquina), de ter que formatar a máquina completamente para instalar a nova versão do sistema e, principalmente, de pagar caro pelo Office.
Então desde o final do ano passado - final mesmo, última semana - abandonei o Windows e meu sistema operacional oficial agora é o Ubuntu, uma das distribuições mais populares e seguras do Linux, principalmente por sua facilidade de uso. Como estou há mais de 10 anos afastado de um uso mais "hard" do Linux, não teria melhor opção né?
Mas não deu pra abandonar o Windows completamente. Ainda tenho uma conta bancária corporativa em um banco cujo site só funciona no Internet Explorer :-S. Para isso estou usando o VirtualBox pra rodar o meu antigo Windows XP, só para acessar este site. Bem, é lógico que vou utilizá-lo para realizar alguns testes e me divertir um pouco. Então, não foi de todo mal.
Vou compartilhar com vocês minhas alegrias e tristezas desta nova decisão. Até agora foi tudo tranquilo e minha única dificuldade foi fazer meu token eCPF funcionar, mas isso é coisa para o próximo post.
Até breve!