Por lo que pude ver, los certificados son autofirmados. Cuando A quiere llamar a B, después de que terminan de transmitir los datos al servidor, inician la comunicación entre ellos. Los certificados son autofirmados, por lo tanto, no hay problema en cambiarlos. ¿Hay algún mecanismo para asegurarse de que si C está en el mismo wifi que B, por qué no pudo enviar a A y B el certificado de C e interceptar el certificado de A y B y luego procesar toda la conversación?
¿Hay algún hash que se envía de A a B y viceversa a través del servidor de autenticación que luego puede validarse con los certificados?