[GTER] uma ideia para discussão: SPF reverso.

Danton Nunes danton.nunes at inexo.com.br
Sun Aug 5 12:21:25 -03 2012


On Sun, 5 Aug 2012, Roberto Alcântara wrote:

>>> Apenas o detentor do IP possui a chave privada que é o par da pública
>>> que está no TXT do reverso do IP.
>>>
>>> Sendo assim, apenas ele pode assinar as entradas que vão nos TXT dos
>>> domínios e dar o aval para o envio dos e-mails daquele domínio por
>>> aquele IP.
>
>> mas qual é a vantagem disso em relação a pedir para o detentor do IP inserir
>> um registro no .in-addr.arpa ou .ip6.arpa? operacionalmente é a mesma coisa.
>
> Não é a mesma coisa se você adicionar e remove vários domínios com
> frequência nos seus servidores. Para quem não muda realmente não tem
> vantagem.

mas a cada domínio você tem que pedir para assinar. esse é o ponto. tanto 
faz pedir para assinar quanto pedir para inserir um registro no reverso. 
nos dois casos tem que pedir.

a alternativa é o cliente gerar o par de chaves e passar a pública para o 
dono do IP e ele mesmo assinar os registros dos domínios, aí ele tem que 
pedir uma vez só.

mas de qualquer caso temos um problemão: este esquema só serve para 
PERMITIR um par (domínio,IP), não para PROIBIR, e isso é que é mais 
interessante. Por exemplo, um provedor de usuário final pode se interessar 
em dizer para o mundo que ninguém está autorizado a enviar email 
diretamente de qualquer IP do bloco. como se faz isso com esse esquema de 
chave pública?

> Olha o cenário para ver se fica clara a idéia. Acho que ainda não me
> expressei corretamente.
>
> 1. Eu sou provedor e tenho um /29 da operadora e não controlo a zona
> reversa. Uma vez na vida, quando eu recebo o bloco, gero um par de
> chaves (P e K) eu peço para a operadora colocar no TXT do reverso do
> IP a chave publica P. Isso é só uma vez (ou quando a chave
> expirar...).
>
> 2. Todos os dias eu adiciono um domínio no meu servidor de e-mail.
> Logo, para cada domínio que eu adiciono, eu gero uma assinatura
> utilizando K em função do domínio xyz.com e publico esta assinatura no
> TXT de xyz.com.
>
> 3. Nesse TXT pode ter também o PASS, NEUTRAL ou FAIL - que é o que o
> dono da chave *privada* determinou (que é quem recebeu o bloco e está
> assinando).
>
> Ao meu ver,
>
> dominio.com.br  TXT  'rspf [assinatura K(dominio.com.br)]  PASS'
>
> significa a mesma coisa que o
>
> dominio.com.br.A.B.C.D.in-addr.arpa TXT  'rspf PASS'

mas aí teríamos que ter os dois esquemas funcionando simultaneamente, não? 
e nesse caso o resultado deveria ser PASS, NEUTRAL, FAIL ou DELEGATE, com 
a chave pública junto.

> do ponto de vista de dizer qual a política para o dominio.com.br  que
> o "detentor" do IP A.B.C.D determinou, porque na validação os passos
> seriam:
>
> 1. Consulta o reverso do endereço A.B.C.D e pega a chave pública.

ou, consulta o reverso do endereço A.B.C.D e pega o resultado, se for 
DELEGATE pega a chave pública e prossegue, senão, termina.

> 2. Consulta o TXT do dominio.com.br e pega a assinatura
> 3. Se a assinatura estiver ok (isto é, tiver sido gerada pelo par
> privado da chave pública) , a política que o dono das chaves (o
> provedor) determinou para esse dominío é PASS.
>
>
>> seja qual for o algoritmo, o esquema de chave pública tem um defeito muito
>> sério: ele facilita registrar respostas afirmativas, mas não tem uma
>> provisão para respostas negativas! e é exatamente nas respostas negativas
>> que estamos mais interessados.
>> então, seja lá qual for o esquema, com o provedor de IP ou seu cliente
>> assinando respostas, não se presta ao propósito original que é perguntar ao
>> dono do IP se o domínio x pode enviar email a partir desse IP.
>
> Para mim dá no mesmo em relação ao     hash(dominio.com.br).A.B.C.D.in-addr.arpa
>
> O dono do IP na sua visão é a operadora ou o provedor que recebeu o
> /29?  Se for a operadora, realmente não, mas não faz muito sentido - a
> gente tem que saber a 'opinião' do cara que detém o direito de uso
> desse /29, que é o provedor. Neste caso presta ao propósito original
> sim.

o que você chama de operadora, eu chamo de provedor, o que você chama de 
provedor eu chamo de cliente e muita confusão foi criada por essa 
divergência de nomenclatura.

eu entendo que o dono "pra valer" dos IPs é o cara que consta do whois, 
pois é por meio do whois que quem não gostou de receber um spam vai 
encontrar os contatos para reclamação. é usual ao repassar um bloco /29 
por exemplo, cadastrá-lo no whois? não adianta nada fulano autorizar um 
domínio a sair por seu IP mas não responder por esse IP via whois.

>> até agora a melhor idéia para implementar o SPF reverso são registros TXT
>> formados por:
>> 1. hash(domínio),

note que este hash é necessário porque o número de componentes de um 
domínio é limitado em 127.

>> 2. endereço IP invertido,
>> 3. in-addr.arpa ou ip6.arpa.
>> com valor contendo uma parte de identificação do protocolo e uma palavra que
>> pode ser PASS, NEUTRAL ou FAIL.
>> se o interessado tiver um bloco IPv4 menor que /24 terá que implorar para o
>> seu provedor que ou bem delegue no esquema BCP-20 ou insira o registro na
>> zona reversa. ou não fazer nada, o que resultaria em NEUTRAL (a não ser que
>> a política padrão do provedor seja outra).
>
>
> Eu gosto dessa alternativa, mas ela sofre desse problema de quem não
> detém a SOA e está em constante mudança. Simplesmente ignorá-los e
> deixar o NEUTRAL para eles pode limitar a adoção.

essa "constante mudança" eu não entendi. para mim praticamente só spammer 
está em constante mudança. e esses nós queremos mais é que se explodam.

> A outra abordagem com as chaves, apesar de mais cara, resolve este
> problema - eu não entendi porque você acha que não atende ao propósito
> original.

porque facilita a permissão mas não a proibição, ok, agora vi que você 
coloca a possibilidade de FAIL e NEUTRAL, não havia visto isso antes, mas 
ainda não há como definir uma política default para o bloco todo. começo a 
concordar com a idéia, desde que ao passar o bloco o provedor de montante 
ou operadora registre o fato no whois.



More information about the gter mailing list