Diferencia entre revisiones de «Uso de técnicas de programación segura»
| Línea 231: | Línea 231: | ||
Entón o programa cliente debe establecer unha conexión co porto local 10220 en lugar de co remoto 2200. O tráfico TCP que se dirixa hacia a conexión establecida con ese porto encriptarase e dirixirase a través do túnel SSH; e chegará ó servidor de SSH da máquina remota (normalmente, o porto 22). Alí se desencriptará e dirixirase o porto 2200. | Entón o programa cliente debe establecer unha conexión co porto local 10220 en lugar de co remoto 2200. O tráfico TCP que se dirixa hacia a conexión establecida con ese porto encriptarase e dirixirase a través do túnel SSH; e chegará ó servidor de SSH da máquina remota (normalmente, o porto 22). Alí se desencriptará e dirixirase o porto 2200. | ||
| − | Para reflexionar | + | '''Para reflexionar.''' |
A posibilidade de engadir unha capa de encriptación baseada en TLS/SSL sobre TCP (ben sexa na propia aplicación ou a nivel de sistemas) engadida mediante túneles de SSH fixo posible o uso do protocolo TCP para aplicaciones seguras. Pero... hay algo similar para UDP? | A posibilidade de engadir unha capa de encriptación baseada en TLS/SSL sobre TCP (ben sexa na propia aplicación ou a nivel de sistemas) engadida mediante túneles de SSH fixo posible o uso do protocolo TCP para aplicaciones seguras. Pero... hay algo similar para UDP? | ||
Hai algunha solución coma o uso de [https://en.wikipedia.org/wiki/Datagram_Transport_Layer_Security DTLS] ou [https://snapcraft.io/udp-over-tls-pool UDP over TLS]. Pero a propia natureza do protocolo (consistente no envío de paquetes individuales de datos e non orientada a conexión) fai moi pouco habitual precisar dun mecanismo similar. | Hai algunha solución coma o uso de [https://en.wikipedia.org/wiki/Datagram_Transport_Layer_Security DTLS] ou [https://snapcraft.io/udp-over-tls-pool UDP over TLS]. Pero a propia natureza do protocolo (consistente no envío de paquetes individuales de datos e non orientada a conexión) fai moi pouco habitual precisar dun mecanismo similar. | ||
Revisión del 18:58 2 oct 2021
Sumario
Introdución
Profundizaremos na seguridade das comunicacións de datos entre procesos que se executan en ordenadores; concretamente en que os datos que un proceso emisor envía a outro proceso receptor:
- cheguen inalterados
- só ó receptor previsto
- e ten un modo de verificar que esto foi así.
No caso de que cheguen a algún outro, garantirase que non poida comprender a información codificada (que lle resulten inintelixible). Isto acádase encriptando ou cifrando os datos.
Os términos cifrado e encriptación aditan empregarse coma sinónimos, máis existe algún matiz que os diferencia. Podemos dicir que o cifrado ten un significado máis específico que encriptación, e que sempre é reversible; isto é, partindo do texto cifrado seempre se pode obter o texto original.
Comunicaciones de datos
Amosanse na figura os elementos que interveñen nunha comunicación entre dúas partes: unha que actúa como emisor e outra que actúa como receptor.
A información que se desexa transmitir codifícase e se transmite de emisor a receptor por un medio de comunicación. Cando a comunicación é entre dous procesos de ordenador, a mensaxe codifícase en binario (coma unha secuencia de ceros e unos).
o medio de comunicación non ten porque ser o ideal xa que as mensaxes:
- podense deteriorar, de xeito que se altere a súa información
- poden no chegar o seu destino
O medio adoita ser compartido con outros emisores e receptores. Implica isto:
- que poden ter acceso ó medio usuarios non previstos ou incluso maliciosos, que poden escoitar ou ter acceso as mensaxes que se transmiten polo medio, e incluso alterarlos
- o emisor non ten a seguridade total de que a mensaxe chegue ó receptor nin de que o faga inaleterado
- o receptor non ten forma de asegurar que a mensaxe proven do supuesto emisor.
En resumo o medio é inseguro ou non fiable.
A canle:
- adoita ser bidireccional (permite a comunicación en ambos sentidos)
- así pois ambas partes pueden actuar coma emisor e coma receptor, nunha comunicación duplex o bidireccional;o ocontrario é de tipo simplex ou unidireccional.
- e se poden actuar simultáneamente coma emisor e receptore trátase dunha comunicación full-duplex; o contrario (non poden simultáneamente) trátase dunha comunicación de tipo half-duplex.
Aspectos de seguridade nas comunicacións de datos
Os aspectos fundamentales da seguridade nas comunicacións de datos son os seguintes:
- Integridade
- Os datos que recibe o receptor son idénticos os que emitiu o emisor (non foron alterados en ningún punto intermedio no medio de comunicación). As alteracións poden ser:
- por fallos do propio medio (fallos eléctricos se a información se transmite por cables ou ópticos se se transmite por fibra óptica) ou interferencias de todo tipo
- ademáis da acción posible dalgún usuario malientencionado que desexa alterar os datos
- Confidencialidade
- os datos transmitidos só son intelixibles para o receptor previsto da mensaje (na práctica non se poderá impedir con total seguridade que cheguen a algún destinatario non previsto ou ilexítimo). Porén, os datos deben ser intelixibles só para o destinatario previsto, o que se acada enviando a mensaxe encritpada (e só o destinatario previsto será capaz de desencriptalo)
- Autenticación
- o receptor da mensaxe pode estar seguro de que o emisor da mensaxe é quen espera que sexa (o emisor da mensaxe é quen di ser e non un suplantador)
- Non repudio
- o receptor da mensaxe pode demostrar, unha vez recibida unha mensaxe dun emisor, que a mensaxe foi emitida polo devandito emisor. Deste xeito se o emisor negara ter emitido esa mensaxe, se lle podrá refutar.
As implicacións e a relevancia destes aspectos son distintas segundo os contextos nos que se produza a comunicación de datos entre procesos. Non ten os mesmos requisitos de seguridade unha comunicación entre dous fíos dun mesmo proceso a través de memoria compartida, que entre dous procesos que se executan en ordenadores de redes distintas e que deben pasar a través de múltiples redes a priori descoñecidas e sobre as que non se ten ningún control. Nun contexto así, o único que pode garantir a confidencialidade dos datos é a súa encriptación.
Funcións de hash
As funcións hash utilízanse para verificar a integridade do contido das mensaxes e para firma dixital, que garantiza a súa autenticación e non repudio.
Para comprender plenamente as funcións hash e as súas características é preciso a comprensión dos seus fundamentos desde unha perspectiva computacional. Pero non ímos profundizar moito neses conceptos, buscando comprender a grosso modo o seu funcionamento, e centrándonos máis no seu uso e posibilidades.
Unha función de hash ou digest fai corresponder a cada secuencia de bytes (por larga que sexa) uhna cadea de lonxitude fixa (e relativamente corta). O cálculo do hash ou digest para unha secuencia de bytes é moi rápido; pola contra é prácticamente imposible obter unha secuencia de bytes á que corresponda un valor de hash determinado. Dise por tanto que as funcións de hash son funcións unidireccionais (one-way functions).
MD5
Un exemplo de función de hash é MD5:
- a unha secuencia de bytes de calquer tamaño faille corresponder un valor de 128 bits.
Esta función está implementada en Linux no comando md5sum. Está implementado tamén em linguaxes de scripting coma PHP como MD5
Aínda que altamente improbable, pode producirse unha colisión de hash: unha situación que se produce cando dúas entradas distintas a unha función de hash producen a mesma saída. E de feito, MD5 xa non se considera segura desde que no ano 2006 probouse unha implementación de colisións en MD5 que pemite crear archivos de lonxitude arbitraria que teñan hash MD5 idéntico e que difieren en só 128 bytes nalgún lugar en mitad do fichero (ataques coñecidos coma de tipo chosen-prefix)
SHA
SHA é unha familia de funcións criptográficas hash publicadas polo Instituto Nacional de Estándares y Tecnología (NIST):
Só SHA-0 é vulnverable, aínda que en SHA-1 xa se constataron debilidades matemáticas que fan peligrar a súa seguridade a medio prazo.
Controversia A NSA é unha axencia de inteligencia do goberno dos Estados Unidos. Diseña moitos métodos e moitos dos algoritmos criptográficos ampliamente utilizados na actualidade. Isto suscita controversia por ser a NSA unha axencia de intelixencia dun goberno, e que pode estar especialmente interesada en atopar e explotar vulnerabilidades dos sistemas informáticos e das comunicacións. De feito a NSA participa nos procesos criptográficos do NIST. Cres que pode haber un conflicto de intereses? Que a seguridade deses algoritmos criptográficos pode estar garantida?
Outras funcións hash
Outras funcións hash utilizadas son:
Propiedades dunha función hash
Todas as funcións hash comparten unhas propiedades importantes, que son requisitos para que se poidab considerar unha boa función de hash
Non reversibilidade
Debe ser prácticamente imposible obter unha secuencia para a que a función de hash calcule un valor determinado. Con esto non se garante a imposibilidade teórica, se non a imposibilidade práctica; debe ter un coste computacional enorme atopar unha secuencia de bytes para a que o seu valor de hash sea un determinado.
Pódese calcular rápidamente o hash MD5 para un valor determinado; pero á inversa, é na práctica case imposible averiguar un valor que teña ese hash MD5. Normalmente haberá moitos porque as funcións de hash non son inyectivas; mais en principio o único xeito de atopar un sería calculando o hash MD5 para una secuencia tras outra ata que para algunha se obteña o valor de hash buscado. Entón atoparemos o que se chama unha colisión de hash.
Esta estratexia de probar un valor tras outro ata atopar un valor cun mesmo valor de hash é un ataque de forza bruta para atopar unha colisión de hash.
Para reflexionar. Ningunha boa función hash pode evitar a colisión hash...por qué? Hai un principio matemático que o fai máis fácil de entender, que é o principio das caixas: Hai dez mazas na mesa. Debes poñer estas dez manzás en nove caixas. Non importa cómo as coloques, descubriremos que haberá ó menos dúas mazós en cando menos unha caisa.
Unha das aplicacións das funcións de hash que aproveita esta propiedade é a validación de contrasinais sen necesidad de almacenar o seu valor. En troques o que se almacena é o resultado de aplicar a función de hash o contrasinal. Cando se quere verificar un contrasinal introducida por un usuario do sistema, calcúlase o valor de hash e se compara co previamente almacenado. Por exemplo en sistemas Linux, no ficheiro /etc/shadow almacena un hash dos contrasinais en lugar dos propios contrasinais.
Unha colisión de hash, é dicir, unha secuencia de caracteres que teña como valor de hash o almacenado neste ficheiro, permitiría dar por válida como contrasinal esa secuencia de caracteres.
Uniformidade
O número de posibles secuencias é moi superior o número de posibles valores que pode tomar a función de hash. Porén, cada posible valor de hash corresponderá en xeral a múltiples secuencias. A propiedade de uniformidade consiste en que cada valor de hash corresponde, aproximadamente, o mesmo número de secuencias; isto é, que non debe haber valores de hash sobrerrepresentados que teñan notablemente máis tendencia a sair como resultado da función de hash.
Discontinuidade
Pequenas variacións na secuencia de bytes deberían dar como resultado grandes variacións no valor do hash calculado. Por exemplo cambiando un só byte nun ficheiro de moitos megabytes, a variación no valor do seu hash debería ser sustancial. o novo valor debería estar moi alonxado (na súa representación binaria deberían cambiar moitos bits), e ó longo de toda ela.
Funcións hash máis frecuentemente utilizadas
A modo de resumo, esta táboa amosa as funcións hash mais utilizadas:
| Función | Descripción |
|---|---|
| MD5 | Creado por Ronald Rivest en 1991. Produce valores de 128 bits. Utilízase ampliamente para verificar a integridade de ficheiros. Descubrironse vulnerabilidades que non o fan apropiado para o seu uso actual en criptografía. |
| SHA-1 | Produce valores de 160 bits. Desenvolto pola National Security Agency (NSA). Na actualidade tampouco se considera coas suficientes garantías de seguridade. |
| SHA-2 e SHA-3 | Producen valores de 224, 256, 384 o 512 bits segundo a variante. SHA3 ten variantes que permiten xerar valores de hash de lonxitude arbitraria. |
Integridade nas comunicacións de datos
As propiedades anteriores (non reversibilidade, uniformidade e discontinuidade) dunha función de hash, así como a lonxitude fixa e relativamente pequena dos valores de hash, fan posible e viable na práctica o seu uso para verificar a integridade dunha mensaxe transmitida por un medio inseguro.
Para iso achégase coa mensaxe o seu valor de hash. No destino calcúlase o valor de hash sobre a mensaxe recibide e se compara co que se achegou na mensaxe. Se coinciden, podese estar seguro de que o contido da mensaxe noj foi alterado desde a súa emisión.
Criptografía
O término criptografia ven das palabras greegas kryptós (que significa oculto) e graphé (que significa escritura). O obxectivo da criptografra é ocultar o significado dunha mensaxè meáiante o cifrado ou codificación da mensaxe.
O proceso xeral de cifrado e descifrado de mensaxes amosase na figura:
- Se a un texto lexible se lle aplica un algoritmo de cifrado, que en xeneral depende dunha clave, esto da como resultado un texto cifrado que se envia ou almacena; a este proceso se lle chama cifrado o encriptación.
- Se a ese texto cifrado se lle aplica o mesmo algoritmo, dependente da misma clave ou doutra clave (dependendo do algoritmo), obtense o texto legible original; a este segundo proceso chámselle descifrado ou desencriptación.
A encriptación de datos pódese facer:
- con criptografía de clave pública, que adquiríu unha importancia decisiva co crecemento de internet.
- con criptografía de clave privada.
Moitos métodos criptográficos usan criptografía tanto de clave pública como de clave privada:
De clave pública (ou asimétrica)
Algortimos de clave pública
De clave privada (ou simétrica)
Algortimos de clave privada
Diferenzas entre cifrado e encriptación
Cando falamos de encriptación, normalmente falase específícamente de cifrado. Máis hai outros tipos de métodos criptográficos ademáis do cifrado.
Nun sentido amplio, pódese considerar que o cálculo dunha función de hash é una operación de encriptación; non de cifrado. Como se comentou nos sistemas ben deseñados non se almacenan os valores dos contrasinais en claro, se non o resultado de aplicarlles unha función de hash. Para o propósito de verificar un contrasinal, o seu valor de hash serve perfectamente; pódese considerar que o almacenamento do valor de hash do contrasinal é un xeito de ocultar (encriptar) o seu valor.
Hai una diferencia fundamental entre o cálculo dun valor de hash e o cifrado: O cifrado é reversible (podese obter o valor en claro a partir do valor encriptado sempre que se coñeza a clave utilizada), e o cálculo dun valor de hash non o é (a partir dun valor de hash non se pode obter o valor orixinal).
Tanto as funcións de hash como as de cifrado son susceptibles de sufrir ataques criptográficos que poden ser por forza bruta e tamén cunha fase previa de criptoanálise. Para una función de hash o obxectivo é atopar unga colisión de hash para un valor determinado; para unha función de cifrado, o obxectivo é atopar a clave utilizada para l encriptación e con iso o texto en claro.
Comparativa e resumo
| Criptografía simétrica ou de clave secreta | |
|---|---|
| Puntos fortes | Cifran máis rápido que os algoritmos de clave pública. Serven habitualmente como base para os sistemas criptográficos baseados en hardware. |
| Puntos débiles | Requiren un sistema de distribución de claves moi seguro (se se coñece a clave pódense coñecer todos as mensaxes cifradas con ela). No momento en que a clave cae en manos non autorizadas todo o sistema deixa de funcionar; isto obriga a levar unha administración complexa. Se se asume que é precisa unha clave por cada parella de usuarios dunha rede, o número total de claves crece rápidamente co número de usuarios. |
| Criptografía asimétrica ou de clave pública | |
| Puntos fortes | Permiten conseguir autenticación e non repudio para moitos protocolos criptográficos. Adoitan empregarse en colaboración con calquiera dos outros métodos criptográficos. Permiten ter unha administración sinxela de claves ó non precisar de que haiba intercambio de claves seguro. |
| Puntos débiles | Son algoritmos máis lentos que os de clave secreta, co que non adoitan utilizarse para cifrar grandes cantidades de datos. As súas implementacións son comúnmente feitas en sistemas software. Para unha gran rede de usuarios e/ou máquinas precísase dun sistema de certificación da autenticidade das claves públicas. |
Como resumo, a criptografia xoga tres papeis principais na implementación de sistemas seguros:
- emprégase para manter o secreto e a integridade da información oonde queira que esta poida estar exposta a ataques
- como base para os mecanismos para autenticar a comunicación entre pares de principales (un principal pode ser un usuario ou un proceso)
- para implementar o mecanismo de firma dixital
Firma dixital
Certificados dixitais
TLS / SSL
TLS (Transport Layer Security) é o nome máis actual de SSL (Secure Sockets Layer), pero o término antiguo SSL segue sendo ampliamente utilizado. Consiste nunha capa de seguridade que se pode engadir sobre o protocolo de nivel de transporte TCP. Utiliza métodos criptográficos de clave pública e de clave privada.
É posible engadir TLS sobre calquera protocolo xa existente engadindo unha fase inicial xusto después do establecemento da conexión de TCP, na que ambas partes acordan os protocolos criptográficos a utilizar e unha clave de sesión compartida. Polo demáis o protocolo xa existente non cambia, pero os datos que se transmiten nos paquetes de datos de TCP van encriptados. O protocolo resultante adoita chamarse igual que o original engadingo un S ó final. Exemplos:
- HTTPS é o resultado de utilizar TLS para que toda a información que transportan os paquetes de datos do protocolo de nivel de aplicación HTTP vaian encriptados.
- FTPS con respecto a FTP fai o mesmo
Para comprender. Os datos nas comunicacións en moitos protocolos viaxaban en claro. Isto sería o equivalente o envío dunha postal: o carteiro e calquera que manipule a postal pode ver o seu destinatario e o contido da mesma. TLS ven a supoñer o equivalente a un sobre: o carteiro xa non pode ver o contido de dentro do sobre, pero o que vai dentro pode ser unha postal idéntica a de antes.
Funcionamento
TLS utiliza criptografía de clave pública para acordar unha clave de sesión entre dous procesos unha vez establecida unha conexión de TCP. O resto das comunicacións encríptanse mediante criptografía de clave privada, utilizando esta clave de sesión.
De esta forma, TLS:
- Solventa os problemas que plantexa a compartición de claves coa criptografía de clave privada e a fai viable para a comunicación entre dúas partes que a priori non comparten ningunha clave. En canto se establece a conexión de TCP, xenérase sobre a marcha unha clave de sesión compartida para ambas partes.
- Aproveitase a maior rapidez da criptografía de clave privada. Esta é moito máis eficiente e consume menos potencia de cálculo que a de clave pública.
O proceso para o establecimiento dunha comunicación segura con TLS comeza unha vez que se estableceu unha conexión de TCP. Consta de dos procesos diferentes, pero que se solapan no intercambio de mensaxes entre cliente e servidor:
- Negociación ou handshake. Ambas partes acordan un cipher suite ou conxunto de algoritmos que utilizar. Un cipher suite inclúe:
- Un algoritmo para intercambio de claves e autenticación (baseado en criptografía de clave pública).
- Un algoritmo de encriptación de clave privada.
- Un sistema MAC (message authentication code). É un conxunto de varios algoritmos que permiten obter, a partir dunha mensaxe, un tag, que é unha breve secuencia de bytes que permiten verificar a integridade dunha mensaxe e ademáis autenticar o emisor; fai por tanto de firma dixital dunha mensaxe.
Cada nova versión engadíua novas cipher suites con mellores e algoritmos máis seguros, eliminabdo aqueles algoritmos considerados xa inseguros.
- Establecimiento dunha clave compartida de sesión. Esta clave utilizarase no sucesivo para cifrar a información mediante un algoritmo de clave simétrica. Na nova versión do protocolo TLS 1.3 introducíronse melloras para que sexan necesarias menos mensaxes de ida e volta entre cliente e servidor.
Túneles con SSH
O protocolo de nivel de aplicación SSH permite asegurar calquier protocolo de nivel de aplicación que funcione sobre o protocolo de nivel de transporte TCP mediante un mecanismo xenérico chamado tunnelling. Este utiliza TLS para encriptación de datos e é completamente transparente para as aplicacións de servidor e de cliente do protocolo (que seguen funcionando igual). O custe é que será preciso instalar e configurar un servidor SSH na máquina na que se executa a aplicación servidora e crear o túnel na máquina na que se executa a aplicación cliente.
Amosemos o funcionamento cun exemplo. Queremos utilizar SSH para asegurar as comunicacións dunha aplicación cliente que se executa na propia máquina cunha aplicación de servidor que funciona no porto 3300 dun host 140.14.61.114 onde está instalado e levantado un servidor de SSH, e existe un usuario pepe. Para crear un túnel desde o porto local (por exemplo, o 10300) a ese porto o comando sería:
ssh pepe@140.14.61.114 −L 10300:140.14.63.114:3300
Entón o programa cliente debe establecer unha conexión co porto local 10220 en lugar de co remoto 2200. O tráfico TCP que se dirixa hacia a conexión establecida con ese porto encriptarase e dirixirase a través do túnel SSH; e chegará ó servidor de SSH da máquina remota (normalmente, o porto 22). Alí se desencriptará e dirixirase o porto 2200.
Para reflexionar. A posibilidade de engadir unha capa de encriptación baseada en TLS/SSL sobre TCP (ben sexa na propia aplicación ou a nivel de sistemas) engadida mediante túneles de SSH fixo posible o uso do protocolo TCP para aplicaciones seguras. Pero... hay algo similar para UDP? Hai algunha solución coma o uso de DTLS ou UDP over TLS. Pero a propia natureza do protocolo (consistente no envío de paquetes individuales de datos e non orientada a conexión) fai moi pouco habitual precisar dun mecanismo similar.
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
Glosario
- Ataque criptográfico
- Intento de atopar o texto en claro a partir do texto encriptado sen coñecer previamente a clave; tamén intento de obter unha colisión de hash para un valor de hash determinado.
- Autenticación
- Seguridade para o receptor dunha información de quén é o seu emisor.
- Certificado dixital
- Documento digital que conten información utilizada para criptografía de clave pública, e que permite acreditar a identidade do seu poseedor ou titular.
- Cifrado ou encriptación
- Representación dunha información dunha forma alternativa de xeito que sexa inintelixible; pero que se poida obter a información na súa forma orixinal se se coñece unha información secreta ou clave.
- Colisión de hash
- Hallazgo dunha secuencia de bytes para os que unha función de hash da como resultado un valor determinado.
- Confidencialidade
- Seguridade de que unha información transmitida hacia un receptor so é recibida por él (ou candomenos so é intelixible para él).
- Criptografía de clave privada
- Conxunto de métodos criptográficos, para encriptado (uo cifrado) e desencriptado (ou descifrado) de mensaxes, que se basean nunha clave ou secreto compartido entre emisor e receptor.
- Criptografía de clave pública
- Conxunto de métodos criptográficos que se basean nunha clave privada coñecida só por unha das partes, e unha clave pública asociada coñecida polas dúas. Inclúe métodos para encriptado (ou cifrado), desencriptado (ou descifrado) e firma dixital.
- Firma dixital
- Secuencia de bytes de lonxitude relativamente corta obtida a partir dunha secuencia de bytes, e que só pode calcular o coñecedor do valor dunha clave privada; pero que calquera pode, utilizando unha clave pública asociada con esa clave privada, verificar que foi xenerada por él.
- Función de hash
- Función que fai corresponder a unha secuencia de datos de lonxitude arbitrariamente longa unha secuencia de lonxitude fixa, e que cumple os requisitos de non reversibilidade, uniformidade e discontinuidade.
- Infraestrutura de clave pública (PKI)
- Combinación de medios e procedementos tecnolóxicos, administrativos e legales que, en conxunto, permiten a execución con garantías de operacións criptográficas baseadas en criptografía de clave pública, cumprindo os requisitos de integridade, confidencialidade, autenticación e non repudio.
- Integridade
- Seguridade para o receptor dunha información transmitida de emisor a receptor, a través dunha canle de comunicacións, de que esta no foi alterada na canle entre ambos.
- Non repudio
- Posibilidade de demostrar que unha información foi emitida por un emisor determinado.
- TLS/SSL
- Protocolo de seguridade que funciona a nivel de aplicación sobre o protocolo de transporte TCP; que utiliza unha combinación de métodos criptográficos de clave pública e privada; e que permite a encriptación dos datos transmitidos nos segmentos de datos do protocolo de transporte TCP.
- X.509
- Estándar para certificados dixitais.
Creditos e referencias
- Programación de servicios y procesos. Carlos Alberto Cortijo Bon ISBN: 9788413571041
- Plaza Martín, F. (2021). Manual de Criptografía: Fundamentos matemáticos de la Criptografía para un estudiante de Grado. Ediciones Universidad de Salamanca.