Aunque ProtonMail y Wire cifran los mensajes en el lado del cliente y no almacenan versiones sin cifrar en el servidor, los correos electrónicos y mensajes se pueden buscar.
Discourse también descifra los mensajes en el lado del cliente. Pero parece que la función de búsqueda no puede ver los mensajes que el lado del cliente no ha cargado y descifrado.
Sería bueno tener una función de búsqueda completa para mensajes cifrados. Al menos supongo que es teóricamente posible porque algunos servicios lo hacen posible.
Es absolutamente posible hacer búsquedas cifradas. El verdadero truco es producir algo que sea seguro (hay mil millones de maneras de producir algo que parece seguro, pero que se desintegra ante la primera persona que conoce estadísticas elementales), eficiente (las búsquedas en grandes conjuntos de datos no tardan demasiado) y efectivo (obtener los resultados que deseabas, no solo lo que pediste). No es fácil.
Este tipo de cosas es una de mis prioridades, ya que soy el fundador del proyecto Encrypted Query Operations (enquo.org), que investiga precisamente este tipo de cosas. He utilizado Discourse como campo de pruebas para el cifrado de consultas práctico (aunque en este momento ese trabajo está en pausa mientras me centro en otras cosas).
Si hay suficiente interés en hacer esto realidad, sin duda estoy dispuesto a seguirlo adelante con aquellos que quieran impulsarlo.
Editado para añadir: He investigado las funciones de búsqueda en ProtonMail y Wire. Parece que ProtonMail utiliza la búsqueda del lado del cliente, según esta página, “Logramos esto creando un índice local de sus correos electrónicos y almacenándolo utilizando el almacenamiento web de su navegador”. Wire no menciona cómo realiza la búsqueda en su documento técnico de seguridad, lo que me lleva a sospechar que, probablemente, también utiliza la búsqueda del lado del cliente, porque de lo contrario los mecanismos criptográficos implicados definitivamente querrían ser revelados en ese documento técnico.