
Para um projeto de automação residencial, criei uma API (escrita em ASP.NET e hospedada em IIS) e escrevi meu próprio aplicativo Android para se comunicar com essa API. Para evitar que pessoas acessem endpoints específicos nesta API, quero proteger os endpoints que não deveriam ser públicos. Alguns permanecerão públicos no meu painel de estatísticas.
Tenho um certificado PKI de cliente, que comprei de uma organização oficial e reconhecida pelo governo, para o aplicativo e inclui um URL de resposta OCSP. Quando o aplicativo acessa os endpoints protegidos, esse certificado é incluído. Agora, a última etapa seria o servidor verificar a validade deste certificado nas solicitações recebidas e eu criei os seguintes cenários possíveis:
- O certificado é válido
- A hierarquia de CA do certificado é inválida (sou um programador, então peço desculpas se destruí essa frase)
- O certificado expirou (suponho que o respondente do OCSP retornará isso)
- Nenhum certificado incluído
O IIS pode resolver esse problema? Na verdade, só encontrei grampeamento OCSP que não está relacionado ao certificado do cliente. Basicamente, o handshake TLS deve ser cancelado para que a API nem possa ser acessada.
Estou usando o HAProxy para rotear as solicitações para o servidor correto na minha rede. Então, se o IIS for impossível, o HAProxy seria capaz de fazer isso?
Obrigado!
Responder1
O IIS pode validar certificados de cliente usando OCSP. HAProxy não, até onde eu sei. Sua melhor aposta é passar o certificado do cliente para o back-end do IIS.
Observe que você só usa OCSP ou Lista de Revogação de Certificados (CRL) para verificar o status de revogação de um certificado - nada mais.
Portanto, a validação de um certificado ainda consistirá em verificar a cadeia do certificado até uma âncora de confiança, verificar se o certificado não expirou e verificar se o certificado é para o uso correto da chave; independentemente de OCSP (ou CRLs) serem usados.