Mostrando entradas con la etiqueta PGP. Mostrar todas las entradas
Mostrando entradas con la etiqueta PGP. Mostrar todas las entradas

11 de agosto de 2009

Visual Basic 2008: Security Features


La vuelta de las vacas este año ha sido un poco más dura de lo habitual, es de esas veces donde desconectas del mundo de la Seguridad al 99% y olvidas casi casi a lo que te dedicas haciendo que el dia de vuelta te apetezca realizar Ctrl + Alt + Sup mental. Mientras que el año pasado aproveché para realizar “experimentos” de diversa índole en esta ocasión he tenido otras tareas. Por razones familiares tuve que crear una pequeña aplicación Cliente – Servidor para una clínica.

Haciendo flash—back recordé la agilidad con la que allá por el 2000 me desenvolvía en Visual Basic 5.0 y me dije, ¿Cuánto habrá podido cambiar? Y me decidí a bajarme el Visual Studio Express Edition, concretamente el Visual Basic (que ya va por la versión 9.0). Lo cierto es que no me llevé muchas sorpresas, en su esencia sigue siendo tremendamente cómodo, intuitivo y ágil. Eso sí, hay muchas novedades y utilidades para aplicar Seguridad desde los albores de un proyecto:

Permisos de aplicación: UAC

Dentro del explorador de soluciones en las propiedades del proyecto podemos cambiar los privilegios que requiera la aplicación así como las posibles llamadas al UAC. Como es obvio debemos tratar de trabajar con los menores de los permisos, así evitaremos por ejemplo que ante un “crash” de nuestra aplicación tiremos el sistema.


Código XML con el que definimos la seguridad UAC de la aplicación

Seguridad ClickONCE

Las aplicaciones que desarrollamos en VB se apoyan en la infraestructura .NET Framework y estarán sujetas a restricciones de código. Dentro de las propiedades del proyecto también podremos habilitar o deshabilitar restricciones según los permisos que requiera nuestro código, esto puede incluir transferencia de ficheros, cuadros de diálogo, permisos de impresión, generación de sockets, etc. etc.

Configurando permisos ClickONCE

Firma de Código: Generación de certificados

Es cierto, podremos garantizar a nuestros clientes que el software distribuido es nuestro a través de la firma digital. Para ello disponemos de una utilidad de generación de certificados que en cierta forma me recuerda al PGP y que a buen seguro aumentará la confianza a nuestros clientes:

Acceso a BBDD

También me ha llamado la atención la gestión de BBDD que hay disponible, si bien a priori podemos tirar “solo” de Microsoft Access y SQL Server (en el Wizard de Agregar Conexión), próximamente disponemos de opciones de autenticación de usuario al realizar las consultas, restringido eso sí a usuarios de SQL Server o de Windows (supongo que se podrán utilizar usuarios de Dominio, pero no lo he probado). También podremos crear y cifrar BBDD basadas en SQL Compact Server así como incluir o no en los argumentos de nuestras cadenas de conexión y consultas SQL el usuario y password con el que nos conectamos (no recomendable ya que viajará en claro).

Agregamos la cadena de conexión a nuestra BBDD

Creamos nuestra BBDD con el cifrado que permita la plataforma host.

Login Form

Todavía recuerdo esos viejos días en que independientemente del texto que introdujeras en el TextBox debías mostrar asteriscos para que ataques por shoulder surfing no fuesen un problema (algo que todavía no está limado del todo en plataformas como el Iphone [^^!]), en la última versión de VB tenemos los formularios predefinidos más comunes disponibles a un par de clicks (Proyecto à Agregar), entre ellos el Login Form, una gozada :D (que por supuesto he usado).

Formulario por defecto para hacer "Login"

Y tras haber trasteado con esta plataforma y tener casi terminada mi aplicación no he utilizado ni visto mucho más, aunque a buen seguro habrá muchas más opciones, solo hace falta explorar un poquito. La esencia de Visual Basic no ha variado un ápice en estos 9 años, sin embargo el abanico de facilidades no ha dejado de crecer (incluso para nosotros).

Salu2 y,,, ¡cuidado con la vuelta!

7 de noviembre de 2008

Corolario al PGP: Firma Digital

Como corolario a lo visto anteriormente en el PGP , y adentrándonos más en materia legal, la Ley 59/2003, de 19 de Diciembre de Firma Electrónica introduce algunos conceptos de especial relevancia sobretodo en los trámites con administraciones públicas, en tratados comerciales por Internet, etc. Destaco especialmente:
Artículo 3: Firma electrónica, y documentos firmados electrónicamente.
  1. La firma electrónica es el conjunto de datos en forma electrónica, consignados junto a otros o asociados con ellos, que pueden ser utilizados como medio de identificación del firmante.
  2. La firma electrónica avanzada es la firma electrónica que permite identificar al firmante y detectar cualquier cambio ulterior de los datos firmados, que está vinculada al firmante de manera única y a los datos a que se refiere y que ha sido creada por medios que el firmante puede mantener bajo su exclusivo control.
  3. Se considera firma electrónica reconocida la firma electrónica avanzada basada en un certificado reconocido y generada mediante un dispositivo seguro de creación de firma.
  4. La firma electrónica reconocida tendrá respecto de los datos consignados en forma electrónica el mismo valor que la firma manuscrita en relación con los consignados en papel.
  5. Se considera documento electrónico el redactado en soporte electrónico que incorpore datos que estén firmados electrónicamente.

Como vemos se hace mención específica a la firma digital que preserva la identificación del firmante (demuestra su autenticidad, preserva el no repudio) y la firma electrónica avanzada que añade el atributo de integridad a lo firmado, es decir se asegura que el documento electrónico no ha sido modificado, de igual forma parece dar más importancia a los medios o sistemas con los que el firmante hace uso de la firma digital, y que esos medios o sistemas no hayan sido manipulados o tergiversados por terceros. Finalmente el punto cuatro le proporciona equiparación legal a la firma electrónica reconocida con la firma manuscrita. ¿Qué se precisa para que una firma electrónica esté reconocida? La ley lo especifica así:

Con ello se aclara que no basta con la firma electrónica avanzada para la equiparación con la firma manuscrita; es preciso que la firma electrónica avanzada esté basada en un certificado reconocido y haya sido creada por un dispositivo seguro de creación.”

Aquí es donde entran en juego certificados digitales, entidades de certificación:

Artículo 6. Concepto de certificado electrónico y de firmante.

  1. Un certificado electrónico es un documento firmado electrónicamente por un prestador de servicios de certificación que vincula unos datos de verificación de firma a un firmante y confirma su identidad.
  2. El firmante es la persona que posee un dispositivo de creación de firma y que actúa en nombre propio o en nombre de una persona física o jurídica a la que representa.

Y lo que es más importante, ¿en qué casos se puede suspender un certificado digital y por tanto considerarse no válido?

Artículo 9. Suspensión de la vigencia de los certificados electrónicos.

  1. 1. Los prestadores de servicios de certificación suspenderán la vigencia de los certificados electrónicos expedidos si concurre alguna de las siguientes causas:
    a) Solicitud del firmante, la persona física o jurídica representada por éste, un tercero autorizado o la persona física solicitante de un certificado electrónico de persona
    jurídica.
    b) Resolución judicial o administrativa que lo ordene.
    c) La existencia de dudas fundadas acerca de la concurrencia de las causas de extinción de la vigencia de los certificados contempladas en los párrafos c) y g) del artículo 8.1.
    d) Cualquier otra causa lícita prevista en la declaración de prácticas de certificación.
  2. La suspensión de la vigencia de un certificado electrónico surtirá efectos desde que se incluya en el servicio de consulta sobre la vigencia de los certificados del prestador de servicios de certificación.

    ….

La extinción o suspensión de la vigencia de un certificado también hará que una firma electrónica sea no reconocida. Como imaginareis la casuística por detrás de la ley puede ser muy amplia, por tanto será de gran ayuda contar con un buen abogado / perito informático que nos apoye a la hora de presentarnos en un litigio, sobretodo para que no nos pase como al Cracker de Pontevedra.

Saludos legalmente inseguros!

6 de noviembre de 2008

Correo Electrónico Seguro

Hoy vamos a hablar de cosas básicas dentro del mundo de la seguridad, y una de ellas es el PGP, o Pretty Good Privacy, esta tecnología se asocia normalmente al envío de correos electrónicos, donde 2 entidades o más, a través de un sistema PKI, o de clave pública, permite cifrar y firmar un correo electrónico.

¿Y para qué vale esto? Pues esto vale para asegurar 2 puntos clave en la seguridad de la información, la confidencialidad (la información se encuentra salvaguardada de terceros, quienes no la podrán leer) y la autenticidad (quien me envía la información es quien dice ser qué es). ¿Cómo se asegura la confidencialidad? Sencillamente, cifrando (que no encriptando). ¿Cómo se asegura la autenticación? Pues igual que haríamos en cualquier trámite de la vida real, con una firma (más o menos), solo que en este caso la firma es especial, es una firma digital, algo que quien haya comenzado a utilizar el e-Dni le sonará bastante.

PGP se considera seguro, de hecho es utilizado para todo tipo de transacciones comerciales entre empresas, podemos probarlo si solicitamos una licencia de 30 dias de PGP Desktop aunque existen herramientas similares que en softonic por ejemplo podéis encontrar. PGP Desktop puede integrarse perfectamente con Outlook, Lotus, o cualquier cliente de webmail actuando como email proxy, si queremos ciframos, si queremos firmamos, si queremos, las dos cosas. Según la necesidad.

Veamos algunas imágenes de esta aplicación, que nos enseñarán un poquito su funcionalidad:
Key Settings de nuestra clave, por defecto la seguridad es aceptable (para estos tiempos), aunque nunca es recomendable poner una caducidad indefinida.


Podemos incorporar nuestra clave al keyring del Server de pgp



Se pueden establecer relaciónes de confianza con la clave pública de terceros, para ello debemos firmar dicha clave con nuestra privada.



Las políticas disponibles pueden cubrir todas nuestras necesidades.

Resulta de especial importancia el conocimiento del PGP para todo tipo de correos a los que querramos dar validez jurídica, validez para tratados comerciales, esto nos dará seguridad legal, además de confidencialidad en nuestro tráfico e-mail. Todo ello al alcance de la mano y de forma gratuita.

¿Merece la pena, verdad?

Salu2!