Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ecossistema de Seguros Abertos - Poderá se conectar nos endpoints do Open Finance usando o mesmo certificados de cliente OPF? #252

Open
joaorodolfo opened this issue Jul 19, 2022 · 0 comments

Comments

@joaorodolfo
Copy link
Contributor

joaorodolfo commented Jul 19, 2022

Olá, observando o manual de segurança do OPIN(Open Insurance), no que tange a especificação de certificados de cliente e supondo que seja usado a mesma cadeia V10 do ICP para emissão dos certificados de clientes, como os participantes do Open Finance irão poder identificar usando apenas os atributos do certificado quem é um participante OPIN e um participante OpenFinance?

A especificação atual de ambos é igual, impossibilita o filtro de conexão na camada de infraestrutura TLS usando uma REGEX para filtrar os atributos UUID ou ORGID contidos no atributo do certificado, limitando a conexão apenas aos participantes do Open Finance, desta maneira não é possível realizar bloqueios na camada de infraestrutura, sendo necessário que requisições sejam tratadas por processos de autenticação e autorização de minhas APIs (auth server ou minhas api de recurso).

Se eu necessito fechar esse escopo na camada de infraestrutura para reduzir ataques de Dia 0 que explorem vulnerabilidades na camada de aplicação em meus API GW ou Auth Server; faz sentido o OPIN ter um atributo no certificado que possa nosso ecossitema possa fazer o bloqueio destas conexões, autorizando apenas conexões dos participantes do Open Finance?

Entendo que o uso dos templates de certificados do open finance deveria ser restrito ao ecossistema do Open Finance.

Detalhes:

Abaixo os atributos do certificado de cliente:

Atributos Open Insurance
• serialNumber: Cadastro Nacional de Pessoal Jurídica (CNPJ) da pessoa jurídica titular do certificado
e associado ao atributo UID e Software Statement ID, durante validação junto ao Serviço de Diretório
do Open Insurance;
• organizationalUnitName: Código de Participante associado ao CNPJ listado no Serviço de
Diretório do Open Insurance;
• UID: Software Statement ID cadastrado no Serviço de Diretório do Open Insurance e pertencente
ao CNPJ e Código de Participante.
O Certificado Cliente deve ser emitido através de cadeia V10, e deve obrigatoriamente conter os seguintes
atributos:

Distinguished Name
• businessCategory (OID 2.5.4.15): Tipo de categoria comercial, devendo conter: "Private Organization" ou "Government Entity" ou "Business Entity" ou "Non-Commercial Entity"
• jurisdictionCountryName (OID: 1.3.6.1.4.1.311.60.2.1.3): BR
• serialNumber (OID 2.5.4.5): CNPJ
• countryName (OID 2.5.4.6): BR
• organizationName (OID 2.5.4.10): Razão Social
• stateOrProvinceName (OID 2.5.4.8): Unidade da federação do endereço físico do titular do certificado
• localityName (OID 2.5.4.7): Cidade do endereço físico do titular
• organizationalUnitName (OID 2.5.4.11): Código de Participante associado ao CNPJ listado no Serviço de Diretório do Open Insurance
• UID (OID 0.9.2342.19200300.100.1.1): Software Statement ID gerado pelo Diretório do Open Insurance
• commonName (OID 2.5.4.3): FQDN ou Wildcard

Certificate Extensions
• keyUsage: critical,digitalSignature,keyEncipherment
• extendedKeyUsage: clientAuth
Subject Alternative Name
• dNSName: FQDN ou Wildcard
Ref Técnica
https://br-openinsurance.github.io/areadesenvolvedor/files/Controles_t%C3%A9cnicos_de_Seguran%C3%A7a_da_Informa%C3%A7%C3%A3o_3.0.pdf

Atributos Open Finance
• serialNumber: Cadastro Nacional de Pessoal Jurídica (CNPJ) da pessoa jurídica titular do certificado e associado ao atributo UID e Software Statement ID, durante validação junto ao Serviço de Diretório do Open Finance Brasil;
• organizationalUnitName: Código de Participante associado ao CNPJ listado no Serviço de Diretório do Open Finance Brasil;
• UID: Software Statement ID cadastrado no Serviço de Diretório do Open Finance Brasil e pertencente ao CNPJ e Código de Participante.
O Certificado Cliente deve ser emitido através de cadeia V10, e deve obrigatoriamente conter os seguintes atributos:

Distinguished Name
• businessCategory (OID 2.5.4.15): Tipo de categoria comercial, devendo conter: "Private Organization" ou "Government Entity" ou "Business Entity" ou "Non-Commercial Entity"
• jurisdictionCountryName (OID: 1.3.6.1.4.1.311.60.2.1.3): BR
• serialNumber (OID 2.5.4.5): CNPJ
• countryName (OID 2.5.4.6): BR
• organizationName (OID 2.5.4.10): Razão Social
• stateOrProvinceName (OID 2.5.4.8): Unidade da federação do endereço físico do titular do certificado
• localityName (OID 2.5.4.7): Cidade do endereço físico do titular
• organizationalUnitName (OID 2.5.4.11): Código de Participante associado ao CNPJ listado no Serviço de Diretório do Open Finance Brasil
• UID (OID 0.9.2342.19200300.100.1.1): Software Statement ID gerado pelo Diretório do Open Finance Brasil
• commonName (OID 2.5.4.3): FQDN ou Wildcard

Certificate Extensions
• keyUsage: critical,digitalSignature,keyEncipherment
• extendedKeyUsage: clientAuth
Subject Alternative Name
• dNSName: FQDN ou Wildcard
Ref Técnica:
specs-seguranca/open-banking-brasil-certificate-standards-1_ID1-ptbr.md at main · OpenBanking-Brasil/specs-seguranca (github.com)

Links de apoio:
https://br-openinsurance.github.io/areadesenvolvedor/files/Controles_t%C3%A9cnicos_de_Seguran%C3%A7a_da_Informa%C3%A7%C3%A3o_3.0.pdf
https://openinsurance.susep.gov.br/
https://openinsurance.susep.gov.br/wp-content/uploads/2022/06/Manual-de-Seguranc%CC%A7a-v1-1.pdf

@OpenBankingBrasil-GtSeg PSI

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant