integración de sealsign bss en aplicaciones metro

15
ElevenPaths, innovación radical y disruptiva en seguridad

Upload: elevenpaths

Post on 08-Aug-2015

40 views

Category:

Technology


3 download

TRANSCRIPT

ElevenPaths, innovación radical y disruptiva en seguridad

2015 © Telefonica Digital Identity & Privacy, S.L.U. All Rights Reserved. Página 2 de 15

Contenidos 1 Introducción ............................................................................................................... 3

2 Tareas comunes .......................................................................................................... 4

2.1 Inclusión de Referencias de Servicios Web .............................................................................. 4

2.2 Inclusión del cliente SealSignBSSClientLibrary ......................................................................... 6

2.3 Autenticación de llamadas a servicios web .............................................................................. 8

2.3.1 Paso de credenciales para una autenticación básica ................................................................. 8

2.3.2 Paso de credenciales para una autenticación Windows ............................................................ 8

3 Casos de uso ............................................................................................................... 9

3.1 Firma Biométrica ...................................................................................................................... 9

3.1.1 Inclusión del panel de captura de firma manuscrita .................................................................. 9

3.1.2 Borrar la Captura ........................................................................................................................ 9

3.1.3 Inicio de la Firma ........................................................................................................................ 9

3.1.4 Criptografía en Cliente.............................................................................................................. 10

3.1.5 Fin de Firma .............................................................................................................................. 10

3.2 Verificación de Documentos Firmados ................................................................................... 10

3.3 Firma Biométrica con Document Provider (Documento en el Servidor) ................................ 11

3.3.1 Inicio de la Firma ...................................................................................................................... 11

3.3.2 Criptografía en Cliente.............................................................................................................. 12

3.3.3 Fin de la Firma .......................................................................................................................... 12

3.1 Integración de BioSigner para Metro ..................................................................................... 12

4 Recursos .................................................................................................................... 14

2015 © Telefonica Digital Identity & Privacy, S.L.U. All Rights Reserved. Página 3 de 15

1 Introducción

SealSign BSS (Biometric Signature Services) es un producto desarrollado por ElevenPaths, dirigido a facilitar la integración de la firma electrónica en las aplicaciones corporativas. SealSign BSS expone su funcionalidad a través de Servicios Web basados en la tecnología WCF (Windows Comunication Framework). Estos servicios pueden ser invocados por aplicaciones implementadas sobre la mayoría de las tecnologías del mercado.

El SDK de SealSign BSS proporciona, además, diversos paneles para la captura de la firma manuscrita disponibles según la tecnología usada por la aplicación cliente.

Este documento no pretende ser un manual sobre los aspectos concretos de la firma biométrica sino un manual de referencia técnica, orientado al desarrollador, sobre cómo integrar SealSign BSS en las aplicaciones corporativas.

2015 © Telefonica Digital Identity & Privacy, S.L.U. All Rights Reserved. Página 4 de 15

2 Tareas comunes

2.1 Inclusión de Referencias de Servicios Web

Para interactuar con la plataforma servidora se hace uso de la capa de servicios Web. El documento “SealSign BSS - Referencia de Servicios Web” detalla cada servicio y sus parámetros. En este apartado se muestra, a modo de ejemplo, cómo incluir la referencia a un servicio web de la plataforma usando Microsoft Visual Studio 2013.

Para añadir la referencia a un servicio web pulsar con el botón derecho del ratón sobre el proyecto .Net, seleccionar la opción Add y después Service Reference…

Imagen 01: Menú añadir referencia de servicio.

2015 © Telefonica Digital Identity & Privacy, S.L.U. All Rights Reserved. Página 5 de 15

Aparecerá la ventana asistente para añadir la referencia del servicio web:

Imagen 02: Ventana asistente para añadir referencia de servicio.

En esta ventana hay que teclear la URL del servicio web, pulsar el botón Go, teclear un nombre para el Namespace y pulsar el botón OK. La referencia se añadirá al proyecto y se mostrará en el Solution Explorer:

Imagen 03: Referencia de servicio web en el Solution Explorer.

2015 © Telefonica Digital Identity & Privacy, S.L.U. All Rights Reserved. Página 6 de 15

Otro método para la invocación de servicios web es la generación de clases proxy con utilidades como svcutil.exe, disponible tanto con el SDK de Microsoft Windows como con las diferentes versiones de Microsoft Visual Studio.

svcutil es una herramienta de línea de comandos que generará uno o varios ficheros de código (según el lenguaje indicado) y un fichero .config con la configuración adecuada para la invocación del web service.

Un ejemplo de línea de comandos para la generación de clases proxy de SealSign BSS sería el siguiente:

svcutil.exe /out:BiometricSignatureService.cs /config:BiometricSignatureService.config http://localhost/SealSignBSSService/BiometricSignatureService.svc /n:*,SealSignBSSService /n:http://schemas.datacontract.org/2004/07/SealSignDSSTypes,SealSignDSSTypes /n:http://schemas.datacontract.org/2004/07/SealSignBSSTypes,SealSignBSSTypes

En este ejemplo, la herramienta svcutil.exe generará dos ficheros: BiometricSignatureService.cs y BiometricSignatureService.config. El fichero BiometricSignatureService.cs se incorporará al proyecto .net como un fichero de código más y el contenido del fichero BiometricSignatureService.conf se deberá añadir dentro del fichero app.config del proyecto .net.

2.2 Inclusión del cliente SealSignBSSClientLibrary

Para incluir los paneles de captura en el cliente de la plataforma, es necesario cargar la librería SealSignBSSClientLibrary en el entorno de desarrollo para que aparezcan como elementos de la toolbox de Visual Studio.

Para seleccionar los elementos que se mostrarán en la toolbox de Visual Studio, se deberá acceder al menú Tools y seleccionar la opción Choose Toolbox Items…

Imagen 04: Menú Choose Toolbox Items….

2015 © Telefonica Digital Identity & Privacy, S.L.U. All Rights Reserved. Página 7 de 15

Aparecerá la ventana de selección de elementos de la caja de herramientas:

Imagen 05: Ventana de selección de elementos.

En esta ventana, seleccionar la pestaña Windows and Windows XAML Components, pulsar el botón Browse existente en la pestaña y seleccionar la librería SealSignBSSClientLibrary.dll correspondiente a Windows Metro. Tras esto aparecerán seleccionados el panel de SealSign BSS para Metro:

Imagen 06: Selección de paneles de captura.

Pulsando el botón OK el panel de captura de SealSign BSS para Metro estará disponible dentro de los componentes de la toolbox de Visual Studio.

2015 © Telefonica Digital Identity & Privacy, S.L.U. All Rights Reserved. Página 8 de 15

2.3 Autenticación de llamadas a servicios web

Dependiendo de la configuración y según las operaciones que se deseen realizar, las peticiones a los servicios web de la plataforma deberán realizarse de manera autenticada. Por ejemplo, una operación de enumeración de certificados debe realizarse de manera autenticada desde el cliente, de forma que se asegure el uso de certificados permitidos.

En el caso de aplicaciones .NET, según el escenario en el que estas se ejecuten, es posible que no sea necesario suministrar las credenciales programáticamente puesto que pueden hacer uso de la autenticación integrada de la propia plataforma Windows.

2.3.1 Paso de credenciales para una autenticación básica En el siguiente ejemplo se muestra la conexión a un servicio web de SealSign, configurado con autenticación básica y suministrando las credenciales mediante código .NET:

SignatureServiceBasicClient service = new SignatureServiceBasicClient(); service.ClientCredentials.UserName.UserName = "SealSignTest"; service.ClientCredentials.UserName.Password = "Passw0rd"; CertificateReference[] certs = service.GetCertificateReferences(null, false); service.Close();

2.3.2 Paso de credenciales para una autenticación Windows En el siguiente ejemplo se muestra la conexión a un servicio web de SealSign, configurado con autenticación Windows y suministrando las credenciales mediante código .NET:

SignatureServiceClient service = new SignatureServiceClient(); service.ClientCredentials.Windows.ClientCredential.Domain = "localhost"; service.ClientCredentials.Windows.ClientCredential.UserName = "SealSignTest"; service.ClientCredentials.Windows.ClientCredential.Password = "Passw0rd"; CertificateReference[] certificates = service.GetCertificateReferences(null, false); service.Close();

2015 © Telefonica Digital Identity & Privacy, S.L.U. All Rights Reserved. Página 9 de 15

3 Casos de uso

3.1 Firma Biométrica

3.1.1 Inclusión del panel de captura de firma manuscrita Una vez añadida la librería SealSignBSSClientLibrary.dll a Visual Studio, el siguiente paso consiste en añadir el panel de captura adecuado a la página de firma de la aplicación cliente. Para ello, simplemente, se accederá a la toolbox y se hará doble click o se arrastrará el panel sobre la página XAML:

Imagen 07: Inclusión del panel de captura.

3.1.2 Borrar la Captura Para reiniciar y borrar la captura realizada se puede llamar al método CleanSignature del panel de firma:

sealSignBSSWacomSTUPanel1.CleanSignature();

3.1.3 Inicio de la Firma Para firmar biométricamente, se realizan los siguientes pasos:

1. Se notifica a la plataforma el documento a firmar.

2. Con los datos obtenidos del servidor (es decir, la instancia y el token de firma) se realiza la operación de fusión de datos biométricos y criptografía mediante la librería cliente SealSignBSSClientLibrary.

3. Se notifica el resultado de la operación a la plataforma para finalizar la operación de firma y componer el documento final.

2015 © Telefonica Digital Identity & Privacy, S.L.U. All Rights Reserved. Página 10 de 15

Se notifica el inicio de firma a la plataforma servidora mediante la llamada al método BeginSignature. El servicio consumido es el /SealSignBSSService/BiometricSignatureService.svc.

Los valores retornados y la sintaxis del método se pueden consultar en el documento “SealSign BSS - Referencia de Servicios Web”:

var _Path = @"sample.pdf"; var _Folder = Windows.ApplicationModel.Package.Current.InstalledLocation; var _File = await _Folder.GetFileAsync(_Path); var _ReadThis = await Windows.Storage.FileIO.ReadBufferAsync(_File);

BiometricSignatureServiceClient service = new BiometricSignatureServiceClient(BiometricSignatureServiceClient.EndpointConfiguration.BasicHttpBinding_IBiometricSignatureService); service.Endpoint.Address = new System.ServiceModel.EndpointAddress( "http://localhost:81/SealSignBSSService/BiometricSignatureService.svc"); service.ClientCredentials.Windows.ClientCredential.Domain = "localhost"; service.ClientCredentials.Windows.ClientCredential.UserName = "test"; service.ClientCredentials.Windows.ClientCredential.Password = "Passw0rd"; BiometricSignatureBeginRequest request = new BiometricSignatureBeginRequest(); request.signingDocument = WindowsRuntimeBufferExtensions.ToArray(_ReadThis); BiometricSignatureBeginResponse response = await service.BeginSignatureAsync(request);

3.1.4 Criptografía en Cliente Mediante la llamada al panel de firma se realiza la obtención de los datos biométricos y la operación criptográfica:

// Client encryption with SealSignBSSClientLibrary byte[] biometricFinalState = await signaturePanel.GetSignature(new Guid(response.instance), response.biometricState);

3.1.5 Fin de Firma Se notifica a la plataforma el fin de la firma y se obtiene el documento final. El servicio consumido es el /SealSignBSSService/BiometricSignatureService.svc.

Los valores retornados y la sintaxis del método se pueden consultar en el documento “SealSign BSS - Referencia de Servicios Web”:

// EndSignature

BiometricSignatureEndResponse endresponse = await service.EndSignatureAsync( response.instance, biometricFinalState); await service.CloseAsync();

3.2 Verificación de Documentos Firmados

Es posible verificar una firma capturada contra las firmas contenidas en un documento. Para ello se realiza una única llamada al método Verify de la plataforma servidora. El servicio consumido es el /SealSignBSSService/BiometricSignatureService.svc.

2015 © Telefonica Digital Identity & Privacy, S.L.U. All Rights Reserved. Página 11 de 15

Los valores retornados y la sintaxis del método se pueden consultar en el documento “SealSign BSS - Referencia de Servicios Web”:

var _Path = @"sample.pdf"; var _Folder = Windows.ApplicationModel.Package.Current.InstalledLocation; var _File = await _Folder.GetFileAsync(_Path); var _ReadThis = await Windows.Storage.FileIO.ReadBufferAsync(_File);

BiometricSignatureServiceClient service = new BiometricSignatureServiceClient(BiometricSignatureServiceClient.EndpointConfiguration.BasicHttpBinding_IBiometricSignatureService); service.Endpoint.Address = new System.ServiceModel.EndpointAddress( "http://localhost:81/SealSignBSSService/BiometricSignatureService.svc"); service.ClientCredentials.Windows.ClientCredential.Domain = "localhost"; service.ClientCredentials.Windows.ClientCredential.UserName = "test"; service.ClientCredentials.Windows.ClientCredential.Password = "Passw0rd"; byte[] biometricState = null; byte[] biometricFinalState = await signaturePanel.GetSignature(new Guid("00000000-0000-0000-0000-000000000000"), biometricState); if (biometricFinalState != null) {

BiometricVerificationResponse response = await service.VerifyAsync(WindowsRuntimeBufferExtensions.ToArray(_ReadThis));

} await service.CloseAsync();

3.3 Firma Biométrica con Document Provider (Documento en el

Servidor)

El procedimiento de firma con un document provider es similar al de firma biométrica, con la diferencia de que el documento no tiene por qué estar en el cliente. En su lugar, se especifica una URI que el documento provider utilizará para obtener el documento de un Backend documental en la parte servidora.

3.3.1 Inicio de la Firma Se notifica el inicio de firma a la plataforma servidora mediante la llamada al método BeginSignatureProvider. /SealSignBSSService/BiometricSignatureService.svc es el servicio consumido.

Los valores retornados y la sintaxis del método se pueden consultar en el documento “SealSign BSS - Referencia de Servicios Web”:

BiometricSignatureServiceClient service = new BiometricSignatureServiceClient(BiometricSignatureServiceClient.EndpointConfiguration.BasicHttpBinding_IBiometricSignatureService); service.Endpoint.Address = new System.ServiceModel.EndpointAddress( "http://localhost:81/SealSignBSSService/BiometricSignatureService.svc"); service.ClientCredentials.Windows.ClientCredential.Domain = "localhost"; service.ClientCredentials.Windows.ClientCredential.UserName = "test"; service.ClientCredentials.Windows.ClientCredential.Password = "Passw0rd"; BiometricSignatureBeginProviderRequest request = new BiometricSignatureBeginProviderRequest(); request.id = "";

2015 © Telefonica Digital Identity & Privacy, S.L.U. All Rights Reserved. Página 12 de 15

request.account = ""; request.uri = @"demo://c:\samples\sample.pdf"; request.providerParameter = null; request.signingDocument = null; BiometricSignatureBeginResponse response = await service.BeginSignatureProviderAsync( request);

3.3.2 Criptografía en Cliente Mediante la llamada al panel de firma se realiza la obtención de los datos biométricos y la operación criptográfica:

// Client encryption with SealSignBSSClientLibrary byte[] biometricFinalState = await signaturePanel.GetSignature(new Guid(response.instance), response.biometricState);

3.3.3 Fin de la Firma Se notifica a la plataforma el fin de la firma. El servicio consumido es el /SealSignBSSService/Biometric SignatureServiceBasic.svc.

Los valores retornados y la sintaxis del método se pueden consultar en el documento “SealSign BSS - Referencia de Servicios Web”:

BiometricSignatureEndResponse endResponse = await service.EndSignatureProviderAsync( response.instance,

biometricFinalState, @"demo://c:\samples\sample.pdf", null, false); await service.CloseAsync();

3.1 Integración de BioSigner para Metro

La aplicación BioSigner para Metro de ElevenPaths permite la firma biométrica de documentos electrónicos de diferentes formatos (PDF, Office, XML).

Esta aplicación puede ser invocada como un componente que realice la operación de firma desde una página web que se visualiza desde el navegador del dispositivo móvil. El servidor SealSign debe poder acceder al documento a firmar y la lógica necesaria para recuperar el documento se implementa en los proveedores de documentos.

Los pasos necesarios para realizar esta integración son:

1. Instalar la aplicación BioSigner, en el dispositivo. Simplemente a través del store de aplicaciones de Windows, hay que localizar e instalar la aplicación “BioSigner”.

2. Crear una página web que invoque al componente de firma de BioSigner indicando los parámetros necesarios. La invocación de BioSigner desde una página web se realiza invocando a una URL especial que se ha registrado en el dispositivo al instalar la aplicación. La URL tiene la siguiente sintaxis:

mobilebssfe://?parametro1=valor&parametro2=valor&…

Los parámetros son:

a. viewerurl: Se abrirá dicha URL en un visor web por detrás de los campos de firma.

2015 © Telefonica Digital Identity & Privacy, S.L.U. All Rights Reserved. Página 13 de 15

b. uri: Es el primer valor se pasará al document provider del servidor para identificar el documento.

c. providerParameter: Es un valor opcional que se pasará al document provider del servidor con información adicional sobre el documento (p.e. metadatos asociados al documento).

d. serviceUrl: identifica la URL del servidor de SealSign Engine que se va a utilizar.

e. serviceUsername: Si se especifica, la conexión al servidor de firma se realizará con este usuario. En caso de no especificar este parámetro se realizará una conexión anónima.

f. servicePassword: Indica la contraseña que se utilizará en la conexión al servidor de firma SealSign en caso de especificar un nombre de usuario.

g. exitUrl: Especifica la URL de salida a la que se navegará después de la operación de firma.

Un posible ejemplo de esta URL sería este:

mobilebssfe://?viewerurl=http://www.smartaccess.es&uri=demo://1-2-z.pdf&providerParameter=myProviderParameter&serviceUrl=http://demo.smartaccess.es/sealsigndssfrontend&serviceUsername=usuario&servicePassword=pwd&exitUrl=http://www.google.es

2015 © Telefonica Digital Identity & Privacy, S.L.U. All Rights Reserved. Página 14 de 15

4 Recursos

Para información acerca de los distintos servicios de SealSign puede accederse a esta dirección: https://www.elevenpaths.com/es/tecnologia/sealsign/index.html

Además en el blog de ElevenPaths es posible encontrar artículos interesantes y novedades acerca de este producto.

Puede encontrarse más información acerca de los productos de Eleven Paths en YouTube, en Vimeo y en Slideshare.

2015 © Telefonica Digital Identity & Privacy, S.L.U. All Rights Reserved. Página 15 de 15

La información contenida en el presente documento es propiedad de Telefónica Digital Identity & Privacy, S.L.U. (“TDI&P”) y/o de cualquier otra entidad dentro del Grupo Telefónica o sus licenciantes. TDI&P y/o cualquier compañía del Grupo Telefónica o los licenciantes de TDI&P se reservan todos los derechos de propiedad industrial e intelectual (incluida cualquier patente o copyright) que se deriven o recaigan sobre este documento, incluidos los derechos de diseño, producción, reproducción, uso y venta del mismo, salvo en el supuesto de que dichos derechos sean expresamente conferidos a terceros por escrito. La información contenida en el presente documento podrá ser objeto de modificación en cualquier momento sin necesidad de previo aviso.

La información contenida en el presente documento no podrá ser ni parcial ni totalmente copiada, distribuida, adaptada o reproducida en ningún soporte sin que medie el previo consentimiento por escrito por parte de TDI&P.

El presente documento tiene como único objetivo servir de soporte a su lector en el uso del producto o servicio descrito en el mismo. El lector se compromete y queda obligado a usar la información contenida en el mismo para su propio uso y no para ningún otro.

TDI&P no será responsable de ninguna pérdida o daño que se derive del uso de la información contenida en el presente documento o de cualquier error u omisión del documento o por el uso incorrecto del servicio o producto. El uso del producto o servicio descrito en el presente documento se regulará de acuerdo con lo establecido en los términos y condiciones aceptados por el usuario del mismo para su uso.

TDI&P y sus marcas (así como cualquier marca perteneciente al Grupo Telefónica) son marcas registradas. TDI&P y sus filiales se reservan todo los derechos sobre las mismas.

PUBLICACIÓN:

Junio 2015

En ElevenPaths pensamos de forma diferente cuando hablamos de seguridad. Liderados por Chema Alonso, somos un equipo de expertos con inquietud para replantearnos la industria y gran experiencia y conocimiento en el sector de la seguridad. Dedicamos toda nuestra experiencia y esfuerzos en crear productos innovadores para que la vida digital sea más segura para todos.

La evolución de las amenazas de seguridad en la tecnología es cada vez más rápida y constante. Por eso, desde junio de 2013, nos hemos constituido como una start-up dentro de Telefónica para trabajar de forma ágil y dinámica, y ser capaces de transformar el concepto de seguridad anticipándonos a los futuros problemas que afecten a nuestra identidad, privacidad y disponibilidad online.

Con sede en Madrid, estamos presentes también en Londres, EE.UU, Brasil, Argentina, y Colombia.

TIENES ALGO QUE CONTARNOS, PUEDES HACERLO EN:

elevenpaths.com Blog.elevenpaths.com @ElevenPaths Facebook.com/ElevenPaths YouTube.com/ElevenPaths