¿Debo usar el número de serie del certificado o el identificador de la clave del sujeto para buscar una clave pública?

1

Estoy diseñando un mecanismo de autenticación de API similar al que AWS . Como parte de eso, debo buscar qué clave pública pertenece a qué usuario verificar. Las claves públicas provienen de los certificados x509 que le emitimos al usuario, así que sé que tienen el número de serie y el identificador de la clave del sujeto (SKID). ¿Debo usar el número de serie o el SKID como una identificación única?

La ventaja de SKID es que es un hash de la clave pública, por lo que se puede calcular de forma independiente a partir del certificado. Sin embargo, el número de serie es simplemente un número entero, mucho más fácil de tratar.

    
pregunta nullgraph 30.07.2015 - 23:38
fuente

1 respuesta

0

Si solo acepta certificados emitidos por usted y valida ese hecho, entonces el uso de SKID no tiene ningún beneficio de seguridad sobre el número de serie. Si usa el número de serie y acepta certificados autofirmados (o cualquier otro certificado de las CA que no sean usted), un atacante que conoce la clave pública puede hacerse pasar por usuarios.

De lo contrario, no hay diferencia en cuanto a seguridad. Por supuesto, tendrás que asegurarte de que los SKID que emites sean realmente únicos, y el atacante no puede, por ejemplo. abusar del hecho de que su infraestructura de firma de copia de seguridad no puede no cuidar los duplicados.

Como su respuesta indica que todos los certificados están firmados por usted, sugeriría que utilice SKID. Puede hacer que su infraestructura de firmas ahorre algunos bits del ancho int deseado (por ejemplo, 64 bits), y usar esos bits ahorrados para almacenar el certificado del firmante, ya sea en el "lado de almacenamiento", o ya con los firmantes, entonces puede asegurarse la singularidad, también.

    
respondido por el user10008 31.07.2015 - 06:42
fuente

Lea otras preguntas en las etiquetas