Firma Electrónica y Certificado digital qué es y cómo funciona

Firma Electrónica

¿Qué es?
Es una huella digital de un documento cifrado con una clave
Viene a solventar tres importantes problemas asociados a la documentación electrónica:
  • confidencialidad
  • integridad
  • autenticidad.
¿Cómo funciona?
Es un mecanismo criptográfico que asocia la identidad de una persona o equipo informático al mensaje o documento que este envía. Podría decirse que es lo más parecido a una firma autografiada para el medio electrónico. En función del tipo de firma incluso asegura que no puede modificarse el contenido de un documento firmado. Contiene una clave privada y otra clave pública (criptografía asimétrica).
  
Funcionamiento de la encriptación – desencriptación de un documento mediante la firma digital (fuente Wikipedia):

 
Si el código hash calculado no concuerda con el resultado de la firma digital desencriptada o el documento ha sido modificado posteriormente a la firma del mismo o la firma no fue generada por la clave privada del emisor del documento.



CA= Certification Autorithy




Aplicaciones de la firma digital:
  • Mensajes con autenticidad asegurada
  • Mensajes sin posibilidad de repudio
  • Contratos comerciales electrónicos
  • Factura_Electrónica
  • Desmaterialización de documentos
  • Transacciones comerciales electrónicas
  • Invitación electrónica
  • Dinero electrónico
  • Notificaciones judiciales electrónicas
  • Voto electrónico
  • Decretos ejecutivos (gobierno)
  • Créditos de seguridad social
  • Contratación pública
  • Sellado de tiempo
Tipos de firma electrónica:
  • Básica
  • Avanzada
Creo que un vídeo muestra mejor esto que todas mis palabras asique os dejo este esta estupenda demostracion.




Certificado digital

¿Qué es?
Un certificado digital (también conocido como certificado de clave pública o certificado de identidad) es un documento digital mediante el cual un tercero confiable (una autoridad de certificación) garantiza la vinculación entre la identidad de un sujeto o entidad (por ejemplo: nombre, dirección y otros aspectos de identificación) y una clave pública.
Este tipo de certificados se emplea para comprobar que una clave pública pertenece a un individuo o entidad. La existencia de firmas en los certificados aseguran por parte del firmante del certificado (una autoridad de certificación, por ejemplo) que la información de identidad y la clave pública perteneciente al usuario o entidad referida en el certificado digital están vinculadas.



Un aspecto fundamental que hay que entender es que el certificado para cumplir la función de identificación y autenticación necesita del uso de la clave privada (que sólo el titular conoce). El certificado y la clave pública se consideran información no sensible que puede distribuirse perfectamente a terceros. Por tanto el certificado sin más no puede ser utilizado como medio de identificación, pero es pieza imprescindible en los protocolos usados para autenticar a las partes de una comunicación digital, al garantizar la relación entre una clave pública y una identidad.
El ejemplo por excelencia es la firma electrónica: aquí el titular tiene que utilizar su clave privada para crear una firma electrónica. A esta firma se le adjuntará el certificado. El receptor del documento que quiera comprobar la autenticidad de la identidad del firmante necesitará la clave pública que acompaña al certificado para que a través de una serie de operaciones criptográfica se comprueba que es la pareja de la clave privada utilizada en la firma. Es esta operación de asociación al dato secreto del firmante lo que hará la función de comprobar su identidad.
Si bien existen variados formatos para certificados digitales, los más comúnmente empleados se rigen por el estándar UIT-T X.509. El certificado debe contener al menos lo siguiente:
  • La identidad del propietario del certificado (identidad a certificar),
  • La clave pública asociada a esa identidad,
  • La identidad de la entidad que expide y firma el certificado,
  • El algoritmo criptográfico usado para firmar el certificado.
Los dos primeros apartados son el contenido fundamental del certificado (identidad y clave pública asociada), en tanto que los otros dos son datos imprescindibles para poder validar el certificado.
Esta información se firma de forma digital por la autoridad emisora del certificado. De esa forma, el receptor puede verificar que esta última ha establecido realmente la asociación.

Formato de certificado digital

Un certificado emitido por una entidad de certificación autorizada, además de estar firmado digitalmente por ésta, debe contener por lo menos lo siguiente:
  • Nombre, dirección y domicilio del suscriptor.
  • Identificación del suscriptor nombrado en el certificado.
  • El nombre, la dirección y el lugar donde realiza actividades la entidad de certificación.
  • La clave pública del usuario.
  • La metodología para verificar la firma digital del suscriptor impuesta en el mensaje de datos.
  • El número de serie del certificado.
  • Fecha de emisión y expiración del certificado.

Instalación de un servidor proxy con ubuntu 10.10 y squid3

Hoy vamos a explicar como instalar un servidor proxy con el sistema operativo ubunut 10,10 y squid3

Un esquema muy habitual en redes del hogar o en puestos de trabajo, varios equipos conectados en una red a un router que proporciona el acceso a internet, pero nos podria interesar que estos equipos no pudieran acceder a todas las webs que quisieran, sino a las que nosotros estableciéramos, para eso necesitamos un servidor porxy. Un servidor proxy es un equipo que se encarga de recibir todas las comunicaciones de la red y una vez analizadas con las reglas que hemos configurado las transmite o las deniega. Si las permite establece conexión con el router y después con internet para que puedan navegar, pues bueno, vamos a aprender a instalar este servidor porxy. Lo primero que habrá que hacer sera instalar un ubuntu en la maquina, no voy a explicar este paso ya que no creo que sea necesario. 


Una vez instalado abrimos una terminal y tendremos que poner la contraseña del root, para ello utilizaremos el comando [ sudo passwd root] el cual nos pedirá primero la contraseña de administrador y después nos dirá que ingresemos la contraseña que queramos ponerle al root.

Una vez hecho lo anterior entraremos como root para hacernos más cómodos el trabajo, esto se ara poniendo el comando [su ] y después ingresando la contraseña del root que habíamos puesto anteriormente. Cuando estemos como root lo siguiente sera instalar squid3, pero todabía queda un paso intermedio y es el de instalar el paquete aptitude por el cual se instala squid3 y no viene de serie en ubuntu 10.10, para ello simplemente escribiremos [apt-get install aptitude]. Cuando ya este instalado, lo que tendremos que hacer sera instalar ya porfin squid3, para ello ponermos el siguiente comando [aptitude install squid3].


En este momento ya tendremos instalado squid3 (seguramente con los procesos ya lanzados) ahora lo que tenemos que hacer es configurarlo.

Para configurar squid3 tendremos que acceder al archivo de configuración que esta en la carpeta /etc/squid3/ el archivo de configuración se llama squid.conf por lo tanto la dirección completa es /etc/squid3/squid.conf para configurarlo lo único que tendremos que hacer sera modificar el archivo como si fuese un documento de texto (de hecho para linux todo es un documento de texto) para ello podremos utilizar muchísimas alternativas ya sea el uso del nano, el vi o por el que nos decantaremos en esta guia el gedit.


Lo primero que recomiendo hacer antes de ponerse a modificarlo es hacer una copia de seguridad por si acaso algo sale mal.

El archivo de configuración de squid3 es bastante grande pero nosotros solo vamos a configurar una cuantas lineas para que funcione de una manera muy eficiente.


Primero habrá que configurar el proxy: sobre esta linea aproximadamente la 1080, nos encontramos http_port el cual es el parámetro por el cual se configura el puerto por el que squid escuchará las peticiones, se puede configurar para el que más interese, pero hay que saber que el 3128 es el que viene por defecto.




Sobre la linea 1954 nos encontramos el parámetro cache_men, que es el que utilizaremos para asignar la memoria cache de squid lo recomendable es asignar la tercera parte de la memoria ram que dispongamos, en este caso si disponemos de 512Mb sería recomendable poner 192 con esto será más que suficiente, para que lo que hemos modificado sea valido tendremos que descomentar la linea, para hacer esto tendremos simplemente que borrar la # que hay al principio.


Sobre la linea 2118 encontraremos el parámetro cache_dir este parámetro se encarga de asignar una zona de disco para almacenar la cache de squid. Lo descomentamos y veremos el parámetro ufs el cual es el que utiliza squid para guardar en disco, lo siguiente es la ruta donde se almacenara la cache y lo siguiente es el parámetro del tamaño máximo del disco que va a comentar vamos a asignarle 1000Mb añadiendo un 0 al 100. Una cosa importante es que este valor no puede ser menor al que le hemos asignado antes a la memoria cache. Los siguientes 2 parámetros son los de directorio primario y directorio secundario en niveles, estableciendo 16 directorios de primer nivel y 256 subdirectorios de segundo nivel esta configuración es recomendable NO modificarla. Con esto ya tenemos configurado el proxy, ahora vamos a establecer los parámetros para que funcione como nos interese.


Para establecer las reglas que el proxy admita o deniegue las conexiones, tenemos las listas de control de acceso o en ingles ACL. Estas se componen de un parámetro acl seguido de un nombre que puede ser el que nosotros queramos, después el método de acceso y por fin el rango de acceso.

Vamos a poner un ejemplo: acl mired src 192.168.1.0/24 . Como vemos acl indica la orden, luego viene el nombre que le hemos dado al parámetro, seguido hemos puesto src esto indica origen para establecer el origen de las conexiones, para ello tendremos que poner la red en la que estamos trabajando en mi caso 192.168.1.0 y lo siguiente que hemos puesto es /24 esto indica la mascara de subred la cual poner 24 es lo mismo que poner 255.255.255.0

Otra regla sería por ejemplo: acl noway url_regex “/etc/squid3/noperm” . Esto lo que indica es como siempre las listas de acceso empiezan por acl lo siguiente es el nombre que le hemos puesto, después le hemos puesto el parámetro url_regex esto significa que el proxy analizará las direcciones con palabras que nosotros pongamos en una lista, hay 2 maneras de hacer lo, uno es poner todas las palabras seguidas separadas por un espacio (algo que desde aquí no recomiendo) y la otra es la de redirigirlo a un archivo que más tarde crearemos, en mi caso es el archivo llamado noperm esta dirección habrá que ponerla entre comillas “”. Pero todo esto solo establece que conexiones de origen o destino ha de analizar el servidor, para completar esta configuración tenemos que establecer si las permitimos o las denegamos y esto se hace con el parámetro http_access estas ordenes se introducen sobre la linea 767 y lo que hay que hacer sera poner las listas que pongamos nosotros lo más arriba posible de las demás, esto es por que cuando el proxy lee la configuración primero le las lineas de arriba y son las primeras que se ejecutaran. Bueno, para hacerlo escibimos: http_access allow mired . http_access es el parámetro y donde hay allow también hay otra posibilidad, y es la de deny con la cual denegaremos el acceso mientras que con allow lo concederemos, lo siguiente es el nombre que le dimos a la acl, tendremos que hacer uno para cada acl que hayamos puesto, por ejemplo para la de noway tendremos que poner http_access deny noway.









Una vez hecho esto el archivo de configuración esta listo, ya solo nos falta crear el archivo noperm el cual lo único que tendremos que hacer será crear un nuevo documento en la ruta especificada y en el documento escribir las palabras que queremos capar, una cosa importante es que cada palabra tiene que ir en una linea.


Ya solo nos falta activar el servicio, para activar el servicio de squid lo que tendremos que hacer sera tan simple como poner [/etc/init.d/squid3 <parametro*>] Los parametros que se pueden poner son:
    • start para iniciar el servicio
    • stop para parar el servicio
    • restart para reiniciar el servicio
    • reload para volver a cargar el archivo de configuración, pero sin la necesidad de finalizar el servicio.

En este caso lo que aremos sera poner restart para reiniciar el servicio (sino estaba iniciado tendremos que iniciarlo), si no hay ningún error en el archivo de configuración nos saldrá una pantalla como la siguiente.

Lo siguiente que tendremos que hacer sera configurar nuestra tarjeta de red para ponerle una IP fija, y lo más importante la getway sera la dirección privada de nuestro router. Después volveremos a reiniciar el servicio de squid, y por ultimo ya solo tendremos que configurar los navegadores de los demás para que utilicen nuestro proxy.

Una vez configurado el proxy en los navegadores si ponemos una palabra no admitida etc... nos aparecerá la pantalla de error predeterminada.

Esta pantalla la podemos cambiar, modificando su contenido HTML, para ello iremos a la siguiente dirección /usr/share/squid3/errors/es-es . En esta dirección están todos los posibles html que tendremos dependiendo del fallo.

¿2 tarjetas de red?
Cuando nos enfrentamos al problema de que tenemos nuestro servidor proxy por una tarjeta de red conectado directamente al proxy y luego tenemos a un grupo de ordenadores conectados a un concentrado pero no están conectados al router y queremos que pasen por el proxy, lo que tendremos que hacer será poner una segunda tarjeta de red al asunto la cual conectaremos al concentrador, esto liara bastante las cosas y es más creo que hay algunos pasos que he hecho que no son necesarios, pero por si acaso y como me funciona así los explico, así que al lio.

Lo primero que vamos a hacer es instalar webmin en nuestro proxy, para ello iremos a la pagina oficial de webmin y nos lo descargaremos, una vez instalado lo dejaremos de lado durante un rato. Entonces iremos a: sistema>preferencias>conexiones de red. En la ventana que nos aparecerá nos aparecerá la nueva interfaz de red la cual es eth1 (seguramente), daremos a las propiedades de esta y estableceremos manualmente la dirección IP. ¡¡¡¡¡¡¡¡¡Importantisimo!!!!!!!!! la dirección de la subred tiene que ser distinta de la que teníamos en la anterior (eth0) en este caso en la primera teniamos 192.168.1.43 pues en esta tarjeta pondremos por ejemplo 192.168.4.44 esto hará que pertenezcan a 2 redes distintas y que cuando conectemos los ordenadores al proxy no se vuelvan locos y se intenten pegar un tiro, otra cosa a tener en cuenta es que en eth1 la puerta de enlace tendrá que ser la 0.0.0.0 (esto indica que no hay).
Una vez hecho esto ya nos queda muy poquito :)

Lo siguiente sera acceder a webmin, para eso lo que tendremos que hacer será acceder con el navegador desde el navegador a la primera tarjeta de red poniendo en la url https://ipdetutarjeta:10000 una vez hecho esto nos pedirán usuario y contraseña, pondremos como usuario root y su contraseña, dentro lo primero sera cambiar el idioma para más comodidad. Una vez cambiado el idioma nos iremos a red>Configuración de red

Una vez aquí daremos a donde poner interfaces de Red y comprobaremos que todo este de acuerdo a los especificado, si no lo esta lo modificaremos y guardaremos los datos. Después de haber comprobado los datos, lo que tendremos que hacer sera irnos a donde pone Ruteo y Gateways

dentro de esta pantalla pondremos los datos como los puestos en la siguiente imagen, eso si, adaptándolos a vuestras interfaces.
 
Una vez terminado todo, recomiendo reiniciar el equipo para que se apliquen completamente todos los cambios.


Una vez ya reiniciado y todo el lio, lo que tendremos que hacer será configurar los otros ordenadores con ip correspondientes a la subred correspondiente en este caso 192.168.4.0



Con todo esto ya tendremos montado nuestro servidor proxy, aquí se explica lo más básico por decirlo así, hay muchos más parámetros que configurar, como por ejemplo que solo se puedan conectar de tal hora a tal hora.









subir un archivo público a dropbox

Hola a todos hace mucho que no hago una entrada, pero es que dentro de poco tendréis una entrada espectacular sobre como instalar y configurar vuestro propio servidor proxy con ubuntu y squid3, pero hasta entonces veamos algo más fácil como es subir un archivo público a dropbox. 
Os dejo con este vídeo el cual he hecho expresamente.