Un PKI es un sistema para permitir la distribución segura de claves públicas. Los certificados emitidos por la PKI permiten que los distintos sistemas conozcan las claves públicas de cada uno con cierto nivel de garantía de que las claves son genuinas. En su caso, ya asume que cada uno de sus dos puntos finales conoce la clave pública del otro punto final, es decir, que el problema que PKI trata de resolver ya se ha resuelto. No hay necesidad de una PKI en su caso, entonces.
Este conocimiento mutuo de las claves públicas se puede escalar a un canal protegido de datos bidireccional, pero eso no es algo fácil de hacer; no se puede evacuar con un simple "ciframos los datos con la clave pública del otro sistema"; como otros han señalado, esto sufrirá de ataques de repetición (al menos). Hay muchos detalles de los que preocuparse. Un protocolo en el que todos estos detalles se han tratado de manera dolorosa, a lo largo de dos décadas de roturas y reparaciones, es, de hecho, SSL . Hasta ahora, la mayoría de las personas que pensaron que podrían hacerlo mejor han fracasado, a veces de forma hilarante, a menudo espectacularmente. SSL incluye todo tipo de características que realizan un seguimiento de fragmentos de datos individuales ("registros" en el lenguaje SSL) y detectan de manera confiable las alteraciones externas, incluidos los paquetes reordenados, descartados o duplicados; también garantiza una terminación verificada (cuando la conexión está cerrada por una máquina, la otra máquina tiene alguna garantía de que esta fue activada por la otra máquina, no por un atacante que inserta un paquete RST falso).
Tenga en cuenta que en SSL, el cliente y el servidor se envían sus claves públicas entre sí como parte de las cadenas de certificados. Esto es compatible con el modelo PKI en el que un cliente (respectivamente un servidor) aprende una clave pública del servidor (respectivamente una clave pública de un cliente) a través de la validación de certificados. Sin embargo, nada obliga al cliente y al servidor a procesar los certificados de una forma pura de PKI X.509. Lo que importa es que el cliente (resp. El servidor) use la clave pública correcta del servidor (resp. El cliente). Si el cliente ya conoce la clave del servidor, entonces el cliente simplemente puede usarla en SSL e ignorar cualquier blob que el servidor haya enviado como certificado. Por lo tanto, SSL no está vinculado intrínsecamente a X.509 ni a ningún otro tipo de PKI.