domingo, 27 de junho de 2010

Privacidade durante a navegação na Web

Quando utilizamos a Web o navegador armazena uma série de informações que podem ficar gravadas durante vários dias em seu computador. O navegador guarda o histórico das páginas visitadas, downloads efetuados, arquivos temporários (cache), cookies, dados preenchidos em formulários, logins ativos e até as senhas memorizadas. Qualquer outro usuário pode recuperar facilmente estas informações.

Felizmente, quase todos os navegadores possuem a opção de excluir todas estas informações a qualquer momento ou quando sair e fechar a janela do navegador. Os navegadores atuais também incluem um recurso de navegação segura temporária, onde nada é armazenado durante a navegação na Web. São medidas importantes quando se pensa em segurança.

Firefox 3.6

Para excluir manualmente as informações, vá no menu "Ferramentas" e clique em "Limpar histórico recente". Na janela "Limpar histórico recente" defina o período e clique no botão "Detalhes" para escolher o que será excluído, marque as quadrículas desejadas. Clique no botão "Limpar agora" para efetuar a operação.

Para iniciar a navegação segura vá no menu "Ferramentas" e clique em "Iniciar navegação privativa". O Firefox fechará as abas abertas e vai restaurá-las assim que a navegação privativa for concluída.

Se desejar automatizar a exclusão, vá no menu "Editar" e clique em "Preferências". Na janela "Preferências do Firefox" vá no painel "Privacidade". Neste painel, na seção "Histórico" defina em "O Firefox deve:" a opção "Nunca memorizar o histórico". Com esta escolha o navegador Firefox usará as mesmas configurações da navegação privativa. Ou defina em "O Firefox deve:" a opção "Usar configurações personalizadas". Com esta escolha é possível definir as opções separadamente, para isso desmarque a quadrícula "Iniciar o Firefox automaticamente na navegação privativa". Escolha o que deseja memorizar durante a sessão atual do navegador marcando as quadrículas correspondentes. Mas marque a quadrícula "Limpar o histórico ao sair do Firefox" e clique no botão "Configurar". Na janela "Configurações para limpeza do histórico" marque as quadrículas para o que deseja limpar completamente ao sair no Firefox. Clique em "OK" e depois em "Fechar" na janela de "Preferências do Firefox".

Internet Explorer 8

Para excluir manualmente as informações, no menu "Segurança" clique em "Excluir Histórico de Navegação". Escolha as opções e confirme clicando no botão "Excluir" desta janela "Excluir Histórico de Navegação".

Se desejar automatizar a exclusão, no menu "Ferramentas" clique em "Opções da Internet". Na janela "Opções da Internet" vá na guia "Geral". Nesta guia marque a quadrícula "Excluir histórico de navegação ao sair". Clique em "OK" para fechar a janela "Opções da Internet".

Para uma medida temporária, somente durante a sessão atual do navegador, o Internet Explorer possui um recurso chamado "Navegação InPrivate". Esta navegação permite que navegue na Web sem deixar vestígios no Internet Explorer.

A Navegação InPrivate pode ser iniciada a partir da página "Nova Guia" ou pelo menu "Segurança", clicando em "Navegação InPrivate". Quando é iniciada a Navegação InPrivate, o Internet Explorer abre uma nova janela do navegador. A proteção oferecida pela Navegação InPrivate tem efeito apenas durante o tempo que usar esta nova janela. Todas as guias abertas nesta janela estarão protegidas pela Navegação InPrivate. Entretanto, se abrir outra janela do navegador ela não estará protegida pela Navegação InPrivate. Para finalizar a sessão da Navegação InPrivate, feche a janela do navegador.

Google Chrome 5

Para excluir manualmente as informações, na janela do navegador clique no ícone da ferramenta "Personalizar e controlar o Google Chrome", no menu que abrir clique em "Opções". Na janela "Opções do Google Chrome" vá na guia "Configurações avançadas" e clique no botão "Limpar dados de navegação". Na janela "Limpar dados de navegação" marque as quadrículas do que deseja limpar e clique no botão "Limpar dados de navegação". Saia da janela "Opções do Google Chrome" clicando no botão "Fechar".

No navegador Google Chrome ainda não é possível deixar automática a função de excluir as informações, entretanto possui um recurso semelhante a Navegação InPrivate do Internet Explorer e a navegação privativa do Firefox, é o Modo Anônimo. Para utilizá-lo clique no ícone da ferramenta "Personalizar e controlar o Google Chrome" e clique em "Nova janela anônima". Uma nova janela será aberta e as páginas visualizadas nesta janela não aparecerão nos históricos do navegador ou da pesquisa, nem deixarão outros rastros no computador após fechar a janela anônima.

Como o Google Chrome não controla o modo como as extensões manipulam os dados pessoais, todas as extensões são desativadas nas janelas anônimas. É possível reativá-las individualmente no gerenciador de extensões.

quarta-feira, 23 de junho de 2010

Recuperando um arquivo apagado de partições NTFS

Pelo Linux é possível recuperar um arquivo apagado de uma partição NTFS. A ferramenta ntfsundelete, do pacote ntfsprogs, é que faz esta proeza.

No entanto não faz milagre. Quando um arquivo é apagado, seu registro MFT (Tabela Mestra de Arquivos) fica marcado como sem uso e o espaço livre do disco é atualizado. Se o computador não for desligado imediatamente, o espaço livre onde estava este arquivo poderá ser sobrescrito e, pior, o registro MFT poderá ser reutilizado por outro arquivo, ficando impossível saber onde estava o arquivo.

O ntfsundelete possui três modos de operação, o modo de varredura, de recuperação e de cópia. O modo de varredura é o padrão, onde apenas lê o volume NTFS e procura por arquivos apagados. O segundo modo recupera os dados de um arquivo especificado pelo seu inode ou por uma expressão regular e o salva em um outro lugar. E o modo de cópia é para salvar uma porção da MFT em um arquivo, sem muita utilidade prática.

A partição não deve estar montada quando for utilizar o ntfsundelete. Esta ferramenta somente lê o volume NTFS, nunca o modifica. Sendo assim, o arquivo recuperado deverá ser salvo em um outro volume montado no sistema.

Por exemplo, o comando abaixo lista todos os arquivos apagados, ordenados pelo número do inode:

# ntfsundelete /dev/sda1

Este outro exemplo lista somente os arquivos com extensão doc:

# ntfsundelete /dev/sda1 -s -m '*.doc'

E o comando abaixo recupera um arquivo apagado no inode especificado em NNNN:

# ntfsundelete -u -iNNNN /dev/sda1

Se for trabalhar em um arquivo imagem de uma partição ou disco, associado à um dispositivo de loop, especifique o dispositivo de loop em sua linha de comando:

# ntfsundelete /dev/loop0

O acesso direto aos dispositivos de armazenamento normalmente está restrito ao administrador do sistema, então um usuário comum não conseguirá utilizar o ntfsundelete. Consulte a página manual do ntfsundelete para mais informações.

terça-feira, 22 de junho de 2010

Problema de Lógica: Três casais de namorados

Atenção, a resposta está logo após o problema!

Para comemorar o dia dos namorados, três casais de namorados saem para jantar. Lucas, Milton e Nelson namoram Ana, Isa e Sílvia (não necessariamente nesta ordem). O garçom pergunta a eles sobre os nomes das respectivas namoradas. Os três respondem da seguinte forma:

- Nelson diz: "Milton é namorado de Isa".
- Lucas diz: "Nelson está mentindo, pois a namorada de Milton é Ana".
- Milton diz: "Nelson e Lucas mentiram, pois a minha namorada é Sílvia".

Sabendo-se que o namorado de Sílvia mentiu e que o namorado de Isa disse a verdade, quais são as namoradas de Lucas, Milton e Nelson?





RESPOSTA





Como sabemos que o namorado de Sílvia mentiu então a resposta de Milton é mentira porque forma uma contradição. A resposta de Nelson também é mentira porque contradiz com a informação de que o namorado de Isa disse a verdade. Como um disse a verdade e só restou a resposta de Lucas então Lucas é namorado de Isa. Portanto, com a resposta verdadeira sabemos que a namorada de Lucas é a Isa, de Milton é a Ana e de Nelson é a Sílvia.

sábado, 12 de junho de 2010

O que é Widescreen?

Se você já foi alguma vez ao cinema, você se sentou na frente de uma tela widescreen. Uma tela, um monitor ou um projetor widescreen possui uma taxa de aspecto de 1.60:1 (16:10) ou mais. Em contraste com a taxa de aspecto tradicional, ou fullscreen, que possui 1.33:1 (4:3), comum em televisores CRT.

A taxa de aspecto é a razão da dimensão horizontal com a dimensão vertical, isto é, a divisão do maior número, ou resolução horizontal, pelo menor número, ou a resolução vertical. O resultado desta divisão também é uma forma de expressar a taxa de aspecto.

Por exemplo, um monitor com resolução de 1024x768 possui a taxa de aspecto de 1024/768 = 1.33333, então é um monitor com a razão 4:3 (1.33:1) na taxa de aspecto. Observe que a razão 1.33:1 é a simplificação da razão 4:3 e também é a simplificação da razão 1024/768.

As taxas de aspecto mais comuns para widescreen são de 16:9 e 16:10. Contudo, a taxa de aspecto é mais comumente expressada em números decimais, como 1.78:1 (16:9) ou 1.60:1 (16:10). A taxa de aspecto de 16:9 é comum em telas de televisores, enquanto 16:10 é comum em telas de monitores de computador. A taxa de 15:9 (1.66:1) pode ser encontrada em ambos, televisores e monitores.

Adicionalmente, as taxas mais comuns em filmes de cinema são de 1.85:1 e 2.35:1. Estas taxas, mesmo em uma tela widescreen, criam o efeito "letterbox". Neste efeito aparecem as duas faixas negras, uma superior e outra inferior ou seja, a imagem não ocupa toda a área da tela.

Para tornar mais fácil o entendimento das diferentes taxas de aspecto, a imagem abaixo mostra a comparação dos tamanhos, dentre as taxas mais comuns.


Uma taxa de aspecto não se relaciona a uma determinada resolução. Diferentes resoluções de imagem podem ter taxas de aspecto semelhantes. Por exemplo, tanto a resolução de 1920x1080 (Full HD) e a 1280x720 (HD) possuem a taxa de aspecto de 1.78:1, ou 16:9.

Alguns monitores apresentam a taxa de 5:4 (1.25:1), com a resolução de 1280x1024. Uma proporção mais estreita do que a taxa de 4:3.

quinta-feira, 10 de junho de 2010

Como montar uma imagem de um disco rígido

Um arquivo imagem de disco rígido, gerado por programas denominados "Disk Dump", pode ser montado para leitura da mesma forma que imagens ISO de CDs e DVDs. O sistema Linux possui algumas ferramentas para realizar esta operação.

Uma imagem gerada pelo comando, por exemplo, "dd if=/dev/sda of=imagem.dd bs=4096 conv=noerror,sync" é uma cópia integral de toda a superfície do disco rígido. É uma cópia crua (raw), em baixo nível, dos dados do disco.

Primeiramente é necessário conhecer algumas informações da imagem do disco. Mais precisamente o setor de início e o tamanho da unidade do setor. Normalmente as partições iniciam no setor 63 mas no Windows Vista ou superior o primeiro setor é o 2047. O seguinte comando retorna estas informações:

fdisk -lu imagem.dd

Um exemplo de saída está nas linhas a seguir:

Disk imagem.dd: 0 MB, 0 bytes
255 heads, 63 sectors/track, 0 cylinders, total 0 sectors
Units = sectors of 1 * 512 = 512 bytes
Disk identifier: 0xf27ef27e

    Device Boot      Start         End      Blocks   Id  System
imagem.dd1   *          63    26700029    13349983+   7  HPFS/NTFS
Partition 1 has different physical/logical endings:
     phys=(1023, 254, 63) logical=(1661, 254, 63)

Agora devemos associar a imagem à um dispositivo de loop. Isto é feito pela ferramenta "losetup". Esta ferramenta configura e controla os dispositivos de loop. O seguinte comando retorna o primeiro dispositivo de loop livre:

losetup -f

Assim, podemos fazer a associação do dispositivo de loop ao arquivo imagem:

losetup -o $((63*512)) /dev/loop0 imagem.dd

Podemos confirmar a associação obtendo informações do dispositivo de loop, com o comando abaixo:

losetup /dev/loop0

Um exemplo de saída é:

/dev/loop0: [0802]:2967800 (/root/imagem.dd), offset 32256

Agora é só montar o dispositivo de loop, consequentemente a imagem do disco rígido, com um comando semelhante ao apresentado abaixo:

mount -o ro,noatime,noexec /dev/loop0 /mnt/hdd

Para desassociar o arquivo imagem com o respectivo dispositivo de loop, basta executar o próximo comando (antes desmonte o dispositivo com "umount /mnt/hdd"):

losetup -d /dev/loop0

Os comandos apresentados neste artigo servem em um cenário de uma imagem de disco rígido que possua uma única partição. Uma situação diferente, pode necessitar de outros comandos.

quinta-feira, 3 de junho de 2010

Como medir a altura ou a profundidade usando o tempo da queda?

Um dos modos de calcular a altura ou a profundidade, por exemplo da janela de um prédio ou de um poço, é soltar um objeto no alto e medir o tempo gasto da sua queda até que este objeto chegue ao final.

Para realizar este cálculo nós utilizamos uma fórmula do Movimento Uniformemente Variado (M.U.V.), pois durante a queda do objeto o valor da aceleração escalar instantânea permanece constante no decorrer do tempo. Precisamente, utilizamos a função horária dos espaços:


Na fórmula, a aceleração escalar está representada pela letra Gama (Γ) e neste cálculo corresponde à aceleração da gravidade (g) da Terra. Seu valor está em torno de 9,8 m/s². O sinal de g será positivo pois a orientação da trajetória é a mesma da gravidade. Os valores para posição inicial (s0) e velocidade inicial (v0) são adotados como nulos porque a distância será a partir de onde o objeto é solto e o objeto vai estar parado em nossa mão. Então, simplificando a fórmula, a distância (d) à ser calculada é dada por:


Por exemplo, se o tempo gasto na queda do objeto foi três segundos, a distância será aproximadamente 44 metros (d = 4,9 x 3²). Apenas para ilustrar, o objeto atingiu o final a uma velocidade de 29,4 m/s (v = v0 + g.t) (função horária da velocidade).

Se quiséssemos ser mais precisos, poderíamos considerar que o tempo total corresponde a soma do tempo da queda do objeto com o tempo do retorno do som da batida. Entretanto, como a velocidade do som é relativamente alta, em torno de 340 m/s, para cada metro de distância o som demora apenas 0,003 segundos em seu deslocamento. Muito pouco para influenciar este cálculo. A não ser que a queda tenha mais de 170 metros, o que daria uma porção do tempo total de aproximadamente 0,5 segundos para o tempo do som.

O procedimento de introduzir o tempo do som ao cálculo é simples porém deixa de ser um cálculo que pode ser efetuado mentalmente. A distância percorrida pelo som é 340 vezes o tempo gasto (d = 340 x ts) e a distância percorrida pelo objeto é, como vimos, a aceleração da gravidade, dividido por dois, vezes o quadrado do tempo gasto pelo objeto (d = g/2 x to²). Estas distâncias são as mesmas então 340 x ts = g/2 x to². A soma, do tempo gasto pelo objeto mais o tempo gasto pelo som, é igual a três (to + ts = 3), consequentemente o tempo gasto pelo som é igual a três menos o tempo gasto pelo objeto (ts = 3 - to). Colocando tudo numa equação podemos encontrar um dos tempos (a aceleração da gravidade foi arredondada para 10 m/s² para facilitar o cálculo):

340 x ts = g/2 x to²
340 x (3 - to) = 10/2 x to²
1020 - 340to = 5 x to²
to² = 1020/5 - 340/5 x to
to² = 204 - 68to
to² + 68to - 204 = 0

Neste ponto chegamos a uma equação do segundo grau e resolvendo pela fórmula de Bhaskara obtemos que o tempo gasto pelo objeto é igual a 2,88 segundos. Logo, o tempo gasto pelo som foi três menos 2,88 (ts = 3 - to), que é igual a 0,12 segundos. Para concluir, basta colocar um destes valores de tempo na sua respectiva fórmula para obtermos o cálculo da distância. Se d = g/2 x to² então d = 9,8/2 x (2,88)² = 40,64 metros. Usando a outra fórmula, d = 340 x ts = 340 x 0,12 = 40,8 metros. Os valores não são exatos pois fizemos diversos arredondamentos pelo caminho.

Para obter um melhor resultado nesta medida é interessante que o objeto tenha uma boa densidade para não sofrer muito com a resistência do ar. Não dá muito certo por exemplo soltar uma pena. Obviamente, todos estes cálculos desprezam a resistência do ar na queda do objeto.

terça-feira, 1 de junho de 2010

Corrigindo uma imagem ISO pelo rsync

Uma vez passei pela seguinte procedimento. Fiz o download de uma imagem ISO, gravei o conteúdo desta imagem em uma mídia DVD e apaguei o arquivo ISO de meu computador. Procedimento comum. Só que em um tempo depois precisei novamente desta imagem.

Tudo bem, usei o dd (diskdump) e fiz uma cópia 1:1 da mídia para um arquivo em meu HD, gerando uma nova imagem ISO. Esta nova imagem funcionou perfeitamente e decidi guardá-la caso precisasse novamente. Entretanto, ao verificar a assinatura digital percebi que o hash desta imagem, comparando com o fornecido pelo site o qual fiz o download, não era mais o mesmo.

Para não baixar novamente toda a imagem, usei a ferramenta rsync para apenas reparar o arquivo ISO. O rsync é uma ferramenta de cópia de arquivo remoto e local, que serve para sincronizar duas unidades de armazenamento, fazendo um espelho ou também para cópias de segurança. O rsync é famoso pelo seu algoritmo de transferência delta, o qual reduz a quantidade de dados transferidos pela rede enviando somente as diferenças entre os arquivos.

Para que o rsync funcione é necessário que o servidor de arquivos tenha o suporte ao protocolo rsync. Muitos servidores que fornecem imagens ISO de distribuições Linux trabalham também com este protocolo. Como um teste podemos usar o comando abaixo que mostra o conteúdo do diretório remoto:

rsync rsync://nome.do.servidor/diretório/

Para reparar a imagem, entre no diretório local no qual se encontra o arquivo ISO corrompido e execute um comando semelhante ao apresentado abaixo:

rsync -avc --stats --progress rsync://debian.las.ic.unicamp.br/debian-cd/5.0.4/i386/iso-dvd/debian-504-i386-DVD-1.iso .

O argumento "-a" usa o modo de arquivo, onde são preservados os atributos e permissões do arquivo. O argumento "-v" aumenta a verbosidade, junto com "--stats" que mostra uma estatística da transferência e "--progress" que mostra o progresso durante a transferência. O argumento "-c" faz com que o salto, percorrendo o arquivo, seja baseado no checksum. O ponto no final é porque o arquivo ISO local está no diretório atual, onde foi executado o comando, e possui o mesmo nome do arquivo remoto. O início do processo pode demorar um pouco pois o servidor precisa calcular o checksum do arquivo.

Não é todo servidor rsync que permite ou suporta o recurso de controle por checksum. Se o servidor não possuir então é necessário que o arquivo ISO local esteja com a data e hora diferente do arquivo remoto. Forçando assim uma checagem total do arquivo. O uso do comando "touch" pode resolver isto.

Adicionalmente pode incluir o argumento "-z", que usa uma compressão nas porções de dados para a transferência. Para mais informações consulte a página manual do rsync (man rsync).