Un cliente revogado aínda conecta: a lista nunca chegou
A revogación é unha entrada da verificación do certificado, non unha orde que remata unha sesión. Compare como ven a lista unha conexión nova e un túnel en funcionamento.
A revogación nunca entra nun túnel en funcionamento para borrar unha sesión. A lista é unha entrada da verificación do certificado e consúltase durante o intercambio da canle de control que inicia unha sesión TLS. Ese único feito explica as dúas sorpresas: un cliente revogado volve conectar porque a lista nunca chegou ao verificador, e unha sesión existente sobrevive porque ninguén volveu verificar nada.
Unha lista é unha entrada, non unha acción
Durante o establecemento da sesión o servidor valida o certificado do cliente contra as súas áncoras de confianza, e a directiva de revogación engade a esa decisión unha consulta da lista. A comprobación ocorre no servidor, así que o cliente non pode ver que o seu certificado foi revogado e segue ofrecendo o mesmo. Un perfil que aínda conecta demostra só que algún verificador aceptou a cadea, non que a revogación fallase.
A lista é en si mesma un obxecto asinado cunha data de emisión e unha data de próxima actualización. Unha lista allea, unha asinada por outra autoridade ou unha cuxa próxima actualización xa pasou non substitúen a actual, e que unha lista obsoleta se rexeite ou se acepte en silencio depende do despregamento.
Conexión nova fronte a sesión en curso
A revogación avalíase cando se establece ou se renegocia unha sesión, non contra a canle de datos en cada paquete. Un cliente que xa está conectado ten claves de tráfico, así que segue deixando pasar paquetes despois de que o seu certificado apareza na lista. O intervalo de renegociación predeterminado mídese en horas, e por iso unha lista actualizada pode entrar en vigor para os recentemente chegados mentres un túnel en funcionamento se mantén.
| Situation | What the list does | When it applies |
|---|---|---|
| Fresh connection | Blocks the handshake | At verification, immediately |
| Renegotiation | Blocks the new exchange | At the next renegotiation interval |
| Established data channel | Nothing | Until the session ends |
A aplicación inmediata require unha acción deliberada e non só a lista. Reiniciar o servizo obriga a cada cliente a reconectar, mentres que rematar unha soa sesión desde a interface de xestión deixa as demais intactas. Escolla unha por incidente e anote cal usou. As dúas opcións teñen un raio de impacto distinto, e esa é a decisión real.
Entregue o ficheiro que o verificador le de verdade
A lista debe xerarse a partir do rexistro da autoridade e despois copiarse a cada máquina que verifica certificados. Xerarla no host da CA e non instalala nunca no servidor é o fallo máis común, e parece exactamente unha función de revogación rota.
ca ca.crt
cert server.crt
key server.key
crl-verify /etc/openvpn/crl.pem
Dous detalles deciden se o ficheiro se le de verdade. Unha ruta relativa resólvese respecto ao directorio de configuración, así que unha copia deixada no directorio persoal dun operador pode non atoparse nunca. E o daemon adoita abandonar os privilexios tras o arranque, así que a conta de execución necesita permiso de busca en cada directorio pai e permiso de lectura no ficheiro. Comprobe ambos coa conta de execución e non con root, ou a proba demostrará o incorrecto.
En hosts con systemd unha unidade endurecida tamén pode ocultar a ruta, cunha vista de só lectura ou un directorio de sistema protexido. Desde dentro do servizo iso é indistinguible dun ficheiro ausente, así que revise as restricións da unidade antes de ir buscar un erro de permisos. Lea o ficheiro da unidade antes de culpar ao modo do ficheiro.
Confirme no servidor, non no cliente
O rexistro do servidor nomea que ocorreu: abrir a lista, cargala ou fallar a verificación co número de serie revogado. O cliente só informa dun fallo xenérico de aperto de mans, e por iso os rexistros do cliente son un mal lugar para buscar unha decisión de revogación.
Verifique cun intento novo desde o perfil revogado e logo detéñase. Unha conexión correcta desde ese perfil é o sinal para inspeccionar a ruta do ficheiro e a conta de execución, non para supor que a lista estaba mal. Conserve ese intento correcto como proba de aceptación, e non conte unha reconexión que non observou.
Que non revoga nada
Borrar o perfil dun portátil, quitar o ficheiro do certificado do cliente ou dicirlle ao usuario que deixe de conectar non cambia nada no servidor. O certificado segue sendo válido ata que a autoridade rexistra a revogación e o verificador le a lista resultante.
Por iso tamén paga a pena escribir a cadea: rexistre a revogación, xere e asine a lista, distribúa exactamente ese ficheiro e confirme que a conta do servizo pode lelo. Cada elo é curto, e calquera que falte deixa un cliente revogado conectando alegremente. Unha lista de comprobación de catro liñas supera unha suposición sen ningunha.