Bienvenida!!!

Buenas!!!

En este blog voy a colocar todas aquellas ideas interesantes que se me ocurran colocar, de igual forma constantemente publicare noticias de ultima hora asi que esten pendientes, cualquier duda, comentario, opinion o hasta insualto bienvenido sea.

Gracias por su interes, espero que les guste y Bienvenidos.

Gerardo Ramos

Microsoft Student Partner

Encripcion de datos con SQL Server 2005

Que tal, este pequeño articulo lo escribo debido a las multiples dudas que surgen con respecto a este tema, espero que sea de gran ayuda y cualquier comentario bienvenido sea. Empecemos.

Niveles de Seguridad 

Una de las novedades de SQL Server 2005 es la infraestructura que viene junto al tema de encripcion de datos, SQL Server 2005 trabaja con una infraestructura jerárquica permitiendo un nuevo nivel de seguridad que no existía en versiones anteriores de SQL Server.

La encripcion de datos es un tema importante especialmente para cierto tipo de datos como datos financieros o datos confidenciales de clientes o usuarios. En una aplicación la encriptación y/o de encriptación puede afectar su rendimiento debido al excesivo uso de estos, así que es conveniente el buen uso de estos métodos de encripcion.

Escenario: cuando se desea que los usuarios solo puedan acceder a la información que ellos mismos han ingresado, de esta forma ellos no pueden visualizar no manipular la información de otros usuarios sin autorización previa.

Niveles de Jerarquias de Cifrado

Configurando Jerarquías de encripcion

Con SQL Server 2005 viene un sistema de encripcion jerárquico basado en una clave maestra de servicio (Service Master Key), esta clave es generada automáticamente cuando se instala SQL Server 2005. El motor de base de datos utiliza la clave maestra de servicio para encriptar los siguientes objetos.

Passwords de Servidores Vinculados (Linked Server Passwords)

Cadenas de Conexión (Connection Strings)

Credenciales de Cuentas (Account Credentials)

Todas las Claves maestras de la base de datos

A la clave maestra de servicio se le debe sacar un backup y almacenarla en un sitio seguro y fuera de línea. Esto para poder administrar más fácilmente ya sea hacer bakcups o restaurar la clave maestra de servicio en caso de que sea necesario.

El siguiente nivel en la jerarquía de encripcion es el nivel de base de datos acá se crea la clave maestra de base de datos (Database master key), esta clave es opcional y es utilizada para encriptar certificados y claves en la base de datos.

SQL Server almacena una copia de la clave maestra de base de datos en la base de datos master y a su vez es encriptada con la clave maestra de servicio. Otra copia es almacenada en la base de datos encriptada con un password.

SQL Server 2005 cifra los datos con una infraestructura de cifrado jerárquico y administración de claves. Cada capa cifra la capa inferior utilizando una combinación de certificados, claves asimétricas y claves simétricas.

Creando y Configurando llaves Simétricas, Asimétricas y Certificados

El siguiente nivel en la jerarquía de encripcion es el nivel de datos, el cual nos ofrece dos opciones entre llaves de encripcion: Simétrica y Asimétrica.

Claves simétricas: Una clave simétrica es una clave que se utiliza para el cifrado y el descifrado. El cifrado y el descifrado con una clave simétrica son más rápidos y adecuados para usarlos de forma rutinaria con datos confidenciales de una base de datos.

Una llave simétrica es el mecanismo mas rápido de encripcion para encriptar y des encriptar datos, es ideal para encriptar datos que son frecuentemente accedidos.

Creación de llave simétrica:

CREATE SYMMETRIC KEY key_name WITH ALGORITHM = AES_256 ENCRYPTION BGY PASSWORD=’password

Para encriptar y des encriptar datos, se utiliza las funciones EncryptByKey y DecryptByKey.

Claves asimétricas: Una clave asimétrica se compone de una clave privada y su correspondiente clave pública. Cada clave puede descifrar los datos que cifra la otra. El cifrado y descifrado asimétrico consumen una cantidad de recursos relativamente elevada, pero proporcionan un nivel de seguridad superior al del cifrado simétrico. Una clave asimétrica se puede utilizar para cifrar una clave simétrica para almacenar en una base de datos.

Una llave asimétrica es una combinación de una llave privada y su correspondiente llave publica. Una llave asimétrica es más fuerte que una llave simétrica.

Creación de llave asimétrica:

CREATE ASYMETRIC KEY key_name WITH ALGORITHM = RSA_2048 ENCRYPTION NY PASSWORD = ‘password

Para encriptar y des encriptar datos, se utiliza las funciones EncryptByAsmKey y DecryptByAsmKey.

Certificados: Un certificado de clave pública, normalmente denominado sólo certificado, es una instrucción firmada digitalmente que enlaza el valor de una clave pública con la identidad de la persona. Las entidades emisoras de certificados (CA) son las encargadas de emitir y firmar los certificados. La entidad que recibe un certificado de una CA es el sujeto de ese certificado. Por lo general, los certificados contienen la siguiente información.

La clave pública del sujeto.

La información que identifica al sujeto, como el nombre y la dirección de correo electrónico.

El periodo de validez. Es decir, el periodo de tiempo durante el que el certificado se considera válido.

o Un certificado sólo es válido durante el periodo de tiempo que se especifica en el mismo; todos los certificados contienen una fecha Válido desde y otra Válido hasta. Estas fechas establecen los límites del periodo de validez. Cuando el periodo de validez de un certificado ha transcurrido, es necesario que el sujeto del certificado caducado solicite uno nuevo.

Información de identificador del emisor.

La firma digital del emisor.

Configurando Certificados

Un certificado de clave pública, normalmente denominado sólo certificado, es una instrucción firmada digitalmente que enlaza el valor de una clave pública con la identidad de la persona, dispositivo o servicio que tiene la clave privada correspondiente.

Creación del certificado:

CREATE CERTIFICARE certifícate_name WITH SUBJECT = ‘certificate_subject’

Para encriptar y des encriptar datos, se utiliza las funciones EncryptByCert y DecryptByCert.

Pasos para la creación de llaves

Creación de la Master Key

Creación de los certificados

Creación de las llaves Simétricas

Pasos para la manipulación de llaves y certificados

Apertura de llaves simétricas

Inserción de datos

Cierre de llaves

Ejemplo: Encripcion de datos

En este ejemplo vamos a crear una nueva base de datos “AccountsDB” con una tabla “AccountsTable” a esta base de datos le vamos a asignar 2 usuarios específicos (Sophie y Allison), a cada uno de estos usuarios se le asignara una llave con la cual podrán insertar datos encriptados en la tabla y de igual forma consultarlos.

Creación de llaves y certificados

1. Creación de usuarios, base de datos, tabla AccountsTable y asignación de permisos

2. Creación De la Master Key

3. Creación de certificados

4. Creación de las claves simétricas que los protegerán

Manipulación de claves

1. Abrir las claves para la sesión de usuario

2. Inserción de datos encriptados

3. Cierre de claves simétricas

Aplicación

1. Creación de usuarios, base de datos, tabla AccountsTable y asignación de permisos

Vamos a crear los usuarios con sus logins (Sophie y Alison), la base de datos llamada “AccountsDB” y una tabla llamada “AccountsTable”.

USE Master

CREATE LOGIN Sophie WITH Password = ‘pass@word1′

CREATE LOGIN Alison WITH Password = ‘pass@word2′

CREATE DATABASE AccountsDB

USE AccountsDB

CREATE USER Sophie FOR LOGIN Sophie

CREATE USER Alison FOR LOGIN Alison

CREATE TABLE AccountsTable (Id Int, Name NvarChar(30),

Dept VarChar(20), Pay_Num VarBinary(60))

2. Prueba de permisos

Verificamos los permisos para uno de lo usuarios y le otorgamos permisos específicos.

EXECUTE AS USER = ’sophie’

SELECT * FROM AccountsTable

REVERT

GRANT SELECT, INSERT ON AccountsTable TO Sophie

GRANT SELECT, INSERT ON AccountsTable TO Alison

3. Creación De la Master Key

Creamos la llave maestra se la base de datos y la encriptamos con un password. Posteriormente la consultamos la existencia de la misma.

CREATE MASTER KEY

ENCRYPTION BY PASSWORD = ‘Passw0rd’

SELECT * FROM sys.symmetric_keys

4. Creación de certificados

A continuación creamos los certificados y les asignamos los usuarios que las van a utilizar.

CREATE CERTIFICATE AccCert1

AUTHORIZATION Sophie WITH SUBJECT = ‘AccCert1′

GO

CREATE CERTIFICATE AccCert2

AUTHORIZATION Alison WITH SUBJECT = ‘AccCert2′

GO

5. Creación de las llaves simétricas que los protegerán

Una vez creados los certificados creamos las llaves simétricas les asignamos un algoritmos de encripcion, el usuario que las utilizara y el certificado que las cobija.

CREATE SYMMETRIC KEY AccKey1

AUTHORIZATION Sophie

WITH ALGORITHM = TRIPLE_DES

ENCRYPTION BY CERTIFICATE AccCert1

GO

CREATE SYMMETRIC KEY AccKey2

AUTHORIZATION Alison

WITH ALGORITHM = TRIPLE_DES

ENCRYPTION BY CERTIFICATE AccCert2

GO

6. Consultar llaves simétricas y certificados

Verificamos la existencia de las llaves y los certificados.

SELECT * FROM sys.symmetric_keys

SELECT * FROM sys.certificates

Una vez creados y configurados los 2 niveles de seguridad, vamos iniciar la inserción de datos encriptados en la tabla creada. Para ello utilizaremos las funciones de encriptado de las llaves.

7. Abre las llaves para la sesión (Sophie) e inserta datos

Iniciamos con Sophie la inserción de datos a este usuario se le asigno anteriormente una llave simétrica con su respectivo certificado, primero el usuario abre la llave y utilizando la función de encriptación de la llave ingresa el campo que desea encriptar. Por ultimo al finalizar el proceso cierra la llave.

EXECUTE AS USER = ‘Sophie’

OPEN SYMMETRIC KEY AccKey1 DECRYPTION BY CERTIFICATE AccCert1

I. Inserta datos encriptados

INSERT INTO AccountsTable VALUES (1, ‘Susan’,‘HR’,

encryptByKey(Key_GUID(‘AccKey1′),‘463758′))

INSERT INTO AccountsTable VALUES (2, ‘Richard’,‘Sales’,

encryptByKey(Key_GUID(‘AccKey1′),‘463435′))

INSERT INTO AccountsTable VALUES (3, ‘Leah’,‘Purchasing’,

encryptByKey(Key_GUID(‘AccKey1′),‘488544′))

II. Cierra las claves simétricas

CLOSE ALL SYMMETRIC KEYS

REVERT

8. Abre las claves para la sesión (Alison) e inserta datos

Se realiza el mismo proceso para Allison, este usuario realiza los mismos pasos que el anterior para la inserción de los datos utilizando la llave que se le asigno.

EXECUTE AS USER = ‘Alison’

OPEN SYMMETRIC KEY AccKey2 DECRYPTION BY CERTIFICATE AccCert2

I. Inserta Datos Encriptados

INSERT INTO AccountsTable VALUES (4, ‘Tim’,‘HR’,

encryptByKey(Key_GUID(‘AccKey2′),‘463756′))

INSERT INTO AccountsTable VALUES (5, ‘David’,‘Sales’,

encryptByKey(Key_GUID(‘AccKey2′),‘499435′))

INSERT INTO AccountsTable VALUES (6, ‘Celia’,‘Purchasing’,

encryptByKey(Key_GUID(‘AccKey2′),‘488894′))

II. Cierra las claves simétricas

CLOSE ALL SYMMETRIC KEYS

REVERT

9. Revisamos el contenido de la tabla AccountsTable

Visualizamos el contenido de la tabla.

SELECT * FROM AccountsTable

 

Como pudimos ver en la tabla los datos se encuentran encriptados y solo los usuarios con las llaves correctas pueden acceder a esta información.

10. Desencripcion

Ahora cada uno de los usuarios va a observar la información que ingreso, para ello primero debe abrir su llave y utilizando el método de desencripcion correcto visualizar los datos. Por último cierra la llave.

I. Sophie

EXECUTE AS USER = ‘Sophie’

OPEN SYMMETRIC KEY AccKey1 DECRYPTION BY CERTIFICATE AccCert1

SELECT Id, name, Dept,

CONVERT(VarChar,decryptByKey(Pay_Num)) AS Pay_Num

FROM AccountsTable

CLOSE ALL SYMMETRIC KEYS

REVERT

II. Alison

EXECUTE AS USER = ‘Alison’

OPEN SYMMETRIC KEY AccKey2 DECRYPTION BY CERTIFICATE AccCert2

SELECT Id, name, Dept,

CONVERT(VarChar,decryptByKey(Pay_Num)) AS Pay_Num

FROM AccountsTable

CLOSE ALL SYMMETRIC KEYS

REVERT

11. Ejecución con otro certificado

En el caso de que un usuario desee abrir acceder a la información de otro usuario con la llave del segundo se producirá un error ya que la llave ha sido creada solo para el usuario original y no permitirá desencriptar los datos.

EXECUTE AS USER = ‘Sophie’

OPEN SYMMETRIC KEY AccKey2 DECRYPTION BY CERTIFICATE AccCert2

SELECT Id, name, Dept,

CONVERT(VarChar,decryptByKey(Pay_Num)) AS Pay_Num

FROM AccountsTable

REVERT

 

Pudimos observar los diferentes niveles de seguridad en lo que refiere al tema de encripcion en SQL Server 2005, vimos como funcionan e interactúan cada uno de los objetos relacionados en este tema.

El tema de encripcion de datos es crucial en el almacenamiento de información pero se debe tener cuidado al momento de manejar este tema ya que un mal uso puede llevar a problemas de rendimiento en el motor de bases de datos y posteriormente en las aplicaciones que hacen uso de esta tecnología.

Gerardo Ramos

Microsoft Student Partner

MCTS – SQL Server 2005

Migración de datos desde Access a SQL Server 2005

Anteriormente los costos de licenciamiento de SQL Server eran elevados en comparación con los de Access pero con la salida de SQL Server 2005 Express Edition muchas empresas han empezado a trabajar con esta excelente herramienta y poco a poco se van vendo beneficiados de los cientos de ventajas que trae este motor de base da datos con respecto a herramientas similares tales como Access y las hechas por otros fabricantes. Actualmente bastantes empresas y personas trabajan con Access como motor de almacenamiento de datos, aunque es una muy buena herramienta de productividad carece de bastantes funciones y accesibilidades que trae el “Todopoderoso” SQL Server 2005.
Junto a SQL Server 2005 tenemos una pequeña herramienta que nos ayuda a migrar bases de datos desde Access 97-2003 a SQL Server 2005, conocida como SQL Server Migration Assistant for Access (SSMA).
SSMA para Access convierte los objetos de Access a objetos de SQL Server, básicamente copia los objetos en SQL Server y luego migra los datos de Access a SQL Server.
El SSMA para Access esta disponible para descarga en este link:
Descarga SSMA Para Access

Instalación del SSMS para Access
Al descargar el archivo y ejecutarlo se presenta un wizard cuyo objetivo es instalar la aplicación mediante una serie de sencillos pasos:



___________________________________________________ 


Al finalizar la instalación vemos en el escritorio y en “Inicio/Programas/Microsoft SQL Server Migration Assistant for Access/” la herramienta “Microsoft SQL Server Migration for Access” instalada y lista para en nuestra maquina.

_______________________________________________

Proceso de Migracion


Al inciar la aplicación se nos presenta un cuadro de dialogo solicitando la licencia de activación de la herramienta.

________________________________________________________

__________________________________________________________

 Al hacer clic en “license registration page” automáticamente nos re direcciona al “SQL Server Migration Assistant for Access (SSMA) License Registration”, en donde luego de llenar algunos datos se descarga un el archivo de la licencia llamado “acces-ssma.license” que no pesa mas de 3KB, luego de descargarlo lo referenciamos en el cuadro de texto de “License Directory” y hacemos clic en “Refresh License” para de esta forma registrar e iniciar el trabajo con el SSMA.

Una vez arranca el SSMA se presenta el “Migration Wizard”, este asistente será el encargado de guiarnos en el proceso de migración.


Una vez iniciado vamos a crear un proyecto SSMA. Primero escogemos el nombre y la ubicación del mismo.



Agregamos la base de datos al proyecto desde alguna ubicación física.


De igual forma podemos buscar bases de datos de Access a través del botón “Find Database”, en esta nueva ventana suministraremos ciertos criterios de búsqueda (path, tamaño, fecha de creación, etc.) y el ayudante automáticamente busca las bases de datos correspondientes segun los parametros dados.

Una vez seleccionada la base de datos el ayudante identifica los objetos de la misma procedemos a seleccionar los objetos que deseemos migrar a SQL Server 2005.

Ya seleccionados los objetos a migrar el ayudante nos preguntara los datos del servidor tales como: Nombre del servidor, Base de datos y Autenticación. Una vez suministrada y aceptada esta información el ayudante inicia la migración.

El proceso de migración consiste en: Convertir los objetos, cargarlos a la base de datos y migrar los datos, acá se lleva a cabo el proceso de conversión y migración de los datos, al finalizar se presenta un reporte de los resultados si fueron exitosos o se presentaron problemas.

Por ultimo podemos observar los objetos y los datos listos para trabajar en el SQL Server Management Studio y/o desde la interfaz del SSMA.

Como podemos ver la interfaz del asistente tiene un explorador de meta data tanto de Access como de SQL Server.
Como pudimos observar el proceso de migración utilizando esta herramienta fue muy sencillo y rápido, esta herramienta es el complemento ideal para el Mangement Studio Express.

Adicionalmente existen herramientas similares a esta para migrar desde Oracle y Sybase

Recomiendo mirar el Portal de Migracion de SQL Server 2005 en donde pueden descargar esta y otras herramientas relacionadas copn este tema.

Gerardo Ramos

Microsoft Student Partner

MCTS – SQL Server 2005

Video: Business Intelligence (BI) en tiempo real con SQL Server 2005

Buenas!!!

En el entorno empresarial actual, junto al fulgurante crecimiento de la implentacion de soluciones de BI, aprovechado sus ventajas. Este es un Interesante video de:

Video.

.NET Framework 3.0 training kit for WF, WCF and CardSpace

Buenas!!!
Para a quellos entusiastas que deseen conocer el .Net Framework 3.0 a continuacion les dejo un link en donde pueden encontrar el kit de entrenamiento para esta tecnologia, este kit contiene presentaciones, demos y Labs de excelente calidad.

Es descarga directa pesa 43.8 MB y es totalmente gratis.

Preparado Para Migrar a Visual Studio 2005?

¿Aún sigues usando Visual Basic 6.0 para tus aplicativos?

¿Quieres conocer y sacarle provecho a la última tecnología de Microsoft para desarrollo de soluciones?

¿Quieres aprender cuál es la mejor forma de enfrentar la transición y conocer los recursos con los que cuentas? Aprovecha ahora y amplía tus posibilidades con Visual Studio 2005!.

En ese caso es hora de trabajar con Visual Studio 2005 empieza con las versiones express y aprovecha todos sus Beneficios.Visual Studio Express.

Con el uso de Visual Studio 2005 y la plataforma Microsoft .NET podrás crear soluciones más completas que las que tienes ahora y podrás contar con mayor flexibilidad y recursos para construir soluciones que sirvan mejor a las empresa, institución o personas que las usan. Mayor Info.

Visual Studio Codename "Orcas" Express Editions CTP Launched

Buenas, quisiera compartir con ustedes el anuncio oficial de las versiones Express de Visual Studio “Orcas” para difundir en sus comunidades. Son versiones descargables que pesan entre 800 MB y 1.4 GB.


Visual Studio Codename “Orcas”

Los Invito a descargarlos y probarlos. Son gratuitas y de igual forma esta iniciativa nos invita a conocer como seran las nuevass tecnologias en el tema de desarrollo que proximamente veremos en el mercado.

Mensajeria Instantanea en XBOX 360

Como suen a partir del mes de mayo la popular consol;a XBOX 360 va a permitir a sus jugadores comunicarse a travez de este medio utilizanso live messenger, esto permitira que los usuarios puedan conestarse desde su consola y tv y chatear con sus contactos, esta red posee actualmente mas de 260 millones de usuarios. Mayor Info.

Forefront de Punta a Punta

De acuerdo a lo anunciado a fines de 2006 por Ted Kummert, vicepresidente de la División de Seguridad de Microsoft, ya se encuentran disponibles las versiones públicas de Microsoft Forefront. A partir de ahora, la protección integral de la información y los accesos cobra un nuevo significado.
La seguridad es prioritaria para Microsoft. Es por eso que ya lanzó su nueva solución Forefront, que ofrece protección integral contra phising, robo de identidades, virus y spyware. Aprende todo sobre Forefront.

Hazlo ahora.

Subscripcion al MSDN Estudiante Newsletter y Portal

Buenas!!!
Este post es para invitar a todos los estudiantes o entusiastas para que se subscriban al MSDN Newsletter, en este link, al lado izquierdo donde dice “Subscribete a MSDN Estudiantes Newsletter”, este Newsletter mensual trae informacion muy interesante acerca de los trabajos hechos por estudiantes muy talentosos de toda latinoamerica, ademas de links a paginas donde se puede conseguir muy buena fuente para las necesidades de los estudiantes.

De una vez los invito a visitar el portal de MSDN Estudiantes, en esta pagina pueden encontrar buy buena info acerca de multiples tecnologias microsoft en fuentes como articulos, expericias, podcast,webcast,celulas academicas entre otros. Portal MSDN Estudiantes.

Gerardo Ramos – Microsoft Student partner