{"id":80,"date":"2005-06-04T12:11:42","date_gmt":"2005-06-04T10:11:42","guid":{"rendered":"http:\/\/bitacora.eniac2000.com\/?p=80"},"modified":"2005-06-04T12:11:42","modified_gmt":"2005-06-04T10:11:42","slug":"firmas-digitales","status":"publish","type":"post","link":"https:\/\/bitacora.eniac2000.com\/?p=80","title":{"rendered":"Firmas digitales"},"content":{"rendered":"<p>Dado que la cosa ha suscitado bastante inter\u00e9s, voy a extenderme un poco en el tema de las firmas digitales.<br \/>\nLas firmas digitales surgen para resolver dos problemas bien diferenciados, pero \u00edntimamente relacionados entre s\u00ed: poder saber que un texto no ha sido modificado por alguien ajeno al remitente en primer lugar, y poder identificar de manera un\u00edvoca al autor de ese texto. Ese problema queda resuelto de una manera bastante adecuada con las firmas digitales.<br \/>\nLas firmas digitales suelen implementarse usando criptosistemas de clave p\u00fablica y privada, como por ejemplo RSA, El Gamal (el que yo utilizo) y otros. Siempre se generan dos claves, una p\u00fablica y otra privada; la primera se hace de dominio p\u00fablico, y la segunda ha de permanecer s\u00f3lo conocida para el usuario. La clave privada, o maestra, permite desencriptar lo encriptado por la clave p\u00fablica y la privada, y la clave p\u00fablica s\u00f3lo permite desencriptar lo encriptado por la clave privada.<br \/>\nA la hora de utilizar las firmas digitales, nos encontramos con las siguientes casu\u00edsticas (suponemos que un usuario A quiere enviar un mensaje a otro usuario B:<\/p>\n<ul>\n<li>Uso directo: La primera posibilidad es es que A cifra el mensaje con su clave privada, env\u00eda el mensaje a B, y \u00e9ste lo decodifica con la clave p\u00fablica de A. Este m\u00e9todo garantiza a B que A es quien ha enviado el mensaje, pues la clave p\u00fablica de A desencripta s\u00f3lo y exclusivamente lo que se ha encriptado con la clave privada de A. Cumplimos los requisitos de identificaci\u00f3n del remitente y de inviolabilidad del texto, pero no se garantiza la confidencialidad, ya que cualquiera que posea la clave p\u00fablica de A podr\u00eda desencriptar el mensaje.<br \/>\n<a href=\"\/wp-content\/cripto1.jpg\"><img decoding=\"async\" src=\"\/wp-content\/thumb-cripto1.jpg\" alt='' \/><\/a><br \/>\nPara resolver este problema, hay una variante: el usuario A, despu\u00e9s de haber cifrado su mensaje con su clave privada, vuelve a cifrar el texto, esta vez con la clave p\u00fablica de B; B, al recibir el texto, primero lo descifra con su clave privada, y posteriormente, con la clave p\u00fablica de A. De esta manera, se garantiza que s\u00f3lo B puede leer el mensaje (recordemos que no se puede descifrar con una clave p\u00fablica un mensaje cifrado con esa misma clave p\u00fablica, s\u00f3lo puede hacerse con la clave privada).<\/li>\n<li>Uso con centro de autentificaci\u00f3n de claves: Lo anterior es v\u00e1lido para el caso en que <em>confiamos<\/em> en el remitente pero, \u00bfqu\u00e9 pasa si \u00e9ste es desconocido o no tenemos indicio de que merezca nuestra confianza? Es aqu\u00ed donde entran en juego las entidades autentificadoras de clave. El procedimiento, <em>grosso modo<\/em>, es el siguiente: A genera un resumen del texto a enviar (que es \u00fanico), y env\u00eda este resumen y el texto en s\u00ed a una entidad certificadora. \u00c9sta verifica que el resumen ha sido generado por A, lo certifica, y lo env\u00eda a B junto con un certificado de la identidad de A, todo ello firmado por la entidad certificadora, de tal manera que B descifra el mensaje con la clave p\u00fablica de la entidad certificadora. De esta manera, tenemos garantizada la identidad de A y la integridad del texto, y dependiendo si la entidad env\u00eda todo el texto cifrado, o s\u00f3lo un resumen, la confidencialidad. Hay que fiarse de la entidad certificadora, pero llegado a cierto grado de paranoia&#8230;<\/li>\n<li>Firma: En los casos anteriores nos encontr\u00e1bamos con que se cifraba todo el texto. Pero, \u00bfqu\u00e9 pasa si no nos interesa la confidencialidad del mensaje, s\u00f3lo saber a ciencia cierta que es el remitente quien nos env\u00eda el mensaje? Para ello est\u00e1 la firma: A genera un resumen del texto (un\u00edvoco, realizado con una funci\u00f3n resumen), lo cifra con su clave privada, lo a\u00f1ade al texto, y lo env\u00eda a B. B descifra con la clave p\u00fablica de A la firma, y puede verificar que el res\u00famen se corresponde con el texto. De esta manera, se garantiza que \u00e9ste no ha sido violado, y que ha sido enviado por el remitente. La ventaja de este uso es que es mucho m\u00e1s r\u00e1pido, pues no es lo mismo cifrar un texto completo que un res\u00famen.<\/li>\n<p><a href=\"\/wp-content\/cripto3.jpg\"><img decoding=\"async\" src=\"\/wp-content\/thumb-cripto3.jpg\" alt='' \/><\/a><\/p>\n<li>Otros: Todo lo anterior admite combinaciones entre s\u00ed: podemos generar la firma, volver a cifrar el texto del mensaje junto con la firma, cifrar con la clave p\u00fablica del destinatario, enviarlo a una entidad certificadora&#8230; seg\u00fan el grado de paranoia que suframos.<\/li>\n<\/ul>\n<p>Para m\u00e1s informaci\u00f3n, se pueden consultar <a href=\"http:\/\/ma1.eii.us.es\/Docencia\/Doc_info\/material\/Transparencias.PDF\">los apuntes<\/a> de mi asignatura de Criptograf\u00eda (temas 5, 6 y 7).<\/p>\n<p>Por cierto, Taran, en caso de que tengas alguna vez alguna asignatura de Criptograf\u00eda, espero que no sea como la m\u00eda. S\u00f3lo vemos el tema desde el punto de vista matem\u00e1tico, nada aplicado, ya que <em>eso se corresponde al temario de otras asignaturas de la carrera<\/em>. \ud83d\ude1b<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dado que la cosa ha suscitado bastante inter\u00e9s, voy a extenderme un poco en el tema de las firmas digitales.<br \/>\nLas firmas digitales surgen para resolver dos problemas bien diferenciados, pero \u00edntimamente relacionados entre s\u00ed: poder saber que un texto no ha sido modificado por alguien ajeno al remitente en primer lugar, y poder identificar de manera un\u00edvoca al autor de ese texto. Ese problema queda resuelto de una manera bastante adecuada con las firmas digitales.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[13],"tags":[],"series":[],"class_list":["post-80","post","type-post","status-publish","format-standard","hentry","category-informatica"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=\/wp\/v2\/posts\/80","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=80"}],"version-history":[{"count":0,"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=\/wp\/v2\/posts\/80\/revisions"}],"wp:attachment":[{"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=80"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=80"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=80"},{"taxonomy":"series","embeddable":true,"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=%2Fwp%2Fv2%2Fseries&post=80"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}