Blog Agility

Entendendo e Configurando as propriedades da profile “OCSP” no F5 BIG-IP (v11.4.x)

Entendendo e Configurando as propriedades da profile “OCSP” no F5 BIG-IP (v11.4.x)

 

Para garantir a integridade, segurança de acesso e evitar algum tipo de fraude em uma determinada aplicação que atenda os seus negócios, o F5 BIG-IP poderá ser peça chave para proteger o fluxo de dados deste acesso. Basta ter disponível um servidor “OCSP” para validar o estado de revogação dos certificados utilizados pelos seus usuários (client’s);

Pré-Requisitos

  1. Profile SSL (client) já previamente configurada e funcional;
  2. Certificado root CA já previamente importado no F5 BIG-IP;
  3. Endereço web do servidor “OCSP” [http://meuservidor/ocsp];

O que é “OCSP”?

O “Protocol Online Certificate Status” (OCSP) é um protocolo web utilizado para a obtenção do status de revogação de um certificado digital “X.509”. Está descrito na RFC 2560 e segue os padrões globais da internet.

Qual o benefício em utilizar esta “feature” de autenticação “OCSP”?

Quando um certificado digital é emitido, um período de validade para utilização do mesmo é definida.  No entanto, sob várias circunstâncias, um certificado digital pode tornar-se inválido antes de sua data de expiração e ser revogado pelo seu proprietário.

Como saber qual é o status dos seus certificados?

O usuário em si não precisa se preocupar como funciona este processo de checagem, pois ao utilizar o seu certificado, o sistema operacional consulta automaticamente a “CA” emissora do certificado para verificar seu status atual.

*Todas as “CA’s” publicam sua lista de certificados digitais revogados.

Recentemente, devido ao crescente número de casos fraudulentos no mundo computacional, em alguns ramos do mercado estão sendo implementadas algumas novidades cujo objetivo é: validar revogação em tempo real! Isso é possível?  — SIM! Através do protocolo “OCSP”!

Imagine saber que no momento que é realizada a revogação de um determinado certificado, o qual é utilizado por um usuário que foi desligado da empresa, este já não terá mais acesso ao sistema da empresa…

Ou saber que um determinado certificado está realizando algum tipo de transação suspeita e você prontamente poderá revogá-lo e cancelar sua funcionalidade em tempo real… Assim não precisará aguardar 1 hora ou 1 dia para validar a revogação de um determinado certificado digital.

Sim, isto é possível! Com o protocolo “OCSP”.

Como funciona o protocolo “OCSP”?

Mensagens transmitidas via “OCSP” são codificados em ASN.1 e geralmente são transmitidas através do protocolo HTTP (em porta 80). A “requisição/resposta” dessas mensagens são conduzidas aos servidores com o protocolo “OCSP”. Estes são denominados como “OCSP Responders”.

Uma vez que uma resposta do protocolo “OCSP” contém menos informação do que a “LCR” (Lista de Certificados Revogados, no inglês, CRL – Certificate Revocation List), a consulta via “OCSP” permite informações atualizadas em tempo real sobre o estado de revogação de um certificado, sem sobrecarregar a infraestrutura de rede.

Basicamente, consultar os protocolos “LCR” e “OCSP” impede que um certificado digital sem validade seja utilizado.

Normalmente, o serviço de verificação que utiliza o protocolo “OCSP” é exigido pelo mercado financeiro, ou seja, algumas aplicações bancárias e de investimentos só aceitam certificados de “CA’s” que utilizam este específico protocolo.

Além destes, outros segmentos deveriam avaliar o risco do “time” gerado entre cada atualização de uma “LCR”, isso visando entender suas necessidades com relação aos certificados que são baseados na política de verificação. Neste caso, entre os protocolos “OSCP” e “LCR”.

Configurando “OCSP” no F5 BIG-IP

Para configuração “OCSP”, serão necessários os seguintes passos:

1-      Importar iRule “OCSP”

2-      Configurar um objeto “OCSP Responder”;

3-      Criar um objeto “Configuration” para vincular o “OCSP Responder”;

4-      Criar uma profile “SSL OCSP”;

5-      Vincular a profile “SSL OCSP” no Virtual Server;


Passo 1
: Importando iRule “OCSP”

Para trabalhar com “OCSP”, teremos uma iRule já previamente configurada.

1-    No painel de navegação, expandir:

Local Traffic>> iRules>> iRule List

2-    Clique em “Create”;

3-    Inserir um nome para sua iRule (minha_irule_ocsp) e utilizar o código informado abaixo:

 

when CLIENT_ACCEPTED {

set tmm_auth_ssl_ocsp_sid 0

set tmm_auth_ssl_ocsp_done 0

}

when CLIENTSSL_CLIENTCERT {

set tmm_auth_ssl_ocsp_done 0

set ssl_cert [SSL::cert 0]

if {$tmm_auth_ssl_ocsp_sid == 0} {

set tmm_auth_ssl_ocsp_sid [AUTH::start pam default_ssl_ocsp]

if {[info exists tmm_auth_subscription]} {

AUTH::subscribe $tmm_auth_ssl_ocsp_sid

}

}

AUTH::cert_credential $tmm_auth_ssl_ocsp_sid [SSL::cert 0]

AUTH::cert_issuer_credential $tmm_auth_ssl_ocsp_sid [SSL::cert issuer 0]

AUTH::authenticate $tmm_auth_ssl_ocsp_sid

SSL::handshake hold

log local0.debug “Client [IP::client_addr] connected with the Client Certificate: [X509::subject $ssl_cert] and checking with OCSP”

}

when CLIENTSSL_HANDSHAKE {

set tmm_auth_ssl_ocsp_done 1

}

when AUTH_RESULT {

# AUTH::status values:

# http://devcentral.f5.com/wiki/default.aspx/iRules/AUTH__status.html

#  0 = success

#  1 = failure

# -1 = error

#  2 = not-authed

if {[info exists tmm_auth_ssl_ocsp_sid] and \

($tmm_auth_ssl_ocsp_sid == [AUTH::last_event_session_id])} {

set tmm_auth_status [AUTH::status]

if {$tmm_auth_status == 0} {

set tmm_auth_ssl_ocsp_done 1

log local0.debug “OCSP verfication succeeded, [AUTH::status]”

SSL::handshake resume

} elseif {$tmm_auth_status != -1 || $tmm_auth_ssl_ocsp_done == 0} {

log local0.debug “OCSP verfication from  error, [AUTH::status]”

reject

}

}

}

4-    Clique em “Update” para salvar as configurações;

Passo 2: Configurar um objeto “OCSP Responder”

Um “Responder OCSP” é um objeto que você cria e inclui uma URL para uma resposta SSL OCSP externa.

OBS: Você deve criar um objeto SSL OCSP separado para cada resposta SSL OCSP externa.

 

1-    No painel de navegação, expandir:

Local Traffic>> Profiles>> Authentication>> OCSP Responders

2-    Clique em “Create”;

3-    Inserir um Nome para o novo objeto “Responder OCSP” [meu_responder_ocsp];

4-    No campo URL, inserir o endereço de seu servidor “OCSP” (http://meu_server_ip/ocsp);

5-    Especifique o certificado rootCA em “Certificate Authority File”;

6-    Clique em “Finished”.

 

Passo 3: Criando um objeto OCSP “Configuration”

A configuração do sistema BIG-IP deve incluir pelo menos um objeto SSL OCSP.

Um módulo de autenticação SSL OCSP verifica o status de revogação de um certificado SSL durante a autenticação remota, isso como parte do processo de autenticação deste certificado.

1-    No painel de navegação, expandir:

Local Traffic>> Profiles>> Authentication>> Configurations

2-    Clique em “Create”;

3-    Inserir um Nome para o seu objeto de configuração [meu_objeto_ocsp];

4-    No campo Type, selecionar “SSL OCSP”;

5-    Em Configuration, mover (<<) de Available para Selected o objeto “OCSP Responder” criado anteriormente [meu_responder_ocsp];

6-    Clique em “Finished”.

Passo 4: Criando uma profile “OCSP”

Esta tarefa visa configurar a autenticação remota baseada em SSL OCSP no sistema BIG-IP – Criar uma profile “OCSP” personalizada.

 

1-    No painel de navegação, expandir:

Local Traffic>> Profiles>> Authentication>> Profiles

2-    Clicar em “Create”;

3-    Inserir um nome para a sua profile OCSP [minha_profile_ocsp];

4-    No campo Type, selecionar “SSL OCSP”;

5-    No campo Parent Profile, selecione “ssl_ocsp”;

6-    No campo Configuration, marcar a checkbox e selecione o objeto (meu_objeto_ocsp) criado anteriormente;

7-    No campo Rule, marcar a checkbox e inserir a nova irule (minha_irule_ocsp);

8-    Clique em “Finished”
Na profile Client SSL (client), inserir as seguintes opções em Client Authentication:

 

  • Client Certificate: require
  • Frequency: Always
  • Retain Certificate: Default
  • Certificate Chain Traversal Depth: Default
  • Trusted Certificate Authorities: Selecione o certificado rootCA
  • Advertised Certificate Authorities: Default (none)
  • Certificate Revocation List: Default (none)

 

9-    Feito isso, basta clicar em “Update” para aplicar as alterações na profile SSL (client).

OBS: Atente-se em verificar se a profile SSL (client) utilizada para esta função não esteja sendo usada por outro Virtual Server;

Recomendação: Crie uma profile SSL (client) específica para habilitar o recurso de “Client Authentication” nas configurações da mesma;


Passo 5
: Associando uma profile “OCSP” no Virtual Server

Você deverá associar a profile “OCSP” ao respectivo Virtual Server.


1-   
No painel de navegação, expandir:

Local Traffic>> Virtual Servers>> Virtual Server List

2-    Clique no nome do “Virtual Server” que você deseja associar a profile “OCSP”;

3-    Em “Authentication Profiles”, no quadro Available, selecione sua profile OCSP [minha_profile_ocsp] e use o botão (<<) para movimentar a mesma para Selected;

4-    Clique em “Update” para salvar as configurações;
Neste momento você possui uma profile “OCSP” vinculada em um Virtual Server, o qual passará a “requisitar” um certificado válido em todas as novas requisições para a aplicação em questão.

Veja o provável log (/var/log/ltm) que deverá aparecer mediante uma validação com “sucesso” pelo Servidor OCSP:

2014_04_Leonardo_Feitoza_F5_How-to-config-ocsp__v1_log-irule-ocsp_01

 Imagem 01 – Log iRule OCSP

Tais informações fornecidas pela iRule OCSP são essenciais para um troubleshooting mais assertivo no que se diz a respeito de acesso dos usuários e também, rastreabilidade dos mesmos J…

Referências

 

http://rtupinamba.blogspot.com.br/p/o-que-e-lcr-e-ocsp-qual-diferenca.html#.UzwRJPldWy4 [Entendimento e Funcionalidade]

http://support.f5.com/kb/en-us/products/big-ip_ltm/manuals/product/ltm-implementations-11-1-0/36.html [Configurando “OCSP” no F5 BIG-IP]

http://devcentral.f5.com [iRule]

http://devcentral.f5.com/wiki/default.aspx/iRules/AUTH__status.html  [iRule]

Caso tenha alguma dúvida, sugestão, crítica ou elogio, por favor entre em contato via andre.padua@agilitynetworks.com.br