Em mea­dos de feve­rei­ro de 2016, a Apple rece­beu uma ordem judi­ci­al para que alte­ras­se as defi­ni­ções de segu­ran­ça do iPho­ne, de for­ma a per­mi­tir que o FBI ace­des­se ao con­teú­do do tele­mó­vel de um dos ati­ra­do­res res­pon­sá­vel pelo ata­que de San Bernardino, ocor­ri­do a 2 de dezem­bro de 2015.

Perante a visi­bi­li­da­de mun­di­al que o caso adqui­riu, os gigan­tes tec­no­ló­gi­cos depres­sa tor­na­ram públi­cas as suas posi­ções no que res­pei­ta à segu­ran­ça e  cri­a­ção de back­do­ors das suas apli­ca­ções.

Google e Facebook aplau­di­ram a posi­ção da Apple. Bill Gates nem por isso.

A apli­ca­ção WhatsApp apro­vei­tou o espa­lha­fa­to e anun­ci­ou ao mun­do que todas as suas comu­ni­ca­ções de voz, tex­to, ima­gem e docu­men­tos, pas­sa­ri­am a estar encrip­ta­das para todos os seus uti­li­za­do­res.

Que posi­ção desa­fi­an­te! Que agra­dá­vel sur­pre­sa! Que belo peda­ço de quei­jo… na rato­ei­ra, à nos­sa espe­ra.

E tudo o Tobias levou

Tobias Boelter

Tobias Boelter

Em abril de 2016, Tobias Boelter, dou­to­ran­do na área de Segurança e Criptografia na Universidade de Berkeley, des­co­briu uma vul­ne­ra­bi­li­da­de do WhatsApp e repor­tou-a.

A res­pos­ta que rece­beu foi que a empre­sa tinha conhe­ci­men­to des­ta vul­ne­ra­bi­li­da­de mas que não esta­va ati­va­men­te a tra­ba­lhar para a eli­mi­nar. A vul­ne­ra­bi­li­da­de é mui­to fácil de simu­lar. Ora vejam.

Ou então lei­am a expli­ca­ção abai­xo.

A Ana e o Zacarias no WhatsApp

O que está de erra­do nes­ta ima­gem? (Abstraiam-se dos que­ques, se con­se­gui­rem. Esses não tinham nada de erra­do; pro­vei-os e esta­vam óti­mos).

A Ana e o Zacarias no WhatsApp

No pas­sa­do dia 14 de maio, a Ana envi­ou um con­vi­te ao Zacarias e sua famí­lia. A Ana não sabia que o Zacarias tinha o seu tele­mó­vel ava­ri­a­do.

No dia 18 de maio, após a com­pra de um novo tele­fo­ne e a ins­ta­la­ção do WhatsApp, o Zacarias rece­beu a men­sa­gem. Seria mes­mo o Zacarias?

No mes­mo dia, a Ana é noti­fi­ca­da que o códi­go de segu­ran­ça do Zacarias foi alte­ra­do, mas ape­nas e só depois da sua men­sa­gem ter sido reen­vi­a­da, pro­te­gi­da com um novo códi­go de segu­ran­ça que a Ana não teve esco­lha em acei­tar ou decli­nar antes da sua men­sa­gem ter sido reen­vi­a­da para o Zacarias (ou fal­so Zacarias!).

Nota: as noti­fi­ca­ções acer­ca da alte­ra­ção dos códi­gos de segu­ran­ça dos nos­sos con­tac­tos ati­vam-se sele­ci­o­nan­do «Definições» > «Conta» > «Segurança» > «Mostrar noti­fi­ca­ções de segu­ran­ça».

Encriptação end-to-end

Em por­tu­guês é conhe­ci­da como encrip­ta­ção pon­ta-a-pon­ta e sig­ni­fi­ca que a men­sa­gem é encrip­ta­da na ori­gem e desen­crip­ta­da no des­ti­no medi­an­te a veri­fi­ca­ção do res­pe­ti­vo e úni­co códi­go de segu­ran­ça que per­mi­te ace­der ao con­teú­do da men­sa­gem, sem que seja pos­sí­vel uma ter­cei­ra enti­da­de o fazer.

É como se a men­sa­gem esti­ve embru­lha­da em papel de embru­lho (crip­to­gra­fia), por sua vez envol­to em cor­ren­tes e cade­a­do, cuja cha­ve é úni­ca e que, nes­te caso, é o códi­go de segu­ran­ça asso­ci­a­do a cada con­tac­to.

Na apli­ca­ção WhatsApp, para cada con­tac­to da nos­sa lis­ta, pode­mos visu­a­li­zar o códi­go de segu­ran­ça res­pe­ti­vo, sele­ci­o­nan­do a opção «Ver Contacto» e esco­lhen­do «Encriptação».

Código de segurança

Deste modo pode­mos con­fir­mar que os nos­sos con­tac­tos são de fac­to quem ale­gam ser, medi­an­te con­fir­ma­ção físi­ca e pre­sen­ci­al, atra­vés do lei­tor de códi­go QR.

O WhatsApp deve­ria garan­tir que a Ana e o Zacarias comu­ni­cam úni­ca e exclu­si­va­men­te sob estes códi­gos de segu­ran­ça con­fir­ma­dos.

Simplificando, vamos supor então que o códi­go da Ana é a letra “A” e o códi­go do Zacarias é a letra “Z”.

Sempre que a Ana con­vi­da o Zacarias para um ban­que­te de que­ques de fram­bo­e­sa, o Zacarias só deve­rá rece­ber o con­vi­te se a sua apli­ca­ção WhatsApp abrir a men­sa­gem da Ana com o códi­go de segu­ran­ça “Z”.

Quando o Zacarias retri­buir, com um con­vi­te à Ana para um chá das 5, acom­pa­nha­do de sco­nes com pepi­tas de cho­co­la­te, a Ana só deve­rá rece­ber a men­sa­gem se a sua apli­ca­ção WhatsApp abrir o con­vi­te com a letra “A”, que é o códi­go de segu­ran­ça que a iden­ti­fi­ca.

O pro­ble­ma está no fac­to de que a cada tro­ca de tele­mó­vel ou mes­mo a cada reins­ta­la­ção do WhatsApp, os códi­gos úni­cos que iden­ti­fi­cam cada uti­li­za­dor mudam, e nes­te caso, o Zacarias dei­xou de ter o códi­go “Z” e pas­sou a ter o códi­go “Y”.

Então, como se expli­ca que o Zacarias tenha rece­bi­do a men­sa­gem da Ana usan­do o códi­go “Y” em vez de “Z”, sem que a Ana auto­ri­zas­se?

Fechem essa porta, se fazem favor

Fechem essa porta, se fazem favor

É este o back­do­or do WhatsApp. Não adi­an­ta a empre­sa vir defen­der-se publi­ca­men­te, ale­gan­do que esta vul­ne­ra­bi­li­da­de não é um back­do­or, por­que o é efe­ti­va­men­te.

Na gíria infor­má­ti­ca, back­do­or enten­de-se como uma por­ta do cava­lo ou uma por­ta das tra­sei­ras, para ser usa­da de for­ma for­ça­da ou camu­fla­da, de manei­ra a ace­der a um deter­mi­na­do equi­pa­men­to ou sis­te­ma.

Na situ­a­ção de envio de men­sa­gem falha­do, ou seja, aque­las men­sa­gens que ficam ape­nas com um «tick», o WhatsApp da Ana, por sua auto ini­ci­a­ti­va, vol­tou a embru­lhar a men­sa­gem e pro­te­geu-a com o novo códi­go de segu­ran­ça do Zacarias (ou já seria o Yacarias?) e reen­vi­ou a men­sa­gem.

Em momen­to algum a Ana teve hipó­te­se de can­ce­lar o envio da men­sa­gem, ago­ra pro­te­gi­da com um novo códi­go que ain­da não tinha sido con­fir­ma­do pre­sen­ci­al­men­te.

Reparem que a veri­fi­ca­ção pre­sen­ci­al do códi­go QR é opci­o­nal.

Ou seja, o WhatsApp con­fia sem­pre nas novas cha­ves dos seus uti­li­za­do­res, sem que tenha­mos de con­fir­mar que de fac­to os nos­sos con­tac­tos ain­da são quem ale­gam ser.

E isto é um back­do­or.

A empre­sa, segun­do o The Guardian, ale­ga que este tipo de situ­a­ções (tro­ca de car­tão SIM para outro equi­pa­men­to ou reins­ta­la­ção da apli­ca­ção WhatsApp) são tão recor­ren­tes que é mais impor­tan­te para os mais de mil milhões de uti­li­za­do­res asse­gu­rar o envio das men­sa­gens.

A posi­ção ofi­ci­al do WhatsApp con­ti­nua a ser que se recu­sam ter­mi­nan­te­men­te a entre­gar a gover­nos um back­do­or para os seus sis­te­mas. Analisando ao deta­lhe, é cer­to que a empre­sa não tem aces­so dire­to aos con­teú­dos par­ti­lha­dos pelos seus uti­li­za­do­res.

Mas tem este back­do­or bem escan­ca­ra­do para ser usa­do se con­vi­er: há for­ma de des­vi­ar men­sa­gens ain­da não entre­gues – as que são sina­li­za­das com ape­nas um «tick»; as que apre­sen­tam dois «ticks» foram entre­gues com suces­so – para alguém que se faça pas­sar pelo ver­da­dei­ro des­ti­na­tá­rio.

É pos­sí­vel rece­ber men­sa­gens assu­min­do a iden­ti­da­de do des­ti­na­tá­rio, sem que o reme­ten­te tenha auto­ri­za­do.

E isto é um back­do­or ao alcan­ce de enti­da­des esta­tais auto­ri­tá­ri­as e/ou dita­to­ri­ais e de hac­kers.

Uma outra situ­a­ção em que pode­rá haver envio de men­sa­gens para des­ti­na­tá­ri­os erra­dos será quan­do a ope­ra­do­ra atri­bui um núme­ro que esta­va na nos­sa lis­ta de con­tac­tos há anos (aque­le ami­go da facul­da­de que não vemos des­de o últi­mo jan­tar de reu­nião do cur­so Engenharia de Minas 92/93) a outrem, uma situ­a­ção comum em Portugal.

Dúvidas? Nós esclarecemos.

Para os agen­tes secre­tos Ana e Zacarias, da «Associação dos aman­tes de que­ques e sco­nes de domin­go à tar­de», não é uma vul­ne­ra­bi­li­da­de que os obri­gue a desins­ta­lar a apli­ca­ção.

Mas em paí­ses onde há efe­ti­va­men­te per­se­gui­ção abu­si­va por par­te das auto­ri­da­des, prin­ci­pal­men­te polí­ti­ca, é uma situ­a­ção gra­ve.

Para quem pre­ci­sa de uma apli­ca­ção com encrip­ta­ção end-to-end sem vul­ne­ra­bi­li­da­de, Tobias reco­men­da a apli­ca­ção Signal, dis­po­ní­vel para Android e iOS.

O que é con­de­ná­vel nes­ta situ­a­ção é que a apre­go­a­da encrip­ta­ção de fio a pavio para os mais de mil milhões de uti­li­za­do­res pos­sui uma vul­ne­ra­bi­li­da­de conhe­ci­da, even­tu­al­men­te fácil de cor­ri­gir – bas­ta­ria que nos casos em que a men­sa­gem está em trân­si­to e o códi­go de segu­ran­ça é alte­ra­do, o reme­ten­te pudes­se optar por reen­vi­ar ou can­ce­lar – e mes­mo assim o WhatsApp tem a arro­gân­cia de bater com o pé, fazen­do bir­ra, e recu­san­do-se cor­ri­gir um bug de segu­ran­ça em nome da usa­bi­li­da­de.

Shame on you, WhatsApp!

S. Carvalho

­ S. Carvalho

Matemático por paixão. Engenheiro de profissão. Progenitor dedicado de duas princesas.