Uso de técnicas de programación segura

De MediaWiki
Ir a la navegación Ir a la búsqueda

Introdución

Funcións de hash

Integridade nas comunicacións de datos

Criptografía

De clave pública (ou asimétrica)

De clave privada (ou simétrica)

Firma dixital

Certificados dixitais

TLS / SSL

Funcionamento

Túneles con SSH

Resumo

  • A seguridade en comunicacións de datos entre procesos inclúe distintos aspectos complementarios que son importantes no caso común no que a comunicación entre emisor e receptor realizase a través dun medio de comunicación non seguro. Estes aspectos son:
    • a integridade
    • a confidencialidade
    • a autenticación
    • o non repudio. .
  • Unha función de hash calcula a partir dunha secuencia de bytes de lonxitude arbitrariamente longa unha secuencia de lonxitude fixa. Debe cumprir os requisitos de:
    • non reversibilidade
    • uniformidade
    • discontinuidade.
  • Na actualidade non se considera seguro para o seu uso en criptografía as funcións:
    • MD5
    • SHA-1
  • O cifrado consiste en obter unha mensaxe cifrada (inintelixible para todo aquel que descoñezca a clave secreta) a partir dunha secuencia de bytes ou mensaxe en claro. A clave secreta permite obter a mensaxe en claro orixinal; porén, o cifrado é reversible.
  • Tanto o cifrado dunha mensaxe coma o cálculo do seu valor de hash consideranse operacións criptográficas. O cifrado é reversible. Pola contra, o cálculo dun valor de hash non é reversible.
    • Cando se obten un valor para o que unha función de hash obten un valor determinado prodúcese unha colisión de hash.
    • Considérase unha función de hash robusta cando non é viable obter unha colisión de hash por forza bruta (probando un a un os posibles valores) e non existe ningún método de criptoanálise que permita seleccionar un conxunto máis reducido de valores cunha maior probabilidade de éxito.
    • Do mesmo xeito, considérase un método de cifrado robusto cando non é viable obter o valor en blanco orixinal para un valor cifrado por forza bruta, e cando non existe ningún método de criptoanálise que permita seleccionar un conxunto máis reducido de valores cunha maior probabilidade de éxito.
  • A criptografía de clave privada ou criptografía simétrica, basease no uso dunha mesma clave secreta por emisor para o encriptado de mensaxes e polo receptor para o seu desencriptado.
  • A criptografía de clave pública ou criptografía asimétrica basease no uso dun par de claves, unha privada e outra pública, entre as que existe unha relación matemática.
    • Coa clave pública pódese encriptar unha mensaxe de xeito que só se poderá desencriptar coa clave privada.
    • Coa clave privada, xunto con unha función de hash, pódese calcular unha firma dixital, que só pode xerar o coñecedor da clave privada, pero que pode verificar calquer coñecedor da clave pública.
  • Un certificado dixital X.509 conten a clave pública dunha persona ou entidade, e está asinado dixitalmente por unha AC; pódese utilizar para operacións de cifrado e para verificación de firma dixital.
  • Unha PKI é unha combinación de hardware, software, procedimentos de seguridade e marco legal, que en conxunto permite a execución con garantías de operacións criptográficas, cumprindo os requisitos de integridade, confidencialidade, autenticación e non repudio. Unha PKI permite establecer e xestionar asociacións entre claves públicas e identidades de personas e de organizacións.
  • Un certificado raíz é un emitido por unha AC, asinado por ela mesma (isto é, autoasinado), e que permite verificar a firma dos certificados dixitais emitidos por ella. Un certificado autoasinado só se considera válido se está emitido por unha AC.
  • TLS/SSL utiliza unha combinación de técnicas criptográficas de clave pública e privada,e permite encriptar os datos transmitidos mediante o protocolo de transporte TCP.

Práctica