Revisar e incrementar la seguridad del código de acceso
Datos requeridos
Nombre de entidad desde la que se envía la sugerencia: Fundació i2CAT, Internet i Innovació Digital a Catalunya
* Esta sugerencia no representa ni comparte necesariamente la posición oficial de esta entidad
Detalles sobre la sugerencia
Posible problemática: revisar cuán factible es que un usuario ajeno a una comunicación determinada pueda acceder a un informe activo mediante fuerza bruta. Es decir, al emitir como anónimo una nueva comunicación en el servicio "Bústia Ètica" se genera un código numérico de acceso de 16 dígitos, con el cual el autor puede acceder posteriormente. Por una parte, es un número suficientemente largo y no consecutivo como para que otros miembros puedan llegar a encontrar un número cuyo informe esté activo dentro de su organización. Por otra, si se es capaz de automatizar mediante scripts el proceso de generación de códigos numéricos (salvando las limitaciones de memoria del ordenador) y también la obtención de token y código de sesión para acceder a los informes, no parece arriesgado pensar en que es factible obtener datos de informes ajenos.
Sugerencia: la complejidad de que alguien ajeno pudiese acceder a un informe dado podría incrementarse sensiblemente (en tiempo y en memoria) con ciertos cambios. Posibles opciones: (1) que el código de acceso incluyese caracteres alfanuméricos e incluso símbolos; (2) que se incluyese una segunda clave que sí fuese alfanumérica (p.ej. el mismo UUID4) o con símbolos; (3) que se permitiese introducir un correo anonimizado (bajo la propia responsabilidad del informante, como ya sucede al escribir el propio informe) pero sin necesidad de identificarse con nombre y DNI, y con el cual se podría utilizar 2FA (autenticación en dos factores) para enviar un código temporal de acceso; (4) que se generase un secreto diferente por cada informe activo e indicaciones para que cada informate pudiese configurar un código TOTP (Time-based One Time Password), cuyo código generado variase con el tiempo.
