Estoy diseñando un marco de notificación basado en la web (es decir, un usuario puede suscribirse a las actualizaciones de un servicio u otro usuario) donde la comunicación entre los usuarios está cifrada.
La comunicación de usuario a usuario en la web requiere que un servidor actúe como un relevo. El problema es que estoy funcionando suponiendo que el servidor en sí está comprometido (aunque los clientes aún están seguros).
Creo que he diseñado una configuración que significa que lo peor que puede hacer un servidor es analizar el tamaño de los mensajes y las direcciones IP, o eliminar las notificaciones. Es decir, incluso un servidor malintencionado no puede leer el contenido real de la notificación.
El paquete junto con el sistema de notificación es una forma de proporcionar secretos para usar con las API existentes. Entonces, puede presentar un perfil básico en la web (como una API), y me "suscribo" a su perfil (firmado con mi clave pública, etc.) y uno de los primeros mensajes que recibo a través de mi flujo de notificación es un conjunto de secretos con los que hago / firmo mis solicitudes a su API con la esperanza de obtener contenido adicional.
Entonces, mi pregunta es: ¿existen técnicas existentes (o incluso estándares) para este tipo de cosas, preferiblemente basadas en JSON? Antes de intentar obtener comentarios sobre mi plan salvaje, me gustaría saber si hay una configuración existente que pueda usar o imitar.