2011-08-25 6 views
5

OK Muchachos y muchachos de SSL avanzado: agregaré una recompensa después del período de dos días, ya que creo que es un tema complejo que merece una recompensa para cualquiera que reflexione respuestasSSL avanzado: Autoridad de certificación intermedia y despliegue de cuadros incrustados

Algunas de las suposiciones aquí son simplemente eso: suposiciones, o más precisamente conjeturas esperanzadoras. Considere esto como un acertijo, simplemente diciendo 'Esto no es posible' no tiene sentido.

Las soluciones alternativas y parciales son bienvenidas, experiencia personal si ha hecho algo 'similar'. Quiero aprender algo de esto, incluso si todo mi plan es defectuoso.

Este es el escenario:

estoy desarrollando en un sistema Linux embebido y quieren su servidor web para poder servir fuera de la caja, SSL sin problemas. He aquí los criterios de diseño que estoy con el objetivo de:

IMPRESCINDIBLES:

  • que no se puede tener al usuario añadir mi certificado de CA de cosecha propia a su navegador
  • No puedo permitir que el usuario agregar un certificado autofirmado generado estáticamente (en mfg time) a su navegador
  • No puedo permitir que el usuario agregue un certificado autofirmado generado dinámicamente (en el arranque) a su navegador.
  • No puedo configurar de forma predeterminada HTTP y activar/desactivar el alternar para SSL. Debe ser SSL.
  • Tanto la caja integrada como el navegador web pueden o no tener acceso a Internet, por lo que debe asumirse que funciona correctamente sin acceso a Internet. Las únicas CA raíz en las que podemos confiar son las enviadas con el sistema operativo o el navegador. Supongamos que esa lista es "básicamente" la misma en todos los navegadores y sistemas operativos, es decir, tendremos una tasa de éxito de ~ 90% si confiamos en ellos.
  • No puedo usar una operación intermitente, es decir, 'Cámara de compensación de certificados SSL de Fast Eddie's - ¡con precios tan bajos, nuestros servidores DEBEN ser pirateados! '

Niza a Ricos:

  • que no quiero que el usuario advirtieron que el nombre de host del certificado no coincide con el nombre de host en el navegador. Considero que esto es bueno tenerlo porque puede ser imposible.

no solicitado:

  • no quiero enviar el mismo conjunto de claves estáticas para cada caja. Tipo de implícita en la lista de 'no puedo', pero sé el riesgo.

Sí Sí, lo sé ..

  • Puedo y proporcionar un mecanismo para que el usuario suba su propio certificado/clave, pero considero que este 'modo avanzado' y fuera del alcance de esta pregunta. Si el usuario es lo suficientemente avanzado como para tener su propia CA interna o comprar claves, entonces son increíbles y los amo.

casquillo de pensamiento Tiempo

Mi experiencia con SSL ha sido la generación de CERT/claves para ser firmado por la raíz 'real', así como la intensificación de mi juego un poco con la fabricación de mi propia CA interna , distribuyendo certs internos "autofirmados". Sé que puedes encadenar certificados, pero no estoy seguro de cuál es el orden de las operaciones. Es decir, ¿el navegador "sube" la cadena ve una CA raíz válida y lo ve como un certificado válido, o necesita tener la verificación en todos los niveles?

Me encontré con la descripción de intermediate certificate authority que me hizo pensar en posibles soluciones. Puede que haya pasado de 'la solución simple' a 'modo de pesadilla', pero ¿sería posible:

idea loca # 1

  • Obtener un certificado de autoridad de certificación intermedia firmado por un 'real 'CA. (ICA-1)
    • ROOT_CA -> ICA-1
  • Este certificado se utiliza en tiempo de fabricación para generar un sin contraseña sub-intermedio par autoridad de certificado único por caja.
    • ICA-1 -> ICA-2
  • Uso ICA-2 para generar un certificado/clave de servidor único. La advertencia aquí es, ¿puedes generar una clave/par para una IP (y no un nombre DNS?)? Es decir, un caso de uso potencial para esto sería que el usuario se conecta al recuadro inicialmente a través de http y luego redirecciona al cliente al servicio SSL utilizando el IP en la URL de redireccionamiento (para que el navegador no se queje de discrepancias). Esta podría ser la carta que derriba la casa. Como la conexión SSL debe establecerse antes de que se produzcan redirecciones, puedo ver que eso también es un problema. Pero, si todo funcionara mágicamente
  • ¿Podría entonces utilizar el ICA-2 para generar nuevos pares de cert/key cada vez que el cuadro cambie IP para que cuando el servidor web vuelva a aparecer siempre tenga un llavero "válido".
    • ICA-2 -> SP-1

Ok, eres tan listo

Lo más probable es que mi solución complicada no funcionará - pero sería genial si lo hizo. ¿Has tenido un problema similar? ¿Qué hiciste? ¿Cuáles fueron las compensaciones?

+1

¿Todavía puede utilizar HTTP plano para cargar una CA raíz privada o un certificado autofirmado del servidor al navegador del usuario? Se puede realizar como un proceso de "un clic" (ok, no uno, sino muy sencillo) en el momento de la instalación del servidor. ¿DEBE tener realmente "no HTTP, no cert install"? – blaze

+1

Desafortunadamente, los 'imprescindibles' se basan en respuestas negativas sobre la solución actual de tener que hacer clic con un certificado autofirmado. Pero después de hablar con un par de nuestros defensores de los clientes, aparentemente es tan malo como disparar al perro del cliente. Es un dolor en el culo, y no ayudada por la actitud cada vez más irritable de Firefox sobre los certificados autofirmados. Eso es lo que me tiene buscando las estrellas, tiene que haber una mejor manera. auth_digest no lo resuelve, SRP-TLS se acerca para algunos aspectos, pero aún está a punto de perder soporte. – synthesizerpatel

Respuesta

6

Básicamente, no, no puedes hacer esto de la manera que esperas.

No es una autoridad SSL intermedia, y no puede permitirse convertirse en una. Incluso si lo fuera, no hay forma de que se le permita distribuir a los consumidores todo lo necesario para crear nuevos certificados válidos para cualquier dominio, de manera predeterminada en todos los navegadores. Si esto fuera posible, todo el sistema se vendría abajo (no es que aún no tenga problemas).

En general, no se puede lograr que las autoridades públicas firmen certificados emitidos a direcciones IP, aunque técnicamente no hay nada que lo impida.

Tenga en cuenta que si realmente está distribuyendo las claves privadas en cualquier cosa que no sean los módulos de cifrado seguros a prueba de manipulaciones, sus dispositivos realmente no están protegidos por SSL. Cualquiera que tenga uno de los dispositivos puede extraer la clave privada (especialmente si no tiene contraseña) y realizar ataques MITM válidos y firmados en todos sus dispositivos. Desalientas las escuchas esporádicas ocasionales, pero eso es todo.

Su mejor opción es probablemente obtener y firmar certificados para un subdominio de Internet válido, y luego obtener el dispositivo para responder a ese subdominio. Si se trata de un dispositivo de red en la ruta saliente, probablemente pueda hacer alguna magia de enrutamiento para que responda para el dominio, de manera similar a la cantidad de sistemas de jardines amurallados que funcionan. Podría tener algo como "system432397652.example.com" para cada sistema, y ​​luego generar una clave para cada casilla que corresponda a ese subdominio. Haga que el acceso directo a IP redirija al dominio, y tenga la casilla de interceptar la solicitud, o haga algunos trucos de DNS en Internet para que el dominio resuelva la IP interna correcta para cada cliente. Utilice un dominio de host de propósito único para eso, no comparta con sus otros sitios web comerciales.

Pagar más por los certificados en realidad no los hace más o menos legítimos. Para cuando una empresa se ha convertido en una CA raíz, está lejos de ser una operación fallida. Debe verificar y ver si StartSSL es adecuado para sus necesidades, ya que no cobran por cada certificado.

+0

En el asunto de 'Solo tan seguro como el hardware físico', concederé que estoy de acuerdo y entiendo ese aspecto. El deseo de tener claves únicas es evitar el escenario donde se implementa una única clave/certificado válida en cada cuadro (lo que da como resultado el problema de desajuste del servidor) ya que una vez que se saca el privado de una casilla, se puede descifrar cada cuadro. Con respecto a los costos de los certificados intermedios, de alguna forma supuse que sería el caso. Desearía que la EFF comenzara una CA sin fines de lucro. – synthesizerpatel

+0

Si está buscando una CA de bajo costo por certificar, quiere StartSSL (pensé que estaba haciendo una investigación antes con las cosas "rápidas de Eddie ...", así que no las mencioné) Su modelo lo verifica y luego le permite emitir tantos certificados como necesite. Su caso de uso probablemente esté en el límite de sus términos, pero creo que está en el lado correcto de la línea. ¿Es probable que el modelo de subdominio personalizado funcione para su caso de uso? –

+1

Esto está muerto. Debido a que no hay una solución tecnológica, tendrá que manejarla en ventas o soporte. Alguien tiene que decirle al cliente cuáles son las opciones de SSL de tal manera que se las aliente a obtener un certificado no autofirmado. Diablos, estoy seguro de que podría asociarse con alguien para ofrecerlo en la aplicación y tomar una parte de la venta como referencia. – NotMe

Cuestiones relacionadas