Instrumento · corre inteiro no seu browser

A pergunta «isto é um humano?» perdeu a resposta.

Um agente de IA a comprar em nome de um cliente seu é tráfego automático e é receita. Bloqueá-lo custa-lhe dinheiro; deixá-lo entrar sem regra nenhuma custa-lhe outro. A pergunta que ainda tem resposta é quem responde por isto, e quanto paga — e nesta página pode emiti-la, assiná-la e tentar furá-la.

E depois pode fazer a pergunta que ninguém está a fazer: quantas acções é que uma credencial destas autoriza, ao todo? A resposta está escrita no cabeçalho dela, é quase sempre quatro ou cinco ordens de grandeza maior do que uma, e é por ela que se divide o custo de forjar. A secção 5 mostra porque é que estreitar o âmbito — o conselho que toda a gente dá — vale exactamente zero enquanto as concessões estreitas saírem todas da mesma verificação de identidade.

1. O operador do agente emite um mandato

Do lado de quem opera o agente. A chave privada é gerada nesta página, usada aqui e esquecida quando fechar a aba — não é escrita em lado nenhum e não viaja. O mandato diz o que o agente pode fazer, a que ritmo, até quando e a que tarifa.

Âmbito — o que este agente pode pedir

O * só vale no fim de uma regra. Um motor de padrões rico num caminho de autorização é superfície de ataque — e de erro de configuração — que ninguém precisa.

O passaporte

versão · mandato · assinatura Ed25519 — . O mandato não é segredo: quer ser lido. O que não é, é alterável.

Ver o mandato por dentro

Identificador da chave (kid):
Chave pública:

2. O site decide por margem, não por suspeita

Do lado de quem recebe o pedido. O site só precisa de estimar bem um número — o que lhe custa servir uma acção — e esse é a própria factura dele. A lista de operadores em que confia é uma decisão de negócio, igual a decidir com que fornecedores trabalha: não há autoridade central nem registo a pagar a ninguém.

3. Agora tente furá-lo

Um mecanismo de autorização só vale o que valem as suas recusas. Cada botão aqui vai por um caminho diferente, e cada um devolve um motivo que se pode ler ao telefone a um cliente cujo agente foi barrado — nunca um booleano solitário, que não se depura nem se explica.

O que o site viu

4. Porque é que isto é caro de falsificar

Não há via criptográfica: forjar uma assinatura Ed25519 exige da ordem de 2128 operações, o que não é caro — é impossível com a física conhecida. Restam duas vias reais, e as duas se pagam em identidade: roubar a chave de um operador de confiança, ou tornar-se um operador de confiança e queimar a identidade. A segunda é o piso, e é o número que interessa.

V* = custo da identidade ÷ acções até à revogação
Custo por acção forjada
—
—
Rácio
—
quanto mais caro é abusar do que o site gasta a servir
Na unidade
—
1 intruso = $0,001
—

É aqui que está a diferença que interessa comercialmente. Contra um CAPTCHA, o atacante compra mimetismo, que é mercadoria: há mercado a granel, preço de tabela e entrega imediata — é exactamente o que o resto deste sítio mede. Contra um passaporte, o atacante tem de comprar identidade responsável, e não há mercado a granel de identidades que respondam por si.

5. O número que ninguém devia estar a adivinhar

A caixa acima pediu-lhe acções até apanhar o abuso e revogar, e você escreveu um número. Ninguém sabe esse número. É uma estimativa operacional, e é em estimativas operacionais que os modelos de custo vão morrer — porque quem paga por estar errado é sempre o lado que estimou.

Só que não é uma estimativa. Está escrito no cabeçalho que você emitiu na secção 1. O mandato que está aberto lá em cima diz 6 pedidos por minuto durante 3 600 segundos, e isso autoriza 360 acções — não aproximadamente: exactamente, pelos seus próprios termos, assinado pelo operador. Não é preciso medir nada. O mandato financia a sua própria falsificação, e diz quanto.

custo por acção = Cadmissão ÷ (kinterno × kexterno)
kinterno = ritmo × janela ÷ 60, lido no mandato · kexterno = concessões que cada admissão cunha, contadas na frota

O custo de admissão é o que declarou na secção 4; o ritmo e a janela saem do mandato da secção 1 — mexa lá e estes números mexem-se aqui. O preço de mercado começa igual ao custo declarado, que é o caso neutro: não sabemos o preço do seu mercado e não o inventamos.

O mandato autoriza
—
—
A admissão cunha
—
—
Custo real por acção forjada
—
—
MargemMO que assume
Como qualquer sistema de autorização a conta — que uma verificação de identidade compra uma acção
Como ela é — que a credencial autoriza tudo o que ela própria diz que autoriza
—

—

Estreitar o âmbito é teatro quando a admissão é partilhada

O conselho universal, em toda a arquitectura de autorização que existe — âmbitos OAuth, identidades de carga de trabalho, um token por serviço — é parta o mandato largo em mandatos estreitos. Arraste o cursor e veja quanto é que isso compra.

M antes
—
o mandato largo
M depois
—
—
O que a partição comprou
—
casas decimais de margem
—

Com a caixa desligada o ganho é 0,0000 e fica lá, arraste até onde arrastar. Não é arredondamento e não é um caso particular: cortar o valor da acção em n divide o que cada acção rende por n, e cunhar n mandatos da mesma verificação multiplica kexterno por n. Os dois n cancelam-se, algebricamente, para todo o n.

Mef(A/n, n·kext) = Mef(A, kext)
o teorema da cancelação — a estreiteza é grátis, logo não vale nada

O mesmo corte vale exactamente log10(n) casas assim que cada concessão passa a pagar a sua própria admissão. É a mesma partição, o mesmo âmbito, o mesmo desenho — muda só quem paga a entrada. Ligue a caixa e veja o número aparecer do nada.

Quatro manípulos, e um deles não mexe no tecto

Cada manípulo tem um orçamento, e o orçamento mede-se na mesma moeda: casas decimais de M. Três são finitos e dizem onde acabam. O quarto não tem limite — e é o único que precisa do terceiro preso para não se cancelar.

ManípuloValeAcaba onde

—

O resultado que arruma a discussão toda está na primeira linha: assim que o que você gasta a admitir alguém chega ao preço por que se compra uma identidade já admitida, gastar mais vale exactamente zero casas decimais — e é o único dos quatro que nem sequer mexe no tecto. É também o único em que a indústria gasta dinheiro.

Uma frota tem tantas margens quantos mandatos, e a que conta é a mais baixa, nunca a média: o atacante lê a lista inteira antes de escolher por onde entra. Se quiser correr isto sobre a sua frota a sério, o motor fá-lo a partir de um ficheiro — intruso --governar frota.json — e não gasta um segundo de CPU, porque não mede nada: lê a política que você já escreveu. Há um teste que corre esse comando num processo novo e falha se ele carregar um treinador de modelos pelo caminho.

A pergunta «isto é um humano?» perdeu a resposta.
A pergunta «quem responde por isto, e quanto paga?» tem uma.
O que isto é, e o que ainda não é

Onde é que esta página pára

O que é verdade: o protocolo está implementado e corre aqui inteiro. A chave é gerada no seu browser com Ed25519 do WebCrypto, o mandato é assinado de verdade e o verificador percorre os nove pontos — forma, confiança, assinatura, dono da chave, revogação, validade, âmbito, ritmo e margem. A mesma lógica existe em Python, no motor do Intruso, e as duas implementações são comparadas caso a caso por um arnês que qualquer pessoa pode correr sem nos pedir nada.

Para conferir a partir daqui, sem confiar em nada do que está escrito nesta página: descarregue teste_passaporte.mjs, vetores_passaporte.json e passaporte.js para a mesma pasta e corra node teste_passaporte.mjs. Compara mil e oitenta e cinco valores contra o que o Python produziu — cada float escrito à maneira do Python, os bytes exactos que são assinados, e o veredicto dos nove pontos para trinta casos, com o verificador de JavaScript a ler tokens emitidos pelo Python. Se as duas implementações se afastarem num único byte, falha.

A secção 5 tem o seu próprio fio, porque é lei nova: descarregue teste_admissao.mjs, vetores_governanca.json, admissao.js e lei.js e recusa.mjs para a mesma pasta e corra node teste_admissao.mjs. São 496 casos e mais de cinco mil comparações contra o que o Python produziu — incluindo o teorema da cancelação pregado em n = 2, 3, 5, 10, 17, 100, 1000 e 10 000 sobre três bases sem relação entre si, porque um teorema que só funciona nos números do exemplo não é um teorema.

E para conferir que esta página chega a mostrá-lo — que nenhum dos botões acima é enfeite — junte teste_agentes.mjs, dom_faz_de_conta.mjs, passaporte.js, admissao.js, lei.js e agentes/pagina.js (nesta subpasta) com este próprio HTML guardado como agentes/index.html, e corra node teste_agentes.mjs. Ele lê a lista de botões do HTML, não de uma lista à parte: carrega em todos, e um que não faça nada fica vermelho.

O que não é verdade: nenhum site em produção usa isto hoje, e portanto não há aqui número nenhum medido no mundo real. O custo da identidade, o preço a que ela se compra feita e o que uma acção vale a quem a rouba são valores que você declara, não que nós tenhamos observado — e a página trata-os como declarações, que é o que são. As acções que a credencial autoriza são a excepção, e é o ponto da secção 5: essas não são declaradas nem observadas, são lidas no mandato, onde já estavam escritas. Um protocolo que corre não é um protocolo adoptado, e chamar-lhe produto antes de o primeiro cliente o pôr a servir pedidos seria o género de erro — a favor de quem escreve, e em silêncio — que este projecto existe para medir nos outros.

Quero pôr isto a servir pedidos Medir primeiro o que tenho