Histórico de mensagens sobre mtls em pix

EXIBINDO CONVERSAS RECENTES:

Texto: mtls
Canal: pix
Avatar discord do usuario guilherme_efi

guilherme_efi

Ver Respostas

Então com seu servidor configurado com mTLS em seu domínio (ex: https://seudominio.com.br/webhook), você irá consumir o endpoint PUT /v2​/webhook/:chave uma única vez para registrar seu webhookUrl vinculado à sua chave Pix.

Com isto, todo Pix gerado com sua chave Pix e que possua um txid, serão enviados as notificações para sua URL.

Avatar discord do usuario rubenskuhl

rubenskuhl

Uma opção para serviços onde não seja fácil configurar mTLS com CA privada é o mtls.pix.ae:

Pra quem tem dificuldades de implementar os webhooks por falta de suporte em hospedagem compartilhada para configurar mTLS, o Pix.ae agora oferece proxy de callbacks com mTLS.

Pra usar é muito simples: é só prefixar o seu domínio com mtls.pix.ae/. Por exemplo:

Para: https://exemplo.com.br/webhookpix
Use: https://mtls.pix.ae/exemplo.com.br/webhookpix

Obs: no ambiente de homologação, prefixe com mtls-h.pix.ae/

Avatar discord do usuario rubenskuhl

rubenskuhl

E mesmo nos planos pagos mais baratos da Cloudflare também não tem mTLS com CA privada, só no plano Enterprise.

Avatar discord do usuario jlmagalhaes

jlmagalhaes

Ver Respostas

Estou em duvida de como configurar o mTLS. Estou utilizando a SDK do PHP

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Sim, tem. A não ser que você tenha plano Enterprise da Cloudflare, ela não suporta mTLS com CA privada.

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Não me parece que o Heroku tenha suporte a mTLS com CA privada, que é requisito para o webhook.

Avatar discord do usuario huggler6815

huggler6815

const httpsOptions = {
cert: fs.readFileSync(""), // Certificado fullchain do dominio
key: fs.readFileSync("/"), // Chave privada do domínio
ca: fs.readFileSync(""), // Certificado público da Gerencianet
minVersion: "TLSv1.2",
requestCert: true,
rejectUnauthorized: false, //Mantenha como false para que os demais endpoints da API não rejeitem requisições sem MTLS
};

Avatar discord do usuario huggler6815

huggler6815

Recebendo Callbacks
Esse serviço está protegido por uma camada de autenticação mTLS. Os callbacks são enviados pela Gerencianet via POST ​/pix quando há uma alteração no status do Pix.

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

O primeiro request é sem nada mesmo. Depois da GN confirmar o mTLS, aí (em produção apenas) o webhook é acionado em pagamentos.

Avatar discord do usuario matheus_efi

matheus_efi

Ver Respostas

Bom dia, <@!229769812740407296>! A exigência do mTLS hoje veio do próprio BACEN e para adequar as normas e requerimentos da API Pix realizamos tal exigência no cadastro do webhook. Você pode utilizar também o endpoint GET /v2/pix para consultar os Pix recebidos, no entanto, recomendamos que se atente a boas práticas de consumo e evite fazer um pooling de forma exacerbada, pois a nossa equipe de infraestrutura acompanha este tipo de consulta e pode levar a restrições no IP nestes casos.

Avatar discord do usuario darthsouza

darthsouza

Sim, é mTLS também, mas o ponto era a dificuldade em ter que configurar um endpoint pra um webhook conectar e exigir mTLS, não o recurso sozinho em si.

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

Mesmo com cronjob você está usando mTLS... tanto que você apresenta um client-certificate. Só é mais fácil de implementar do que a checagem server-side, mas é mTLS também.
E usar um gateway de pagamento que não segue padrões é pedir para se tornar escravo.

Avatar discord do usuario rubenskuhl

rubenskuhl

Ver Respostas

O IP da Gerencianet que testei está sim coberto por um objeto RPKI, mas que tem zero efeito em redes que não validam.
Backbones Internet variam muito de segurança e qualidade... os que já foram usados para hijack mostram que isso é um problema.
O ponto de mTLS é que você disse que filtro por IP resolve, quando não resolve. Eu mesmo já apontei que não é o único design possível, e que há outras arquiteturas que não mTLS que sobreviveriam a IP hijack.
Mas o mTLS foi o que o instituidor do arranjo escolheu... não quer usar, só não aceitar Pix.

Avatar discord do usuario darthsouza

darthsouza

Ver Respostas

1 e 2) Se a Gerencianet não usa RPKI, não serve pra mexer com dinheiro. Se minha infra não verificam rotas, não serve pra ser minha infra.
3) Exato, então é mais fácil alguém hackear o backbone Internet, do que a AWS ou a Gerencianet? Pq sempre vai existir um vetor de ataque enquanto existirem humanos nesse planeta. Se a discussão se resume em "Ah mTLS é necessário pq existe a possibilidade de ataque X acontecer", daria pra se dizer o mesmo de toda e qualquer prática de segurança por mais infuncional que seja.

Avatar discord do usuario darthsouza

darthsouza

Ver Respostas

mTLS também não é garantia, pq alguém pode hackear a Gerencianet, e roubar os certificados do mTLS, e sair por aí enviando webhooks fraudulentos, se for seguir por essa lógica.

Avatar discord do usuario rubenskuhl

rubenskuhl

Sobre pedir mTLS, há duas estratégias para garantir integridade: uma é a que você mesmo vê na API de emissões da Gerencianet, onde a notificação só avisa de mudança de estado e você precisa de requisição direta para obter a alteração. A outra é carregar informação na requisição, e aí precisa de mTLS para ter certeza de quem veio. O Banco Central escolheu a 2a., mas ambas são alternativas válidas.

Avatar discord do usuario darthsouza

darthsouza

Ver Respostas

Sim, eu tenho gateways de pagamento pra cartão de crédito, e eles também não pedem mTLS, e são PCI Compliance.

Avatar discord do usuario darthsouza

darthsouza

Ver Respostas

Recursos de segurança que atrapalham o lado funcional não são úteis. O pessoal desde sempre utilizou webhook e ainda utiliza, sem mTLS, e nunca teve problemas. Inclusive MercadoPago funciona dessa forma, as IPNs não pedem certificado nem nada do tipo.

Avatar discord do usuario darthsouza

darthsouza

Ver Respostas

Amigo, faz igual eu, cria um cronjob pra ficar verificando as cobs usando o endpoint de pixDetail, e dando baixa nos pagamentos. Esse negócio de mTLS no webhook claramente foi criado por alguém que não precisa programar, pq só dor de cabeça.