El certificado SSL del cliente falla en Safari (¿y qué es SOSCCThisDeviceIsInCircle?)

Tengo dificultades para usar un certificado X.509 para realizar la autenticación del cliente desde Safari (9.0.1, como en OS X 10.10.5).

El síntoma es que voy a un https://...sitio que verifica el certificado del cliente, pero parece que Safari simplemente se bloquea como si estuviera esperando una respuesta del servidor. En la consola de errores informa Failed to load resource: cancelled(y en uno de los servidores con los que probé esto, sobre el cual tengo control, los registros relevantes informan que el navegador pareció cerrar abruptamente la conexión; no hay otra indicación allí de una falla de protocolo) .

El certificado es válido y tiene una buena firma de CA, según lo verificado por openssl, y por el hecho de que funciona como se esperaba con Firefox, Chrome y curl. Tenga en cuenta que Chrome y OS X curlusan el llavero y Firefox no, por lo que no hay un factor común allí. Además, OS X curlse basa en SecureTransport en lugar de OpenSSL, por lo que, creo, usa la misma biblioteca SSL que Safari (no sé sobre Chrome a este respecto).

Este no es un problema del lado del servidor, porque otros que usan la misma versión de Safari pueden acceder a la misma URL con certificados de la misma CA. Además, puedo conectarme directamente a ese sitio usando Chrome, que por supuesto también usa WebKit y que usa el mismo certificado, a través del llavero.

Lo más parecido a un diagnóstico que puedo encontrar es que aparece un mensaje en la Consola cada vez que hago esto, diciendo

2015-11-13 18:43:53.329 Keychain Access[1373]:  SOSCCThisDeviceIsInCircle SOSCCThisDeviceIsInCircle!! 58

(el número final se incrementa cada vez).

No he podido encontrar nada en absoluto relacionado con esa cadena, aparte de pasar menciones en algunas publicaciones del foro claramente desconcertadas.

Intenté eliminar las preferencias de identidad de Acceso a llaveros sin éxito, intenté eliminar certificados similares (caducados) del llavero e intenté exportar, eliminar y volver a importar el certificado correspondiente; todo sin efecto.

¡Estoy perplejo! ¿Alguien tiene alguna sugerencia? Dado que esto parece ser un problema específico de Safari, estoy preguntando aquí antes de probar el SE de seguridad.

SOSCCThisDeviceIsInCircle es un mensaje de diagnóstico para manejar el cambio de versión y la detección de fusión en archivos sincronizados de iCloud. Puede ignorarlos o crear un nuevo usuario de prueba para estar seguro de que está verificando el llavero del sistema y la seguridad del sistema y no está tratando con problemas de confianza o corrupción a nivel de usuario.
Solo un detalle: Chrome no usa WebKit, sino Blink (que es una bifurcación).
@bmike Gracias, eso tiene sentido. Es extraño que parezca estar relacionado con los accesos a un sitio no relacionado, pero... Eso probablemente se puede descartar como significativo. Oh bien.
@samh Lo había olvidado, gracias. Y veo que Blink parece no incluir la capa SSL de la transacción: estos se implementan en Chrome, no en Blink (si estoy leyendo la descripción general correctamente). Eso significa que 'funciona en Chrome' probablemente no sea significativo después de todo. Cada vez se parece más a un problema específico de Safari.
Además, qué URL está fallando: podría ser baja seguridad en la configuración del servidor o un escenario de tipo MITM degradado...

Respuestas (2)

Me gusta usar la aplicación Acceso a llaveros para solucionar problemas de confianza criptográfica y también descubro que hacer una VM limpia de OS X o al menos una nueva cuenta de usuario ayuda a asegurarme de que estoy comenzando desde una cadena de confianza conocida.

  • Abrir acceso a llaveros
  • en el menú Acceso a llaveros, seleccione Asistente de certificados y luego Evaluar un certificado

A partir de ahí, puede usar la herramienta SSL para evaluar las cosas y comenzar a separar lo que está fallando o teniendo éxito. Por lo general, vale la pena alternar entre esa herramienta y Safari para clasificar los errores.

Gracias por la sugerencia (que parece una herramienta útil), pero estoy bastante seguro de openssly de la inspección de que el certificado está bien. Sin embargo, intentaré usar el certificado de otro usuario y veré si algo falla.
Por lo general, la cadena de confianza que usa Safari es el problema. La herramienta le permite ver la procedencia y la cadena de forma más explícita. Además, es posible que deba examinar el protocolo negociado, Safari está aumentando el rechazo de protocolos y tamaños de cifrado rompibles. @NormanGray

Adjunto una no respuesta:

Parece que este no es un problema general de certificado o confianza, sino un error relacionado con Safari que , a pesar de algunos esfuerzos, no he podido reducir más allá de eso (actualmente estoy usando Safari 9.1.2 en OS X 10.10 .5).

El certificado en cuestión no funciona con varios sitios (incluido el sitio web de su propio emisor), pero el mismo certificado funciona de manera consistente con esos sitios cuando se usa con Chrome (que también usa Acceso a Llaveros) o Firefox (que no lo hace).

Entonces, si está viendo esto porque tiene el mismo problema (y estoy agregando esta respuesta porque Stackexchange me acaba de decir, para mi sorpresa, que esta pregunta ya se ha visto más de 1000 veces), entonces mi consejo es:

  1. Utilice un navegador diferente; y
  2. Si puede reducir más esto, entonces muy bien hecho (y gracias), y considere enviar un informe de error al respecto : el mundo estará en deuda con usted.