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!

0 comentarios: