26 KiB
Protección del menor y comunicación — Juegoland v2
Estado: requisito de diseño transversal, revisado el 5 de octubre de 2026. Complementa el modelo, la API y las políticas de producto, que concretan admisión, supervisión, plazos y operación. No acredita que la protección esté implementada en producción ni certifica cumplimiento legal.
1. Decisiones confirmadas
El usuario ha fijado dos condiciones: chat desactivado para menores y teléfono verificado mediante SMS para quien pueda usar el chat. Se aplican a todo el producto, no solo al botón de enviar.
- Un menor no envía, lee, se suscribe ni recupera historial de chat. Tampoco recibe fragmentos en avisos, exportaciones de sala, audio, accesibilidad, respuestas de errores o API antigua.
- La edad desconocida, caducada o en revisión no acredita mayoría de edad. Se mantiene la restricción de comunicación.
- El SMS acredita control del número en ese momento. No acredita edad, identidad civil, parentesco, unicidad de persona ni ausencia de abuso.
- Un tutor, anfitrión, código de sala o permiso de juego no habilita chat a menores. No hay excepción parental al bloqueo decidido.
- Jugar sin chat no exige aportar un teléfono solo para verificar una función inaccesible. El juego debe ofrecer instrucciones, estados y acciones suficientes sin conversación.
- Una sala privada tampoco está exenta. Como política adicional de diseño, las salas protegidas/mixtas tienen chat desactivado para todos sus participantes; su configuración no cambia al salir un menor. Solo salas de admisión adulta pueden ofrecer chat a adultos elegibles.
El perfil inicial fija umbral de chat de 18 años y puede exigir uno superior según la política aplicable. P7 desarrolla una propuesta territorial para España, cuentas tuteladas de 6–17 y alta autónoma adulta, con modo individual seguro para edad desconocida. Son decisiones de producto diferenciadas de umbrales legales. Verificador, procedimiento de tutela y validación territorial son dependencias de activación. No se confunde edad mínima para jugar con umbral para comunicar.
2. Modelo de autorización
Registros privados independientes:
| Registro | Campos conceptuales | Qué prueba |
|---|---|---|
| Comprobación de edad | Estado, umbral acreditado, método, emisor, referencia de evidencia, emisión/caducidad, versión de política | Cumplimiento del umbral requerido; una fecha escrita por el usuario no es prueba suficiente. |
| Teléfono | Número cifrado, índice HMAC para límites, estado, fecha de comprobación, vencimiento/revocación | Control del número; la vista propia muestra solo terminación enmascarada. |
| Restricciones | Capacidades suspendidas, motivo interno, inicio/fin, revisión | Si puede comunicar, jugar, invitar o publicar contenido. |
| Relación de supervisión | Adulto responsable, menor, alcance, prueba, aceptación y revocación | Autorización específica para supervisar; no deriva de compartir teléfono/correo. |
| Consentimientos | Finalidad, versión, quién lo otorgó, fecha y revocación | Una decisión concreta; no reemplaza los registros anteriores. |
safetyRevision aumenta con cualquier cambio de estos permisos. La condición efectiva es:
chat.read/send =
sesionValida
AND cuentaHabilitada
AND condicionesVigentes
AND mayoriaDeEdadAcreditadaYVigente
AND telefonoSMSVerificadoYVigente
AND sinRestriccionDeComunicacion
AND salaDeAdmisionAdultaConComunicacionHabilitada
AND accesoALaSalaYAlIntervaloDeMensajes
AND politicaDeBloqueosPermiteEntrega
Además, send exige sala no terminal y membresía no retirada. La política se evalúa en HTTP, Socket.IO, consultas de historial, recibos que contengan datos, generación de avisos y publicación de outbox. permissions del cliente es una ayuda de interfaz; nunca autoridad. Las razones detalladas de edad/teléfono se muestran únicamente al propio usuario; a terceros se les ofrece indisponibilidad genérica.
Un cambio invalidante revoca la suscripción antes de nuevas entregas, emite platform.access-changed, vacía colas afectadas y elimina el caché de chat controlado por el cliente. El envío revalida permisos incluso si la publicación se preparó con otra revisión. El cliente nunca persiste chat en almacenamiento offline ni cachés compartidos. Una comprobación caída o una prueba caducada no abre el acceso por defecto.
3. Verificación por SMS
Solo la cuenta autenticada, con mayoría de edad ya acreditada y autorización de comunicar salvo teléfono, puede solicitar este flujo. No se envían SMS automáticamente al navegar ni se verifica a menores para intentar desbloquear el chat.
Un invitado permanece en modo de edad desconocida; para iniciar comprobación de edad/teléfono convierte su identidad en cuenta recuperable. La conversión por sí misma no eleva permisos.
- El usuario solicita verificar un número. El servidor normaliza a E.164, valida destinos permitidos y crea
challengeIdligado a principal, sesión, finalidad y número. Requiere autenticación reciente al cambiar un número existente. - Una tarea de envío idempotente solicita el SMS al proveedor. Sus estados son
queued,sent,failed,expired,lockedoverified. Un acuse de entrega del proveedor solo confirma entrega, no verificación. - El usuario introduce el OTP. El servidor comprueba desafío, vigencia, intentos y código con comparación segura, y consume el desafío una sola vez.
- Se confirman juntos la verificación del número, el recibo y
safetyRevision. Después se recalculan capacidades; el cliente vuelve a suscribirse si sigue siendo elegible.
Valores técnicos iniciales propuestos: OTP aleatorio de 6 cifras, vigencia de 5 minutos, hasta 5 intentos por desafío, 60 segundos entre envíos, hasta 3 envíos en 15 minutos por principal y número, además de límites por IP y presupuesto global. Son configurables y deben ensayarse frente a abuso y acceso legítimo. Reenviar crea un desafío nuevo e invalida el anterior sin reiniciar los límites acumulados.
El OTP no se guarda en claro ni con un hash simple susceptible de probar las 10^6 combinaciones: se guarda un MAC con clave de servidor y contexto del desafío, con borrado al vencer/consumir. El teléfono va cifrado; el índice de límites usa HMAC con otra clave, no un hash público enumerable. Logs, métricas y trazas excluyen número completo, OTP y cuerpo de proveedor.
La huella del recibo de verificación tampoco permite probar OTP fuera de línea: usa MAC, no un hash público del cuerpo. Un intento incorrecto confirmado conserva recibo y contador; reintentar el mismo comando no cuenta dos veces, pero corregir el código es otro intento sujeto al límite. Cambiar el código conservando el UUID se rechaza antes de comprobarlo.
El proveedor se llama desde servidor; webhooks firmados, con ventana temporal y deduplicación. Un reintento HTTP o de outbox no debe multiplicar envíos facturados: se reutiliza la clave de idempotencia del proveedor o se reconcilia el estado antes de reenviar. Si el proveedor no permite resolver un resultado incierto, se marca pendiente y se aplica un nuevo envío explícito sujeto a límites. No se promete atomicidad entre PostgreSQL y un proveedor externo.
Cambiar o declarar perdido un número obliga a revalidar y puede suspender el chat; recuperar una cuenta no se basa únicamente en poseer un número reciclado. La base de políticas exige reverificación a los 180 días y tras recuperación sensible/cambio/compromiso. Compartir teléfono familiar no fusiona cuentas ni acredita tutela; cuotas y detección de abuso no se convierten en prueba de identidad. Faltan proveedor y prueba de sus capacidades reales, no una decisión de habilitar chat por defecto.
4. Comprobación de edad y supervisión
La aplicación necesita una prueba de elegibilidad, no un archivo con documentos de toda la población. La preferencia de diseño es un resultado mínimo de un verificador adecuado: umbral cumplido, emisor, fecha, caducidad y referencia verificable. Debe estar ligado al principal, propósito, audiencia y nonce de la solicitud para impedir usar la prueba de otra persona o repetir un callback.
Un callback firmado por el proveedor o una validación servidor a servidor puede completar la comprobación; el navegador no puede enviar adult: true como resultado. Una declaración puede activar inmediatamente la protección más restrictiva, pero nunca elevarla a adulto acreditado. Cambios o disputas sobre edad mantienen el modo seguro hasta resolverlos.
Antes de adoptar un proveedor se evalúan exactitud, fallos cerca del umbral, accesibilidad, sesgos, recurso/corrección, tratamiento de documentos/imágenes y supresión. No se incorpora por defecto biometría propia, copia de documentos ni inferencia conductual de edad. La declaración del EDPB sobre comprobación de edad sirve de referencia para necesidad, proporcionalidad y minimización; elegir SMS no satisface esa evaluación.
El vínculo con responsable requiere el flujo verificable y revocable definido en P7, con alcance limitado, evidencia de responsabilidad separada de edad adulta y autorización de contactos por principal. No se concede control por conocer nick, correo o teléfono. La supervisión informa de actividad y controles pertinentes; no abre chat ni expone información privada de otros jugadores. Los esquemas, evaluación de evidencia y procedimiento operativo deben implementarse antes de permitir cuentas infantiles. Las disputas no transfieren control automáticamente.
5. Protección en todas las superficies
| Superficie | Contrato |
|---|---|
| Registro/invitados | Protección por defecto, explicación comprensible y minimización. Sin elevar permisos por cambiar fecha, borrar cookie o convertir invitado. |
| Catálogo | Juegos revisados para el público admitido. La política vive en el registro de publicación; no se inventa un campo del manifiesto del motor sin versionarlo. |
| Descubrimiento/perfiles | Sin búsqueda/listado público de menores, edad, contacto, localización o presencia infantil. Estadísticas privadas por defecto. |
| Nombres, títulos y avatares | Para menores/edad desconocida: alias, títulos y presets aprobados. El texto o imagen de un adulto no se muestra a menores sin proyección segura. Se incluyen nombres históricos de autor. |
| Invitaciones | No publican datos del menor; pertenencia y entorno se autorizan aparte del token. Sin contactos espontáneos adulto-menor ni aprobación implícita por enlace. |
| Salas | Proyección apta para cada destinatario. Un menor recibe movimientos y estados del juego, no chat adulto, mensajes de invitación sin revisar o medios arbitrarios. |
| Pantalla compartida | Solo proyección pública declarada por el juego. Pantalla común autorizada por anfitrión; TV personal por su propietario y, en protegidas, responsable autorizado. No muestra alias/avatares identificables, chat, texto libre, roles ni cartas secretas. Revocación y reconexión fallan cerradas. |
| Recursos y juegos futuros | Revisión de imágenes/audio, URLs, contenido editable, dibujos y texto libre. Un paquete no puede abrir un canal de conversación dentro de game.*. |
| Notificaciones/voz | Solo mensajes de sistema sobre el juego; sin extractos de chat ni invitaciones que permitan saltar permisos. No se incluye voz entre jugadores en v2. |
| Compartir/exportar | Se autoriza de nuevo y aplica redacción; no se exportan chats de menores ni perfiles de terceros por haber compartido sala. |
| Cliente y versiones antiguas | Mismos controles servidor. Un cliente incompatible debe actualizar; ocultar controles con CSS no satisface el requisito. |
| Moderación y soporte | Reportar, bloquear y pedir ayuda disponibles sin teléfono/chat. Acceso de personal restringido y auditado. |
| Analítica/publicidad | Sin publicidad personalizada, perfilado comercial ni publicación de edad/teléfono. Solo métricas operativas mínimas y agregadas. |
P7 limita menores a juego individual y salas privadas protegidas con contactos autorizados; no hay emparejamiento público infantil en este alcance. Invitados/edad desconocida permanecen en modalidad individual hasta completar requisitos. Revocación de tutela/contacto corta nuevas entradas/acciones y cancela de forma coordinada una partida afectada, sin resultado competitivo inventado. La ausencia de chat reduce contacto, pero no elimina abuso mediante nombres, imágenes o invitaciones.
El perfil multidispositivo trata la TV como dispositivo pasivo, sin cuenta, plaza ni autorización social. Como cualquiera presente puede ver la pantalla física, la proyección debe ser segura aun si hay personas fuera del grupo autorizado delante de ella. El servidor no entrega la vista de un jugador o anfitrión y corta la suscripción al terminar o revocar el vínculo. No se publica un juego con pantalla compartida hasta probar todos sus campos y eventos con salas protegidas.
El QR de mesa solicita entrada sin invitaciones; el QR de mando personal continúa una invitación convencional y vincula únicamente la TV de esa membresía. Ninguno acredita edad, responsabilidad o contacto autorizado. Crear una mesa protegida sigue requiriendo anfitrión responsable y todas sus relaciones vigentes. Pasar de mando a móvil completo conserva esas comprobaciones y solo recibe los datos privados propios; revoca la TV personal sin abandonar la partida. El perfil temporal tampoco publica mediciones o tiempos privados de otros participantes al tablero.
Los recursos publicados en CDN y avatares públicos deben ser aptos para menores en esta versión. No basta con ocultar una tarjeta de catálogo: una URL pública sigue siendo accesible. Una futura distribución de contenido restringido exigiría autorización de archivos y tratamiento de caché propio, fuera del alcance inicial.
Las exportaciones compartibles de salas no son un atajo al historial de chat ni a datos ajenos. Una solicitud de acceso a datos personales propios se atiende por el proceso privado de gestión de datos, sin exigir SMS/chat; si requiere revisar contenido histórico, se tramita con comprobación de titularidad y redacción de terceros, sin abrir la funcionalidad social bloqueada.
No se añaden mensajes libres, emojis sociales o frases elegibles por usuarios a menores como excepción implícita. Si más adelante se aprueban expresiones predefinidas, necesitarán su propia política de frecuencia y abuso. Los textos del sistema sobre reglas y resultados sí forman parte del juego.
6. Bloqueo, reporte y atención
Toda persona puede bloquear/reportar desde una sala o un perfil permitido, y acceder a ayuda. Los reportes de seguridad no exigen SMS, edad adulta o aceptación de nuevas condiciones. La ruta para quien perdió acceso a su cuenta debe tener verificación proporcional, sin revelar datos del denunciado.
El bloqueo es privado. Impide nuevos encuentros/invitaciones dirigidas entre las cuentas y elimina futuras entregas de comunicación entre ellas. En chat de grupo se conserva continuidad mediante marcadores sin contenido para mensajes filtrados. Si ya comparten partida, el bloqueo oculta comunicación y datos sociales sin fabricar un ganador; la UI permite abandonar la vista inmediatamente y ofrece retirada/ayuda según el protocolo.
Un reporte identifica recurso/persona, categoría y nota opcional; la evidencia se referencia en servidor, sin pedir al menor que vuelva a subir contenido dañino. Estados: received → triaged → actioned|dismissed → closed, con reapertura/apelación vinculada. El denunciante ve su estado y respuesta pertinente, nunca investigación privada o datos de otros reportantes.
La política de moderación fija roles, cola urgente, objetivos de primera valoración y apelación humana. La cobertura real, responsables y sustitutos deben asignarse antes de habilitar chat/encuentros públicos; no se anuncia vigilancia permanente sin disponer de ella. Las escaladas externas se definen según jurisdicción y caso, sin automatizar comunicaciones a terceros desde este documento.
7. Conservación y pruebas de aceptación
La matriz de conservación fija plazos para OTP, teléfono, evidencia mínima de edad, supervisión, mensajes, reportes, auditoría y copias. Caducar un desafío elimina su secreto. Revocar teléfono o solicitar borrado elimina o restringe los datos que correspondan; una evidencia de reporte tiene finalidad y acceso separados, no retención indefinida por defecto. Proveedores, exportaciones y restauraciones quedan incluidos.
| Prueba | Resultado exigido |
|---|---|
| Menor con SMS válido o supuesto tutor | Chat sigue bloqueado. |
| Adulto declarado sin prueba, o edad desconocida | Chat bloqueado, sin pedir SMS como atajo. |
| Adulto acreditado sin SMS | Puede jugar según permisos; chat no disponible. |
| Adulto acreditado + SMS + membresía en sala adulta | Acceso solo al chat y período autorizados. |
| Adulto acreditado + SMS en sala protegida/mixta | Chat desactivado también para él. |
| Llamada directa a HTTP/WS/v1/historial | Mismas restricciones que interfaz; sin payloads privados. |
| Cambio de edad, número, suspensión o caducidad con varias pestañas | Suscripciones/colas afectadas se cancelan; nueva entrega denegada. |
| OTP vencido, repetido, de otra sesión, con intentos agotados | Ninguna verificación; límites permanecen. |
| Callback falso/repetido o SMS duplicado | No eleva privilegios ni duplica efecto/envío confirmado. |
| Token de edad emitido para otro principal/audiencia | Rechazo. |
| Nick, avatar, título o evento de juego usado como chat | No llega libremente al menor. |
| TV vinculada a sala protegida, revocada o reconectada | Solo vista común segura; no reaparecen secretos, chat o identidad infantil. |
| Menor sin teléfono desea reportar/bloquear | Puede hacerlo y recibe confirmación comprensible. |
| Restauración de copia con permisos antiguos | Restricciones reaplicadas antes de entregar contenido. |
8. Cómo lo abordan otras plataformas
Consulta de fuentes oficiales: 5 de octubre de 2026. Describen políticas publicadas, no una auditoría de su eficacia ni una recomendación de copiar todos sus métodos.
| Plataforma | Política publicada relevante | Aplicación a Juegoland |
|---|---|---|
| Lichess | Kid Mode permite jugar y bloquea comunicación general; admite mensajes dentro de la misma clase y con su profesor. También restringe foros/blogs/streams/vídeos. Fuente | Separar jugar de comunicar. Aquí no adoptamos las excepciones de clase: el usuario ha desactivado chat para todos los menores. |
| ChessKid | Sin chat libre entre niños; interacción adulta ligada a tutela, expresiones predeterminadas y revisión de nombres. Seguridad, funciones educativas. Su ayuda de mayo de 2026 describe avatares personalizables con elementos aprobados y sin fotos personales. Avatares | Contenido social controlado y presets; ninguna foto libre visible a menores. Las expresiones sociales tampoco se habilitan aquí sin decisión aparte. |
| Roblox | Publicó en junio de 2026 cuentas Kids/Select, revisión adicional de juegos para menores de 16, comprobación de edad para chat y controles parentales. Mantiene restricciones por edad y región. Fuente | La comprobación de edad es distinta del teléfono. El catálogo también necesita política de idoneidad; no copiamos su chat por grupos ni asumimos que debamos usar reconocimiento facial. |
| Discord | Family Center ofrece controles de comunicación/filtros e información de actividad a responsables vinculados sin mostrarles el contenido de los mensajes. Fuente | Supervisión con alcance definido, privacidad y reportes; un responsable adulto no recibe acceso ilimitado por defecto. |
La referencia europea propone combinar privacidad por defecto, reducción de contacto no solicitado, bloqueo/reportes y comprobación de edad proporcionada. Son dimensiones independientes; seguir una guía no equivale a certificar cumplimiento (Comisión Europea).
La exigencia de SMS de Juegoland es una decisión adicional del producto, no un sustituto de estas capas ni una política universal observada en las plataformas anteriores. NIST documenta riesgos de SMS/PSTN, entre ellos cambios de SIM y portabilidad; aquí se usa para comprobar posesión del número con límites y recuperación, sin presentarlo como prueba de edad (NIST).