> 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/merchant-tokenization/es/integracion-del-sdk/security/general.md).

# General

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

## Usar 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 la aplicación en la App Store de iOS y en Google Play Store, asegúrese de que la aplicación esté configurada para usar la variante release del SDK.

{% hint style="danger" %}
El uso de una variante de SDK de depuración en una aplicación de producción puede conllevar graves implicaciones de seguridad, potencialmente exponiendo datos sensibles relacionados con los usuarios finales.
{% endhint %}

## 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 y evita la identificación fácil de variables, estructuras y lógica sensibles.

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

Es necesario un manejo cuidadoso del ciclo de vida de la aplicación para evitar que los datos sensibles se filtren mientras está en segundo plano. Se recomienda eliminar cualquier dato sensible mostrado en la interfaz de usuario antes de pasar a un estado en segundo plano. Todos los datos sensibles deben borrarse o cifrarse hasta que la aplicación se restaure al primer plano. Se debe evitar el registro (logging) de cualquier dato sensible.

## Ofuscació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, deben someterse a una ofuscación suficiente para ocultar nombres de clases, nombres de funciones y APIs públicas del SDK de Thales. Además, las cadenas sensibles utilizadas dentro de la aplicación deben estar ofuscadas.
* Para aplicaciones iOS, se recomienda la ofuscación, pero no es obligatoria, debido a herramientas menos maduras en esta área.

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

Se recomienda encarecidamente que la aplicación use HTTPS para todas las comunicaciones de red con sus servidores. Se deben evitar los certificados autofirmados. Estas son las pautas recomendadas para el pinning de certificados:

* Asegúrese de que el nombre de host coincida con el nombre Subject del certificado final (leaf).
* 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 SHA256 del hash del CA raíz o del certificado final coincida con el hash codificado (hardcoded) dentro de la aplicación.

Para datos confidenciales que contengan información de identificación personal (PII), se emplea una capa adicional de cifrado y mecanismos de autenticación al enviar los 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 habilitar la Protección de Aplicaciones en Tiempo de Ejecución (Runtime Application Self Protection). [RASP](https://en.wikipedia.org/wiki/Runtime_application_self-protection). Esto ayudará a detectar root o jailbreak, intentos de hooking en la aplicación, depuración, manipulación de la aplicación y detección de emuladores.

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

Hay que tener precaución al imprimir logs en el dispositivo, ya que pueden proporcionar información útil a los atacantes. Evite revelar información crítica en los registros, como PII o cualquier información sensible del usuario, para prevenir que los atacantes las exploten. Eliminar logs de la aplicación móvil puede lograrse mediante varios métodos, como usar herramientas de ofuscación o encapsular condicionalmente los registros con banderas de compilación para asegurarse de que se excluyan en las compilaciones de producción.

En Android, los logs son un recurso compartido que es accesible con el `READ_LOGS` permiso, y el registro inapropiado de información sensible del usuario puede conducir a fugas de datos 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 validación de entradas, gestión adecuada de la memoria, uso de funciones C seguras y evitar el uso de contenedores inmutables para almacenar datos sensibles. Se recomienda referirse a 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 pueden hacerse cumplir utilizando 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 pruebas 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 de seguridad general 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 para Aplicaciones Móviles de OWASP [MASVS](https://github.com/OWASP/owasp-masvs) establece los requisitos de seguridad básicos para aplicaciones móviles. Se recomienda encarecidamente usar esta [lista de verificación](https://github.com/OWASP/owasp-mastg/releases/latest) para evaluar el estado 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/merchant-tokenization/es/integracion-del-sdk/security/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.
