0

O que está por trás do Telegram?

O Telegram tem ganhado destaque nos últimos acontecimentos nacionais. Mas você conhece a tecnologia envolvida no aplicativo?

Desde a sua criação, em 2013, o Telegram usa de criptografia em suas mensagens, ou seja, transforma todas em um arquivo com códigos. Além disso, diferentemente do WhatsApp, as mensagens ficam salvas em nuvens, em servidores em vários pontos do mundo, assim é possível manter mais de um canal de conversa independente do aparelho celular, sendo este fator marcante para a popularização do aplicativo. Os aplicativos com sistemas de armazenamento em nuvem dialogam com a tendência de mobilidade, característica fundamental para o público jovem, conforme estudo da Universidade Federal do Rio Grande do Norte, que ainda salienta que alguns escândalos sobre vazamentos de dados podem desestimular o uso da tecnologia.

A empresa garante sigilo absoluto dos dados e ainda convoca um desafio: 300 mil dólares para quem conseguir quebrar a barreira de segurança da empresa!  Seus dados estão realmente bem seguros, pois diferente do concorrente, o Telegram não possui inteligência artificial que lê suas conversas para oferecer serviços (sabe quando você conversa com um amigo sobre uma próxima viagem e quando entra no Facebook estão oferecendo um hotel naquela cidade?). O objetivo de seus fundadores foi construir cuidadosamente um aplicativo para descentralizar a comunicação digital, permitindo integrações com bots e compartilhamento de vídeos ou imagens de qualquer tamanho, aspecto que só é viável pelo uso da tecnologia em nuvem.

Há diferentes tipos de implementação de um serviço em nuvem: privada, pública, comunidade e compartilhada. No caso de aplicações como o Telegram, o serviço é privado, ou seja, a infraestrutura de nuvem é utilizada exclusivamente por uma organização, sendo esta nuvem local ou remota e administrada pela própria empresa ou por terceiros. Para garantir a segurança das informações armazenadas, ocorre o processo de criptografia. A criptografia é um meio assertivo de proteção de dados. As mensagens a serem criptografadas são transformadas por uma função parametrizada por uma chave (“string”) que pode ser modificada quando necessário. Em seguida, passa por um processo de criptografia, transformando-se em texto cifrado.

A distribuição dos servidores em nuvem ao redor do mundo possibilita as aplicações individuais de exercerem um controle local sobre os dados, ou seja, torna ainda mais confiável, pois garante multiplicidade e autonomia em suas partes, podendo armazenar os dados de maneira distribuída. A vulnerabilidade acontece nos aparelhos móveis em redes sem fio, a troca de mensagens é passível de captura por alguém não autorizado, já que as ondas de rádio circulam abertas pela atmosfera, podendo ser violadas e utilizadas. 

Para proteger seu aparelho móvel, as dicas são: coloque senhas mais complexas na tela de desbloqueio, instale apenas aplicativos confiáveis, não clique em links ou correntes enviadas por terceiro, evite o acesso de wi-fi pública e formate seu aparelho antes de vendê-lo ou doá-lo.

 

Referência

 Gerenciamento de Dados em Nuvens: Conceitos, Sistemas e Desafios.

Banco de Dados Móveis: uma análise de soluções propostas para gerenciamento de dados.

Imagem

Anúncios
1

O blockchain veio para ficar?

(Imagem: allanlau2000)

A tecnologia blockchain tem sido comentada em diversas notícias na imprensa e na maior parte das vezes atrelada ao uso de moedas digitais como o bitcoin. Porém, ela tem potencial para muitos outros usos, podendo auxiliar no desenvolvimento de estruturas sociais e econômicas mais transparentes e distribuídas. Mas afinal, o que é esse tal de blockchain?

O blockchain é um tipo de banco de dados descentralizado que guarda um registro de transações de modo permanente e à prova de violação. Ele possui a função de criar um índice global para todas as transações que ocorrem em uma determinada área. Pode-se pensar no funcionamento similar ao dos livros de registro de um cartório, só que de forma pública, compartilhada e universal, que cria confiança na comunicação direta entre duas partes, ou seja, sem o intermédio de terceiros.

Há dois tipos de registros no blockchain: transações individuais e blocos. Um bloco é a parte atual do blockchain na qual são registradaas algumas ou todas as transações mais recentes e, uma vez concluído, é guardado de modo linear e cronológico no blockchain como um banco de dados permanente. Assim que um bloco é concluído um novo é gerado, existindo um número infinito de blocos, que são linkados uns aos outros através de uma referência para o bloco anterior.

Além de ser um banco de dados descentralizado, o blockchain também é uma rede peer-to-peer (P2P). Essa rede consiste em uma série de computadores e servidores que atuam como nós na rede. Quando uma nova transação ocorre na rede, a informação dela é propagada entre todos os nós da rede P2P, normalmente criptografada, não havendo como rastrear quem adicionou a informação na rede e sendo possível apenas verificar sua validade. Cada nó obtém uma cópia do blockchain após o ingresso na rede.

O blockchain tem sido aplicado a situações em que é necessário manter a informação de propriedade e o histórico das interações. Já existem diferentes usos sendo explorados em pesquisas científicas e até algumas soluções já chegaram ao mercado.

O uso mais difundido é o de moedas digitais ou criptomoedas. O bitcoin é considerada a primeira moeda digital descentralizada e permite executar transações financeiras sem intermediários, sendo que estas transações são verificadas por nós da rede P2P e gravadas em um banco de dados distribuídos, usando a tecnologia blockchain. A transferência de bitcoins se dá através do seguinte processo:

  1. O usuário que fará o pagamento precisa saber o endereço destinatário que pode ser informado através de texto, ou através de um código de barras do tipo QR code, que será escaneado pelo dispositivo do usuário pagador;
  2. O programa de carteira do usuário pagador criará a transação, sendo que o usuário precisa apenas informar a quantia de bitcoins que enviará e qual o endereço de destino;
  3. Para transmitir a transação à rede bitcoin, o usuário precisa apenas conectar-se à Internet. Não é possível cancelar ou reverter uma transação após ela ter sido enviada pela rede. Para ter os bitcoins associados ao seu próprio endereço, o destinatário não precisa estar online no momento da transação e não precisa confirmá-la.

Uma carteira bitcoin armazena as informações que são necessárias para se fazer transações com bitcoin, utilizando criptografia de chave pública. A chave privada é responsável pelo acesso aos fundos da carteira, enquanto que a chave pública pode ser espalhada para receber fundos.

Vários países já estão atentos a esse movimento das moedas digitais e estudam a possibilidade de adotá-las, como é o caso da Estônia que pretende ser o primeiro país a criar uma moeda digital estatal, o EstCoin. Nesse mesmo sentido, a empresa R3 lidera um consórcio de mais de 80 instituições financeiras no mundo para a pesquisa e o desenvolvimento usando blockchain para esse mercado. Um dos estudos vai no sentido de facilitar o processo de transferência internacional de valores entre diferentes instituições financeiras, o que hoje é um processo bastante burocrático e demorado.

Porém, há muitos outros exemplos interessantes de aplicações usando blockchain. O MIT desenvolveu uma prova de conceito em que o blockchain é usado para disponibilização de certificados de conclusão de curso, possibilitando a verificação da autenticidade dos mesmos sem a necessidade de cartório. Uma startup inglesa desenvolveu uma solução em que se rastreia a origem, a qualidade e outras várias características dos diamantes encontrados no mercado com o uso de blockchain. Na mesma linha de rastreamento de objetos, a empresa londrina Deloitte, especializada em prestação de serviços financeiros e assessoria de riscos, desenvolveu uma prova de conceito em que o blockchain é usado para o rastreamento de obras de arte e empréstimo entre museus, sendo possível verificar a autenticidade de determinada obra. Na área de benefícios sociais, o blockchain já vem sendo empregado pelo governo da Finlândia na concessão de ajuda financeira para refugiados.

Apesar de já existir alguns usos comerciais do blockchain, ele ainda é um tema quente de pesquisa, pois há várias questões a serem respondidas: será que ele veio para ficar? em quais casos é vantajoso usá-lo em detrimento a soluções já bem estabelecidas? ele irá acabar com a estrutura financeira atual do mundo? e com os cartórios? será que ele irá auxiliar no desenvolvimento de estruturas sociais e econômicas mais transparentes e distribuídas? Essas e tantas outras são perguntas que só o tempo e muita pesquisa poderão responder.

3

Desmistificando a criptografia

Desde as revelações do Snowden sobre o programa de espionagem do governo americano, a criptografia tem sido tema de debate em diversos espaços e não mais apenas dentro do círculo de especialistas em segurança da informação. Em muitos desses debates, a criptografia é tratada como a única solução possível tanto para a garantia da privacidade no uso da Internet quanto para se proteger da espionagem. Porém, ainda há muitas dúvidas sobre o que ela seria e o quais são as suas limitações.

A palavra criptografia vem de palavras gregas que significam “escrita secreta”. O primeiro esquema de criptografia data de antes de Cristo e é conhecida como a cifra de César. Nessa cifra, cada letra era substituída por outra que estivesse algumas posições a frente. Por exemplo, todas as letras “As” do texto eram substituídas por “Ds”, todos os “Bs” por “Es”, e assim por diante. É um algoritmo bastante simples e descobrindo-se a regra é facilmente desvendada a mensagem.

Pode-se dizer que a criptografia é o estudo dos princípios e técnicas pelas quais a informação pode ser transformada da sua forma original para outra ilegível, de forma que possa ser conhecida apenas por seu destinatário (detentor da “chave secreta”), o que a torna difícil de ser lida por agentes não autorizados. Assim sendo, só o receptor da mensagem pode ler a informação com facilidade.

De acordo com Tanembaum e Wetherall (2011), as mensagens a serem criptografadas, denominadas como texto simples, são transformadas por meio de uma função parametrizada por uma chave. Em seguida, a saída do processo de criptografia, conhecida como texto cifrado, é transmitida. Stallings (2015) diz que o processo de converter um texto claro em um texto cifrado é conhecido como cifração ou encriptação, enquanto a restauração do texto claro a partir do texto cifrado é chamada de decifração ou decriptação.

Atualmente, existem diversas técnicas e algoritmos para cifração. Uma das formas de classificar sistemas criptográficos se refere ao número de chaves utilizadas no processo. Se tanto o emissor quanto o receptor utilizarem a mesma chave, o sistema é classificado como encriptação simétrica; já se o emissor e o receptor usarem chaves diferentes, o sistema é classificado como encriptação assimétrica ou de chave pública (STALLINGS, 2015).

Stallings (2015) afirma que não existe algoritmo de encriptação que seja incondicionalmente seguro. O que se pode obter é um esquema de encriptação considerado computacionalmente seguro, em que o algoritmo atende a pelo menos um dos critérios: (1) o custo para quebrar uma cifra ultrapassa o valor da informação encriptada e (2) o tempo exigido para quebrar a cifra supera o tempo útil da informação. Ou seja, em princípio se você tiver tempo e poder computacional infinitos é possível quebrar qualquer algoritmo criptográfico e descobrir a informação.

Uma das formas mais conhecidas para se descobrir uma informação cifrada de forma não autorizada, como por exemplo senhas de usuários, é o ataque por força bruta. Esse ataque consiste em utilizar o processamento computacional para descobrir a informação por meio de tentativas e erros. O tempo necessário para a descoberta pode variar de acordo com a quantidade possível de tentativas por segundo (capacidade computacional) e a probabilidade de acerto (número de combinações diferentes possíveis) (CERT.BR, s.d.).

Apesar do que se possa pensar inicialmente, Tanembaum e Wetherall (2011) enfatizam a importância do caráter não sigiloso do algoritmo de encriptação a ser utilizado. A estratégia, conhecida como “segurança pela obscuridade”, em que se tenta manter o algoritmo secreto, não é aconselhada. Ao tornar o algoritmo público, inúmeros criptólogos podem tentar decodificar o sistema e caso muitos tenham tentado isso durante cinco anos após a sua publicação e nenhum tenha conseguido, há uma grande probabilidade de que o algoritmo seja sólido (TANEMBAUM E WETHERALL, 2011). Na verdade, o sigilo deve estar na chave, e seu tamanho é uma questão muito importante no projeto de um algoritmo de encriptação. De forma geral, quanto maior for o tamanho da chave, mais segura estará a informação cifrada.

Outra vantagem do algoritmo criptográfico ser aberto é a de que se pode verificar que não há a existência de backdoors. Uma backdoor é um método, muitas vezes secreto, de transpor a autenticação normal para um produto, sistema de computador, criptosistema ou algoritmo etc. Backdoors são freqüentemente usadas para assegurar acesso remoto não autorizado a um computador ou obter acesso a textos em sistemas criptográficos. Um cenário em que pode ser útil é na espionagem de pessoas e/ou instituições. Porém, a sua utilização fragiliza o mecanismo de segurança da informação e é desencorajada, pois pode ser explorada por atacantes para diversos fins, como roubo e alteração de dados, etc.

Com o advento de aplicativos de comunicação via celular, o uso de algoritmos criptográficos migrou para essa plataforma a fim de garantir uma comunicação sigilosa ponta a ponta. Nesse cenário, há um grande desafio que é a distribuição segura das chaves através da Internet. Segundo Stallings (2015), a força de qualquer sistema criptográfico está na técnica de distribuição de chave, um termo que se refere aos meios de entregar uma chave a duas partes que querem trocar dados, sem permitir que outros vejam a chave. Isso porque para que a encriptação simétrica funcione, as duas partes precisam compartilhar a mesma chave, que precisa ser protegida contra o acesso por outras partes sem permissão.

A distribuição de chave pode ser feita de várias maneiras, sendo que o uso de um centro de distribuição de chaves (CDC) tem sido bastante adotado (STALLINGS, 2015). Ele é responsável por distribuir chaves a pares de usuários conforme a necessidade. Cada usuário precisa compartilhar uma chave exclusiva com o CDC, para fins de distribuição delas. De acordo com Stallings (2015), a utilização de um CDC é baseada no uso de uma hierarquia de chaves com, no mínimo, dois níveis. A comunicação entre as pontas é encriptada usando uma chave temporária, normalmente referenciada como uma “chave de sessão”, que normalmente é usada pela duração de uma conexão lógica e depois descartada. Cada chave de sessão é obtida a partir do CDC e transmitida em formato encriptado, usando uma chave mestra exclusiva, que é compartilhada pelo centro e o usuário final (STALLINGS, 2015). Pode-se adicionar mais um nível na hierarquia de chaves, em que a encriptação de chave pública é usada apenas para atualizar a chave mestra entre um usuário e o CDC. O acréscimo dessa camada oferece um meio seguro e eficiente de distribuir chaves mestras. Esse esquema de CDC é usado, por exemplo, em aplicativos como o WhatsApp.

Apesar da criptografia ser uma área de estudo consolidada, ela é bastante dinâmica. A todo momento são lançados novos algoritmos criptográficos para serem testados por criptólogos a fim de descobrirem falhas, enquanto algoritmos já consolidados se tornam obsoletos devido ao aumento do poder de processamento dos computadores. Os estudos mais atuais dentro dessa área são os de criptografia pós-quântica que se refere a algoritmos criptográficos considerados seguros contra um ataque de um computador quântico.

Os algoritmos de chave pública mais populares atualmente podem ser quebrados de modo eficiente por um computador quântico grande o suficiente. A segurança dos algoritmos atuais se baseia em um dos três problemas matemáticos difíceis de serem solucionados pelos computadores eletrônicos: o problema de fatoração de inteiros, o problema de logaritmo discreto ou o problema de logaritmo discreto de curva elíptica. Porém, todos eles podem ser facilmente resolvidos em um computador quântico potente o suficiente executando o algoritmo de Shor, que é um algoritmo para fatoração de números inteiros (informalmente ele resolve o seguinte problema: dado um número inteiro N, encontre os fatores primos dele). Ainda que os computadores quânticos atuais conhecidos sejam muito pequenos para atacar qualquer algoritmo criptográfico real, muitos criptólogos estão projetando novos algoritmos para se preparar para quando a computação quântica se torne uma realidade e uma ameaça.

Bibliografia

CERT.BR. Cartilha de Segurança para a Internet. Disponível em: < http://cartilha.cert.br/ataques/ >. Acessado em 26 mar. 2017.

STALLINGS, W. Criptografia e Segurança de Redes: Princípios e Práticas – 6ª edição. São Paulo: Pearson. 2015. ISBN 978-8543005898.

TANENBAUM, A. S.; WETHERALL, D.  Redes de Computadores – 5ª Edição. São Paulo: Pearson. 2011. ISBN  857605924X.

WIKIPEDIA. Criptografia. Disponível em: < https://pt.wikipedia.org/wiki/Criptografia >. Acesso em: 26 mar. 2017.

WIKIPEDIA. Post-quantum cryptography. Disponível em: < https://en.wikipedia.org/wiki/Post-quantum_cryptography &gt;. Acesso em: 26 mar. 2017.