Normas sobre Tecnologías de la Información y Comunicación - NORTIC

Normas sobre Tecnologías de la Información y Comunicación - NORTIC

Interoperabilidad Técnica

En este capítulo se describen y establecen los protocolos de intercambio de información y formatos digitales que deben ser utilizados en el desarrollo y/o implementación de toda solución tecnológica en cada organismo gubernamental.

  • Implementación de estándares abiertos Abrir o Cerrar
    1. Todos los estándares utilizados por los organismos deben ser abiertos.
      1. Los estándares abiertos deben cumplir con las siguientes cualidades.

        • Disponibilidad: Deben estar disponibles para su lectura e implementación.

        • Capacidad de elección: Debe ser posible elegir la implementación a usar del mismo, sin restringir al cliente, un distribuidor o grupo concreto.

        • Sin prebendas: Su implementación debe estar disponible sin coste de uso.

        • Sin discriminación: La elección de una implementación debe ser por motivos puramente técnicos.

        • Extensión o reducción: Las implementaciones pueden ser ampliadas o utilizar sólo un subconjunto del estándar.

        • Sin prácticas abusivas: Su implementación debe evitar tácticas subversivas y cualquier acción que atente contra la privacidad de los usuarios.
  • Protocolos de intercambio de datos Abrir o Cerrar

    En esta punto se especifican los protocolos a utilizar para la transferencia de archivos, hipertexto y mensajería. 

    1. Los protocolos mínimos que deben utilizarse para el intercambio de información por categoría son los siguientes: 
      1. Para transferencia de archivos debe utilizarse los siguientes protocolos:

        1. El Protocolo de Transferencia de Archivo Seguro (SFTP, por sus siglas en inglés) utilizado con el Intérprete de Órdenes Seguras (SSH, por sus siglas en inglés).

        2. El Protocolo Seguro de Transferencia de Datos (también referido como FTPS, por sus siglas en inglés).

      2. Para hipertexto y recursos de software debe utilizarse los siguientes protocolos:

        1. El Protocolo de Transferencia de Hipertexto (HTTP, por sus siglas en inglés).

        2. El Protocolo Seguro de Transferencia de Hipertexto (HTTPS, por sus siglas en inglés).

      3. Para mensajería debe implementarse y utilizarse los siguientes protocolos, pero solo en su forma segura:

        1. El Protocolo de Oficina de Correo (POP3, por sus siglas en inglés), utilizado con uno de los siguientes protocolos de seguridad:

          • Protocolo de Seguridad de la Capa de Transporte (TLS, por sus siglas en inglés) en el puerto 110.

          • Protocolo de Capa de Conexión Segura (SSL, por sus siglas en inglés) en el puerto 995.

        2. El Protocolo de Acceso a Mensajes de Internet (IMAP, por sus siglas en inglés), utilizado con uno de los siguientes protocolos de seguridad:

          • Protocolo TLS en el puerto 143.

          • Protocolo SSL en el puerto 993.

        3. El Protocolo Simple de Transferencia de Correos (SMTP, por sus siglas en inglés), utilizado con uno de los siguientes protocolos de seguridad:

          • Protocolo TLS en el puerto 587.

          • Protocolo SSL en el puerto 465.
  • Almacenamiento de datos Abrir o Cerrar

    Para garantizar la correcta integración en el manejo de la información se indican las directrices para lograr que las bases de datos sean compatibles con los estándares actuales de la industria para el manejo y almacenamiento de información.

    Bases de datos

    1. Debe utilizarse bases de datos relacionales y orientadas a objetos que posean compatibilidad de comunicación vía los siguientes formatos:
        • Notación de Objetos de JavaScript (JSON, por sus siglas en inglés) y sus variantes.

        • Lenguaje de Marcas Extensible (XML, por sus siglas en inglés) y sus variantes.

        • Valores Separados por Comas (CSV, por sus siglas en inglés).

        • Valores Separados por Tabulaciones (TSV, por sus siglas en inglés).

    2. Cuando se utilicen bases de datos relacionales, estas deben cumplir con las siguientes directrices:

      1. Ser compatibles con el Lenguaje de Consulta Estructurado (SQL, por sus siglas en inglés) y sus variantes.

      2. El diseño y modelado debe estar creado de forma que cumpla con al menos 3 de las 5 formas normales de normalización de base de datos, como se muestra en la siguiente figura:

        1. Normalización de bases de datos
      3. Entre algunas de las variantes de SQL se encuentran: 

      • T-SQL

      • PL/SQL

      • FSQL

    3. Para la consulta, manipulación y creación de los datos y objetos en base de datos orientada a objetos debe utilizarse la Interfaz de programación de Aplicaciones (API, por sus siglas en inglés), adaptada al lenguaje que esté utilizando para la aplicación o proceso de integración.

     Un ejemplo de un API adaptada al lenguaje es para el caso de MongoDB    utilizar el  C# y .Net MongoDB Driver.

    Archivos planos

    1. Los archivos planos deben presentarse en los siguientes formatos descritos a continuación:
    • JSON (y sus variantes).

    • XML (y sus variantes).

    • CSV.

    • TSV.

     

     

     

     

  • Extensiones y almacenamiento de archivos Abrir o Cerrar

    En este punto se especifican las directrices para el uso de las extensiones de archivo y como debe realizarse el almacenamiento de estos.

    1. Para el uso de extensiones debe seguirse las siguientes directrices:

      1. Puede utilizarse todas las extensiones existentes en el sector tecnológico (sin excepción) para los archivos generados, compilados o interpretados, siempre y cuando estos archivos no contengan códigos de software malicioso, programas espías o que comprometa la seguridad de los sistemas y/o servidores del organismo.

      2. Debe documentarse el uso de cada extensión por cada sistema desarrollado o implementado y categorizado como sigue:

        • Archivos de documentos.

        • Archivos de configuración.

        • Archivos de recursos.

        • Archivos temporales.

      3. Para el almacenamiento de archivos debe seguirse los mensionado a continuación:

        1. Los archivos deben ser almacenados en espacios digitales seguros.

          1. Para el almacenamiento seguro de la información, ver la NORTIC A1:2014, en el punto sobre almacenamiento de la información.

        2. Cuando el almacenamiento se realiza de manera local, los servidores del organismo deben cumplir con lo siguiente:

          1. La tecnología utilizada en los servidores para el almacenamiento de archivos por el organismo debe permitir la generación de accesos externos, mediante servicios web o vía HTTPS permitiendo la integración directa y segura con otros sistemas.

          2. Almacenar los archivos en servidores, donde el sistema operativo provea seguridad a la información.

          3. Los nombres de los archivos deben obedecer a un esquema o patrón definido por el organismo, el cual debe estar presente en la documentación del sistema.

          4. Los nombres de los archivos no deben ser mayor de 64 caracteres.

        3. Cuando el almacenamiento de archivos se realiza en una nube computacional esta debe cumplir con las directrices especificadas en la NORTIC A1:2014, sobre computación en la nube.

          1. El servicios seleccionados para el almacenamiento en nube computacional debe cumplir con al menos 2 de las siguientes certificaciones:

            • ISO/IEC 27001:2005, sobre técnicas de seguridad de la información y administración de sistemas. Certificada y auditada por la ISO.

            • Controles de la Empresa de Servicios 1 y 2 (SOC 1, SOC 2, por sus siglas en inglés) junto con la Declaración sobre Normas de Auditoria 16 y el Estándar Internacional en Aseguramiento de Compromisos 340 (SSAE 16/ISAE, por sus siglas en inglés), para medir el control de las informaciones financieras de una organización o empresa de servicios.
            • Matriz de control en la Nube (CCM, por sus siglas en inglés), de la Alianza de Seguridad en la Nube (CSA, por sus siglas en ingles), para controles de seguridad en plataformas de clientes y proveedores de servicios computaciones en la nube.

            • Estándar de Seguridad de Datos para la Industria de Tarjeta de Pago, Nivel 1(PCI DSS, por sus siglas en inglés), sobre estándares de seguridad establecidos para ayudar a la protección de empresas y consumidores frente al robo de datos y el fraude.

          2. La tecnología de almacenamiento para archivos de recursos de sistemas como lo son imágenes, documentos y archivos scripts/styles debe ser preferiblemente de tipo de Red de Entrega de Contenido (CDN, por sus siglas en inglés).
  • Administración de código fuente Abrir o Cerrar

    La interoperabilidad debe incluir tanto lo referente a la comunicación y almacenamiento de la información, así como también la estandarización y disponibilidad del código fuente utilizado en las soluciones gubernamentales para su reutilización y resguardo seguro, por tal razón, en esta sección se especifican las directrices para la efectiva administración del código fuente.

    Repositorio general

    1. Para el correcto cumplimiento de la presente normativa, la administración del código fuente debe regirse bajo los siguientes requisitos:
      1. Para el control de las versiones de aplicaciones debe utilizarse la tecnología de manejo distribuido de versiones GIT.

      2. El código fuente solo debe estar disponible localmente en el computador de trabajo de los desarrolladores y en el repositorio remoto de GIT asignado por la OPTIC.

      3. Debe colocarse un comentario detallado de forma obligatoria en cada “Commit” que se realice en la plataforma.

      4. Cada versión completamente funcional de la solución debe estar separada por “Branches” dentro del repositorio de GIT para la corrección.

      5. El código fuente de todas las soluciones desarrolladas para cualquier organismo gubernamental debe estar guardado en su última versión en los servidores de GIT autorizados por la OPTIC.

    Comentarios y formatos

    1. Debe utilizarse nombres descriptivos para entidades u objetos.
    2. Los comentarios en el código deben ser concisos:

      1. Debe comentarse los distintos bloques de los que se compone el código, aplicando un criterio uniforme y distinto para cada nivel y seguir un modelo basado en los aspectos siguientes:

        • Incluir en cada clase una breve descripción, su autor y fecha de última modificación.

        • Incluir por cada método, una descripción de su objeto y funcionalidades, así como de los parámetros y resultados obtenidos.

      2. Los comentarios deben explicar de manera breve la funcionalidad de un método antes de su declaración.

        1. No debe incluirse en el comentario cómo el método realiza su funcionalidad.
      3. No debe comentarse el código para manejo de cambios.

      4. Los comentarios en el código fuente deben mantenerse actualizados.

        1. Si en algún momento la funcionalidad del código cambia, deben actualizarse los comentarios.

        2. De cambiar la naturaleza del algoritmo, debe actualizarse inmediatamente el comentario asociado.
      5. Debe mantenerse el mismo estilo de formato y comentarios en el código fuente para permitir una mejor compresión del lector. 

        Ejemplos de documentación por lenguaje de programación:       

        •  Para C# el XML Documentación Comments.

        •   Para Python los Documentos de Strings

      1. No debe utilizarse palabras o frases indebidas en los nombres de entidades, métodos o comentarios dentro del código fuente.

      2. Se recomienda utilizar el estándar y/o tecnología de documentación propia del lenguaje de programación utilizado.

     

     

     

  • Interoperabilidad web Abrir o Cerrar

    Se especifican los protocolos y lenguajes que permitirán un efectivo intercambio de datos entre aplicaciones.

    1. Los lenguajes de programación que deben utilizarse para interfaces de usuario son los siguientes:
      1. La interfaz de usuario de las aplicacio nes deben estar codificadas en los siguientes lenguajes:

        • Lenguaje de Marcas de Hipertexto, versión 5 (HTML5, por sus siglas en inglés).

        • HTML extensible (XHTML, por sus siglas en inglés).

      2. Para los lenguajes de estilo deben utilizarse las Hojas de Estilos en Cascada (CSS, por sus siglas en inglés).
        1. Solo serán permitidas las versiones 2.1 o superiores.

        2. Solo serán permitidas las librerías basadas en archivos de órdenes que sirvan para la creación y manipulación de estilos de forma dinámica.

        Ejemplos de librería basadas en archivos de órdenes  más utilizadas: LESS, SASS y Stylus

      3. Debe utilizarse solo las tecnologías de lenguajes interpretados basadas en JavaScript.

             Ejemplos de marcos de trabajos de programación basados en JavaScript:          AngularJS, EmberJS, KnockoutJS, BackboneJS.

    2. Para el intercambio de información debe cumplirse con lo siguiente:

      1. Debe utilizarse servicios web, utilizando protocolos de transferencia estándares en la web, como lo son: 

        • JSON- Llamada a Procedimiento Remoto (JSON-RPC, por sus siglas en inglés).

        • JSON- Protocolo de Servicio Web (JSON-WSP, por sus siglas en inglés).
        • Transferencia de Estado Representacional (REST, por sus siglas en inglés).

        • Protocolo de Acceso de Objeto Simple (SOAP, por sus siglas en inglés).
        • Servicio de Procesamiento Web (WPS, por sus siglas en inglés).

        • Lenguaje de Descripción de Servicios Web (WSDL, por sus siglas en inglés).
  • Aspectos generales de seguridad Abrir o Cerrar
    1. Solo debe utilizarse canales de transferencia seguros como los especificados en cada punto de la normativa.
    2. En caso de utilizar otro método para la interoperabilidad con otros sistemas debe enviarse la justificación de uso al correo electrónico Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. para que fines de evaluación del requerimiento.