Arquivo de 30/04/2011

Transmissão de dados e voz em longas distâncias com pouca perda de sinal e qualidade, tudo isso com altíssimas velocidades. Já pensou nas maravilhas que isso permitiria? Apostamos que você deve estar pensando: baixar programas e músicas ficaria muito mais rápido e o tempo de espera por downloads seria reduzido ao mínimo.

E é exatamente isso que aconteceria, se todas as empresas de internet banda larga disponibilizassem a tecnologia da fibra ótica para os usuários. Logicamente a mudança de tecnologia demanda grandes quantias de dinheiro, por isso é difícil que tenhamos a fibra ótica em todas redes domésticas pelos próximos anos.

No Brasil, apenas algumas universidades e institutos públicos possuem este tipo de conexão. Em 2011, algumas residências devem passar a contar com o modo de transmissão de alta velocidade da fibra ótica – pelo menos é o que está prometendo uma das maiores empresas de telecomunicações do país.

Mas você sabe como funcionam os cabos de fibra ótica? Acompanhe este artigo que o Tecmundo preparou para você e descubra como ocorre a transmissão de dados e voz por meio dos cabos de fibra ótica. Aproveite também para entender o quão importante eles podem ser em nossas vidas.

Transformando dados em luz

A fibra ótica não envia dados da mesma maneira que os cabos convencionais. Para garantir mais velocidade, todo o sinal é transformado em luz, com o auxílio de conversores integrados aos transmissores. Há dois modos de converter os dados: por laser e por LED (respectivamente: fibras monomodo e multimodo. Ambas serão explicadas mais adiante).

(Fonte da imagem: Wikimedia Commons / BigRiz)

Sem essa conversão, os dados enviados e recebidos não poderiam desfrutar das mesmas larguras de banda. Nesse momento, surge a necessidade dos cabos de fibra ótica, pois são eles que permitem a velocidade e a qualidade superiores às oferecidas pelos tradicionais cabos de cobre. O motivo disso nós vamos explicar mais à frente neste artigo.

Cabos de fibra ótica

Você imagina como é um cabo de fibra ótica por dentro? Ele não é construído apenas com a fibra de vidro e o revestimento plástico, há várias camadas que fazem parte da estrutura essencial dele. Vamos agora explicar um pouco mais sobre cada uma das camadas que compõe a fibra ótica.

Proteção plástica

Como todo cabo, a fibra ótica também precisa de proteção externa, para evitar que o desgaste natural ou as situações anômalas do tempo representem interferências no sistema. Geralmente, essa camada de proteção é composta por plásticos, tornando a aparência dos cabos de fibra ótica muito similar à apresentada por cabos de rede, por exemplo.

Fibra de fortalecimento

Logo abaixo da camada plástica, existe uma fibra de fortalecimento, bastante parecida com a que existe em cabos coaxiais de transmissão de sinal de televisão. Você sabe qual a função dela? Proteger a fibra de vidro de quebras que podem acontecer em situações de torção do cabo ou impactos no transporte.

Se a camada de fortalecimento não existisse, qualquer movimento brusco que atingisse os cabos de fibra ótica resultaria em quebra da fibra principal e, consequentemente, na perda total do sinal transmitido.

Revestimento interno

Também chamado de “Coating”, o revestimento interno tem função similar à das fibras de fortalecimento. É ele que isola todos os impactos externos e também evita que a luz natural atinja as fibras de vidro internas, o que poderia resultar em interferências muito fortes em qualquer que seja o sinal.

Camada de refração

Nas duas camadas mais internas, ocorre a parte mais importante do processo de transmissão de luz. Cobrindo o filete de fibra de vidro, a camada de refração (ou “Cadding”) é responsável pela propagação de todos os feixes, evitando que existam perdas no decorrer dos trajetos. Em um sistema perfeito, essa camada garantiria 100% de reaproveitamento dos sinais luminosos.

Núcleo

Também chamado de “Core”. Em suma, é onde realmente ocorre a transmissão dos pulsos de luz. Construído em vidro, é por ele que a luz viaja em suas longas distâncias. No próximo tópico mostraremos os dois tipos de fibras de vidro que podem ser utilizados nos cabos.

Muita velocidade

Multimodo e monomodo

Os dois nomes que abrem este tópico representam os dois principais modelos de fibras óticas existentes atualmente. Eles são diferenciados em vários aspectos, desde o custo de produção até as melhores possibilidades de aplicação. Qual deles será mais recomendado para a construção de redes de internet?

Monomodo

Como o nome já diz, as fibras monomodo só podem atender a um sinal por vez. Ou seja, uma única fonte de luz (na maior parte das vezes, laser) envia as informações por enormes distâncias. As fibras monomodo apresentam menos dispersão, por isso pode haver distâncias muito grandes entre retransmissores.

Teoricamente, até 80 quilômetros podem separar dois transmissores, mas na prática eles são um pouco mais próximos. Outra vantagem das fibras desse tipo é a largura da banda oferecida, que garante velocidades maiores na troca de informações.

Multimodo

Fibras multimodo garantem a emissão de vários sinais ao mesmo tempo (geralmente utilizam LEDs para a emissão). Esse tipo de fibra é mais recomendado para transmissões de curtas distâncias, pois garante apenas 300 metros de transmissões sem perdas. Elas são mais recomendadas para redes domésticas porque são muito mais baratas.

Isso sim é velocidade

Você já viu que a fibra ótica garante velocidades muito maiores do que as oferecidas pelos fios de cobre comuns, mas ainda não viu os números exatos. Hoje, uma conexão banda larga de alta velocidade é oferecida com cerca de 10 Mbps, o que permite downloads a quase 1,25 MB/s.

Os padrões de testes da fibra ótica apontam para velocidades de 10 Gbps, o que resulta em downloads de 1.280 MB/s. É um aumento considerável, que pode ser extremamente importante para quem gosta de jogar games online ou baixar muitos arquivos pela internet.

(Fonte da imagem: Wikimedia Commons / Hustvedt)

Vale dizer que as conexões de 10 Gbps são muito potentes e devem custar muito caro, por isso são mais recomendadas para grandes empresas e universidades, locais em que a banda precisa ser muito dividida. Outra possibilidade é a instalação de padrões de fibra ótica em condomínios, que podem redividir a conexão para vários computadores.

Saudades do cobre: fibra ótica também tem defeitos

Não existe nenhuma tecnologia perfeita, por isso precisamos apresentar também as desvantagens dos cabos de fibra ótica. A principal delas é relacionada aos custos, tanto de produção quanto de implementação dos novos sistemas de transmissão.

Produzir cabos de fibra ótica envolve processos muito complexos e caros, o que exige uma demanda muito grande de usuários dispostos a pagar um pouco mais pelos recursos oferecidos pela tecnologia. Além disso, para alimentar grandes cidades seriam necessários muitos retransmissores, e há relatos de perdas grandes de sinal em retransmissores divisores.

Outros problemas estão ligados diretamente à fragilidade das fibras de vidro. Como ainda não existe uma padronização no sistema, há muitos cabos que são vendidos sem o encapsulamento protetor adequado. Isso gera instabilidade para os cabos e pode resultar em quebras dos filetes de transmissão.

Tecnologia do futuro?

Será que a fibra ótica está realmente distante da realidade? Aos poucos, algumas empresas de televisão a cabo e internet estão oferecendo pacotes que contam com os recursos da tecnologia para seus assinantes. Os preços ainda são bem altos, mas com o passar do tempo é provável que baixem consideravelmente.

Outro desafio é encontrar formas de retransmitir os sinais sem que seja necessário dispender muitos recursos, mas as vantagens oferecidas realmente impulsionam os pesquisadores. A fibra ótica garante uma largura de banda muito maior do que o cobre, ocupando menos espaço físico e com matéria-prima (sílica) muito mais abundante.

…..

Você está disposto a pagar um pouco a mais para ter fibra ótica na sua casa? Ou acha que ainda não vale a pena gastar dinheiro em uma tecnologia mais moderna? Deixe um comentário para nos dizer o que pensa a respeito da fibra ótica.

Fonte: Baixaki

Nos últimos dias o serviço Trapster avisou que 10 milhões de senhas dos seus usuários poderiam estar comprometidas. No ano passado a rede de sites de notícia Gawker passou pelo mesmo problema por um problema parecido.

E se formos voltar no tempo vamos descobrir que todo ano temos pelo menos 2 ocorrências similares em sites grandes. E isso vem acontecendo ano após ano desde que a Internet se tornou acessível entre “civis”.

Se todos os usuários usassem senhas diferentes para cada um dos serviços que usa na internet o estrago causado por esse tipo de situação seria bastante limitado. Mas não é isso o que acontece e, quando senhas “vazam” na internet o estrago pode ser gigantesco.

Problema antigo. Solução conhecida.

Em 1994 fui fazer estágio na Telesp no interior de São Paulo. Lá eu tive meu primeiro contato “sério” com um Unix. Era um SCO Unix que rodava num 386SX com 7 terminais seriais.

Enquanto eu estava aprendendo a usar o Unix eu vi que tinha um arquivo chamado /etc/passwd e, pelo nome, imaginei que lá eu encontraria as senhas de usuários do sistema.

Naquela época eu era “metido a hacker” e fiquei entusiasmado com a idéia de descobrir a senha de todo mundo que usava aquele servidor. Fiquei mais animado ainda quando vi que as permissões do arquivo permitiam que qualquer usuário examinasse seu conteúdo.

Quando abri o arquivo veio a decepção… no lugar onde deveriam ficar as senhas estava um “x”. Mas não me dei por vencido. Após estudar as manpages (que viam impressas em manuais imensos!) fiquei sabendo que as senhas não estavam lá. Elas estavam no arquivo /etc/shadow.

Com o ânimo renovado fui atrás desse arquivo. Mas dessa vez as coisas estavam um pouquinho mais difíceis… só o usuário root conseguiria ver esse arquivo.

Chegou a hora, então, de uma pitada de engenharia social… não vou contar como fiz porque foi muito fácil mas consegui a senha de root do sistema… hora de ver a senha dos outros usuários da Telesp e implantar uma mega-revolução na telefonia brasileira!… erm… menos…

Quando abri o arquivo tomei uma ducha de água fria definitiva. No lugar onde as senhas deveriam estar eu só um amontoado de caracteres que não se pareciam com senhas. Até poderiam ser as senhas dos usuários mas parecia muito improvável (e de fato não eram).

Descobri depois que o que estava armazenado ali era o resultado de uma espécie de “criptografia”. Ou seja, em 1992 os sistemas Unix já não armazenavam as senhas em texto puro. É bem provável que eles já não fizessem isso a muito mais tempo.

Estamos em 2011. Se depois de 19 anos eu armazenasse as senhas dos meus usuários em “texto puro” eu deveria ser chamado de irresponsável e incopetente. Se um invasor tivesse acesso à essas senhas eu deveria ser tratado como criminoso. No mínimo.

A solução

A única solução correta e infalível para armazenar senhas de forma segura é: não armazená-las.

Aí você deve estar perguntando: se eu não armazenar a senha do usuário como eu consigo verificar a senha dele durante sua autenticação?

Uma resposta “básica” seria: armazene o hash da senha.

Segundo o HowStuffWorks brasileiro:

“Hash é resultado da ação de algoritmos que fazem o mapeamento de uma seqüência de bits de tamanho arbitrário para uma seqüência de bits de tamanho fixo menor de forma que seja muito difícil encontrar duas mensagens produzindo o mesmo resultado hash (resistência à colisão ), e que o processo reverso também não seja realizável (dado um hash, não é possível recuperar a mensagem que o gerou).”

Existem vários algorítmos para cálculos de hash. Cada um deles possui um determinado tipo de aplicação. As funções de hash mais “famosas” são aquelas cuja aplicação está no campo da criptografia: MD2, MD4, MD5, SHA1, SHA256, …

Vou demonstrar o que acontece com o MD5:

$ echo "123mudar" | md5sum
642d8860fc6fe3126803ebdbe9974abd
$ echo "123mudar" | md5sum
642d8860fc6fe3126803ebdbe9974abd
$ echo "123mudor" | md5sum
fe294bbc902c287efb7acb20c8fdb67a

Note que sempre obtemos o mesmo resultado quando a senha é a mesma mas quando mudamos 1 único caracter o resultado do cálculo de hash muda completamente.

Tendo isso em mente podemos pensar em armazenar no nosso banco de dados apenas o hash da senha do usuário. Quando for preciso verificar a senha informada pelo usuário aplicamos a função de hash à ela e comparamos com aquela que está armazenada no banco de dados.

Perfeito não é? Problema resolvido, não? Não! Ainda falta uma pitada de “sal” nessa receita…

Salt – mais uma dificuldade para o invasor

Vamos supor que um invasor tenha acesso ao banco de dados da aplicação e ao hash das senhas…

Com esses hashes o usuário pode disparar um ataque baseado em dicionários ou até mesmo procurar pelos hashes no Google! Veja o que acontece com uma senha “fraca”:

$ echo "senha" | md5sum
6fd720fb42d209f576ca23d5e437a7bb

Agora procure por “6fd720fb42d209f576ca23d5e437a7bb” no Google e veja o resultado :D

Para resolvermos esse problema devemos usar um “salt” para gerar o hash da senha.

Salt é uma sequência aleatória de bits que são concatenados à senha do usuário antes de gerar o hash (quanto maior essa sequência mais difícil será o trabalho do invasor).

Por ser uma sequência aleatória precisamos armazená-la junto com o resultado do hash para ser possível verificar a senha depois. Vamos à um exemplo “pythonico”

$ python
>>> import random
>>> import hashlib
>>> senha = "senha"
>>> salt = ''.join(chr(random.randint(65, 122)) for x in range(5))
>>> salt # Esse é o Salt!
'vGBAA'
>>> salt_senha = salt + senha
>>> salt_senha # salt + senha
'vGBAAsenha'
>>> hash = hashlib.md5(salt_senha).hexdigest()
>>> hash # Esse é o hash do salt+senha
'3607507cfa3f31b0cf10e83af947df97'
>>> armazenar = salt + "$" + hash
>>> armazenar
'vGBAA$3607507cfa3f31b0cf10e83af947df97'

Tente procurar pelo hash “3607507cfa3f31b0cf10e83af947df97” no Google agora… ou submeter esse hash à um ataque de dicionário… Você verá que aumentamos um pouco a dificuldade para descobrir a senha do usuário.

Esse é o procedimento usado por grande parte dos frameworks web que implementam alguma forma de armazenamento de senha (ex. django.contrib.auth). Ele é bastante seguro e podemos considerar isso satisfatório. Mas as coisas estão mudando…

A nuvem “do mal”

Com o advento da “computação na nuvem” chegamos à situação onde podemos comprar “poder de processamento” tal como compramos energia elétrica.

Antigamente se a gente tivesse um salt+hash em mãos era quase impossível (ou economicamente inviável) conseguir poder de processamento suficiente para submetê-los à um ataque de força bruta.

Mas as coisas mudaram e com 1 cartão de crédito e uma quantidade “viável” de dinheiro é possível contratar dezenas de “nós” de processamento na Amazon ECS, por exemplo, e colocá-los para “atacar” o nosso salt+hash.

Esse tipo de prática provavelmente já está sendo usada por alguns invasores pelo mundo e aparentemente não existe uma solução definitiva para esse tipo de situação.

O que existe são medidas que você pode adotar para dificultar um pouco mais a vida dos vilões :D

Uma delas é substituir o algoritmo de hash (MD5/SHA1) por outro algorítmo mais apropriado para o nosso uso.

O problema em usar os algorítmos MD5 e SHA1 para calcular os hashes de nossas senhas é que eles são muito eficientes e rápidos. As principais aplicações desses algorítmos exigem que eles sejam rápidos (ex. assinatura digital de um arquivo gigantesco).

Como eles são muito rápidos é possível disparar um ataque de força bruta e testar muitos hashes em um curto espaço de tempo. Como as plataformas na “nuvem” cobram por tempo de uso podemos quebrar uma senha à um custo relativamente baixo (ou viável economicamente).

Se trocarmos esses algorítmos por um que seja muito mais lento obrigamos o invasor a gastar mais poder de processamento (e consequentemente mais dinheiro) para descobrir nossa senha.

Um dos métodos mais indicados, hoje, é o bcrypt (blowfish). Existe implementações desse algorítmo para diversas linguagens:

E como eu sei se um site armazena minhas senhas em texto puro?

Não é possível saber com 100% de certeza se um site ou serviço armazena as suas senhas em “texto puro”, portanto, o melhor mesmo é criar o hábito de usar senhas diferentes em cada um dos serviços (só tente não anotá-las em papéis! :D ).

Mas apesar de não ser possível ter certeza se o serviço em questão é desenvolvido por um irresponsável é possível buscar indícios dessa irresponsabilidade:

  • Receber um e-mail de confirmação de cadastro onde sua senha está presente – Se ele está te mandando um e-mail com sua senha é grande a possibilidade dela ser armazenada da mesma forma.
  • Use a opção “esqueci minha senha” dos sites para testar – se você usar essa opção e o site te mandar um e-mail (ou mostrar na tela) a sua senha é porque eles tem a sua senha “original” armazenada em algum lugar. O correto é receber um link para *resetar* sua senha.

Implicações no “mercado”

Nós que trabalhamos com web e somos entusiastas da idéia “da nuvem” devemos condenar a prática de armazenar dados sensíveis do usuário de forma tão irresponsável. Cada notícia que surge dando conta de vazamentos dessas informações prejudica todos os serviços. Para um leigo é a segurança “da internet” que é falha.

Se você é um empresário ou desenvolvedor sério e responsável deve cuidar da segurança dos dados dos seus usuários com todo o cuidado e, sempre que ver outra empresa trabalhando de outra maneira você tem a obrigação de condená-la pois ela também está, indiretamente, prejudicando o seu negócio.

Atualização:

O meu amigo Guilherme Manika postou um link para um artigo onde a equipe do Gawker relata o problema ocorrido com as senhas de seus usuários.

Pelo que entendi eles armazenavam o hash das senhas usando a função crypt(3) e um salt com apenas 12 bits que, como disse, é muito pouco para os padrões de ataque atuais.

Então, em 2008, eles modificaram o sistema para usar o bcrypt() também. Mas, aí a ‘burrada’ deles: eles continuaram gerando o hash com crypt(3) e armazenando no mesmo lugar que os hashes bcrypt() pra manter compatibilidade retroativa!

Segundo um e-mail que circulou numa lista de segurança, 748.081 usuários tinham as senhas armazenadas com crypt() e 195.178 tinham as senhas armazenadas com crypt() e bcrypt(). Total: 943.259 usuários afetados. Quase um milhão de pessoas.

Fonte:Pythonologia, o blog da Triveos

Na sequência do recente ataque ao PlayStation Network  da Sony, em que os dados de mais de 75 milhões de usuários foram comprometidos, a Microsoft agora está alertando os usuários sobre um ataque de phishing relacionado com a sua Xbox Live Matchmaking. O sistema de Matchmaking forma até pares de usuários com outros jogadores para jogos online, com base na sua pontuação acumulada, reputação, localização, idioma e gamer zone.

Em sua página Xbox LIVE Status, a empresa diz que “os usuários podem receber potenciais tentativas de phishing  por meio de título de mensagens específicas ao jogar Modern Warfare 2″. Entretanto, como observado pela Microsoft, o problema parece afetar somente os usuários conectados à internet jogando “Call of Duty: Modern Warfare 2″ (jogo de tiro em primeira pessoa). Em virtude desses acontecimentos, a Microsoft diz que está ciente dos problemas e está trabalhando para resolvê-los o mais rápido possível.

Saiba Mais:

[1] Heise On-line:
http://www.h-online.com/security/new…s-1234429.html

Fonte: Under Linux

Segundo o site do RIPE as redes IPv6 já são mais de 10% de todas as redes no Brasil e, principalmente, a taxa de adesão ao IPv6 vem crescendo de maneira constante e agressiva desde de 2009.

O RIPE é o orgão que coordena a distribuição de endereços IPs na Europa e parte da Ásia. No site do RIPE existe uma ferramenta que permite a comparação da taxa de adoção do IPv6 em relação às redes IPv4 entre vários paises e até mesmo regiões:
http://v6asns.ripe.net/v/6

Leia Mais no Blog do Marcelo Rodrigues

Fonte: Under Linux