| page.title=Configuración de seguridad de la red |
| page.keywords=androidn,security,network |
| page.image=images/cards/card-nyc_2x.jpg |
| |
| @jd:body |
| |
| <div id="qv-wrapper"> |
| <div id="qv"> |
| |
| <h2>En este documento</h2> |
| <ol> |
| <li><a href="#manifest">Agregar un archivo de configuración de seguridad</a></li> |
| <li><a href="#CustomTrust">Personalizar las CA de confianza</a> |
| <ol> |
| <li><a href="#ConfigCustom">Configurar una CA de confianza personalizada</a></li> |
| <li><a href="#LimitingCas">Limitar el conjunto de CA de confianza</a></li> |
| <li><a href="#TrustingAdditionalCas">Otorgar confianza a CA adicionales</a></li> |
| </ol> |
| </li> |
| <li><a href="#TrustingDebugCa">CA de solo depuración</a></li> |
| <li><a href="#UsesCleartextTraffic">Desactivar el tráfico de Cleartext</a></li> |
| <li><a href="#CertificatePinning">Fijar certificados</a></li> |
| <li><a href="#ConfigInheritance">Comportamiento de herencia de configuración</a></li> |
| <li><a href="#FileFormat">Formato del archivo de configuración</a></li> |
| </ol> |
| </div> |
| </div> |
| |
| |
| <p> |
| Android N incluye una función de configuración de seguridad de la red |
| que les permite a las aplicaciones personalizar los ajustes de seguridad de la red mediante un archivo |
| de configuración declarativo seguro sin que haya que modificar el código de la aplicación. Estos ajustes se pueden |
| configurar para dominios específicos y para una aplicación específica. Las capacidades |
| clave de esta función son las siguientes: |
| </p> |
| |
| <ul> |
| <li> |
| <b>Anclajes de confianza personalizados:</b> personalizar qué autoridades de certificado (CA) |
| son de confianza para las conexiones de seguridad de una aplicación. Por ejemplo, |
| confiar en certificados autofirmados particulares |
| o restringir el conjunto de CA públicas en las que confía la aplicación. |
| </li> |
| |
| <li> |
| <b>Anulaciones de solo depuración:</b> depurar de forma segura conexiones |
| de una aplicación sin riesgos adicionales para la base instalada. |
| </li> |
| |
| <li> |
| <b>Desactivación del tráfico de Cleartext:</b> proteger a las aplicaciones del |
| uso accidental de tráfico de Cleartext. |
| </li> |
| |
| <li> |
| <b>Fijación de certificados:</b> restringir la conexión segura de una aplicación |
| a certificados en particular. |
| </li> |
| </ul> |
| |
| |
| <h2 id="manifest">Agregar un archivo de configuración de seguridad</h2> |
| |
| <p> |
| La función de configuración de seguridad de la red usa un archivo XML donde |
| se especifican los ajustes para la aplicación. Debes incluir una entrada en el manifiesto de tu |
| aplicación que apunte a este archivo. El siguiente fragmento de código de un manifiesto |
| demuestra cómo crear esta entrada: |
| </p> |
| |
| <pre> |
| <?xml version="1.0" encoding="utf-8"?> |
| <manifest ... > |
| <application ... > |
| <meta-data android:name="android.security.net.config" |
| android:resource="@xml/network_security_config" /> |
| ... |
| </application> |
| </manifest> |
| </pre> |
| |
| <h2 id="CustomTrust">Personalizar las CA de confianza</h2> |
| |
| <p> |
| Una aplicación podría querer otorgar confianza a un conjunto personalizado de CA en lugar de hacerlo según los ajustes |
| predeterminados de la plataforma. Las razones más comunes son las siguientes: |
| </p> |
| |
| <ul> |
| <li>Conectarse a un host con una autoridad de certificado personalizada (autofirmado, |
| emitido por una CA corporativa interna, etc.). |
| </li> |
| |
| <li>Limitar el conjunto de CA a CA de confianza establecidas por el usuario y no a cada |
| CA preinstalada. |
| </li> |
| |
| <li>Otorgar confianza a CA adicionales que no están incluidas en el sistema |
| </li> |
| </ul> |
| |
| <p> |
| De forma predeterminada, las conexiones seguras (p. ej.: TLS, HTTP) de todas las aplicaciones dependen de |
| las CA preinstaladas del sistema; las aplicaciones que tienen como objetivo a la API nivel 23 |
| (Android M) e inferiores también dependen de la tienda de CA agregada por el usuario de forma predeterminada. Una |
| aplicación puede personalizar sus propias conexiones usando {@code base-config} (para |
| la personalización de toda la aplicación) o {@code domain-config} (para la personalización |
| por dominio). |
| </p> |
| |
| |
| <h3 id="ConfigCustom">Configurar una CA de confianza personalizada</h3> |
| |
| <p> |
| Supongamos que deseas conectarte a tu host, el cual usa un certificado SSL |
| autofirmado, o a un host cuyo certificado SSL está emitido por una CA no pública |
| en la cual confías, como la CA interna de tu empresa. |
| </p> |
| |
| <p> |
| <code>res/xml/network_security_config.xml</code>: |
| <pre> |
| <?xml version="1.0" encoding="utf-8"?> |
| <network-security-config> |
| <domain-config> |
| <domain includeSubdomains="true">example.com</domain> |
| <trust-anchors> |
| <certificates src="@raw/my_ca"/> |
| </trust-anchors> |
| </domain-config> |
| </network-security-config> |
| </pre> |
| </p> |
| |
| <p> |
| Agrega el certificado de CA autofirmado o no público, en formato PEM o DER, a |
| {@code res/raw/my_ca}. |
| </p> |
| |
| |
| <h3 id="LimitingCas">Limitar el conjunto de CA de confianza</h3> |
| |
| <p> |
| Una aplicación que no desee confiar en todas las CA en que confía el sistema puede, |
| en su lugar, especificar su propio conjunto reducido de CA en las que confía. Esto protege a la aplicación |
| de certificados fraudulentos emitidos por cualquiera de las demás CA. |
| </p> |
| |
| <p> |
| La configuración para limitar el conjunto de CA de confianza es similar a <a href="#TrustingACustomCa">confiar en una CA personalizada</a> para un dominio específico, con la diferencia |
| de que se brindan múltiples CA en el recurso. |
| </p> |
| |
| <p> |
| <code>res/xml/network_security_config.xml</code>: |
| <pre> |
| <?xml version="1.0" encoding="utf-8"?> |
| <network-security-config> |
| <domain-config> |
| <domain includeSubdomains="true">secure.example.com</domain> |
| <domain includeSubdomains="true">cdn.example.com</domain> |
| <trust-anchors> |
| <certificates src="@raw/trusted_roots"/> |
| </trust-anchors> |
| </domain-config> |
| </network-security-config> |
| </pre> |
| </p> |
| |
| <p> |
| Agrega las CA de confianza, en formato PEM o DER, a {@code res/raw/trusted_roots}. |
| Ten en cuenta que, si usas el formato PEM, el archivo debe incluir <em>solo</em> datos PEM |
| y ningún texto adicional. También puedes brindar elementos |
| <a href="#certificates"><code><certificates></code></a> |
| múltiples en lugar de solo uno. |
| </p> |
| |
| |
| <h3 id="TrustingAdditionalCas"> |
| Otorgar confianza a CA adicionales |
| </h3> |
| |
| <p> |
| Una aplicación podría querer otorgar confianza a CA adicionales en las cuales el sistema no confía, |
| ya sea porque el sistema aún no incluye la CA o porque la CA no |
| cumple con los requisitos de inclusión del sistema Android. La |
| aplicación puede hacerlo especificando múltiples fuentes de certificado para una |
| configuración. |
| </p> |
| <p> |
| <code>res/xml/network_security_config.xml</code>: |
| <pre> |
| <?xml version="1.0" encoding="utf-8"?> |
| <network-security-config> |
| <base-config> |
| <trust-anchors> |
| <certificates src="@raw/extracas"/> |
| <certificates src="system"/> |
| </trust-anchors> |
| </base-config> |
| </network-security-config> |
| </pre> |
| </p> |
| |
| |
| <h2 id="TrustingDebugCa">Configurar las CA para depuración</h2> |
| |
| <p> |
| Cuando depuras una aplicación que se conecta mediante HTTPS, podrías querer |
| conectarte a un servidor de desarrollo local que no tiene el certificado |
| SSL de tu servidor de producción. Para poder hacerlo sin |
| tener que modificar el código de tu aplicación, puedes especificar CA de solo depuración que |
| solo <i>son</i> de confianza cuando <a href="{@docRoot}guide/topics/manifest/application-element.html#debug"> |
| android:debuggable</a> |
| es {@code true} usando {@code debug-overrides}. Generalmente, las herramientas de IDE |
| y de compilación configuran esta marca automáticamente para las compilaciones que no son de lanzamiento. |
| </p> |
| |
| <p> |
| Esto es más seguro que el código condicional habitual ya que, como precaución |
| de seguridad, las tiendas de aplicaciones no aceptan aplicaciones que están marcadas |
| como depurables. |
| </p> |
| |
| <p> |
| <code>res/xml/network_security_config.xml</code>: |
| <pre> |
| <?xml version="1.0" encoding="utf-8"?> |
| <network-security-config> |
| <debug-overrides> |
| <trust-anchors> |
| <certificates src="@raw/debug_cas"/> |
| </trust-anchors> |
| </debug-overrides> |
| </network-security-config> |
| </pre> |
| </p> |
| |
| |
| <h2 id="UsesCleartextTraffic">Desactivar el tráfico de Cleartext</h2> |
| |
| <p> |
| Las aplicaciones que deseen conectarse a destinos usando solo conexiones |
| seguras pueden desactivar Cleartext (usando el protocolo |
| HTTP no encriptado en lugar del protocolo HTTPS) para esos destinos. Esta opción ayuda a prevenir |
| las regresiones accidentales en aplicaciones debido a cambios en direcciones URL generados por fuentes |
| externas como servidores backend. |
| Consulta {@link android.security.NetworkSecurityPolicy#isCleartextTrafficPermitted |
| NetworkSecurityPolicy.isCleartextTrafficPermitted()} para obtener más información. |
| </p> |
| |
| <p> |
| Por ejemplo, una aplicación puede querer garantizar que todas las conexiones a {@code |
| secure.example.com} se hagan siempre mediante HTTPS para proteger el tráfico sensible |
| de redes hostiles. |
| </p> |
| |
| <p> |
| <code>res/xml/network_security_config.xml</code>: |
| <pre> |
| <?xml version="1.0" encoding="utf-8"?> |
| <network-security-config> |
| <domain-config usesCleartextTraffic="false"> |
| <domain includeSubdomains="true">secure.example.com</domain> |
| </domain-config> |
| </network-security-config> |
| </pre> |
| </p> |
| |
| |
| <h2 id="CertificatePinning">Fijar certificados</h2> |
| |
| <p> |
| Generalmente, una aplicación otorga confianza a todas las CA preinstaladas. Si alguna de estas CA emitiera |
| un certificado fraudulento, la aplicación estaría en riesgo de sufrir un ataque |
| MiTM. Algunas aplicaciones eligen limitar el conjunto de certificados que aceptan |
| ya sea limitando el conjunto de CA al que otorgan confianza o fijando certificados. |
| </p> |
| |
| <p> |
| La fijación de certificados se hace brindando un conjunto de certificados por hash de la |
| clave pública (SubjectPublicKeyInfo del certificado X.509). De este modo, |
| una cadena de certificados solo es válida si contiene al menos una de |
| las claves públicas fijadas. |
| </p> |
| |
| <p> |
| Ten en cuenta que, cuando uses la fijación de certificados, siempre debes incluir una clave |
| de respaldo para que, si te ves obligado a cambiar a claves nuevas o a cambiar de CA (cuando |
| fijas un certificado de CA o un intermediario de esa CA), la conectividad |
| de la aplicación no se vea afectada. Si no, deberás actualizar |
| la aplicación para recuperar la conectividad. |
| </p> |
| |
| <p> |
| Además, se puede configurar un tiempo de expiración para las fijaciones, |
| luego del cual las fijaciones dejan de realizarse. Esto ayuda a evitar los problemas de conectividad |
| en aplicaciones que no se han actualizado. Sin embargo, configurar un tiempo de expiración |
| para las fijaciones puede habilitar la omisión de fijaciones. |
| </p> |
| |
| <p> |
| <code>res/xml/network_security_config.xml</code>: |
| <pre> |
| <?xml version="1.0" encoding="utf-8"?> |
| <network-security-config> |
| <domain-config> |
| <domain includeSubdomains="true">example.com</domain> |
| <pin-set expiration="2018-01-01"> |
| <pin digest="SHA-256">7HIpactkIAq2Y49orFOOQKurWxmmSFZhBCoQYcRhJ3Y=</pin> |
| <!-- backup pin --> |
| <pin digest="SHA-256">fwza0LRMXouZHRC8Ei+4PyuldPDcf3UKgO/04cDM1oE=</pin> |
| </pin-set> |
| </domain-config> |
| </network-security-config> |
| </pre> |
| </p> |
| |
| |
| <h2 id="ConfigInheritance">Comportamiento de herencia de configuración</h2> |
| |
| <p> |
| Los valores que no se establecen en una configuración específica se heredan. Este comportamiento permite configuraciones |
| más complejas y un archivo de configuración de fácil lectura. |
| </p> |
| |
| <p> |
| Si no se establece un valor en una entrada específica, se usa el valor de |
| la siguiente entrada más general. Los valores no establecidos en una {@code domain-config} se |
| toman de la {@code domain-config} primaria, si están anidados, o de la {@code |
| base-config}, si no están anidados. Los valores no establecidos en la {@code base-config} usan |
| los valores predeterminados de la plataforma. |
| </p> |
| |
| <p> |
| Por ejemplo, cuando todas las conexiones a subdominios de {@code |
| example.com} deben usar un conjunto personalizado de CA. Además, el tráfico de Cleartext a |
| estos dominios se permite <em>excepto</em> con las conexiones a {@code |
| secure.example.com}. Anidando la configuración para {@code |
| secure.example.com} dentro de la configuración para {@code example.com}, |
| {@code trust-anchors} no necesita duplicación. |
| </p> |
| |
| <p> |
| <code>res/xml/network_security_config.xml</code>: |
| <pre> |
| <?xml version="1.0" encoding="utf-8"?> |
| <network-security-config> |
| <domain-config> |
| <domain includeSubdomains="true">example.com</domain> |
| <trust-anchors> |
| <certificates src="@raw/my_ca"/> |
| </trust-anchors> |
| <domain-config cleartextTrafficPermitted="false"> |
| <domain includeSubdomains="true">secure.example.com</domain> |
| </domain-config> |
| </domain-config> |
| </network-security-config> |
| </pre> |
| </p> |
| |
| |
| <h2 id="FileFormat">Formato del archivo de configuración</h2> |
| |
| <p> |
| La función de configuración de seguridad de la red usa un formato de archivo XML. |
| La estructura general del archivo se muestra en el siguiente ejemplo de código: |
| </p> |
| |
| <pre> |
| <?xml version="1.0" encoding="utf-8"?> |
| <network-security-config> |
| <base-config> |
| <trust-anchors> |
| <certificates src="..."/> |
| ... |
| </trust-anchors> |
| </base-config> |
| |
| <domain-config> |
| <domain>android.com</domain> |
| ... |
| <trust-anchors> |
| <certificates src="..."/> |
| ... |
| </trust-anchors> |
| <pin-set> |
| <pin digest="...">...</pin> |
| ... |
| </pin-set> |
| </domain-config> |
| ... |
| <debug-overrides> |
| <trust-anchors> |
| <certificates src="..."/> |
| ... |
| </trust-anchors> |
| </debug-overrides> |
| </network-security-config> |
| </pre> |
| |
| <p> |
| Las siguientes secciones describen la sintaxis y otros detalles del formato |
| de archivo. |
| </p> |
| |
| <h3 id="network-security-config"> |
| <network-security-config> |
| </h3> |
| |
| <dl class="xml"> |
| <dt> |
| PUEDE CONTENER: |
| </dt> |
| |
| <dd> |
| 0 o 1 de <code><a href="#base-config"><base-config></a></code><br> |
| Cualquier cantidad de <code><a href= |
| "#domain-config"><domain-config></a></code><br> |
| 0 o 1 de <code><a href="#debug-overrides"><debug-overrides></a></code> |
| </dd> |
| </dl> |
| |
| <h3 id="base-config"> |
| <base-config> |
| </h3> |
| |
| <dl class="xml"> |
| <dt> |
| SINTAXIS: |
| </dt> |
| </dl> |
| |
| <pre class="stx"> |
| <base-config <a href= |
| "#usesCleartextTraffic">usesCleartextTraffic</a>=["true" | "false"]> |
| ... |
| </base-config> |
| </pre> |
| <dl class="xml"> |
| <dt> |
| PUEDE CONTENER: |
| </dt> |
| |
| <dd> |
| <code><a href="#trust-anchors"><trust-anchors></a></code> |
| </dd> |
| |
| <dt> |
| DESCRIPCIÓN: |
| </dt> |
| |
| <dd> |
| La configuración predeterminada usada por todas las conexiones cuyo destino no |
| está cubierto por una <a href="#domain-config"><code>domain-config</code></a>. |
| |
| <p> |
| Los valores que no están configurados usan los valores predeterminados de la plataforma. La configuración predeterminada |
| para aplicaciones con API nivel 24 o superior es: |
| </p> |
| |
| <pre> |
| <base-config usesCleartextTraffic="true"> |
| <trust-anchors> |
| <certificates src="system" /> |
| </trust-anchors> |
| </base-config> |
| </pre> |
| La configuración predeterminada para aplicaciones con API nivel 23 o inferior es: |
| <pre> |
| <base-config usesCleartextTraffic="true"> |
| <trust-anchors> |
| <certificates src="system" /> |
| <certificates src="user" /> |
| </trust-anchors> |
| </base-config> |
| </pre> |
| |
| </dd> |
| </dl> |
| |
| <h3 id="domain-config"><domain-config></h3> |
| <dl class="xml"> |
| <dt>SINTAXIS:</dt> |
| <dd> |
| <pre class="stx"><domain-config <a href="#usesCleartextTraffic">usesCleartextTraffic</a>=["true" | "false"]> |
| ... |
| </domain-config></pre> |
| </dd> |
| |
| <dt>PUEDE CONTENER:</dt> |
| |
| <dd> |
| 1 o más <code><a href="#domain"><domain></a></code> |
| <br/>0 o 1 <code><a href="#trust-anchors"><trust-anchors></a></code> |
| <br/>0 o 1 <code><a href="#pin-set"><pin-set></code></a> |
| <br/>Cualquier cantidad de <code><domain-config></code> anidadas</dd> |
| |
| <dt>DESCRIPCIÓN</dt> |
| <dd>Configuración usada para conexiones con destinos específicos, como los definidos por elementos de {@code domain}. |
| |
| <p>Ten en cuenta que, si múltiples elementos de {@code domain-config} cubren un destino, la configuración con la regla de coincidencia de dominio más específica (más larga) |
| es la que se usa.</p></dd> |
| </dl> |
| |
| |
| <h3 id="domain"><domain></h3> |
| |
| <dl class="xml"> |
| <dt> |
| SINTAXIS: |
| </dt> |
| |
| <dd> |
| <pre class="stx"> |
| <domain includeSubdomains=["true" | "false"]>example.com</domain> |
| </pre> |
| </dd> |
| |
| <dt> |
| ATRIBUTOS: |
| </dt> |
| |
| <dd> |
| <dl class="attr"> |
| <dt> |
| {@code includeSubdomains} |
| </dt> |
| |
| <dd> |
| Si es {@code "true"}, esta regla de dominio coincide con el dominio |
| y con todos los subdominios, incluidos los subdominios de subdominios. Si no, la regla |
| solo se aplica a coincidencias exactas. |
| </dd> |
| </dl> |
| </dd> |
| |
| <dt> |
| DESCRIPCIÓN: |
| </dt> |
| </dl> |
| |
| <h3 id="debug-overrides"><debug-overrides></h3> |
| |
| <dl class="xml"> |
| <dt> |
| sintaxis: |
| </dt> |
| |
| <dd> |
| <pre class="stx"> |
| <debug-overrides> |
| ... |
| </debug-overrides> |
| </pre> |
| </dd> |
| |
| <dt> |
| PUEDE CONTENER: |
| </dt> |
| |
| <dd> |
| 0 o 1 <code><a href="#trust-anchors"><trust-anchors></a></code> |
| </dd> |
| |
| <dt> |
| DESCRIPCIÓN: |
| </dt> |
| |
| <dd> |
| Sobrescrituras que se deben aplicar cuando <a href="{@docRoot}guide/topics/manifest/application-element.html#debug">android:debuggable</a> |
| es {@code "true"}, que es, generalmente, el caso de las compilaciones que no sean de lanzamiento |
| generadas por herramientas de IDE y de compilación. Los anclajes de confianza especificados en {@code |
| debug-overrides} se agregan a todas las demás configuraciones, y la fijación |
| de certificados no se lleva a cabo cuando la cadena de certificados del servidor usa uno de estos |
| anclajes de confianza de solo depuración. Si <a href="{@docRoot}guide/topics/manifest/application-element.html#debug">android:debuggable</a> |
| es {@code "false"}, entonces, esta sección se omite por completo. |
| </dd> |
| </dl> |
| |
| <h3 id="trust-anchors"><trust-anchors></h3> |
| <dl class="xml"> |
| <dt> |
| SINTAXIS: |
| </dt> |
| |
| <dd> |
| <pre class="stx"> |
| <trust-anchors> |
| ... |
| </trust-anchors> |
| </pre> |
| </dd> |
| |
| <dt> |
| PUEDE CONTENER: |
| </dt> |
| |
| <dd> |
| Cualquier cantidad de <code><a href="#certificates"><certificates></a></code> |
| </dd> |
| |
| <dt> |
| DESCRIPCIÓN: |
| </dt> |
| |
| <dd> |
| Conjunto de anclajes de confianza para conexiones seguras. |
| </dd> |
| </dl> |
| |
| |
| <h3 id="certificates"><certificates></h3> |
| <dl class="xml"> |
| <dt>SINTAXIS:</dt> |
| <dd><pre class="stx"><certificates src=["system" | "user" | "<i>raw resource</i>"] |
| overridePins=["true" | "false"] /> |
| </pre></dd> |
| <dt>DESCRIPCIÓN:</dt> |
| <dd>Conjunto de certificados X.509 para elementos de {@code trust-anchors}.</dd> |
| |
| <dt>ATRIBUTOS:</dt> |
| <dd><dl class="attr"> |
| <dt>{@code src}</dt> |
| <dd> |
| La fuente de los certificados de CA puede ser una de las siguientes opciones: |
| <ul> |
| <li>Una ID de recurso sin procesar que apunta a un archivo que contiene certificados X.509. |
| Los certificados deben estar codificados en formato DER o PEM. En el caso de los certificados |
| PEM, el archivo <em>no debe</em> contener datos adicionales que no sean de PEM, como |
| comentarios. |
| </li> |
| |
| <li>{@code "system"} para los certificados de CA preinstalados del sistema. |
| </li> |
| |
| <li>{@code "user"} para los certificados de CA agregados por el usuario. |
| </li> |
| </ul> |
| </dd> |
| |
| <dt>{@code overridePins}</dt> |
| <dd> |
| <p> |
| Especifica si las CA de esta fuente omiten la fijación de certificados. Si es {@code |
| "true"}, las cadenas de certificados se encadenan mediante una de estas CA |
| desde esta fuente, y la fijación no se lleva a cabo. Esto puede ser útil para CA de depuración |
| o para poder permitirle al usuario hacer un ataque MiTM al tráfico seguro de la aplicación. |
| </p> |
| |
| <p> |
| Es {@code "false"} de forma predeterminada, a menos que se especifique en un elemento de {@code debug-overrides} |
| , en cuyo caso, es {@code "true"} de forma predeterminada. |
| </p> |
| </dd> |
| </dl> |
| </dd> |
| |
| |
| <h3 id="pin-set"><pin-set></h3> |
| |
| <dl class="xml"> |
| <dt> |
| SINTAXIS: |
| </dt> |
| |
| <dd> |
| <pre class="stx"> |
| <pin-set expiration="date"> |
| ... |
| </pin-set> |
| </pre> |
| </dd> |
| |
| <dt> |
| PUEDE CONTENER: |
| </dt> |
| |
| <dd> |
| Cualquier cantidad de <code><a href="#pin"><pin></a></code> |
| </dd> |
| |
| <dt> |
| DESCRIPCIÓN: |
| </dt> |
| |
| <dd> |
| Un conjunto de fijaciones de claves públicas. Para que una conexión segura sea de confianza, una de las |
| claves públicas de la cadena de confianza debe estar en el conjunto de fijaciones. Consulta |
| <code><a href="#pin"><pin></a></code> para el formato de las fijaciones. |
| </dd> |
| |
| <dt> |
| ATRIBUTOS: |
| </dt> |
| |
| <dd> |
| <dl class="attr"> |
| <dt> |
| {@code expiration} |
| </dt> |
| |
| <dd> |
| La fecha, en formato {@code yyyy-MM-dd}, a partir de la cual |
| expiran las fijaciones, lo cual deshabilita la fijación. Si el atributo no está establecido, las fijaciones |
| no expiran. |
| <p> |
| La expiración ayuda a evitar problemas de conectividad en aplicaciones que no |
| reciben actualizaciones para el conjunto de fijaciones, por ejemplo, porque el usuario |
| deshabilitó las actualizaciones de la aplicación. |
| </p> |
| </dd> |
| </dl> |
| </dd> |
| </dl> |
| |
| <h3 id="pin"><pin></h3> |
| <dl class="xml"> |
| <dt> |
| sintaxis: |
| </dt> |
| |
| <dd> |
| <pre class="stx"> |
| <pin digest=["SHA-256"]>base64 encoded digest of X.509 |
| SubjectPublicKeyInfo (SPKI)</pin> |
| </pre> |
| </dd> |
| |
| <dt> |
| ATRIBUTOS: |
| </dt> |
| |
| <dd> |
| <dl class="attr"> |
| <dt> |
| {@code digest} |
| </dt> |
| |
| <dd> |
| Resumen del algoritmo usado para generar la fijación. Actualmente, solo se admite |
| {@code "SHA-256"}. |
| </dd> |
| </dl> |
| </dd> |
| </dl> |