> For the complete documentation index, see [llms.txt](https://docs.payments.thalescloud.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.payments.thalescloud.io/classic-push-provisioning/es/guia-del-desarrollador/directrices-de-seguridad/general.md).

# General

La siguiente lista muestra los requisitos generales de seguridad que su aplicación debe seguir.

### Use la variante Release del SDK de Thales para aplicaciones publicadas <a href="#use-release-variant-of-thales-sdk-for-publishing-applications" id="use-release-variant-of-thales-sdk-for-publishing-applications"></a>

Antes de publicar en la App Store de Apple o en Google Play, asegúrese de que la aplicación utilice la variante release del SDK.

> <i class="fa-exclamation-circle">:exclamation-circle:</i>
>
> #### Advertencia <a href="#warning" id="warning"></a>
>
> Utilizar una variante de SDK de depuración en una aplicación de producción puede acarrear graves implicaciones de seguridad, exponiendo potencialmente datos sensibles relacionados con los usuarios finales.

### Eliminación de símbolos de depuración <a href="#removal-of-debug-symbols" id="removal-of-debug-symbols"></a>

La aplicación no debe contener símbolos de depuración. Esta práctica aumenta la complejidad de los esfuerzos de ingeniería inversa e impide la identificación fácil de variables sensibles, estructuras y lógica.

### Prevención de fugas de datos sensibles <a href="#prevention-of-sensitive-data-leaks" id="prevention-of-sensitive-data-leaks"></a>

Se requiere una gestión cuidadosa del ciclo de vida para prevenir fugas de datos sensibles mientras la aplicación está en segundo plano. Elimine cualquier dato sensible de la interfaz de usuario antes de pasar a segundo plano. Borre o cifre los datos sensibles hasta que la aplicación vuelva a primer plano. Evite registrar datos sensibles.

### Obfuscación de código <a href="#code-obfuscation" id="code-obfuscation"></a>

Para aumentar la dificultad de la ingeniería inversa de la aplicación:

* Para aplicaciones Android, use una obfuscación suficiente para ocultar nombres de clases, nombres de funciones y APIs públicas del SDK de Thales. También obfusque cadenas sensibles utilizadas en la aplicación.
* Para aplicaciones iOS, se recomienda la obfuscación, pero no es obligatoria, debido a herramientas menos maduras en esta área.

### Comunicación en red <a href="#network-communication" id="network-communication"></a>

Se recomienda encarecidamente que la aplicación utilice HTTPS para toda la comunicación de red con sus servidores. Evite certificados autofirmados. Use estas pautas para el anclaje de certificados (certificate pinning):

* Asegúrese de que el nombre de host coincida con el nombre Subject del certificado final.
* Verifique que cada certificado en la cadena de certificados no esté caducado.
* Verifique que la cadena de confianza sea válida y que la cadena de certificados se valide con el almacén de confianza del sistema.
* Verifique que el hash SHA-256 de la CA raíz o del certificado final coincida con el hash codificado de forma rígida en la aplicación.

Para datos confidenciales que contengan información de identificación personal (PII), utilice una capa adicional de cifrado y autenticación al enviar datos por TLS.

### Protección RASP <a href="#rasp-protection" id="rasp-protection"></a>

Se recomienda encarecidamente que la aplicación utilice herramientas comerciales para la Protección de Aplicaciones en Tiempo de Ejecución ([RASP](https://en.wikipedia.org/wiki/Runtime_application_self-protection)). Esto ayuda a detectar enraizamiento o jailbreaking, intentos de hooking, depuración, manipulación de la aplicación y uso de emuladores.

### Limitar el uso de registros <a href="#limit-log-usage" id="limit-log-usage"></a>

Tenga cuidado al escribir registros en el dispositivo. Los registros pueden proporcionar información útil a los atacantes. Evite registrar información crítica como PII u otros datos sensibles de los usuarios finales. Elimine los registros en las compilaciones de producción utilizando herramientas de obfuscación o banderas de registro condicionales.

En Android, los registros son un recurso compartido accesible con el `READ_LOGS` permiso. El registro inapropiado de datos sensibles de los usuarios finales puede conducir a fugas no intencionadas hacia otras aplicaciones.

### Adopción de prácticas de codificación segura <a href="#adoption-of-secure-coding-practices" id="adoption-of-secure-coding-practices"></a>

Siga prácticas establecidas de codificación segura, como la validación de entradas, la gestión adecuada de memoria, el uso de funciones C seguras y evitar el uso de contenedores inmutables para almacenar datos sensibles. Se recomienda consultar la [Guía de referencia rápida de prácticas de codificación segura de OWASP](https://owasp.org/www-project-secure-coding-practices-quick-reference-guide) para más detalles. Estas prácticas se pueden aplicar mediante herramientas de análisis estático de código como PMD o HP Fortify.

### Auditorías y pruebas de penetración <a href="#audits-and-penetration-testing" id="audits-and-penetration-testing"></a>

Realice auditorías de arquitectura y del código fuente para evaluar a fondo la seguridad de la aplicación. Además, realice una prueba de penetración para simular ataques contra la aplicación y el dispositivo, así como otras capas del sistema. Esto ayudará a identificar vulnerabilidades y a evaluar la postura general de seguridad de la aplicación.

### Evalúe la resiliencia de la seguridad de la aplicación <a href="#evaluate-the-resilience-of-application-security" id="evaluate-the-resilience-of-application-security"></a>

El Estándar de Verificación de Seguridad de Aplicaciones Móviles de OWASP ([MASVS](https://github.com/OWASP/owasp-masvs)) establece requisitos de seguridad básicos para aplicaciones móviles. Se recomienda encarecidamente utilizar esta [lista de verificación](https://github.com/OWASP/owasp-mastg/releases/latest) para evaluar la postura de seguridad de su aplicación.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.payments.thalescloud.io/classic-push-provisioning/es/guia-del-desarrollador/directrices-de-seguridad/general.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
