A Apple já implantou a comprovação de dispositivos na web (attestation), e quase não percebemos
(httptoolkit.com)- Enquanto a proposta Web Environment Integrity, do Google, gera controvérsia, a Apple já implantou no macOS 13, iOS 16 e Safari um sistema semelhante de comprovação de dispositivos na web, chamado Private Access Tokens
- Os Private Access Tokens funcionam assim: quando um servidor envia um HTTP 401 com um desafio
PrivateToken, o navegador e o sistema operacional confirmam o estado do dispositivo com um attester e reenviam a solicitação com um token assinado - Cloudflare e Fastly integraram isso para reduzir CAPTCHAs, mas a mesma estrutura se torna uma base para servidores web exigirem que o dispositivo do usuário seja comprovado como um cliente legítimo
- A participação do Safari é de cerca de 20%, portanto o impacto é limitado; mas navegadores baseados em Chromium passam de 70%, então, se a proposta do Google for somada a isso, cerca de 90% dos clientes web poderão ficar sujeitos a attestation
- A attestation pode excluir novos navegadores, sistemas operacionais, projetos open source e dispositivos modificados por usuários, além de trazer o risco de regras mais rígidas com base em critérios como período de suporte oficial ou instalação de extensões de bloqueio de anúncios
Implantação e objetivo dos Apple Private Access Tokens
- Crescem as preocupações em torno da proposta Web Environment Integrity, criada por autores do Google e aparentemente em prototipagem no Chromium
- Essa proposta equivale a attestation na web, na qual recursos ou até o acesso inteiro a um site podem ser limitados dependendo de o cliente ter sido aprovado por um emissor confiável
- Na prática, os emissores confiáveis provavelmente seriam Apple, Microsoft e Google
- A Apple já desenvolveu e implantou há um ano um sistema muito semelhante, chamado Private Access Tokens, hoje integrado ao macOS 13, iOS 16 e Safari
- A Apple apresenta os Private Access Tokens como “uma ferramenta poderosa para comprovar que solicitações HTTP vieram de dispositivos legítimos sem revelar a identidade”
- O principal objetivo desse recurso é eliminar CAPTCHAs, e Cloudflare e Fastly o integraram como mecanismo para reconhecer clientes reais
- Explicação relacionada à Cloudflare: Eliminating CAPTCHAs on iPhones and Macs using new standard
- Explicação relacionada à Fastly: Private Access Tokens: Stepping into the privacy-respecting CAPTCHA-less
Como funcionam os Private Access Tokens
- Os Private Access Tokens são uma troca relativamente simples feita sobre HTTP, tratada por uma API embutida do navegador e integrada a componentes do sistema operacional para verificar se o navegador e o sistema operacional são legítimos
- Aqui, o critério de “legítimo” é decidido pelo attester, ou seja, por uma entidade como a Apple
- O fluxo básico é o seguinte
- O navegador envia uma solicitação HTTP ao servidor web
- O servidor web rejeita a solicitação e retorna uma resposta HTTP 401 com um desafio
PrivateToken - O navegador envia parte do desafio e informações verificadas do dispositivo fornecidas pelo sistema operacional ao attester
- O attester verifica se o dispositivo é real e não foi modificado e, então, junto com um emissor de tokens em que a origin confia e que confia no attester, retorna um token assinado
- O navegador reenviará a solicitação incluindo o token assinado no cabeçalho
Authorization - O servidor pode tratar esse cliente de forma diferente com base no fato de que ele foi verificado por um provedor confiável
- Esse processo já acontece em dispositivos Apple usando Safari quando serviços que usam esse recurso, como Fastly ou Cloudflare, suspeitam da legitimidade de uma solicitação
- Os Private Access Tokens separam os fluxos de origin, issuer e attester com o objetivo de preservar a privacidade, mas o tratamento recebido na web passa a depender de a Apple considerar a configuração do dispositivo, do sistema operacional e do navegador aceitável
Diferença no poder de disseminação entre Safari e Chromium
- Só os Private Access Tokens já impõem um peso à web e ao setor como um todo, mas por causa da participação do Safari é difícil que se espalhem tão rapidamente quanto a proposta do Google
- A participação do Safari no mercado de navegadores hoje é de cerca de 20%
- Cerca de 25% em dispositivos móveis
- Cerca de 15% em desktops
- O Chrome passa de 60% em todas as categorias, e o Chromium como um todo, incluindo Brave, Edge, Opera, Samsung Internet e outros, fica cerca de 10 pontos percentuais acima disso
- Num cenário em que apenas o Safari oferece esse recurso, alguns provedores podem usá-lo, mas fica difícil bloquear ou tratar de modo diferente clientes sem attestation
- Mesmo que o Safari não faça attestation de versões antigas do sistema operacional ou do navegador, é difícil causar grande impacto aos usuários; estatisticamente, eles apenas podem ver mais CAPTCHAs
- Se a Web Environment Integrity for introduzida num cenário em que mais de 70% dos clientes web usam Chromium, ela poderá se espalhar rapidamente por partes importantes da web
- Com Web Environment Integrity e Private Access Tokens coexistindo, cerca de 90% dos clientes web ficariam potencialmente sujeitos a attestation, aumentando a pressão para “tratar como suspeito porque não há attestation”
Como a attestation abala a abertura da web
- A attestation é prejudicial à concorrência e à inovação porque permite apenas clientes aprovados
- Fica mais difícil criar novos navegadores ou sistemas operacionais
- Iniciativas open source, comunitárias e pequenas iniciativas independentes podem ser continuamente excluídas por esse tipo de mecanismo
- Surge a comparação de que, se houvesse attestation na época do IE6, ela teria sido um grande obstáculo à ascensão do Firefox e do Chrome
- Essa estrutura, por desenho, dificulta que os usuários controlem seus próprios dispositivos
- Um dos objetivos centrais é que usuários de software modificado não sejam atestados como clientes legítimos
- Casos de uso como navegar na web com um telefone Android rooteado podem ser excluídos
- Sistemas operacionais ou hardwares totalmente modificáveis pelo usuário dificilmente seriam atestados da forma pretendida por essas propostas
- Provedores de aprovação podem tornar as regras mais rígidas no futuro
- “Attestation apenas para dispositivos dentro do período de 2 anos de suporte oficial”
- “Não fazer attestation de navegadores com extensões de bloqueio de anúncios instaladas”
- Defensores da Web Environment Integrity acreditam que holdbacks, recusando attestation em algumas solicitações, poderiam impedir bloqueios baseados em attestation
- No entanto, há preocupações de que os holdbacks sejam difíceis de fazer funcionar na prática por causa de pressões comerciais, e a attestation Android Play Integrity existente do Google não usa esse método
- O sucesso da web dependeu em grande parte da liberdade de usar diversos clientes e servidores, e a attestation rompe esse pressuposto por desenho
Riscos já vistos no Android
- No Android, é tecnicamente possível criar e executar o próprio sistema operacional, e distribuições Android como LineageOS também funcionam normalmente
- Porém, por causa de recursos de attestation, permanece o risco de aplicativos essenciais, como apps bancários, considerarem usuários suspeitos e bloqueá-los
- Impedir a concorrência entre versões do Android já é um problema, mas impedir a concorrência tanto entre navegadores quanto entre sistemas operacionais na web pode ter consequências muito mais graves
- O Anti-Fraud Community Group também tem outras propostas discutindo possíveis recursos web da mesma família
- Fraudes e bots na web são problemas reais, e discutir formas de defesa tem valor; mas bloquear a concorrência, enfraquecer o open source e a web aberta, e remover o controle dos usuários sobre seus próprios dispositivos não é uma troca razoável
1 comentários
Opiniões no Hacker News
Ontem, a proposta inicial do Google recebeu muitas reações como “a divisão da empresa começa a fazer bastante sentido”, “vai se ferrar, Google”, “estou com raiva e triste” e “a reputação dos envolvidos acabou de vez”
Hoje veio à tona que a Apple não só propôs a mesma funcionalidade no ano passado, como também a implementou e distribuiu de fato, e o tom passou a ser algo como “pode ser uma oportunidade interessante para recomeçar sonhos desaparecidos há muito tempo”, “entendo até certo ponto os dois lados” e “por enquanto vou deixar ativado no Safari e observar por 1 ou 2 anos”
No geral, a reação ainda é negativa, mas a diferença de tom em relação à Apple e ao Google é nítida demais, e o campo de distorção da realidade parece continuar firme e forte
Um deles até postou diretamente no Hacker News, o que acaba incentivando comportamentos de assédio, porque quem não gosta passa a achar que, se incomodar os envolvidos o suficiente, eles vão desistir
A Apple não gasta tempo com isso; ela avalia, planeja e executa. Não dá para saber quem são os envolvidos, normalmente ela não pede feedback e nem costuma apresentar justificativas para seus planos. Ficar com raiva da Apple em fóruns da web é tão útil quanto ficar com raiva de uma parede de tijolos
O clichê da corporação sem rosto não existe à toa; é uma política deliberada para proteger os funcionários
Mas, com a Apple, é o contrário. Dizem que a liberdade de instalar apps de terceiros é perigosa, que a liberdade de usar iMessage no navegador não faz sentido, e a maioria parece não se importar com a liberdade de usar navegadores de terceiros no iOS
É impressionante como o efeito de aprisionamento de outras empresas é ruim, mas o efeito de aprisionamento da Apple é algo que sua base de usuários promove ativamente
A abordagem da Apple é mais um meio de distinguir usuários humanos de usuários não humanos em dispositivos Apple, e não permite que serviços bloqueiem arbitrariamente navegadores ou sistemas operacionais como na proposta do Google
Se você já usa um dispositivo Apple, é basicamente a possibilidade de não precisar resolver um CAPTCHA para “verificar se é humano”
Referência: https://developer.apple.com/wwdc22/10077
Enquanto isso, o Google deixa uma minoria barulhenta de haters do Google continuar corroendo sua reputação, ao mesmo tempo em que quase não faz relações públicas para controlar a narrativa
Parece que ainda acredita que o eco de uma única frase, “don’t be evil”, vai continuar ressoando 20 anos depois
Quando a Microsoft embutiu o IE no Windows, foi algo terrível, mas quando a Apple embute o Safari e bloqueia navegadores concorrentes, dizem que é o melhor para o cliente
Este pode ser realmente o ponto em que a internet se bifurca. É algo previsto desde os anos 90
De um lado, pode surgir uma web corporativa “limpa”, aprovada por autoridades, em que todos são identificados em excesso; do outro, uma galáxia mais solta de graynet, reunindo pornografia e comunidades descentralizadas
Se todos os tinkers forem expulsos da rede corporativa, isso pode se tornar uma oportunidade interessante para recomeçar sonhos desaparecidos há muito tempo
Eu vinha imaginando que, sobre a internet, surgiu uma superestrutura social, como uma bolha que representa a “sociedade”. Versões pequenas disso já existiam desde os anos 90, mas a coisa deslanchou com a ascensão das redes sociais, como Myspace, Facebook e Twitter
Não acho coincidência que a “cultura do cancelamento” tenha vindo logo depois. Quando surge uma esfera pública virtualizada, a questão passa a ser quem decide o que pertence a ela
É uma atitude do tipo: “finalmente vou poder testar aquelas minhas habilidades das quais as pessoas zombaram por tanto tempo”
Nos dois casos, o problema é ignorar a maioria das pessoas que sofrerá sob a nova ordem. Pouquíssimos sairão dos jardins murados das empresas rumo à autoestrada livre da informação
Apenas ecos tênues da web corporativa são preservados pela graynet, e arqueólogos digitais tentam desenterrar os “segredos” da sabedoria perdida escondida na web corporativa
Alguém provavelmente já escreveu algo assim, mas parece se encaixar bem
Também é algo desejável, em certa medida, em ambientes domésticos onde nuvem pública e uso privado se encontram, como um túnel do Cloudflare Access usado para fins pessoais e um tenant empresarial do MS365
Mas eu definitivamente não gostaria que isso encostasse na experiência pessoal de navegação na web ou no ambiente de navegador pessoal
Neste momento, esses desejos basicamente entram em conflito entre si, e a tecnologia já saiu da caixa de Pandora
O sonho cyberpunk dos anos 90 é legal, mas parece ignorar a realidade física de que, para se conectar à “net”, é sempre preciso passar pelo gargalo de um provedor de internet
No fim, há uma barreira insolúvel para o quão antiestablishment a internet pode ser
Posso estar errado, mas Web Attestation pode ser uma sentença de morte para dispositivos Linux, que não são Android nem Chrome OS, usarem a Web como clientes em pé de igualdade
O Linux é uma plataforma diversa e hackeável demais para que a atestação remota funcione de forma confiável, então no fim será completamente excluído
Algumas distribuições “abençoadas” seriam exceção, mas essas distribuições passariam a ser controladas pela indústria e ficariam cada vez mais distantes do espírito do Linux
Você cai nos classificadores antispam de quase todos os sites e precisa resolver CAPTCHAs de 3 a 5 vezes para acessar lugares protegidos
A Wikipedia também impede edições: https://meta.wikimedia.org/wiki/Talk:Apple_iCloud_Private_Re...
Como parece que não tenho força de vontade para largar esses sites, talvez eu precise mesmo que o outro lado impeça o carregamento do conteúdo
Agora que falei aqui, deixou de ser segredo
https://github.com/jwise/28c3-doctorow/blob/master/transcrip...
Eles também são plataformas diversas e hackeáveis o bastante para parecerem insuficientes num futuro em que seja preciso provar a posse de determinado hardware
Ouço com frequência que algumas distribuições “abençoadas” passariam a ficar sob controle da indústria e que o espírito do Linux desapareceria, mas raramente ouço uma explicação concreta de como isso aconteceria
O Linux surgiu por causa do UNIX controlado pela indústria; se tirarem esse espírito do Linux, ele será bifurcado em outro projeto comunitário
Enquanto não retirarem a licença GPL, o Linux manterá o “espírito do Linux” até deixar de ser usado por completo
Não concordo com o argumento de que isso não é tão perigoso quanto a proposta do Google porque o Safari não é o navegador dominante
Na prática, é igualmente ruim seja a Apple fazendo, seja o Google fazendo, e a Apple fez uma escolha totalmente decepcionante
Mesmo que o Google tentasse forçar isso, se a Apple se recusasse, seria difícil impor na prática. Os números não são tão altos quanto os do Chrome, mas ainda são grandes o suficiente para que não dê para cortar todos os iDevices
As únicas empresas que realmente importam são Apple, Google e Microsoft
É uma pena que, desta vez, ele não vá conseguir impedir mais um desastre
Por isso também me preocupam leis que exigem que a Apple abra o sideloading. Gosto da ideia de as pessoas controlarem seus próprios sistemas, mas temo que, na prática, isso seja o último prego para consolidar o controle total da Web pelo Google até a ponta do cliente
Toda vez que aponto que um recurso implementado por eles não é compatível com vários navegadores, eles invariavelmente me dizem para trocar o Firefox pelo Chrome
Nunca ouvi ninguém dizer para trocar para o Safari para fazer algo funcionar. Isso, por si só, diz muita coisa
No iOS, parece ser possível desativar esse recurso
Vá em Ajustes, selecione a conta do usuário no topo, entre em “Password & Security”, desça até Advanced e desative “Automatic Verification”
https://blog.cloudflare.com/how-to-enable-private-access-tok...
https://support.apple.com/en-us/HT213449
System Settings -> iCloud Settings(nome do usuário) -> Password & Security -> Automatic Verification
Se o Chrome distribuir WEI, vários forks do Chromium também permitirão desativar, mesmo que o Chrome não faça isso, e você também poderá usar Firefox
O problema começa quando bancos, órgãos fiscais e seu serviço de streaming favorito passarem a exigir esse recurso
O ponto central é que uma parcela considerável dos usuários comuns passe a ter esse recurso
Eu realmente percebi isso e até pensei em escrever no blog, mas acho que o único motivo pelo qual não parecia um problema era o fato de estar implementado apenas nas plataformas da Apple, então os serviços não tinham como restringir usuários de verdade com base nisso
Era apenas mais um fator extra que as pessoas podiam usar como outro sinal
Já a proposta do Google está explicitamente interessada em empurrar isso como um recurso sempre ativado
A explicação de que casos de uso como “prova determinística de integridade da plataforma” hoje dependem de fingerprinting do cliente é, no fim, o argumento de que uma prova determinística de entropia limitada substituiria o fingerprinting invasivo e permitiria práticas mais favoráveis à privacidade no longo prazo
O fato de a Apple ter implementado isso primeiro só prova que é ingênuo esperar que a Apple nos salve
Esta área é realmente fascinante e capaz de gerar divisões
Há inúmeros casos de uso em que, na Web, queremos saber se estamos nos comunicando com uma pilha de hardware e software “confiável”
Durante muitos anos, projetamos e construímos assumindo que havia pouca confiança na pilha, o que aumenta enormemente a complexidade e o custo, limita funcionalidades e torna tudo muito mais difícil do que seria se pudéssemos presumir uma pilha confiável
Ao mesmo tempo, como está sendo muito apontado agora, quando monopólios de big tech entram na equação, o conceito de confiança fica muito complicado
Por um lado, há pouquíssimas empresas no mundo capazes de manter grandes equipes técnicas para lidar com agentes de ameaça persistentes, então seria bom poder confiar nas promessas de segurança que elas fazem. Se essas promessas forem confiáveis, são melhores do que qualquer promessa que um indivíduo possa fazer sobre seu próprio software e plataforma
Por outro lado, no sentido platônico de hacker, “confiável” passa a ser lido como “garantido por um monopólio”, “provavelmente com backdoor de algum órgão governamental local”, e é mais um passo rumo a um futuro tecnológico fascista, dominado por controle, falta de inovação e, no fim, por poucos players
No fim, acho que uma solução com chances de sucesso precisa incluir tecnologia aberta de certificação de hardware confiável, e não ser baseada em registros. Deve ser possível criar atestações locais fortes e verificá-las de forma independente
Conheço algumas empresas de tecnologia que lidam com esse problema no lado do silício, mas é um problema muito difícil, e nem tenho certeza se há demanda suficiente para que elas sobrevivam agora
Pessoalmente, por enquanto vou deixar isso ativado no Safari e observar os próximos 1 ou 2 anos
Tecnologias de DRM também são discutidas nesses termos, mas o objetivo não é dar confiança ao usuário, e sim aos desenvolvedores ou proprietários de conteúdo
Fica claro que talvez isso nem seja realmente uma questão de confiança
É preciso escolher se quer usufruir dos benefícios do sistema estatal e se vale a pena arcar com seus custos
O problema da maioria desses sistemas é que eles não lidam de forma alguma com casos excepcionais
Funcionam bem para 99% da população, mas o 1% restante que se vire
É como tentar acessar o escritório depois do expediente só para pegar a chave do carro que você esqueceu, e o robô negar sua entrada
O sistema foi projetado para ser seguro, então você não consegue convencer o robô pela conversa. Se fosse uma pessoa, normalmente seria muito mais fácil conversar, persuadi-la e encontrar uma solução que funcionasse
Tecnólogos acabam tentando resolver tudo com tecnologia. “Se houver um problema, eu resolvo; veja minha tecnologia enquanto o DJ toca”
É assim que contas bancárias acabam sendo hackeadas só porque alguém fala bem e consegue inventar uma história plausível para convencer um gatekeeper humano
Se for um meio de dizer “sim, esta pessoa é uma pessoa real”, isso pode ser útil, mas isto é apenas uma atestação simples do sistema, então não há como saber se ela consegue barrar agentes mal-intencionados nem se será mal compreendida e mal utilizada como outros sistemas, por exemplo CORS
A conclusão lógica desse sistema é: “se você tem um sistema normal, é um usuário normal; se não tem, não é”
Entendo, até certo ponto, as posições dos dois lados
Se presumirmos boas intenções dos outros, uma web preenchida por humanos identificados e seus representantes autorizados talvez seja o espaço web ideal mais “limpo” que podemos imaginar
Uma web cheia de contas falsas e link farms não é ideal
O ponto final mais claro desse fluxo é uma identidade digital emitida pelo governo, que também comprova a identidade e funciona como login
Se você apertar os olhos, isso pode parecer um degrau nessa direção
É a concretização do idealismo dos anos 70? Não. Mas vejo como um compromisso razoável em certa medida
E se não der para confiar no governo? Isso provavelmente não é algo que qualquer internet consiga resolver. É um problema do mundo real
Para mim, soa mais como uma web esterilizada
Mesmo deixando de lado por um momento o fato de que humanos acabarão encontrando maneiras de contornar também esse sistema, assumir que ela se tornaria o espaço web mais “limpo” pressupõe que os consumidores querem isso
No mundo dos apps nativos já existem App Store, controles de bloqueio e identidade dos apps, mas a web ainda domina o comércio e parece estar ficando ainda mais forte com casos como o Figma
Então onde está o clamor por essa web “purificada”? Pelo menos do lado dos consumidores, não parece haver demanda nenhuma nesse sentido
Por que uma comprovação de identidade absurdamente forte assim é necessária? Se ela fosse realmente necessária, como a internet funcionou até agora?
Só que, na prática, ninguém está propondo isso hoje. Nem a abordagem da Apple nem a do Google chega perto disso. O que eles dizem que vão fazer é garantir a “integridade” da plataforma
Que integridade, exatamente? No exemplo, dizem que isso mostra que o usuário está executando o cliente web em um dispositivo Android seguro
Ou seja, não informa se o usuário é uma pessoa única, nem fornece um identificador útil sobre a pessoa. Nesse exemplo e no caso da Apple, a única coisa informada é que o dispositivo não foi rooteado nem desbloqueado por jailbreak
Na prática, esse conceito só é útil como parte de um jogo maior de gato e rato. Assim como na proteção de direitos autorais, a atestação remota também tem seus limites definidos pelo que ela de fato comprova
É difícil impedir gravações com filmadoras em cinemas e, assim como há muitas etapas intermediárias que exploram o fato de que um filme é uma sequência de fotos e frames de amostras PCM, o fato de um dispositivo ser caro não impede alguém de obter várias unidades e usá-las para esse trabalho
Já há muita gente com pilhas de dispositivos Android para enganar sistemas e, em alguns casos, dá para comprar um por US$ 50, então isso não é uma barreira significativa
No fim, o único efeito é aumentar o custo e a complexidade de operar bots; se elevar bastante o ponto de equilíbrio, em tese dá para dizer que venceu. Mas isso não vai acontecer, porque os ganhos com spam e fraude são grandes demais
Mesmo depois de anos de combate, ainda não chegamos nem perto, e o dinheiro que circula na indústria de burlar esses sistemas é mais do que suficiente para cobrir esses custos
Misturar identidades governamentais não muda isso. Como há uma pessoa real por trás de quase toda operação de spam, mesmo que alguém obtenha uma prova cega de que é cidadão, isso diz muito pouco sobre essa pessoa
Para ajudar, provavelmente teria que ser algo como receber o ID único real de cada pessoa, não uma prova de que ela é uma parte legítima
E, se esse for o ponto final da internet, francamente, todo esse experimento não valeu a pena
Também é possível conectar um mouse ou teclado falso para fornecer entradas diretamente
Hardware de segurança não parece oferecer vantagem. Para pessoas que disseminam desinformação em certa escala, isso nem chega a ser um quebra-molas
Só torna as coisas um pouco inconvenientes para agentes maliciosos muito inexperientes ou leves, ao mesmo tempo que restringe bastante quem consegue criar navegadores e quem usa dispositivos não confiáveis, como usuários de Linux ou pessoas que desativam o Trusted Boot
Não sei se você se lembra do AllAdvantage
Era um serviço, por volta da virada do século, que mostrava anúncios no desktop e pagava por isso, mas só pagava quando o PC estava realmente em uso
As pessoas enganavam o sistema com dispositivos que moviam o mouse, e começou uma pequena corrida armamentista
Essa tecnologia seria um sonho para eles. Dá para saber se a requisição veio de um navegador real ou de um script, e também dá para desativar a atestação se a entrada for simulada por um driver não confiável ou se o navegador estiver automatizado
É uma tecnologia realmente desagradável
Isso se aproxima de integrar de forma estreita, no próprio navegador, uma categoria muito popular de produtos de segurança
Hoje é possível adotar uma posição filosófica e rejeitar todos os sites que usam reCAPTCHA/hCAPTCHA; amanhã será possível rejeitar todos os sites que usam PAT