Home | History | Annotate | Download | only in articles
      1 page.title=Configuracin de seguridad de la red
      2 page.keywords=androidn,security,network
      3 page.image=images/cards/card-nyc_2x.jpg
      4 
      5 @jd:body
      6 
      7 <div id="tb-wrapper">
      8 <div id="tb">
      9 
     10 <h2>En este documento</h2>
     11 <ol>
     12   <li><a href="#manifest">Agregar un archivo de configuracin de seguridad</a></li>
     13   <li><a href="#CustomTrust">Personalizar las CA de confianza</a>
     14       <ol>
     15       <li><a href="#ConfigCustom">Configurar una CA de confianza personalizada</a></li>
     16       <li><a href="#LimitingCas">Limitar el conjunto de CA de confianza</a></li>
     17       <li><a href="#TrustingAdditionalCas">Otorgar confianza a CA adicionales</a></li>
     18       </ol>
     19   </li>
     20   <li><a href="#TrustingDebugCa">CA de solo depuracin</a></li>
     21   <li><a href="#UsesCleartextTraffic">Desactivar el trfico de Cleartext</a></li>
     22   <li><a href="#CertificatePinning">Fijar certificados</a></li>
     23   <li><a href="#ConfigInheritance">Comportamiento de herencia de configuracin</a></li>
     24   <li><a href="#FileFormat">Formato del archivo de configuracin</a></li>
     25 </ol>
     26 </div>
     27 </div>
     28 
     29 
     30 <p>
     31   Android N incluye una funcin de configuracin de seguridad de la red
     32  que les permite a las aplicaciones personalizar los ajustes de seguridad de la red mediante un archivo
     33  de configuracin declarativo seguro sin que haya que modificar el cdigo de la aplicacin. Estos ajustes se pueden
     34  configurar para dominios especficos y para una aplicacin especfica. Las capacidades
     35  clave de esta funcin son las siguientes:
     36 </p>
     37 
     38 <ul>
     39   <li>
     40     <b>Anclajes de confianza personalizados:</b> personalizar qu autoridades de certificado (CA)
     41  son de confianza para las conexiones de seguridad de una aplicacin. Por ejemplo,
     42  confiar en certificados autofirmados particulares
     43  o restringir el conjunto de CA pblicas en las que confa la aplicacin.
     44   </li>
     45 
     46   <li>
     47     <b>Anulaciones de solo depuracin:</b> depurar de forma segura conexiones
     48  de una aplicacin sin riesgos adicionales para la base instalada.
     49   </li>
     50 
     51   <li>
     52     <b>Desactivacin del trfico de Cleartext:</b> proteger a las aplicaciones del
     53  uso accidental de trfico de Cleartext.
     54   </li>
     55 
     56   <li>
     57     <b>Fijacin de certificados:</b> restringir la conexin segura de una aplicacin
     58  a certificados en particular.
     59   </li>
     60 </ul>
     61 
     62 
     63 <h2 id="manifest">Agregar un archivo de configuracin de seguridad</h2>
     64 
     65 <p>
     66   La funcin de configuracin de seguridad de la red usa un archivo XML donde
     67  se especifican los ajustes para la aplicacin. Debes incluir una entrada en el manifiesto de tu
     68  aplicacin que apunte a este archivo. El siguiente fragmento de cdigo de un manifiesto
     69  demuestra cmo crear esta entrada:
     70 </p>
     71 
     72 <pre>
     73 &lt;?xml version="1.0" encoding="utf-8"?&gt;
     74 &lt;manifest ... &gt;
     75   &lt;application ... &gt;
     76     &lt;meta-data android:name="android.security.net.config"
     77                android:resource="@xml/network_security_config" /&gt;
     78     ...
     79   &lt;/application&gt;
     80 &lt;/manifest&gt;
     81 </pre>
     82 
     83 <h2 id="CustomTrust">Personalizar las CA de confianza</h2>
     84 
     85 <p>
     86   Una aplicacin podra querer otorgar confianza a un conjunto personalizado de CA en lugar de hacerlo segn los ajustes
     87  predeterminados de la plataforma. Las razones ms comunes son las siguientes:
     88 </p>
     89 
     90 <ul>
     91   <li>Conectarse a un host con una autoridad de certificado personalizada (autofirmado,
     92  emitido por una CA corporativa interna, etc.).
     93   </li>
     94 
     95   <li>Limitar el conjunto de CA a CA de confianza establecidas por el usuario y no a cada
     96  CA preinstalada.
     97   </li>
     98 
     99   <li>Otorgar confianza a CA adicionales que no estn incluidas en el sistema
    100   </li>
    101 </ul>
    102 
    103 <p>
    104   De forma predeterminada, las conexiones seguras (p. ej.: TLS, HTTP) de todas las aplicaciones dependen de
    105   las CA preinstaladas del sistema; las aplicaciones que tienen como objetivo a la API nivel 23
    106  (Android M) e inferiores tambin dependen de la tienda de CA agregada por el usuario de forma predeterminada. Una
    107  aplicacin puede personalizar sus propias conexiones usando {@code base-config} (para
    108  la personalizacin de toda la aplicacin) o {@code domain-config} (para la personalizacin
    109  por dominio).
    110 </p>
    111 
    112 
    113 <h3 id="ConfigCustom">Configurar una CA de confianza personalizada</h3>
    114 
    115 <p>
    116   Supongamos que deseas conectarte a tu host, el cual usa un certificado SSL
    117  autofirmado, o a un host cuyo certificado SSL est emitido por una CA no pblica
    118  en la cual confas, como la CA interna de tu empresa.
    119 </p>
    120 
    121 <p>
    122   <code>res/xml/network_security_config.xml</code>:
    123 <pre>
    124 &lt;?xml version="1.0" encoding="utf-8"?&gt;
    125 &lt;network-security-config&gt;
    126     &lt;domain-config&gt;
    127         &lt;domain includeSubdomains="true"&gt;example.com&lt;/domain&gt;
    128         &lt;trust-anchors&gt;
    129             &lt;certificates src="@raw/my_ca"/&gt;
    130         &lt;/trust-anchors&gt;
    131     &lt;/domain-config&gt;
    132 &lt;/network-security-config&gt;
    133 </pre>
    134 </p>
    135 
    136 <p>
    137   Agrega el certificado de CA autofirmado o no pblico, en formato PEM o DER, a
    138  {@code res/raw/my_ca}.
    139 </p>
    140 
    141 
    142 <h3 id="LimitingCas">Limitar el conjunto de CA de confianza</h3>
    143 
    144 <p>
    145   Una aplicacin que no desee confiar en todas las CA en que confa el sistema puede,
    146  en su lugar, especificar su propio conjunto reducido de CA en las que confa. Esto protege a la aplicacin
    147  de certificados fraudulentos emitidos por cualquiera de las dems CA.
    148 </p>
    149 
    150 <p>
    151   La configuracin para limitar el conjunto de CA de confianza es similar a <a href="#TrustingACustomCa">confiar en una CA personalizada</a> para un dominio especfico, con la diferencia
    152  de que se brindan mltiples CA en el recurso.
    153 </p>
    154 
    155 <p>
    156 <code>res/xml/network_security_config.xml</code>:
    157 <pre>
    158 &lt;?xml version="1.0" encoding="utf-8"?&gt;
    159 &lt;network-security-config&gt;
    160     &lt;domain-config&gt;
    161         &lt;domain includeSubdomains="true"&gt;secure.example.com&lt;/domain&gt;
    162         &lt;domain includeSubdomains="true"&gt;cdn.example.com&lt;/domain&gt;
    163         &lt;trust-anchors&gt;
    164             &lt;certificates src="@raw/trusted_roots"/&gt;
    165         &lt;/trust-anchors&gt;
    166     &lt;/domain-config&gt;
    167 &lt;/network-security-config&gt;
    168 </pre>
    169 </p>
    170 
    171 <p>
    172   Agrega las CA de confianza, en formato PEM o DER, a {@code res/raw/trusted_roots}.
    173   Ten en cuenta que, si usas el formato PEM, el archivo debe incluir <em>solo</em> datos PEM
    174  y ningn texto adicional. Tambin puedes brindar elementos
    175 <a href="#certificates"><code>&lt;certificates&gt;</code></a>
    176  mltiples en lugar de solo uno.
    177 </p>
    178 
    179 
    180 <h3 id="TrustingAdditionalCas">
    181   Otorgar confianza a CA adicionales
    182 </h3>
    183 
    184 <p>
    185   Una aplicacin podra querer otorgar confianza a CA adicionales en las cuales el sistema no confa,
    186  ya sea porque el sistema an no incluye la CA o porque la CA no
    187  cumple con los requisitos de inclusin del sistema Android. La
    188  aplicacin puede hacerlo especificando mltiples fuentes de certificado para una
    189  configuracin.
    190 </p>
    191 <p>
    192 <code>res/xml/network_security_config.xml</code>:
    193 <pre>
    194 &lt;?xml version="1.0" encoding="utf-8"?&gt;
    195 &lt;network-security-config&gt;
    196     &lt;base-config&gt;
    197         &lt;trust-anchors&gt;
    198             &lt;certificates src="@raw/extracas"/&gt;
    199             &lt;certificates src="system"/&gt;
    200         &lt;/trust-anchors&gt;
    201     &lt;/base-config&gt;
    202 &lt;/network-security-config&gt;
    203 </pre>
    204 </p>
    205 
    206 
    207 <h2 id="TrustingDebugCa">Configurar las CA para depuracin</h2>
    208 
    209 <p>
    210   Cuando depuras una aplicacin que se conecta mediante HTTPS, podras querer
    211  conectarte a un servidor de desarrollo local que no tiene el certificado
    212  SSL de tu servidor de produccin. Para poder hacerlo sin
    213  tener que modificar el cdigo de tu aplicacin, puedes especificar CA de solo depuracin que
    214  solo <i>son</i> de confianza cuando <a href="{@docRoot}guide/topics/manifest/application-element.html#debug">
    215 android:debuggable</a>
    216  es {@code true} usando {@code debug-overrides}. Generalmente, las herramientas de IDE
    217  y de compilacin configuran esta marca automticamente para las compilaciones que no son de lanzamiento.
    218 </p>
    219 
    220 <p>
    221   Esto es ms seguro que el cdigo condicional habitual ya que, como precaucin
    222  de seguridad, las tiendas de aplicaciones no aceptan aplicaciones que estn marcadas
    223  como depurables.
    224 </p>
    225 
    226 <p>
    227 <code>res/xml/network_security_config.xml</code>:
    228 <pre>
    229 &lt;?xml version="1.0" encoding="utf-8"?&gt;
    230 &lt;network-security-config&gt;
    231     &lt;debug-overrides&gt;
    232         &lt;trust-anchors&gt;
    233             &lt;certificates src="@raw/debug_cas"/&gt;
    234         &lt;/trust-anchors&gt;
    235     &lt;/debug-overrides&gt;
    236 &lt;/network-security-config&gt;
    237 </pre>
    238 </p>
    239 
    240 
    241 <h2 id="UsesCleartextTraffic">Desactivar el trfico de Cleartext</h2>
    242 
    243 <p>
    244   Las aplicaciones que deseen conectarse a destinos usando solo conexiones
    245  seguras pueden desactivar Cleartext (usando el protocolo
    246  HTTP no encriptado en lugar del protocolo HTTPS) para esos destinos. Esta opcin ayuda a prevenir
    247  las regresiones accidentales en aplicaciones debido a cambios en direcciones URL generados por fuentes
    248  externas como servidores backend.
    249   Consulta {@link android.security.NetworkSecurityPolicy#isCleartextTrafficPermitted
    250  NetworkSecurityPolicy.isCleartextTrafficPermitted()} para obtener ms informacin.
    251 </p>
    252 
    253 <p>
    254   Por ejemplo, una aplicacin puede querer garantizar que todas las conexiones a {@code
    255 secure.example.com} se hagan siempre mediante HTTPS para proteger el trfico sensible
    256  de redes hostiles.
    257 </p>
    258 
    259 <p>
    260 <code>res/xml/network_security_config.xml</code>:
    261 <pre>
    262 &lt;?xml version="1.0" encoding="utf-8"?&gt;
    263 &lt;network-security-config&gt;
    264     &lt;domain-config usesCleartextTraffic="false"&gt;
    265         &lt;domain includeSubdomains="true"&gt;secure.example.com&lt;/domain&gt;
    266     &lt;/domain-config&gt;
    267 &lt;/network-security-config&gt;
    268 </pre>
    269 </p>
    270 
    271 
    272 <h2 id="CertificatePinning">Fijar certificados</h2>
    273 
    274 <p>
    275   Generalmente, una aplicacin otorga confianza a todas las CA preinstaladas. Si alguna de estas CA emitiera
    276  un certificado fraudulento, la aplicacin estara en riesgo de sufrir un ataque
    277  MiTM. Algunas aplicaciones eligen limitar el conjunto de certificados que aceptan
    278  ya sea limitando el conjunto de CA al que otorgan confianza o fijando certificados.
    279 </p>
    280 
    281 <p>
    282   La fijacin de certificados se hace brindando un conjunto de certificados por hash de la
    283  clave pblica (SubjectPublicKeyInfo del certificado X.509). De este modo,
    284  una cadena de certificados solo es vlida si contiene al menos una de
    285  las claves pblicas fijadas.
    286 </p>
    287 
    288 <p>
    289   Ten en cuenta que, cuando uses la fijacin de certificados, siempre debes incluir una clave
    290  de respaldo para que, si te ves obligado a cambiar a claves nuevas o a cambiar de CA (cuando
    291  fijas un certificado de CA o un intermediario de esa CA), la conectividad
    292  de la aplicacin no se vea afectada. Si no, debers actualizar
    293  la aplicacin para recuperar la conectividad.
    294 </p>
    295 
    296 <p>
    297   Adems, se puede configurar un tiempo de expiracin para las fijaciones,
    298  luego del cual las fijaciones dejan de realizarse. Esto ayuda a evitar los problemas de conectividad
    299  en aplicaciones que no se han actualizado. Sin embargo, configurar un tiempo de expiracin
    300  para las fijaciones puede habilitar la omisin de fijaciones.
    301 </p>
    302 
    303 <p>
    304 <code>res/xml/network_security_config.xml</code>:
    305 <pre>
    306 &lt;?xml version="1.0" encoding="utf-8"?&gt;
    307 &lt;network-security-config&gt;
    308     &lt;domain-config&gt;
    309         &lt;domain includeSubdomains="true"&gt;example.com&lt;/domain&gt;
    310         &lt;pin-set expiration="2018-01-01"&gt;
    311             &lt;pin digest="SHA-256"&gt;7HIpactkIAq2Y49orFOOQKurWxmmSFZhBCoQYcRhJ3Y=&lt;/pin&gt;
    312             &lt;!-- backup pin --&gt
    313             &lt;pin digest="SHA-256"&gt;fwza0LRMXouZHRC8Ei+4PyuldPDcf3UKgO/04cDM1oE=&lt;/pin&gt;
    314         &lt;/pin-set&gt;
    315     &lt;/domain-config&gt;
    316 &lt;/network-security-config&gt;
    317 </pre>
    318 </p>
    319 
    320 
    321 <h2 id="ConfigInheritance">Comportamiento de herencia de configuracin</h2>
    322 
    323 <p>
    324   Los valores que no se establecen en una configuracin especfica se heredan. Este comportamiento permite configuraciones
    325  ms complejas y un archivo de configuracin de fcil lectura.
    326 </p>
    327 
    328 <p>
    329   Si no se establece un valor en una entrada especfica, se usa el valor de
    330  la siguiente entrada ms general. Los valores no establecidos en una {@code domain-config} se
    331  toman de la {@code domain-config} primaria, si estn anidados, o de la {@code
    332 base-config}, si no estn anidados. Los valores no establecidos en la {@code base-config} usan
    333  los valores predeterminados de la plataforma.
    334 </p>
    335 
    336 <p>
    337   Por ejemplo, cuando todas las conexiones a subdominios de {@code
    338 example.com} deben usar un conjunto personalizado de CA. Adems, el trfico de Cleartext a
    339  estos dominios se permite <em>excepto</em> con las conexiones a {@code
    340  secure.example.com}. Anidando la configuracin para {@code
    341 secure.example.com} dentro de la configuracin para {@code example.com},
    342  {@code trust-anchors} no necesita duplicacin.
    343 </p>
    344 
    345 <p>
    346 <code>res/xml/network_security_config.xml</code>:
    347 <pre>
    348 &lt;?xml version="1.0" encoding="utf-8"?&gt;
    349 &lt;network-security-config&gt;
    350     &lt;domain-config&gt;
    351         &lt;domain includeSubdomains="true"&gt;example.com&lt;/domain&gt;
    352         &lt;trust-anchors&gt;
    353             &lt;certificates src="@raw/my_ca"/&gt;
    354         &lt;/trust-anchors&gt;
    355         &lt;domain-config cleartextTrafficPermitted="false"&gt;
    356             &lt;domain includeSubdomains="true"&gt;secure.example.com&lt;/domain&gt;
    357         &lt;/domain-config&gt;
    358     &lt;/domain-config&gt;
    359 &lt;/network-security-config&gt;
    360 </pre>
    361 </p>
    362 
    363 
    364 <h2 id="FileFormat">Formato del archivo de configuracin</h2>
    365 
    366 <p>
    367   La funcin de configuracin de seguridad de la red usa un formato de archivo XML.
    368   La estructura general del archivo se muestra en el siguiente ejemplo de cdigo:
    369 </p>
    370 
    371 <pre>
    372 &lt;?xml version="1.0" encoding="utf-8"?&gt;
    373 &lt;network-security-config&gt;
    374     &lt;base-config&gt;
    375         &lt;trust-anchors&gt;
    376             &lt;certificates src="..."/&gt;
    377             ...
    378         &lt;/trust-anchors&gt;
    379     &lt;/base-config&gt;
    380 
    381     &lt;domain-config&gt;
    382         &lt;domain&gt;android.com&lt;/domain&gt;
    383         ...
    384         &lt;trust-anchors&gt;
    385             &lt;certificates src="..."/&gt;
    386             ...
    387         &lt;/trust-anchors&gt;
    388         &lt;pin-set&gt;
    389             &lt;pin digest="..."&gt;...&lt;/pin&gt;
    390             ...
    391         &lt;/pin-set&gt;
    392     &lt;/domain-config&gt;
    393     ...
    394     &lt;debug-overrides&gt;
    395         &lt;trust-anchors&gt;
    396             &lt;certificates src="..."/&gt;
    397             ...
    398         &lt;/trust-anchors&gt;
    399     &lt;/debug-overrides&gt;
    400 &lt;/network-security-config&gt;
    401 </pre>
    402 
    403 <p>
    404   Las siguientes secciones describen la sintaxis y otros detalles del formato
    405  de archivo.
    406 </p>
    407 
    408 <h3 id="network-security-config">
    409   &lt;network-security-config&gt;
    410 </h3>
    411 
    412 <dl class="xml">
    413   <dt>
    414     PUEDE CONTENER:
    415   </dt>
    416 
    417   <dd>
    418     0 o 1 de <code><a href="#base-config">&lt;base-config&gt;</a></code><br>
    419     Cualquier cantidad de <code><a href=
    420     "#domain-config">&lt;domain-config&gt;</a></code><br>
    421     0 o 1 de <code><a href="#debug-overrides">&lt;debug-overrides&gt;</a></code>
    422   </dd>
    423 </dl>
    424 
    425 <h3 id="base-config">
    426   &lt;base-config&gt;
    427 </h3>
    428 
    429 <dl class="xml">
    430   <dt>
    431     SINTAXIS:
    432   </dt>
    433 </dl>
    434 
    435 <pre class="stx">
    436 &lt;base-config <a href=
    437 "#usesCleartextTraffic">usesCleartextTraffic</a>=["true" | "false"]&gt;
    438     ...
    439 &lt;/base-config&gt;
    440 </pre>
    441 <dl class="xml">
    442   <dt>
    443     PUEDE CONTENER:
    444   </dt>
    445 
    446   <dd>
    447     <code><a href="#trust-anchors">&lt;trust-anchors&gt;</a></code>
    448   </dd>
    449 
    450   <dt>
    451     DESCRIPCIN:
    452   </dt>
    453 
    454   <dd>
    455     La configuracin predeterminada usada por todas las conexiones cuyo destino no
    456  est cubierto por una <a href="#domain-config"><code>domain-config</code></a>.
    457 
    458 <p>
    459   Los valores que no estn configurados usan los valores predeterminados de la plataforma. La configuracin predeterminada
    460  para aplicaciones con API nivel 24 o superior es:
    461 </p>
    462 
    463 <pre>
    464 &lt;base-config usesCleartextTraffic="true"&gt;
    465     &lt;trust-anchors&gt;
    466         &lt;certificates src="system" /&gt;
    467     &lt;/trust-anchors&gt;
    468 &lt;/base-config&gt;
    469 </pre>
    470 La configuracin predeterminada para aplicaciones con API nivel 23 o inferior es:
    471 <pre>
    472 &lt;base-config usesCleartextTraffic="true"&gt;
    473     &lt;trust-anchors&gt;
    474         &lt;certificates src="system" /&gt;
    475         &lt;certificates src="user" /&gt;
    476     &lt;/trust-anchors&gt;
    477 &lt;/base-config&gt;
    478 </pre>
    479 
    480   </dd>
    481 </dl>
    482 
    483 <h3 id="domain-config">&lt;domain-config&gt;</h3>
    484 <dl class="xml">
    485 <dt>SINTAXIS:</dt>
    486 <dd>
    487 <pre class="stx">&lt;domain-config <a href="#usesCleartextTraffic">usesCleartextTraffic</a>=["true" | "false"]&gt;
    488     ...
    489 &lt;/domain-config&gt;</pre>
    490 </dd>
    491 
    492 <dt>PUEDE CONTENER:</dt>
    493 
    494 <dd>
    495 1 o ms <code><a href="#domain">&lt;domain&gt;</a></code>
    496 <br/>0 o 1 <code><a href="#trust-anchors">&lt;trust-anchors&gt;</a></code>
    497 <br/>0 o 1 <code><a href="#pin-set">&lt;pin-set&gt;</code></a>
    498 <br/>Cualquier cantidad de <code>&lt;domain-config&gt;</code> anidadas</dd>
    499 
    500 <dt>DESCRIPCIN</dt>
    501 <dd>Configuracin usada para conexiones con destinos especficos, como los definidos por elementos de {@code domain}.
    502 
    503 <p>Ten en cuenta que, si mltiples elementos de {@code domain-config} cubren un destino, la configuracin con la regla de coincidencia de dominio ms especfica (ms larga)
    504  es la que se usa.</p></dd>
    505 </dl>
    506 
    507 
    508 <h3 id="domain">&lt;domain&gt;</h3>
    509 
    510 <dl class="xml">
    511   <dt>
    512     SINTAXIS:
    513   </dt>
    514 
    515   <dd>
    516     <pre class="stx">
    517 &lt;domain includeSubdomains=["true" | "false"]&gt;example.com&lt;/domain&gt;
    518 </pre>
    519   </dd>
    520 
    521   <dt>
    522     ATRIBUTOS:
    523   </dt>
    524 
    525   <dd>
    526     <dl class="attr">
    527       <dt>
    528         {@code includeSubdomains}
    529       </dt>
    530 
    531       <dd>
    532         Si es {@code "true"}, esta regla de dominio coincide con el dominio
    533  y con todos los subdominios, incluidos los subdominios de subdominios. Si no, la regla
    534  solo se aplica a coincidencias exactas.
    535       </dd>
    536     </dl>
    537   </dd>
    538 
    539   <dt>
    540     DESCRIPCIN:
    541   </dt>
    542 </dl>
    543 
    544 <h3 id="debug-overrides">&lt;debug-overrides&gt;</h3>
    545 
    546 <dl class="xml">
    547   <dt>
    548     sintaxis:
    549   </dt>
    550 
    551   <dd>
    552     <pre class="stx">
    553 &lt;debug-overrides&gt;
    554     ...
    555 &lt;/debug-overrides&gt;
    556 </pre>
    557   </dd>
    558 
    559   <dt>
    560     PUEDE CONTENER:
    561   </dt>
    562 
    563   <dd>
    564     0 o 1 <code><a href="#trust-anchors">&lt;trust-anchors&gt;</a></code>
    565   </dd>
    566 
    567   <dt>
    568     DESCRIPCIN:
    569   </dt>
    570 
    571   <dd>
    572     Sobrescrituras que se deben aplicar cuando <a href="{@docRoot}guide/topics/manifest/application-element.html#debug">android:debuggable</a>
    573  es {@code "true"}, que es, generalmente, el caso de las compilaciones que no sean de lanzamiento
    574  generadas por herramientas de IDE y de compilacin. Los anclajes de confianza especificados en {@code
    575  debug-overrides} se agregan a todas las dems configuraciones, y la fijacin
    576  de certificados no se lleva a cabo cuando la cadena de certificados del servidor usa uno de estos
    577  anclajes de confianza de solo depuracin. Si <a href="{@docRoot}guide/topics/manifest/application-element.html#debug">android:debuggable</a>
    578  es {@code "false"}, entonces, esta seccin se omite por completo.
    579   </dd>
    580 </dl>
    581 
    582 <h3 id="trust-anchors">&lt;trust-anchors&gt;</h3>
    583 <dl class="xml">
    584   <dt>
    585     SINTAXIS:
    586   </dt>
    587 
    588   <dd>
    589     <pre class="stx">
    590 &lt;trust-anchors&gt;
    591 ...
    592 &lt;/trust-anchors&gt;
    593 </pre>
    594   </dd>
    595 
    596   <dt>
    597     PUEDE CONTENER:
    598   </dt>
    599 
    600   <dd>
    601     Cualquier cantidad de <code><a href="#certificates">&lt;certificates&gt;</a></code>
    602   </dd>
    603 
    604   <dt>
    605     DESCRIPCIN:
    606   </dt>
    607 
    608   <dd>
    609     Conjunto de anclajes de confianza para conexiones seguras.
    610   </dd>
    611 </dl>
    612 
    613 
    614 <h3 id="certificates">&lt;certificates&gt;</h3>
    615 <dl class="xml">
    616 <dt>SINTAXIS:</dt>
    617 <dd><pre class="stx">&lt;certificates src=["system" | "user" | "<i>raw resource</i>"]
    618               overridePins=["true" | "false"] /&gt;
    619 </pre></dd>
    620 <dt>DESCRIPCIN:</dt>
    621 <dd>Conjunto de certificados X.509 para elementos de {@code trust-anchors}.</dd>
    622 
    623 <dt>ATRIBUTOS:</dt>
    624 <dd><dl class="attr">
    625 <dt>{@code src}</dt>
    626 <dd>
    627 La fuente de los certificados de CA puede ser una de las siguientes opciones:
    628 <ul>
    629   <li>Una ID de recurso sin procesar que apunta a un archivo que contiene certificados X.509.
    630   Los certificados deben estar codificados en formato DER o PEM. En el caso de los certificados
    631  PEM, el archivo <em>no debe</em> contener datos adicionales que no sean de PEM, como
    632  comentarios.
    633   </li>
    634 
    635   <li>{@code "system"} para los certificados de CA preinstalados del sistema.
    636   </li>
    637 
    638   <li>{@code "user"} para los certificados de CA agregados por el usuario.
    639   </li>
    640 </ul>
    641 </dd>
    642 
    643 <dt>{@code overridePins}</dt>
    644 <dd>
    645   <p>
    646     Especifica si las CA de esta fuente omiten la fijacin de certificados. Si es {@code
    647 "true"}, las cadenas de certificados se encadenan mediante una de estas CA
    648  desde esta fuente, y la fijacin no se lleva a cabo. Esto puede ser til para CA de depuracin
    649  o para poder permitirle al usuario hacer un ataque MiTM al trfico seguro de la aplicacin.
    650   </p>
    651 
    652   <p>
    653     Es {@code "false"} de forma predeterminada, a menos que se especifique en un elemento de {@code debug-overrides}
    654 , en cuyo caso, es {@code "true"} de forma predeterminada.
    655   </p>
    656 </dd>
    657 </dl>
    658 </dd>
    659 
    660 
    661 <h3 id="pin-set">&lt;pin-set&gt;</h3>
    662 
    663 <dl class="xml">
    664   <dt>
    665     SINTAXIS:
    666   </dt>
    667 
    668   <dd>
    669 <pre class="stx">
    670 &lt;pin-set expiration="date"&gt;
    671 ...
    672 &lt;/pin-set&gt;
    673 </pre>
    674   </dd>
    675 
    676   <dt>
    677     PUEDE CONTENER:
    678   </dt>
    679 
    680   <dd>
    681     Cualquier cantidad de <code><a href="#pin">&lt;pin&gt;</a></code>
    682   </dd>
    683 
    684   <dt>
    685     DESCRIPCIN:
    686   </dt>
    687 
    688   <dd>
    689     Un conjunto de fijaciones de claves pblicas. Para que una conexin segura sea de confianza, una de las
    690  claves pblicas de la cadena de confianza debe estar en el conjunto de fijaciones. Consulta
    691  <code><a href="#pin">&lt;pin&gt;</a></code> para el formato de las fijaciones.
    692   </dd>
    693 
    694   <dt>
    695     ATRIBUTOS:
    696   </dt>
    697 
    698   <dd>
    699     <dl class="attr">
    700       <dt>
    701         {@code expiration}
    702       </dt>
    703 
    704       <dd>
    705         La fecha, en formato {@code yyyy-MM-dd}, a partir de la cual
    706  expiran las fijaciones, lo cual deshabilita la fijacin. Si el atributo no est establecido, las fijaciones
    707  no expiran.
    708         <p>
    709           La expiracin ayuda a evitar problemas de conectividad en aplicaciones que no
    710  reciben actualizaciones para el conjunto de fijaciones, por ejemplo, porque el usuario
    711  deshabilit las actualizaciones de la aplicacin.
    712         </p>
    713       </dd>
    714     </dl>
    715   </dd>
    716 </dl>
    717 
    718 <h3 id="pin">&lt;pin&gt;</h3>
    719 <dl class="xml">
    720   <dt>
    721     sintaxis:
    722   </dt>
    723 
    724   <dd>
    725 <pre class="stx">
    726 &lt;pin digest=["SHA-256"]&gt;base64 encoded digest of X.509
    727     SubjectPublicKeyInfo (SPKI)&lt;/pin&gt;
    728 </pre>
    729   </dd>
    730 
    731   <dt>
    732     ATRIBUTOS:
    733   </dt>
    734 
    735   <dd>
    736     <dl class="attr">
    737       <dt>
    738         {@code digest}
    739       </dt>
    740 
    741       <dd>
    742         Resumen del algoritmo usado para generar la fijacin. Actualmente, solo se admite
    743  {@code "SHA-256"}.
    744       </dd>
    745     </dl>
    746   </dd>
    747 </dl>
    748