Resumo

  • Um campo armazenado podia não ser anunciado, não ser pesquisável ou não aparecer na resposta padrão, sem deixar de existir.
  • Regras como Turn, LocalPub, ForcePub e Sacred atribuíam controles diferentes ao titular, à rede local e aos operadores.
  • O resultado de uma consulta era uma projeção produzida por identidade, política e caminho de acesso, não uma cópia integral da base.

O campo de telefone residencial podia ser público, pesquisável e alterável pelo dono. Ainda assim, um asterisco no início do valor o retirava da visão das pessoas comuns. O campo continuava armazenado; o titular e os operadores privilegiados continuavam vendo-o.

Esse pequeno mecanismo está na RFC 2378, publicada em setembro de 1998 para formalizar o CCSO Nameserver, conhecido como Ph. O serviço organizava informações sobre pessoas e objetos em registros compostos por campos nomeados. Parecia uma lista telefônica na Internet. Sua contribuição mais interessante, porém, estava na descrição do comportamento de cada campo.

Public autorizava visualização. Lookup permitia usar o campo para selecionar registros. Indexed indicava indexação e toda consulta precisava incluir ao menos um campo indexado. Default definia o retorno na ausência de uma lista explícita; Always podia forçar a saída. Change concedia ao dono o direito de editar. Unique recusava duplicidades após alterações. NoMeta bloqueava curingas. Encrypt mudava o tratamento do valor em transmissão.

Esses atributos não eram sinônimos. Um campo podia ser visível sem servir como chave de busca. Podia servir à busca sem aparecer automaticamente. Podia ser legível pelo titular e, ao mesmo tempo, imutável para ele. A política tinha várias dimensões.

O asterisco carregava uma decisão

O atributo Turn permitia ao titular esconder o campo de todos, exceto de si e dos Heros, os operadores privilegiados do Ph, acrescentando * ao início do texto. No exemplo da RFC, home_phone aparece como Lookup Public Change Turn.

O caractere não era sujeira de formatação. Uma rotina que o removesse antes da avaliação de política transformaria uma escolha de privacidade em divulgação. E a ausência do telefone na consulta pública não significava exclusão: a visão privilegiada ainda o continha.

ForcePub criava uma exceção na direção oposta. O campo continuava visível e pesquisável apesar do conteúdo do campo geral de supressão do registro. A regra do campo podia superar a decisão mais ampla da ficha.

Esses dois mecanismos tornam a conclusão inevitável: armazenado, visível para esta sessão e retornado por esta consulta são fatos diferentes.

Fora da área local, o vocabulário diminuía

LocalPub deixava um campo disponível a qualquer pessoa dentro do domínio ou espaço de endereços classificado como local. Para quem estava fora, ele se tornava completamente invisível. O comando fields não anunciava seu descritor; consultas e cláusulas de retorno externas não podiam sequer mencionar o nome do campo.

Portanto, não se tratava apenas de ocultar uma célula. Clientes internos e externos recebiam esquemas distintos antes de procurar um registro.

Uma opção de sessão chamada external também retirava os campos locais. A RFC, entretanto, não produzia uma prova universal do que era local. Essa classificação vinha da operação do servidor. Endereço de origem, nome de máquina, vínculo institucional e autorização eram evidências diferentes, mesmo quando uma instalação as tratava como equivalentes.

O Ph era local também porque não fazia encaminhamento entre servidores. Podia listar outros nameservers para que o cliente os consultasse, mas uma falha de busca em um servidor não demonstrava ausência em todos os outros.

Proteção do caminho não era imutabilidade

Um campo Sacred não podia ser alterado por chamadas de rede, mas aceitava mudanças por terminal, arquivo ou pipe no servidor. A garantia protegia uma superfície de controle; não congelava o valor para sempre.

O privilégio Hero também tinha escopo. Um Hero completo via e alterava tudo. Uma ACL podia delegar poder sobre apenas um campo de um único registro de outra pessoa. Registrar apenas “operação administrativa” escondia uma diferença importante entre autoridade limitada e total.

Na segurança, a RFC admitia opções fracas e fortes de autenticação. Sem autenticação mútua, como Kerberos ou GSS-API, o cliente não conseguia provar a identidade do servidor. Também não havia mecanismo para provar que aquele servidor era autoridade para o conjunto de informações. Sem proteção adicional de transporte, o tráfego podia ser observado ou modificado.

Autenticar o usuário, autenticar o servidor, proteger o canal, autorizar o campo e provar autoridade sobre os dados são tarefas separadas. Uma não quita as demais.

return all ainda era uma visão parcial

A expressão devolvia todos os campos visualizáveis, não todos os campos guardados. Da mesma forma, o comando de descrição mostrava o esquema permitido à sessão. A indexação não concedia publicidade; a publicidade não concedia edição.

Para que o resultado seja auditável, é preciso preservar o registro de origem, os descritores, os marcadores de supressão, a decisão local/externa, a identidade, o método de autenticação, o escopo Hero/ACL, a seleção pedida, os campos de retorno, o endpoint, o estado do transporte e o momento da observação.

A RFC 2378 documentou limitações reais de sua época. Mesmo assim, foi rigorosa em um ponto: a visão do usuário era construída. Transformar “não recebi” em “não existe” seria abandonar exatamente essa honestidade.