;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Fundador do Telegram provoca rival e diz que "o WhatsApp nunca será seguro"

"Não houve um dia em dez anos que o WhatsApp estava seguro", diz cofundador do Telegram - Márcio Padrão/UOL
"Não houve um dia em dez anos que o WhatsApp estava seguro", diz cofundador do Telegram Imagem: Márcio Padrão/UOL

Márcio Padrão

Do UOL, em São Paulo

17/06/2019 11h39Atualizada em 18/06/2019 08h29

Resumo da notícia

  • Pavel Durov, do Telegram, escreveu artigo "Por que o WhatsApp nunca será seguro"
  • Para ele, falhas recentes descobertas no WhatsApp podem funcionar como backdoors
  • Um backdoor permite espionar usuários sem o consentimento deles
  • Além disso, diz que WhatsApp e Facebook poderiam forçar backdoors a pedido dos EUA

Agora que o Telegram voltou ao noticiário brasileiro por conta das reportagens do portal "The Intercept" com conversas privadas dentro do app entre o ministro da Justiça, Sergio Moro, e o procurador da Lava-Jato Deltan Dallagnol, vale lembrar que o aplicativo de mensagens deu há algumas semanas uma boa cutucada em seu eterno rival, o WhatsApp.

Um artigo assinado por Pavel Durov, o russo cofundador e atual executivo-chefe do Telegram, foi publicado no site oficial do app com o provocativo título: "Por que o WhatsApp nunca será seguro". E não é uma pergunta, pois não termina com ponto de interrogação. Durov está afirmando mesmo.

Publicado em 15 de maio, antes das reportagens do "Intercept", o texto começa recuperando duas falhas de segurança recentes envolvendo o WhatsApp: uma de maio deste ano, dava ao hacker a capacidade de vigiar remotamente os celulares-alvo por meio da câmera e do microfone do celular, além de extrair dados diversos do aparelho; e outra noticiada em outubro de 2018, que dava aos hackers o poder de travar o WhatsApp de terceiros a partir de uma chamada de vídeo.

E aí é que Durov vem com a tese dele:

Toda vez que WhatsApp precisa consertar uma vulnerabilidade crítica em seu aplicativo, um novo aparece seu lugar. Todos os seus problemas de segurança são convenientemente voltados à vigilância, e se parecem e funcionam como backdoors
Pavel Durov, cofundador do Telegram

"Backdoor" ("porta dos fundos"), para quem não sabe, é o termo técnico para um tipo de brecha de segurança que permita extrair dados pessoais e sensíveis de um programa ou sistema operacional sem que seu usuário se dê conta disso. Um backdoor pode ser implementado de propósito pela desenvolvedora do software.

Durov continua: "Em vez do Telegram, o WhatsApp não é de código aberto, então não há como os pesquisadores de segurança verificarem se há backdoors em seu código. O WhatsApp não apenas não publica seu código, mas também faz o oposto: o WhatsApp ofusca deliberadamente os binários de seus aplicativos para que ninguém seja capaz de estudá-los".

Em poucas palavras, Durov está insinuando que o WhatsApp tem meios para vigiar todos os seus usuários. Como argumento, ele diz que a empresa, ligada ao Facebook, seria forçada pelas leis dos EUA a criar backdoors se houver a necessidade.

Apesar de backdoors poderem ser usados por agências de segurança para caçar criminosos, também poderiam, em tese, serem usados por governos para espionar cidadãos. "Não é de irar que os ditadores parecem adorar o WhatsApp: a sua falta de segurança permite espionar o povo, então o WhatsApp continua funcionando livremente em locais como Rússia ou Irã, onde o Telegram é proibido pelas autoridades", cutuca Durov.

Ele até fez uma acusação de que nem a criptografia do WhatsApp protege de fato as pessoas: seria, segundo Durov, um "truque de marketing" e que "as chaves para decodificar as mensagens estavam disponíveis para vários governos, incluindo os russos", e alega isso com um texto do blog do programador Kevin Kennell datado de 2012 - o post original saiu do ar, mas pode ser lido no Internet Archive. Na época, o WhatsApp não tinha criptografia ponta-a-ponta, considerada mais segura porque deixa as chaves das conversas apenas com os usuários.

"Olhando para trás, não houve um único dia na jornada de dez anos do WhatsApp que este serviço estava seguro", diz o dono do Telegram. Que ainda aproveita para vender seu peixe no estilo "Davi contra Golias". "Nós da Telegram temos que aceitar nossa responsabilidade em formar o futuro. Somos nós ou o monopólio do Facebook. [...] Não será fácil. O departamento de marketing do Facebook é enorme. Nós da Telegram, no entanto, fazemos marketing zero".

[ATUALIZAÇÃO] Procurado pelo UOL, o WhatsApp disse não ter um posicionamento oficial sobre o tema e apresentou um link para as ferramentas de segurança do app.

Mas devemos lembrar que, como tudo na vida, o Telegram não é perfeito: o app é constantemente usado por terroristas do Estado Islâmico como meio de comunicação graças justamente à sua excessiva proteção --algo muito lembrado com o WhatsApp no Brasil sendo usado por criminosos.

O episódio das reportagens do "Intercept" também deixou aumentou o ceticismo sobre a segurança do Telegram, mesmo que o portal não tenha confirmado ou negado que um hacker tenha obtido as conversas de Moro, Dallagnol e outros --a fonte e seus métodos estão sendo mantidos sob sigilo. O Telegram nega que o conteúdo surgiu por falha de segurança de seu app.

Mesmo a privacidade do Telegram é questionada por seu modelo de criptografia cliente-servidor/servidor-cliente, no qual o servidor do app funciona como um intermediário das conversas privadas dos usuários. A justificativa é facilitar o backup em nuvem do conteúdo, mas não se sabe ao certo o quanto os servidores do Telegram conseguem manter essa privacidade de pé, resistindo a ataques hackers ou possíveis abusos da equipe do app.

Errata: este conteúdo foi atualizado
Durov afirmou que "o WhatsApp não apenas não publica seu código". A versão inicial do texto, corrigida, dizia o contrário.
O artigo de Pavel Durov foi publicado em 15 de maio de 2019, e não em 15 de junho.