Tomado de Wikipedia , este es el pretexto de mi pregunta:
Una autoridad de certificación (CA) es una organización que almacena pública Las llaves y sus propietarios y todas las partes en una comunicación confían en este Organización (y conoce su clave pública). Cuando el navegador web del usuario recibe la clave pública de www.bank.example también recibe una firma digital de la clave (con algo más de información, en un denominado certificado X.509). El navegador ya posee al público. clave de la CA y, en consecuencia, puede verificar la firma, confíe en la certificado y la clave pública en él: desde www.bank.example utiliza un clave pública que certifica la autoridad de certificación, una falsificación www.bank.example solo puede utilizar la misma clave pública. Desde lo falso www.bank.example no conoce la clave privada correspondiente, no se puede crear la firma necesaria para verificar su autenticidad.
Recibo que las autoridades de certificación ayudan a frustrar los ataques de intermediarios, pero no entiendo el punto de gastar dinero para usar el certificado de una autoridad de certificación si los navegadores simplemente codifican las claves públicas de la AC para validarlo fuera de HTTPS comunicaciones que parecen depender en cierta medida del navegador porque ... asumiendo que uso el cifrado RSA con SHA1 y OAEP en mi servidor, ¿no es tan seguro si :
- Generar un par de claves públicas y privadas secundarias
- Mantenga la clave secundaria en secreto, escríbala en algún lugar y guárdela dentro de una bóveda
- Firmar siempre la clave pública principal de mi servidor con la clave privada secundaria
- Codifique la clave pública secundaria en mis aplicaciones cliente
- ¿Usar mi clave pública secundaria para verificar si el servidor es el servidor que dicen que está verificando que la clave pública que me emiten está firmada con mi clave privada secundaria?
Estoy pensando en usar este modelo a través de un servidor de socket TCP donde puedo especificar mi propio protocolo y esencialmente ser mi propio "navegador" ...
Esencialmente, ¿esto es todo lo que hay detrás de una CA? Eso es bastante triste ... honestamente, se siente como una estafa para ganar dinero cuando puedes convertirte en tu propio CA. Quiero decir, si la CA está comprometida, los navegadores necesitan parches, las claves se vuelven a emitir, etc. Si la aplicación de mi cliente se ve comprometida, no necesito esperar mientras el agujero está cerrado, puedo expulsar rápidamente una nueva red pública / privada par de claves y envíe la clave pública de mi pseudo-CA a las aplicaciones cliente.