HARDkey es un sistema integral de protección de software, datos, administración de licencias y protección para Internet.

Tamaño: px
Comenzar la demostración a partir de la página:

Download "HARDkey es un sistema integral de protección de software, datos, administración de licencias y protección para Internet."

Transcripción

1

2 HARDkey NET Sistema de Protección de Software y Datos SITEPRO S.A. HARDkey es un sistema integral de protección de software, datos, administración de licencias y protección para Internet. Está basado en llaves electrónicas de hardware, usado por desarrolladores y distribuidores para prevenir la ejecución y los accesos no autorizados al software protegido.

3 Consideraciones Generales Copyright Copyright SITEPRO S.A. Todos los derechos reservados. Ninguna porción de este manual puede ser transcripta, fotocopiada, reproducida, transferida o almacenada en un sistema de información de cualquier tipo, sin la previa autorización escrita de SITEPRO S.A. El uso del siguiente manual y/o sus productos asociados para cualquier otro fin distinto al que fueron diseñados, queda exclusivamente bajo responsabilidad del cliente y elimina automáticamente todo derecho a reclamo, como así también la garantía de los mismos. Sitepro S.A. Reseña Histórica: SITEPRO S.A. es la división de Seguridad Informática del Grupo Intelektron, empresa líder de tecnología con más de quince años de trayectoria en el desarrollo y fabricación de dispositivos para protección de software. En nuestra cartera de clientes se encuentran las empresas desarrolladoras de software más importantes de Argentina y Uruguay con un parque instalado de más de protectores.nuestros productos fueron evolucionando a la par de las interfaces, computadoras, sistemas operativos y redes que aparecían en el mercado. Desde nuestros primeros modelos que funcionaban en ambiente DOS, pasando por las redes Novell y Windows para trabajo en grupo, hasta los sistemas operativos actuales de 32 bits, Internet y redes TCP/IP. Por eso sabemos lo que hacemos y conocemos sus necesidades para las cuales tenemos la solucion que necesita.para más información sobre nuestra empresa y otros productos dirigirse a

4 I HARDkey - Manual para Desarrolladores Tabla de Contenidos Prefacio 1 Part I Introducción al sistema de protección 3 Part II Introducción 5 1 Contáctenos Novedades Componentes... del kit 6 4 Garantía del... Software 6 9 Part III Sistema de Protección HARDkey 1 Técnicas de... Protección 9 Protección... contra copias 9 Control por... fecha de vencimiento 9 Control de... ejecuciones 10 Control de... licencias en red 10 Protección... de datos por cifrado on-line 10 Protección... para aplicaciones de Internet 11 2 Componentes... del sistema de protección 11 El kit de software La llave electrónica... de habilitación 12 La llave programadora Una llave... para toda la red 13 Control del... número de licencias Part IV Llaves electrónicas de habilitación 1 Características... y tipos de interfaz 18 Llaves HARDkey... para puerto USB 18 Llaves HARDkey... para puerto paralelo 18 Estructura... interna de la llave 19 2 Instalación... del protector en la computadora 22 Protectores... para puerto USB 23 Protectores... para puerto paralelo 24 3 Cómo personalizar... las llaves para su kit Part V Cómo proteger su aplicación 1 Protección... automática de ejecutables para Windows 27 2 Protección... de aplicaciones para Internet 28 Entorno de... desarrollo 29 Cómo registrar... el componente ActiveX (lado cliente) 30 Configuración... del browser 30 Funcionamiento... de la página protegida (lado servidor) 32 Código del... Ejemplo Asp 35

5 Contenidos II 3 Protección... de ejecutables en forma interactiva 39 La función... HARDkey() 39 Forma de... implementar la protección 40 Entrenamiento... de Protección Interactiva 41 Ejemplo práctico... de protección interactiva 42 Part VI Utilitarios y drivers para manejar las llaves 48 1 Instalador... del Servidor de llaves en Red 48 Instalación... del servidor de llaves en red 48 2 Instalador... de drivers para llaves de Puerto Paralelo 52 Instalación... desde la ventana del utilitario 52 Instalación... de drivers en modo comando 54 Consideraciones... importantes 54 3 Personalización... y configuración de llaves HARDkey 55 Cómo editar... la memoria de las llaves HARDkey 55 4 Actualización... remota de llaves HARDkey 56 Cómo funciona... el utilitario de actualización remota 56 5 Cifrador manual... de archivos 56 Descripción... del cifrado de archivos 56 6 Utilitario... para diagnostico de llaves y solución de problemas 57 Componentes... instalados 58 Prueba de... llaves conectadas 59 Definición... de parámetros de búsqueda en red 61 Solución... de problemas 61 7 Esquema... de distribución de llaves 62 Generación... de llaves distribuidor 62 Part VII Como compartir una llave en una red local 65 1 Servidor... de acceso a la llave para redes 65 La llave en... una PC con Windows 95/98 o Me 65 La llave en... una PC con Windows NT/2000/2003 o XP 67 La llave en... un servidor Novell Netware 67 La llave en... un servidor Linux 68 Red Hat Administración... de licencias en una red local 70 Control de... licencia global 71 Control de... licencias en sistemas modulares 72 Part VIII Interfaz de Programación de Aplicación (API) 75 1 Formato... de la subcadena general 75 2 Formato... de la subcadena comando 77 Iniciar Conexión Verificar Conexión Finalizar Conexión Leer Celda... 89

6 III HARDkey - Manual para Desarrolladores Grabar Celda Leer Cadena Grabar Cadena Cambiar Claves Cifrar/Descifrar... Cadena 95 Configurar... Modos de Chequeos 96 Leer Fecha... y Hora del reloj interno 101 Grabar Fecha... y Hora en el reloj interno 102 Leer Memoria... Extendida 103 Grabar Memoria... Extendida 105 Part IX Estructura del Directorio HARDkey Indice

7 I Prefacio El centro del sistema HARDkey.NET es el kit de desarrollo que permite proteger su aplicación, "atando" el programa a una llave electrónica de validación que habilita la licencia de uso del mismo. Dentro del kit encontrará las librerías que le permitirán proteger software monousuario o para red con una sola llave, acceder a la memoria interna de las mismas, cifrar bases de datos y archivos asociados, proteger sistemas modulares, etc. También cuenta con una serie de utilitarios para simplificar o automatizar estas tareas, actualizar la memoria de las llaves en forma remota, realizar tareas de diagnóstico, proteger sitios de Internet, ejemplos de utilización en diversos lenguajes, un manual totalmente en castellano, la llave programadora y una llave de protección HARDkey para realizar la implementación del esquema y distribuir su primer aplicación protegida. Se proveen también ejemplos de configuración para cada plataforma de red, descripción del funcionamiento de todos los utilitarios del kit e instrucciones para el manejo del protector a través de librerías, agilizando enormemente la tarea del desarrollador y el tiempo de implementación.

8 1

9 Introducción al sistema de protección 1 Introducción al sistema de protección HARDkey es un sistema integral de protección de software, datos, administración de licencias y protección para Internet, basado en llaves electrónicas de hardware, usado por desarrolladores y distribuidores para prevenir la ejecución y los accesos no autorizados al software protegido. HARDkey le permite al desarrollador seleccionar rápidamente, entre una amplia gama de características de protección, las que se adapten a la filosofía de la aplicación e inclusive incorporar técnicas de protección al proyecto en la etapa de desarrollo, añadiendo seguridad e incrementando la flexibilidad de su programación. Como elemento de validación, el sistema de protección HARDkey utiliza llaves electrónicas, pudiendo optarse por una gran variedad de opciones según sus necesidades, entre las cuales se encuentran llaves USB, llaves para puerto paralelo, llaves para redes y llaves con reloj/calendario interno. Estas llaves cuentan con identificación, códigos de seguridad y parámetros configurados por el desarrollador, haciendo virtualmente imposible una emulación del hardware. Adicionalmente, las llaves contienen memoria no volátil programable, que permite al desarrollador almacenar códigos de identificación, passwords, variables vitales, etc. La administración de licencias que proveen las llaves de red, permiten controlar el número de usuarios accediendo al software, denegando el acceso cuando el límite de la licencia ha sido alcanzado, con lo cual es posible implementar un esquema de licencias para aplicaciones modulares, controlando independientemente los usuarios por cada modulo de software con sólo una llave. 3

10 2

11 Introducción 2 Introducción 2.1 Contáctenos 5 Si tiene alguna duda acerca de este producto o necesita asistencia técnica por favor no dude en contactarse con nosotros: soporte@sitepro.com.ar ( ) / 73 ( ) Novedades Nuevo Entorno de Gestión Integral: Para garantizar la seguridad de sus aplicaciones no basta con pensar sólo en la protección del software una vez en la calle, es indispensable concentrarse también en la seguridad interna de todo el proceso productivo. Por ello el entorno de gestión fue diseñado de tal manera que pueda delegar funciones tan críticas como la configuración de llaves, generación de licencias para enviar a sus distribuidores, ampliación de licencias para llaves instaladas, etc. Utilizando el nuevo entorno de gestión, usted puede controlar todas las operaciones que realizan los operarios desde generación de llaves, grabación, habilitar licencias. Además podrá conocer el estado de cualquiera de las llaves HARDkey desde que ingresan a su stock y durante todo el tiempo de uso aún cuando la misma esté entregada al cliente. Además el sistema toma registro de todas las operaciones realizadas por los usuarios, lo que luego le permite realizar auditorías para identificar usos indevidos. Usted podrá crear perfiles de usuarios

12 6 HARDkey - Manual para Desarrolladores habilitando o deshabilitando permisos a cada uno en particular. Para más información sobre el nuevo entorno vea el Manual del Entorno de Gestión Integral. 2.3 Componentes del kit El Kit de desarrollo HARDkey.NET permite proteger su aplicación, mediante llaves electrónica de validación. Dentro del kit encontrará las librerías y utilitarios que le permitirán proteger software monousuario o para red con una sola llave, acceder a la memoria interna de las mismas, cifrar bases de datos y archivos asociados, proteger sistemas modulares, etc. Además encontrará herramientas para entregar a sus distribuidores de software, esto le permite simplificar la distribución de sus aplicaciones protegidas. Los distribuidores podrán programar HARDkey NET para su software de forma totalmente controlada por usted. Este Kit de Desarrollo contiene: Llave programadora para la personalizar sus protectores. Utilitarios para instalar la protección en modo Automático sobre ejecutables Windows 32b ya compilados. Librerías para Windows 32b que pueden ser usadas con cualquier lenguaje que permita hacer llamadas a una DLL. Ejemplos de utilización, para los diversos lenguajes de programación. Soporte para Redes Windows 98/Me/2000/NT/XP/Vista/2003, Novell Netware y Linux. Utilitarios para editar la memoria de las llaves, cambiar las password, cifrar archivos. Sistema de Gestión Integral, que permite armar un esquema de trabajo distribuido. Manual de instalación, programación y uso del kit en formato CHM. 2.4 Garantía del Software SITEPRO S.A. garantiza por el término de 12 meses a partir de la fecha de compra el sistema de protección de software compuesto por software y llave electrónica de habilitación, según las condiciones que se expresan más adelante en el presente contrato y licencia de uso, dejando aclarado que es único y no existe otra garantía expresa o implícita, sobre este producto. La garantía cubre todo defecto, falla y/o vicio de material que pudiera producirse en este producto

13 Introducción como consecuencia de componentes o piezas que, sometidas a nuestro examen, demuestren haber resultado defectuosas de fábrica. Para que dicha garantía se haga efectiva, el comprador deberá presentar el producto con su marca y número de serie intactos, junto con la factura que acredite la fecha de compra, de lo contrario la empresa se reserva el derecho de aceptación de la garantía. La revisión, control, chequeo y/o reparación de rutinas de software o de llaves electrónicas se hará exclusivamente en las oficinas técnicas de SITEPRO S.A., por lo tanto, todos los gastos ocasionados por traslado, transporte, instalación, desmontaje, etc, quedan exclusivamente a cargo del cliente. Todo soporte o consulta técnica sobre el funcionamiento del sistema, se le brindará exclusivamente al titular del kit. Quedan exceptuados de esta garantía; el acabado exterior de la carcasa plástica, accesorios o cualquier otro elemento dañado o desgastado por: caídas, roturas,golpes, transporte o uso indebido, suciedad, o mantenimiento inadecuado. Asimismo, el presente certificado quedará sin efecto por: La intervención o intento de reparación del mismo por personal ajeno a nuestro servicio técnico. La conexión a computadoras sin una correcta descarga a tierra y/o redes de alimentación inapropiadas. La empresa se compromete únicamente al cambio o reparación del producto, sin cargo alguno, siempre que la falla no sea originada por las causas antedichas. Por otra parte, para garantizarles una satisfacción total por el producto, la empresa aceptará la devolución del mismo con sólo presentar por escrito el motivo de su disconformidad, dentro de los 15 primeros días de realizada la compra. Pasado ese plazo se asume que el cliente lo ha probado y demuestra total conformidad con el funcionamiento, compatibilidad y contenido del mismo. La empresa no se responsabiliza por ningún daño o perjuicio que pueda ocasionar el uso o mal uso del producto limitándose su garantía a lo expresado en este documento. 7

14 3

15 Sistema de Protección HARDkey 3 Sistema de Protección HARDkey 3.1 Técnicas de Protección El objetivo de la protección de una aplicación de software es defender la inversión de tiempo, dinero y esfuerzo que se necesitó para su desarrollo. Con el sistema de protección HARDkey puede proteger su software utilizando dos modos distintos, uno es el Modo Interactivo y otro el Modo Automático. El modo interactivo consiste en incorporar dentro del programa, llamados a una función de protección que se encuentra en una librería provista en el kit. Este método permite hacer un manejo más completo de la llave, dado que se tiene acceso a la memoria no-volátil que contiene el protector. Esta memoria se puede utilizar para guardar parámetros del programa, personalizaciones, contadores, etc. Permite obtener protecciones personalizadas según las necesidades y habilidades del programador. Este método es recomendado para proteger ejecutables cuando se dispone del código fuente y para proteger el acceso a sitios de Internet. La protección automática se implementa sobre cualquier aplicación ya compilada a partir de un utilitario que "envuelve" al ejecutable incorporándole las rutinas que realizan el chequeo de la llave electrónica. Este método es especialmente indicado cuando se quiere hacer una implementación rápida o no se dispone de los códigos fuente Protección contra copias Es uno de los objetivos más habituales a la hora de utilizar un sistema de protección, consiste en que el usuario no pueda realizar la duplicación del producto y distribuirlas o las utilice en otras computadoras violando el acuerdo de licencia realizado en el momento de la compra. HARDkey elimina este riesgo, ya que solamente las aplicaciones que detecten la llave electrónica se ejecutarán, sin interferir con la realización de copias de seguridad por parte del usuario Control por fecha de vencimiento Una aplicación protegida puede ser licenciada para ejecutarse en una única computadora, sin la posibilidad de usar desde otra computadora de la red. Esto se denomina licencia stand-alone. Como alternativa, una aplicación protegida puede ser licenciada para correr en múltiples computadoras de manera compartida. 9

16 10 HARDkey - Manual para Desarrolladores En este caso, es requerido que todas las computadoras estén autorizadas a ejecutar el software sin exceder el número máximo permitido. Esto se denomina licencia en red. El control de licencias previene la distribución de copias no autorizadas de su aplicación, mediante el bloqueo de la ejecución de la aplicación a un número específico de computadoras. En esquemas de paquetes de software modular, es posible administrar la cantidad de licencias independientemente para cada módulo utilizando una única llave en toda la red Control de ejecuciones Esta característica está especialmente diseñada para limitar el uso en versiones de demo y de alquiler o leasing de su software. Si se valida la cantidad de ejecuciones, con cada una se decrementa en una unidad el número que fue configurado en la llave electrónica, de manera tal que cuando el contador de ejecuciones llegue a cero, presente un mensaje informativo e impida su utilización. De forma similar sucede con el control de horas de uso, a medida que pasan las horas se decrementa en una unidad el contador que lleva cuantas horas están habilitadas. Cuando este valor llega a cero la aplicación emite un cartel informando que ha finalizado el límite de horas de uso de la aplicación y no permite su ejecución Control de licencias en red Este tipo de protección permite que el software pueda ser ejecutado hasta una determinada fecha cuyo valor puede ser definido en el hardware de la llave electrónica. El control de la fecha especificada se puede realizar contra el reloj de tiempo real que poseen las llaves con RTC o contra el reloj de la PC para los modelos de llave sin RTC. En este caso el control solo tienen sentido en aplicaciones sensibles a una correcta configuración de fecha de la computadora, como programas de facturación o del tipo contable. RTC - Real Time Clock Protección de datos por cifrado on-line Este esquema de cifrado se utiliza donde la protección de los archivos de datos es tanto o más

17 Sistema de Protección HARDkey importante que la aplicación que los maneja. Mediante algoritmos de cifrado Stream-Cipher, password y la intervención del procesador de la llave, es posible cifrar texto y datos que únicamente la aplicación protegida podrá utilizar de manera transparente, sin compromiso de pérdida de tiempo en la conversión. El proceso de cifrado/descifrado es realizado "on-line", lo que significa que no existe la posibilidad de interceptar los datos descifrados en medio de un proceso que los utilice. Las modificaciones que la aplicación realice sobre los archivos son guardadas de manera cifrada totalmente transparente a la aplicación. Hemos agregado la posibilidad de aplicar una nueva tecnología denominada Cifrado Personalizado, su nombre hace referencia al hecho de obtener resultados de cifrado distintos para cada kit. Por ejemplo, si ciframos un mismo archivo de datos usando el mismo password con utilitarios de distinto kit el resultado será diferente. Además, es esencial la presencia de una llave del kit conectada al puerto en el momento que se descifran los datos. El algoritmo utiliza funciones "Query" de respuesta rápida que tiene incorporadas el microprocesador de la llave, lo que asegura que sin el dispositivo colocado no se podrá descifrar la información Protección para aplicaciones de Internet El sistema HARDkey le permite implementar un esquema de acceso restringido a sitios de Internet, donde sólo puedan entrar las personas que estén habilitadas o abonadas a un servicio, instalando una llave en su equipo. Es ideal para aplicaciones de alquiler de software, sitios que brindan servicios a clientes abonados, etc. 3.2 Componentes del sistema de protección El Sistema de Protección HARDkey consiste en un conjunto de herramientas de software, hardware, librerías y documentación que permite implementar un esquema de protección flexible de acuerdo a sus necesidades El kit de software El centro del sistema HARDkey es el kit de desarrollo que permite proteger su aplicación, "atando" la protección a una llave electrónica de validación. Dentro del kit encontrará las librerías y utilitarios que le permitirán proteger software monousuario o para red con una sola llave, acceder a la memoria interna de las mismas, cifrar bases de datos y archivos asociados, proteger sistemas modulares, etc. 11

18 12 HARDkey - Manual para Desarrolladores Este kit contiene: Una llave electrónica de habilitación. Una llave programadora para personalizar sus protectores. Manual de instalación, programación y uso del kit. Entorno de gestión centralizado desde donde se realizan todas las tareas para implementar la protección, generar las llaves realizar el control de licencias entregas por cliente. Librerías tipo DLL para Windows que pueden ser usadas con cualquier lenguaje que permita hacer llamadas a este tipo de componentes. Ejemplos de utilización para los distintos lenguajes. Componente ActiveX para implementar protecciones a través de Internet. Soporte para compartir una llave bajo redes Windows 98/Me/2000/NT/XP, Novell Netware y Linux La llave electrónica de habilitación Esta llave es la licencia que se entrega con cada copia de software protegido. La presencia de la llave en la PC habilita el funcionamiento del software. Las llaves deben ser personalizadas antes de poder usarse con las rutinas de protección, para ello vea Cómo personalizar llaves para su kit. El proceso de Personalización formatea la memoria de la llave y carga información del kit de la llave Programadora. Una vez que la llave fue personalizada, la única manera de utilizarla es con las rutinas del kit que realizó la personalización. Por lo tanto, si se desea volver a inicializar, sólo podrá llevarse a cabo si el número de kit con el cual fué personalizada coincide con el de la llave programadora. Esto último es muy útil, para reutilizar llaves de su propio kit aún si accidentalmente olvidó sus claves. Si una llave de protección HARDkey tiene información almacenada en su memoria, el proceso de Personalización borrará toda la información allí almacenada La llave programadora Esta llave es el elemento que se entrega con cada copia de software protegido. La presencia de la llave en la PC es lo que habilita el funcionamiento del software. Las llaves deben ser personalizadas antes de poder usarse con las rutinas de protección. Una vez que la llave fue personalizada, la única manera de utilizarla es con las rutinas del kit que realizó la personalización. Por lo tanto, si se desea re-inicializar una llave, sólo podrá llevarse a cabo si el número de kit asignado en la llave coincide con el de las rutinas de inicialización. Esto último es muy

19 Sistema de Protección HARDkey útil, para reutilizar llaves de su propio kit aun si accidentalmente olvido sus claves. zar. Este proceso implica la destrucción de todos los parámetros configurados en las celdas de la llave. Las llaves de protección salen de fábrica en un estado virgen, una vez personalizadas la llave solo responde al los utilitarios y librerías del kit con la cual fue generada. Además de los parámetros que se inyectan a la llave en el proceso de personalización, cada protector tiene una numeración de lote y serie. Dada la importancia de la llave programadora como herramienta para personalizar sus protectores, se recomienda guardarla en lugar seguro cuando no se la utilice y adquirir una segunda llave para tener de back-up. 2 Vea También: Cómo personalizar llaves para su kit 3.3 Una llave para toda la red Las rutinas que incorporan las funciones de protección, están desarrolladas para chequear las llaves electrónicas tanto en forma local, como en forma remota a través de una red. Esto quiere decir que con una sola llave (de los modelos para red), usted puede habilitar un programa para ser usado desde distintos puestos. Esto le permitirá abaratar costos, ya que no es necesario disponer de una llave por cada estación de trabajo. 13

20 14 HARDkey - Manual para Desarrolladores Inclusive existe la opción de limitar cual es el máximo número de licencias que pueden correr simultáneamente. La administración de licencias en red que implementa el sistema de protección HARDkey permite restringir en un número específico la cantidad de computadoras que pueden ejecutar simultáneamente la aplicación en un ambiente multiusuario, como así también, en aplicaciones modulares, controlar la cantidad de usuarios para cada módulo de manera independiente. Un detalle importante es que las llaves HARDkey NET no tienen límites pre-establecidos de fábrica para el número de licencias de red que pueden manejar. El desarrollador especifica ese valor a voluntad entre 1 y 255 según el número de licencias que desee vender al cliente final. Las llaves HARDkey NET para control de licencias en red vienen tanto para conexión al puerto paralelo como en formato USB Control del número de licencias La flexibilidad de HARDkey permite implementar el control de licencias, tanto a nivel global para aplicaciones de software únicas, como de manera independiente para cada módulo en sistemas de software modulares. La diferencia entre una aplicación de software única y una aplicación de software modular reside en el modo de comercialización que se aplica a la misma.

21 Sistema de Protección HARDkey Una aplicación global consiste en un sistema de software que posee integrado todas las herramientas que fueron diseñadas para cubrir las necesidades que pueden surgir del uso de la aplicación. Una aplicación modular consiste en un conjunto de aplicaciones o herramientas que se adquieren por separado, según la necesidad del cliente, y que permiten agregar funcionalidades al objetivo de la aplicación. 15

22 4

23 Llaves electrónicas de habilitación 4 Llaves electrónicas de habilitación El sistema de protección HARDkey le permite elegir distintos modelos de llaves electrónicas de habilitación según las necesidades del proyecto que se desee proteger. HARDkey STD Esta llave brinda un alto grado de seguridad y transparencia. Ofrece una excelente relación costo - beneficio para protección de aplicaciones monousuariot. Posee 4k bytes de memoria no-volátil y celdas con funciones especiales. (La versión para puerto paralelo, es similar solo que limitada a 64 bytes de memoria) HARDkey NET Este modelo de protector permite que varios usuarios de una misma red puedan compartirlo. También es posible armar esquemas de control de licencias y limitar el máximo número de usuarios concurrentes que podrán utilizar cada módulo de software protegido. Posee 4k bytes de memoria no-volátil y celdas con funciones especiales. (La versión para puerto paralelo, es similar solo que limitada a 128 bytes de memoria) HARDkey MIO Llave especial para autenticar a los administradores y usuarios en forma práctica y segura introduciendo el concepto de Autenticación mediante dos factores "algo que tengo" (la llave) más "algo que sé" (un número de PIN). Esquemas como estos son indispensables si se pretende obtener certificaciones de como la ISO 17799/27001 para el sistema. También se utiliza para proteger el acceso a páginas web restringidas. HARDkey RTC Esta es la llave más completa de nuestra línea de productos ya que posee las mismas funcionalidades que los modelos anteriormente detallados sumado a que en su interior posee un reloj de tiempo real (Real Time Clock) convirtiéndola en el dispositivo ideal para proteger aplicaciones comercializadas con fecha de vencimiento. Disponible para uso en red y monousuario. 17

24 18 HARDkey - Manual para Desarrolladores 4.1 Características y tipos de interfaz Llaves HARDkey para puerto USB Son el modelo más utilizado en la actualidad. Pueden ser conectadas o desconectadas con la PC encendida. No requieren la instalación de ningún driver ni controlador especial lo cual facilita la instalación y el soporte. También es ideal para aplicaciones donde no es conveniente que la llave quede instalada si no se utiliza el software protegido. Poseen 4K bytes de memoria no-volátil donde algunas celdas son usadas por las rutinas de protección y el resto está disponible para uso del programador. Las llaves USB tienen como opcional un reloj de tiempo real (Real Time Clock - RTC) incorporado independiente del reloj de la PC. Esta característica es muy útil cuando se desea hacer un control estricto del vencimiento de una licencia, dado que por más que el usuario final altere la fecha de la PC para extender el uso de la licencia, la aplicación protegida hace la validación contra el reloj interno de la llave. Este reloj interno sólo puede configurarse desde el entorno de protección que corresponde al kit con el cual fue personalizada la llave. De esta forma el desarrollador que configuró la llave es el único que puede cambiar la hora y fecha de su reloj interno. El reloj interno de la llave es alimentado con una pila de litio que le brinda una autonomía mayor a cinco años. Entre los modelos de llaves con conexión USB se encuentra disponible llaves para red, llaves para que solo habilitan puestos locales, y llaves de habilitación de usuarios. Los modelos para red y local vienen con la opción de reloj RTC. Para obtener mayor información de como instalar llaves de puerto USB vea Instalación para protectores de puerto USB. Para obtener mayor información sobre todos los modelos de llaves vea Listado de llaves electrónicas de habilitación Llaves HARDkey para puerto paralelo Las llaves HARDkey están basadas en un poderoso microprocesador con tecnología RISC de muy bajo consumo, que se encarga de reconocer las solicitudes de verificación y realizar las transacciones cifradas de información entre la aplicación protegida y la llave.

25 Llaves electrónicas de habilitación El sistema electrónico contenido en la llave automáticamente entra en modo "sleep" después de un período de inactividad para reducir el consumo de alimentación, característica que es especialmente útil cuando se trabaja con computadoras portátiles. Poseen 128 bytes de memoria no-volátil donde algunas celdas son usadas por las rutinas de protección y el resto está disponible para que el programador almacene datos críticos. Las llaves HARDkey de puerto paralelo son completamente transparentes, de tal manera que pueden ser conectadas varias llaves en cascada una detrás de otra. Para la conexión y desconexión de estas llaves es recomendable tener la PC apagada. Para el correcto funcionamiento de estas llaves es indispensable la instalación del Driver Para llaves de Puerto Paralelo, para realizar este procedimiento vea Instalador de Drivers para llaves de Puerto Paralelo. Entre los modelos disponibles con conector paralelo se encuentran las llaves de Red y Local. Para obtener mayor información sobre la instalación de protectores para puertos paralelos vea Instalación de protectores de puerto paralelo. Para obtener mayor información sobre todos los modelos de llaves disponibles vea Listado de llaves electrónicas de habilitación. Al conectar un dispositivo paralelo en cascada con las llaves HARDkey es recomendable que la PC y el dispositivo se encuentren apagados y desconectados de la red de corriente eléctrica Estructura interna de la llave Las llaves de habilitación poseen internamente un microprocesador encargado de manejar las funciones de protección y la comunicación cifrada con la PC. Cada protector se identificada en el momento de la fabricación mediante un número de lote y serie único. Para poder ser reconocidas por las rutinas de protección requieren adicionalmente que se les realice un proceso denominado "personalización", mediante el cual se le transfieren determinados parámetros propios de cada kit. 19

26 20 HARDkey - Manual para Desarrolladores Internamente poseen un conjunto de celdas de memoria configurables por el desarrollador, que tienen asignadas funciones especiales para la protección. Cada celda almacena una palabra de 16 bits (2 bytes). Se almacenan claves, módulos, licencias, fecha de vencimiento, y otros valores más. A continuación se detalla el contenido de la memoria. A continuación se describe la función de cada celda: Parámetros del kit: Conjunto de celdas con información propia del kit. Estas celdas se validan en cada transacción para garantizar que las llaves sólo se puedan usar con las librerías y utilitarios del kit con la que fue personalizada. Estas celdas no están accesibles para el desarrollador. Clave 1 - Clave 2: consiste en 2 celdas configurables por el desarrollador que combinadas forman un número de 32 bits, el que se utiliza para diferenciar una de otra cuando se conectan varias en cascada. Las combinaciones posibles son Esto permite armar el esquema que mejor se adapte a sus necesidades. Si conecta en cascada más de una llave con las mismas claves, sólo podrá ver los datos de la primera que esté directamente conectada al puerto paralelo. Todas las rutinas que utilicen la llave deben enviar estos dos parámetros correctamente para que el microprocesador de la llave acepte iniciar el dialogo con la aplicación. En el momento de inicialización de la llave, estas claves quedan pre-inicializadas en 0:0, pudiendo ser cambiadas únicamente por el utilitario de edición o utilizando la API. Es importante destacar que para cambiar las claves es necesario poseer las claves anteriores, caso contrario el microprocesador de la llave descartará la solicitud. Módulos de Software (celdas 0 y 1): consiste en 32 flags, utilizados en la protección de software que esta diseñado para ser adquirido en forma modular, para habilitar o no el funcionamiento del software asociado al correspondiente número de módulo. Cada modulo tiene un número identificativo entre 01 y 32, lo que permite implementar un esquema de protección de hasta 32 módulos de software por llave. Para más detalles, consulte el punto el capítulo "Protección de sistemas modulares". En modo de protección interactiva, su uso está disponible para lo que se desee hacer desde la aplicación.

27 Llaves electrónicas de habilitación Contador de Ejecuciones (celda 2): consiste en 1 celda que utiliza la protección automática cuando se habilita el "Control de Ejecuciones". Allí se almacena el número de ejecuciones máximas permitidas. Cada vez que se ejecute la aplicación este valor es decrementado, cuando el valor llega a cero la aplicación se bloquea. En modo de protección interactiva, su uso está disponible para lo que se desee hacer desde la aplicación. Licencias Globales (celda 3): consiste en 1 celda utilizada por la protección automática en aplicaciones no modulares para el control de licencias, donde se almacena el número máximo de usuarios permitidos para ejecutar la aplicación simultáneamente en una red. Fecha de Vencimiento (celdas 4 y 5): consiste en 2 celdas que almacenan el día, mes y año en formato BCD, utilizado en el "Control por Fecha de Vencimiento" de la protección automática. Si utiliza protección interactiva, puede acceder a estas celdas mediante los comandos "Leer celda y Grabar celda" para implementar por programa un esquema con control por fecha de vencimiento. Límite de licencias de red por módulo (celdas 6 a 21): consiste en 32 bytes identificados con un número entre 01 32, usados por la protección automática, que permiten establecer el número máximo de usuarios simultáneos en una red que podrán acceder a un módulo de software en particular. Si no se utiliza un esquema de restricción de licencias, estas celdas puede usarse libremente ampliando de 64 a 96 los bytes de memoria disponibles para el desarrollador. Importante: Estas celdas no están disponibles en los modelos de llaves HARDkey STD, dado que son para aplicaciones mono-usuario. 64 bytes de Memoria no Volátil (celdas 22 a 53): este bloque de memoria de lectura/escritura de propósito general programable esta disponible para ser utilizado por el desarrollador. Se puede utilizar para guardar un código, contraseñas, los datos del usuario registrado o cualquier otro tipo de información. La información almacenada es guardada por 40 años sin necesidad de estar conectada a la computadora. El bloque de memoria no volátil disponible permite crear nuevas estrategias de protección por parte del desarrollador, en base a la imaginación y creatividad, podrá realizar comprobaciones de flags grabados en la llave que habiliten o no características en el software, grabar códigos de validación y comprobación, tablas de códigos fundamentales para que funcione la aplicación, etc. Mediante las librerías que se utilizan para proteger el software en modo interactivo es posible ver esta memoria como si fueran 32 celdas de 16 bits o como un bloque de memoria continuo de 64 bytes. 4K bytes de memoria expandida: Las llaves con formato USB, tanto STD como NET, tienen 4K bytes de memoria no-volátil adicionales los cuales pueden se pueden acceder mediante la librería de protección interactiva. Cuadro Resumen: 21

28 22 HARDkey - Manual para Desarrolladores Celda ( reservada ) ( reservada ) Función Detalle Personalización Clave 1 y Clave 2 Módulos del Software Contador de ejecuciones Licencias de red Globales Fecha de Vencimiento Licencia de Red por Módulo Memoria de Usuario Este bloque de memoria de lectura/escritura de propósito general programable esta disponible para ser utilizado por el desarrollador. Se puede utilizar para guardar un código, contraseñas, los datos del usuario registrado o cualquier otro tipo de información. La información almacenada es guardada por 40 años sin necesidad de estar conectada a la computadora. El bloque de memoria no volátil disponible permite crear nuevas estrategias de protección por parte del desarrollador, en base a la imaginación y creatividad, podrá realizar comprobaciones de flags grabados en la llave que habiliten o no características en el software, grabar códigos de validación y comprobación, tablas de códigos fundamentales para que funcione la aplicación, etc. Mediante las librerías que se utilizan para proteger el software en modo interactivo es posible ver esta memoria como si fueran 32 celdas de 16 bits o como un bloque de memoria continuo de 64 bytes. Memoria Extendida (Solo disponible en modelos USB) 4.2 Las llaves con formato USB, tanto STD como NET, tienen 4K bytes de memoria no-volátil adicionales los cuales pueden se pueden acceder mediante la librería de protección interactiva. Instalación del protector en la computadora Las llaves electrónicas compatibles con el sistema de protección HARDkey vienen en dos formatos según sean para conectar al puerto paralelo o al puerto USB de la PC.

29 Llaves electrónicas de habilitación Conexión del protector en la PC: Instalar correctamente el protector de conexión USB Instalar correctamente el protector de conexión Paralelo Protectores para puerto USB Compatibilidad Las llaves USB pueden ser usadas con sistemas operativos Windows ME/2000/2003 y XP. No pueden se usadas con Windows 95/98 ni NT dado que no tienen soporte para USB. Las computadoras permiten que los dispositivos puedan se conectados o desconectados en cualquier momento, no es necesario apagar la PC para realizar esta tarea. Para una correcta instalación inserte la llave en un conector USB libre. Aparecerá la siguiente ventana durante unos segundos mientras el sistema operativo configura el dispositivo. Windows Vista Windows XP Luego de esto la llave está lista para ser usada. Este mensaje aparece en esta única oportunidad, cuando se conecta el dispositivo por primera vez. Las llaves USB pueden ser usadas con sistemas operativos Windows ME/2000/2003 y XP. No pueden se usadas con Windows 95/98 ni NT dado que no tienen soporte para USB. 23

30 HARDkey - Manual para Desarrolladores Protectores para puerto paralelo Para mayor seguridad se recomienda que tanto la computadora como la impresora, se encuentren apagadas en el momento de realizar la instalación. Asegúrese que tanto la computadora como la impresora, posean una buena descarga a tierra (enchufe bipolar con toma a tierra, de 3 patas), ya que la llave posee continuidad de masa entre las carcasas de los conectores DB-25, para que esa descarga sea efectiva. Tenga en cuenta que la garantía del protector no cubre daños causados por descargas producidas como consecuencia de una instalación eléctrica deficiente. Para el caso en que la llave de habilitación deba ser instalada por personal que no tenga acceso a este manual, o que desconozca el funcionamiento de la misma, se entrega a continuación, un descriptivo de instalación de la llave por pasos, que recomendamos fotocopiar o transcribir a su manual y enviar como guía, para su correcta instalación, junto con el software que se entregue. 1. Antes de colocar el protector en la computadora verifique que el recinto donde se encuentran conectadas la computadora y la impresora, tenga una correcta instalación eléctrica y posea su correspondiente descarga a tierra. 2. Asegúrese que la computadora, el monitor, la impresora y demás accesorios estén apagados. 3. Si tiene una sola salida paralelo con impresora, desconecte la impresora, enchufe el conector macho de la llave al puerto paralelo (conector hembra DB-25) y a continuación conecte la impresora en el extremo hembra de la llave. Sujete todos los tornillos, tanto del protector como en el cable de impresora. 4. Si tiene varias salidas paralelo, puede conectar la llave en cualquiera de ellas, sin necesidad de desconectar la impresora. 5. El protector de software se puede conectar en cualquier puerto paralelo (lpt1, lpt2 o lpt3), en serie con el cable de conexión de la impresora. 6. En caso de tener que instalar una llave de habilitación en una salida que posea otra llave ya instalada, proceda de la misma forma, teniendo en cuenta que si hay instalado un protector de otra marca, se puede colocar delante o detrás del otro hasta lograr que los dos queden funcionando. 7. Las llaves de conexión al puerto paralelo requieren la instalación de un driver para que Windows las reconozca, utilice el programa HKEYDRV.EXE para instalar este controlador.

31 Llaves electrónicas de habilitación Cómo personalizar las llaves para su kit Las llaves HARDkey que usted compra se encuentran en un estado virgen y requieren ser codificadas con los parámetros propios de su kit para poder ser reconocidas por las rutinas de protección. Dicha función se realiza con el auxilio de la llave programadora (negra), la cual es distinta para cada kit. Esta "personalización" de las llaves debe realizarse sólo una vez. A partir de ahí ya está listas para ser utilizadas normalmente. Los pasos a seguir para personalizar una llave son: Conecte a la PC un cable prolongador de puerto paralelo. Esto es opcional pero le será de gran ayuda para poder trabajar más cómodamente al personalizar las llaves. Conecte la llave programadora (carcasa negra) al extremo del cable. Una vez que haya instalado los utilitarios del kit, ejecute el programa HKEYEDIT.EXE. Conecte la llave HARDkey que desee personalizar detrás de la llave programadora, en el caso de ser una llave USB conéctela en cualquier puerto libre y haga clic en el botón "Personalizar". Una vez terminado el proceso puede retirar la llave iniciada y repetir el paso 4 por cada nueva llave que desee personalizar. El proceso de personalización además de configurar las llaves con los parámetros propios de cada kit hace una inicialización general de las claves y de todas las celdas de memoria con el contenido que se muestra en la pantalla del editor, es conveniente configurar en el editor la información que va en las llaves y luego personalizarlas de forma consecutiva si se precisan llaves con la misma configuración. Vea el Entorno de Gestión Integral para Personalización de llaves

32 5

33 Cómo proteger su aplicación 5 Cómo proteger su aplicación Este capítulo describe las aplicaciones básicas del sistema de protección HARDkey.NET y cómo implementar cada una de ellas. Dada la versatilidad del producto el espectro de uso es bastante amplio, por lo cual centraremos nuestra atención en los siguientes escenarios: Protección de aplicaciones para Internet. En este caso lo que se logra con la llave es el control de quien ingresa a nuestra página web. En este caso cada usuario habilitado para usar nuestros servicios debe tener instalado un protector para que el servidor le permita al browser navegar por nuestro sitio. Protección de archivos ejecutables. Esta es la aplicación tradicional de las llaves electrónicas donde el software queda ligado a un elemento físico que garantiza su licencia de uso. Protección de bases de datos. Esta es una característica adicional del sistema de protección automática que permite mantener cifrada la información que maneja nuestra aplicación protegida. Control de licencias en una red. Esta opción permite armar esquemas flexibles de licencias flotantes para ambientes multi-usuario, centralizando la protección en una única llave HARDkey NET (carcasa naranja) instalada en el servidor de la red. 5.1 Protección automática de ejecutables para Windows Este método es una forma rápida de realizar un nivel básico de protección, limitado a aquellos casos donde la compatibilidad del ejecutable lo permita (ver Compatibilidad de la Protección Automática). Se basa en la instalación de la protección directamente dentro del ejecutable final, sin necesidad de que el desarrollador deba agregar código fuente al sistema a proteger. La protección consiste en tomar el ejecutable original, abrirlo e instalarle las rutinas de protección y los sistemas anti-debuging, para posteriormente cerrarlo ya protegido. Este proceso incrementa levemente la longitud del ejecutable original sin afectar la integridad del mismo. A la hora de instalar la protección sobre el ejecutable se pueden configurar varias opciones como el 27

34 28 HARDkey - Manual para Desarrolladores tipo de chequeo que se desea realizar, manejo de licencias en red, fecha de vencimiento de la licencia, cifrado de datos etc. Puede encontrar mayor información sobre como aplicar Protección Automática en el Manual del Entorno de Gestión Integral. Presione aquí para abrir la versión instalada de este manual. 5.2 Protección de aplicaciones para Internet Internet nos abre un nuevo mundo de posibilidades para desarrollar nuestras aplicaciones, y también nos presenta nuevos desafíos a la hora de proteger nuestra inversión. Sea que nuestro negocio es el alquiler de software, proveer información o brindar cualquier tipo de servicio por Internet con costo, hasta hoy dependíamos de la débil combinación "Usuario-Password" para garantizar el acceso controlado a nuestras páginas de Internet. Con HARDkey.NET es posible cambiar esto y garantizar un control efectivo de los usuarios que pueden acceder a los servicios de nuestro sitio. Este modo de protección permite que una página web publicada en un servidor de Internet, valide la identidad de los clientes que se conectan al mismo, utilizando como "clave de acceso" la llave

35 Cómo proteger su aplicación electrónica. La implementación de este modo de protección consta de dos partes: El lado del servidor y el lado del cliente. Del lado del servidor se ejecuta una página tipo ASP o PHP que realiza la validación de la llave. Del lado del cliente es necesario tener instalado el componente ActiveX que permite al browser interactuar con la llave Entorno de desarrollo Una vez registrado el componente en Windows (ver Cómo registrar el componente ActiveX (lado Cliente)), debe agregarlo al entorno de desarrollo que esté utilizando para armar su sitio web. La siguiente pantalla muestra como incluir el ActiveX al cuadro de herramientas del Visual InterDev. Presione el botón derecho del mouse estando en la solapa "Controles ActiveX" del cuadro de herramientas. Luego seleccione "Personalizar cuadro de herramientas..." y vaya a la solapa "Controles ActiveX". Una vez allí, tilde el Control HARDkey 0000???? correspondiente a su kit. Finalmente presione aceptar y el control aparecerá en el cuadro de herramientas, de esta forma podrá luego arrastrarlo a la página donde se realizaran los chequeos. 29

36 HARDkey - Manual para Desarrolladores Cómo registrar el componente ActiveX (lado cliente) El archivo hkeyxxxx.ocx es un control ActiveX que debe residir en la máquina del cliente, donde xxxx es un número hexadecimal de cuatro caracteres diferente para cada kit de HARDkey.NET ( Ej: hkey45da.ocx). Este componente interactúa con el browser del cliente para permitir a nuestra página validar la presencia de la llave a través de Internet. Además del control ActiveX el cliente debe tener instalado el driver que maneja la llave (ver Instalador de driver para Windows). Para registrarlo debe ejecutar el archivo REGISTER.BAT en el directorio donde está el OCX. Este proceso BAT registra el componente en la REGISTRY de Windows, indicándole entre otras cosas el directorio donde se encuentra el archivo. Por eso es importante que una vez registrado, no borre ni mueva de directorio el archivo OCX Configuración del browser Una vez instalados los drivers y registrado el componente, es necesario personalizar las opciones de seguridad del Internet Explorer para que permita la ejecución de controles ActiveX. La forma más conveniente de realizar esto es definiendo el sitio donde va a residir nuestra página como un "Sitio de Confianza" y personalizar el nivel de seguridad sólo para esta categoría. De esta forma no se verá afectada la seguridad de la máquina al navegar en otros sitios de la red. Vaya a "Opciones de Internet..." en el menú "Herramientas" del explorer.

37 Cómo proteger su aplicación Aquí presione el botón "Sitios..." para agregar la dirección del sitio donde va a residir la página protegida a la lista de los sitios de confianza. 31

38 32 HARDkey - Manual para Desarrolladores Complete el nombre y presione el botón agregar. En el ejemplo se supone que nuestra página estará publicada en un servidor bajo el nombre " También quite el tilde de la casilla que habilita la comprobación del servidor ( para los sitios de confianza. Por último se debe personalizar el nivel de seguridad para esta categoría de sitios. Para ello vuelva a la pantalla anterior presionando el botón "Aceptar". Ingrese en la opción "Personalizar nivel..." y tilde en "(*) Activar" todos las opciones del grupo "Controles y complementos de ActiveX". Esto le permitirá al browser interactuar con nuestro componente cada vez que el servidor le envíe una página que haga referencia a la llave. Al terminar presione "Aceptar" para registrar los cambios Funcionamiento de la página protegida (lado servidor) El servidor es el encargado de verificar la presencia de una llave HARDkey en el cliente que quiere conectarse. Para realizar esto le envía al navegador del cliente una página web que contiene una llamada a un control del archivo hkeyxxxx.ocx.

39 Cómo proteger su aplicación La página que recibe el cliente contiene los comandos necesarios para invocar la función de chequeo de la llave dentro del control ActiveX y enviarle la respuesta al servidor. Luego de recibir la respuesta el servidor está en posibilidad de dar o no acceso al cliente según corresponda. Toda esta información de ida y vuelta se encuentra cifrada para evitar que pueda ser interceptada y/o alterada. El siguiente diagrama muestra como es el proceso: El componente implementado en el ActiveX tiene la misma estructura de comandos que la librería DLL utilizada para la protección interactiva (ver La Función HARDkey) Dentro del kit se encuentra un ejemplo realizado en ASP que hace uso de este sistema para permitir el acceso a una pagina protegida únicamente si es encontrada una llave. El ejemplo que encontrará en el kit está desarrollado en Visual InterDev y está compuesto por los siguientes archivos: Default.asp: Este archivo es el inicial, en el mismo se arma una página que contiene las referencias al control ActiveX. En el servidor se arma además el argumento de chequeo que al tener un componente random y estar cifrado, genera una cadena diferente cada vez que se ejecuta. La cadena de respuesta es enviada a la página main1.asp Chequeo.asp: Este archivo recibe la respuesta que generó el ActiveX en la máquina del cliente. En el ejemplo, luego de descifrar y validar la cadena, es posible obtener el número de lote y serie de la llave, así como su fecha de vencimiento o módulos habilitados. Esta es la página en la que se decide si el usuario puede acceder a la pagina protegida (paginaok.asp) o debe ser redireccionado a la página de error (noaccess.asp) Paginaok.asp: Página protegida. Esta página controla que la página que la llamé sea chequeo.asp, esto asegura que el usuario haya sido validado, caso contrario, redirecciona al cliente a la página default.asp para hacer la verificación. Noaccess.asp: Esta página es la que dice "Acceso denegado...". y es a la que se accede en el caso de no poseer la llave en la máquina. El demo completo con todos los archivos asociados, se encuentra en el kit de desarrollo bajo el subdirectorio 'Internet'. Cabe aclarar que el siguiente en el punto "Código Ejemplo Asp" es solo un pequeño ejemplo de lo que es posible hacer con el ActiveX sobre Internet, ya que además del comando para chequear la presencia de la llave que se muestra aquí, están disponibles los comandos de lectura y escritura en la 33

40 34 HARDkey - Manual para Desarrolladores memoria no-volátil del protector que se describen en el capítulo del API. Como ejemplo de uso del ActiveX a través de Internet, se nombran solo algunas de las posibles aplicaciones: Permitir a los clientes acceder a sitios restringidos o página con costo. Personalizar el sitio para cada cliente. Saber quien se conecta y cuanto tiempo (aproximado). Saber a que páginas accedió. Permitirle descargar sólo la actualización del software que tiene registrado o los módulos que tenga habilitados. Leer y grabar valores en la llave.

41 Cómo proteger su aplicación Código del Ejemplo Asp Language=VBScript %> <% Option Explicit%> <% ' ' DEFAULT.ASP ' ' Esta es la página que realiza la invocación al chequeo del protector %> <% ' Definición de variables que se usan para armar la cadena ' que se pasa como parámetro al control ActiveX que chequea ' la llave en el explorador del cliente. Dim soriginal Dim scifrada Dim saux Dim c Dim i %> <% ' Este archivo contiene la definición de los vectores SBOX1, SBOX2 ' y la password que intervienen en el algoritmo que se usa para ' cifrar la cadena que se pasa como parámetro al ActiveX. %> <!-- #INCLUDE FILE="sbox.asp" --> <% ' Aquí se arma la cadena parámetro. Los primeros 10 bytes deben ser ' valores random, luego un espacio y 8 caracteres en cero (ascii) ' reservado para el nro de conexión, un espacio y 5 caracteres con ' la clave1 (en ascii), otro espacio y 5 caracteres con la clave2. ' El resto de los parámetros no son importantes para este caso y ' deben dejarse en cero. Para una descripción más detallada de como ' se compone la cadena de parámetro, ver el capítulo 'Interfase de ' programación de aplicación (API)' del manual del usuario. ' Completar la cadena con espacio en blanco hasta llegar a los 200 ' caracteres requeridos por la interfaz. randomize soriginal = "" For i = 1 To 10 soriginal = soriginal + chr(int(rnd *255)+1) Next soriginal = soriginal + " " soriginal = soriginal + space(159) ' Variables que deben estar accesibles desde otras páginas. session("randomarray")= soriginal session("callerip")=request.servervariables("remote_addr") session("lastpage")="default.asp" saux = soriginal ' Rutina que cifra la cadena original. cifra saux, spassword ' Acá convierto cada valor binario de la cadena cifrada ' a un valor hexadecimal en ascci de 2 dígitos. scifrada = "" For i = 1 To 200 c = Asc(Mid(sAux, i, 1)) If c > 15 Then scifrada = scifrada + Hex(c) Else scifrada = scifrada + "0" + Hex(c) End If Next ' Acá tengo la cadena armada para invocar al ActiveX ' Esta rutina cifra la cadena original antes de pasarla al ' componente ActiveX Sub cifra(buffer, password ) Dim i 'As Integer Dim ctemp 'As Integer Dim canterior 'As Integer Dim k 'As Integer Dim pw 'As Integer 35

42 36 HARDkey - Manual para Desarrolladores Dim bufenc 'As String canterior = 0 bufenc = "" For i = 0 To 199 ctemp = Asc(Mid(buffer, i + 1, 1)) If (ctemp < 0) Then ctemp = ctemp End If ctemp = ctemp Xor sbox1(canterior) For k = 0 To 15 pw = Asc(Mid(password, k + 1, 1)) If ((k Mod 2) = 1) Then ctemp = ctemp Xor sbox1(sbox2(pw)) ctemp = sbox2(ctemp) Else ctemp = ctemp Xor sbox2(sbox1(pw)) ctemp = sbox1(ctemp) End If Next ctemp = ctemp Xor sbox1(i) canterior = ctemp bufenc = bufenc + Chr(ctemp) Next buffer = bufenc End Sub %> <HTML> <HEAD> <META name=vi60_defaultclientscript content=vbscript> <META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0"> <SCRIPT ID=clientEventHandlersVBS LANGUAGE=vbscript> <!-' Hkeyctl1 es el control implementado en el ActiveX HKEY????.OCX ' El método 'Chequear' realiza la comunicación con la llave. ' La propiedad strbuffer se debe inicializar previamente con la ' cadena de parámetro donde se especifica que comando ejecutar. ' En esta propiedad retorna la cadena resultado desde de ejecutar ' el comando. Sub window_onload On Error Resume Next form1.hkeyctl1.strbuffer = "<% =scifrada %>" If Err.Number = 438 Then MsgBox "El componente ActiveX HKEY????.OCX no se encuentra instalado.", 0, "Demostración HARDkey en Internet" Exit Sub End If form1.hkeyctl1.chequear form1.respuesta.value = form1.hkeyctl1.strbuffer form1.submit() End Sub --> </SCRIPT> <title>demostración Interactiva de Protección HARDkey</title> </HEAD> <BODY bgcolor="#ffffff"> <P> </P> <P><BR></P> <FORM action="chequeo.asp" method=post id=form1 name=form1> <Input id=text1 name=respuesta style="visibility: hidden"> <Object classid="clsid:<%=sclassid%>" id=hkeyctl1 style="left: 0px; TOP: 0px"> <PARAM NAME="_Version" VALUE="65536"> <PARAM NAME="_ExtentX" VALUE="820"> <PARAM NAME="_ExtentY" VALUE="582"> <PARAM NAME="_StockProps" VALUE="0"> </Object> </FORM> <BR> </BODY> </HTML> <%@ Language=VBScript %>

43 Cómo proteger su aplicación <% Option Explicit%> <% ' ' CHEQUEO.ASP ' ' Esta es la página que procesa la respuesta de la llave %> <% ' Variables que se usan para procesar la cadena que devuelve ' el control ActiveX después de chequear la llave. Dim soriginal Dim srespuesta Dim saux Dim sloteserie Dim spagina Dim i %> <% ' Este archivo contiene la definición de los vectores SBOX1, SBOX2 ' y la password que intervienen en el algoritmo que se usa para ' cifrar la cadena que se pasa como parámetro al ActiveX. %> <!-- #INCLUDE file="sbox.asp" --> <% ' Obtengo la respuesta a través de un control tipo TextBox srespuesta = Request.Form("respuesta") soriginal = session("randomarray") ' Proceso la respuesta donde cada valor en hexadecimal viene como dos ' caracteres ascii para obtener un vector de caracteres en binario. saux = "" For i = 0 To 199 saux = saux + Chr(GetHex(Mid(sRespuesta, (i * 2) + 1, 2))) Next ' Invoco a la rutina que descifra la cadena descifra saux, spassword If Len (soriginal) < 10 Then Response.Redirect("noaccess.asp") Response.End() End If ' Verificar que la string de respuesta sea válida If bvalidastring(soriginal, saux) = False Then Response.Redirect("noaccess.asp") Response.End() End If ' Esta parte de la string contiene el nro de serie de la llave session("key") = Mid(sAux, 27, 10) session("lastpage") = "chequeo.asp" spagina = "paginaok.asp" ' Esta rutina descifra la cadena que devuelve el control ActiveX Sub descifra(buffer, password ) Dim i 'As Integer Dim ctemp 'As Integer Dim canterior 'As Integer Dim k 'As Integer Dim pw 'As Integer Dim bufenc 'As String canterior = 0 bufenc = "" For i = 0 To 199 ctemp = Asc(Mid(buffer, i + 1, 1)) If (ctemp < 0) Then ctemp = ctemp End If ctemp = ctemp Xor sbox1(canterior) For k = 0 To 15 pw = Asc(Mid(password, k + 1, 1)) If ((k Mod 2) = 1) Then ctemp = ctemp Xor sbox1(sbox2(pw)) ctemp = sbox2(ctemp) 37

44 38 HARDkey - Manual para Desarrolladores Else ctemp = ctemp Xor sbox2(sbox1(pw)) ctemp = sbox1(ctemp) End If Next ctemp = ctemp Xor sbox1(i) canterior = Asc(Mid(buffer, i + 1, 1)) bufenc = bufenc + Chr(ctemp) Next buffer = bufenc End Sub ' Esta rutina devuelve un valor binario a partir un número en ' hexadecimal expresado como dos caracteres ascii. Function GetHex(sTemp) 'As Byte Dim i 'As Integer Dim c 'As Byte Dim ntemp 'As Integer ntemp = 0 For i = 1 To 2 ntemp = ntemp * 16 c = Asc(Mid(sTemp, i, 1)) If (c >= Asc("0") And c <= Asc("9")) Then ntemp = ntemp + c - Asc("0") End If If (c >= Asc("a") And c <= Asc("f")) Then ntemp = ntemp + c - Asc("a") + 10 End If If (c >= Asc("A") And c <= Asc("F")) Then ntemp = ntemp + c - Asc("A") + 10 End If Next ntemp = ntemp Mod 256 GetHex = ntemp End Function ' Esta rutina verifica que la cadena recibida sea válida, ' los 10 caracteres random con los de la cadena origina y ' separadores entre parámetros sean espacios en blanco. Function bvalidastring(sorig, sresp) Dim i Dim j Dim k Dim s1 Dim strestado bvalidastring = False For i = 0 To 9 s1 = mid(sorig, i + 1, 1) j = Asc(s1) s1 = mid(sresp, i + 1, 1) k = sbox2(asc(s1)) If j <> k Then Exit Function End If Next If (mid(sresp, 11, 1) <> " ") Then 'valido Exit Function End If If (mid(sresp, 20, 1) <> " ") Then 'valido Exit Function End If If (mid(sresp, 26, 1) <> " ") Then 'valido Exit Function End If If (mid(sresp, 31, 1) <> "-") Then 'valido Exit Function End If strestado = mid(sresp, 21, 5) If CDbl(strEstado) <> 0 Then Exit Function End If bvalidastring = True End Function %> comparando los separador de conexión separador de estado separador de lote separador de serie

45 Cómo proteger su aplicación <HTML> <HEAD> <META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0"> <SCRIPT ID=clientEventHandlersVBS LANGUAGE=vbscript> <!-Sub window_onload form.submit() End Sub --> </SCRIPT> </HEAD> <BODY> <form method="post" action="<%=spagina%>" Name="form"> <Input Type="hidden" name="val" value="<%=spagina%>"> </form> <P> </P> </BODY> </HTML> 5.3 Protección de ejecutables en forma interactiva La función HARDkey() El API(Application Programming Interface) de HARDkey consiste en una función que, dependiendo del parámetro enviado, realiza la operación indicada. Este parámetro consiste en una cadena de caracteres que se construye de acuerdo a los requerimientos de la operación que se desea efectuar. Por lo tanto, el API posee una única función que se denomina HARDkey y es la misma función para todos los sistemas operativos y lenguajes. HARDkey(cadena_parámetro) La cadena_parámetro es una string de 200 caracteres utilizada como buffer para la transacción de datos entre la aplicación y la DLL. Al invocar la función en esta cadena se pasan los parámetros específicos del comando que se desea ejecutar. Al retornar de la función, la string contiene el resultado de la operación. Esta string se debe cifrar antes de invocar a la función HARDkey mediante un esquema que se detalla más adelante. Una vez que la función retorna, la string respuesta debe ser descifrada por el mismo método para obtener los valores finales. 39

46 40 HARDkey - Manual para Desarrolladores La cadena debe ser pasada a la función por referencia para que el resultado retorne en la misma cadena. Si bien esta operatoria puede parecer engorrosa a primera vista, es necesaria para garantizar el máximo nivel de protección, ya que un esquema en el cual los parámetros se pasan sin cifrar y la función devuelve un resultado directamente, es más vulnerable. Los comandos disponibles mediante esta función son: Iniciar conexión Verificar conexión Finalizar conexión Leer celda de memoria no-volátil de la llave Grabar celda de memoria Leer cadena de caracteres de la memoria de la llave Grabar cadena de caracteres en la memoria de la llave Cambiar claves Cifrar / descifrar una cadena de caracteres Configurar modo de chequeo Grabar Fecha y Hora Leer Fecha y Hora Leer memoria extendida Grabar memoria extendida Forma de implementar la protección Para usar cualquiera de los comandos disponibles siempre se debe comenzar por invocar al comando "Iniciar conexión". Esta es la función básica que permite saber si hay una llave conectada perteneciente al kit. Además retorna información adicional de algunas celdas del protector con funciones especiales como el número de lote y serie de la llave, la fecha de vencimiento, el límite de ejecuciones, los módulos habilitados, etc. El desarrollador tiene la libertad de prestar atención o no a esta información, según el esquema de protección que pretenda armar. El esquema de protección más elemental que se puede armar sería invocar el comando "Iniciar conexión", verificar si hay protector instalado para permitir o no la normal ejecución del programa y

47 Cómo proteger su aplicación luego invocar el comando "Finalizar conexión". Para armar un esquema más elaborado, una vez iniciada la conexión se puede invocar a los comandos que le permiten leer o grabar información en la memoria de la llave. Otra alternativa es invocar el comando "Verificar conexión" en puntos críticos del programa para asegurarse que la llave sigue instalada y evitar que el usuario final la retire luego de haber entrado al programa. Los pasos a seguir cada vez que se invoca a la función HARDkey son los siguientes: Generar una cadena con los parámetros necesarios para la operación. Cifrar la cadena para obtener un nivel de seguridad adicional. Invocar la función HARDkey con la cadena cifrada como parámetro. Descifrar la cadena de parámetro modificada por la función. Validar que la cadena retornada cumpla con el formato requerido. Extraer la información de la operación efectuada Entrenamiento de Protección Interactiva Desde el sistema Entorno de Gestión Integral se encuentra disponible un sistema que permite el testeo de forma sencilla de todos los comandos de la API HARDkey NET. 41

48 42 HARDkey - Manual para Desarrolladores Para mayor información vea el Manual del Entorno de Gestión Centralizado Ejemplo práctico de protección interactiva El siguiente proyecto muestra una implementación básica para chequear la llave y leer el contenido de memoria no-volátil, desarrollado en Visual Basic. El código apunta a ser claro y conciso. Si bien puede ser usado como base para incluir en su proyecto personal, una aplicación completa debe incluir algunas técnicas para complicar el seguimiento del código por parte de hackers. Los componentes básicos del proyecto son el formulario donde se encuentran la pantalla y el código del proyecto, y el módulo HKDEMO.BAS. Este módulo contiene la declaración de la librería DLL con la función HARDkey(), las variables públicas y dos vectores que usan las rutinas para cifrar la cadena de comandos. ' ' HKEYDEMO.BAS ' Declare Function HARDkey Lib "hkey-w32.dll" (ByVal buf As String) As Long

49 Cómo proteger su aplicación 'El entorno de desarrollo de Visual Basic requiere que las librerías 'DLLs se encuentren en el directorio \WINDOWS para poder abrirlas. 'El ejecutable ya compilado la encuentra tanto en el directorio \WINDOWS 'como en el directorio desde donde corre el programa. Public sbox1 As Variant Public sbox2 As Variant Public password As String Public Sub InitSB() 'Esta rutina debe ser invocada al cargar la FORM donde se realiza el 'chequeo de la llave. En ella se inicializan los vectores sbox que 'usan las rutinas CifraString() y DescifrString() para cifrar 'la cadena que se pasa a la funcion HARDkey(). password = "****PASSWORD****" 'Debe coincidir con la password que declaró en el campo 'PASSWORD 'para cifrado de parámetros' del instalador del kit. 'Debe tener una longitud fija de 16 caracteres. sbox1 = Array(&HC5, &H23, &HE3,..., &HAA, sbox2 = Array(&H45, &H90, &HD7,..., &HBA, 'Estos vectores son distintos para cada kit. 'incluya este módulo en su proyecto tal como &HEA, &HB6, &H51) &H9A, &H76, &HFC) No cambie sus valores, está. End Sub El formulario principal del proyecto es el siguiente: ' ' HKDEMO.FRM - Ejemplo para Visual Basic ' Public Public Public Public Public Public buffer l relleno random hkestado conexion As As As As As As String Long String String String String Private Sub Form_Load() InitSB 'Inicializa variables para CifraString() y DescifraString() End Sub Private Sub InitBuffer() 'Inicializa con 10 bytes al azar la string usada para pasar los 'parámetros a la función HARDkey() Randomize relleno = Space(200) buffer = "" For l = 1 To 10 buffer = buffer + Chr(Int((Rnd * 255) + 1)) Next l End Sub Private Sub IniciarConexion_Click() 'Este botón chequea la llave invocando el comando Iniciar Conexión. 'Deshabilito chequeo en red, limitando la busqueda de la llave a los 'puertos paralelo. Para chequear en red y local elimine esta parte. InitBuffer buffer = buffer + " _ " buffer = buffer + relleno Call CifraString(buffer, password) l = HARDkey(buffer) 'Chequeo la llave invocando el comando Iniciar Conexión InitBuffer random = buffer buffer = buffer + " " buffer = buffer + relleno CadenaEnviada.Text = Mid(buffer, 12) Call CifraString(buffer, password) l = HARDkey(buffer) 43

50 44 HARDkey - Manual para Desarrolladores Call DescifraString(buffer, password) 'Analizo la respuesta para determinar si está la llave RespuestaRecibida.Text = Mid(buffer, 12) If (ValidaString(buffer, random) = True) Then LeerCadena.Enabled = True FinConexion.Enabled = True Estado.Text = "Se ha encontrado el HARDkey " + Mid(buffer, 27, 10) conexion = Mid(buffer, 12, 8) Else Estado.Text = hkestado conexion = " " End If End Sub Private Sub LeerCadena_Click() 'Este botón leer los 64 bytes de memoria no-volátil de la llave InitBuffer random = buffer buffer = buffer + " " + conexion + " " buffer = buffer + relleno CadenaEnviada.Text = Mid(buffer, 12) Call CifraString(buffer, password) l = HARDkey(buffer) Call DescifraString(buffer, password) 'Analizo respuesta para ver si el comando fue completado RespuestaRecibida.Text = Mid(buffer, 12) If (ValidaString(buffer, random) = True) Then Estado.Text = "Cadena leida con exito" Else Estado.Text = hkestado End If End Sub Private Sub FinConexion_Click() 'Este botón cierra la conexión con la llave InitBuffer random = buffer buffer = buffer + " " + conexion + " " buffer = buffer + relleno CadenaEnviada.Text = Mid(buffer, 12) Call CifraString(buffer, password) l = HARDkey(buffer) Call DescifraString(buffer, password) 'Analizo respuesta para ver si el comando fue completado RespuestaRecibida.Text = Mid(buffer, 12) If (ValidaString(buffer, random) = True) Then LeerCadena.Enabled = False FinConexion.Enabled = False Estado.Text = "Conexión finalizada con exito" Else Estado.Text = hkestado End If End Sub Sub CifraString(buffer As String, password As String) 'Esta rutina cifra la cadena que se pasa como parámetro a la función 'HARDkey(). Dim Dim Dim Dim Dim Dim i ctemp canterior k pw bufenc As As As As As As Integer Integer Integer Integer Integer String canterior = 0 bufenc = "" For i = 0 To 199

51 Cómo proteger su aplicación ctemp = Asc(Mid(buffer, i + 1, 1)) If (ctemp < 0) Then ctemp = ctemp End If ctemp = ctemp Xor sbox1(canterior) For k = 0 To 15 pw = Asc(Mid(password, k + 1, 1)) If ((k Mod 2) = 1) Then ctemp = ctemp Xor sbox1(sbox2(pw)) ctemp = sbox2(ctemp) Else ctemp = ctemp Xor sbox2(sbox1(pw)) ctemp = sbox1(ctemp) End If Next k ctemp = ctemp Xor sbox1(i) canterior = ctemp bufenc = bufenc + Chr(ctemp) Next i buffer = bufenc End Sub Sub DescifraString(buffer As String, password As String) 'Esta rutina descifra la cadena que devuelve la función HARDkey(). Dim Dim Dim Dim Dim Dim i ctemp canterior k pw bufenc As As As As As As Integer Integer Integer Integer Integer String canterior = 0 bufenc = "" For i = 0 To 199 ctemp = Asc(Mid(buffer, i + 1, 1)) If (ctemp < 0) Then ctemp = ctemp End If ctemp = ctemp Xor sbox1(canterior) For k = 0 To 15 pw = Asc(Mid(password, k + 1, 1)) If ((k Mod 2) = 1) Then ctemp = ctemp Xor sbox1(sbox2(pw)) ctemp = sbox2(ctemp) Else ctemp = ctemp Xor sbox2(sbox1(pw)) ctemp = sbox1(ctemp) End If Next k ctemp = ctemp Xor sbox1(i) canterior = Asc(Mid(buffer, i + 1, 1)) bufenc = bufenc + Chr(ctemp) Next i buffer = bufenc End Sub Function ValidaString(buffer As String, random As String) As Boolean 'Esta rutina analiza que la string devuelta por la 'función HARDkey() sea consistente. Dim i As Integer Dim result As Boolean Dim st As String For i = 1 To 10 Mid(buffer, i, 1) = Chr(sBox2(Asc(Mid(buffer, i, 1)))) Next i result = True For i = 1 To 10 If (Mid(buffer, i, 1) <> Mid(random, i, 1)) Then result = False End If Next i 45

52 46 HARDkey - Manual para Desarrolladores If (Mid(buffer, 11, 1) <> " ") Then result = False End If If (Mid(buffer, 20, 1) <> " ") Then result = False End If If (Mid(buffer, 26, 1) <> " ") Then result = False End If If (Mid(buffer, 31, 1) <> "-") Then result = False End If If (Val(Mid(buffer, 21, 5)) <> 0) Then result = False End If st = Mid(buffer, 21, 5) If (st = "00000") Then hkestado = "El comando se completó con exito" If (st = "00002") Then hkestado = "No se encontró protector" If (st = "00004") Then hkestado = "Formato de cadena incorrecto" If (st = "00010") Then hkestado = "Número de conexión no válida" If (st = "00011") Then hkestado = "Se superó límite de usuarios" If (st = "00012") Then hkestado = "Módulo yá en uso por la aplicación" If (st = "00013") Then hkestado = "Módulo no levantado por aplicación" If (st = "00020") Then hkestado = "No hay drivers HARDkey instalados" If (st = "00021") Then hkestado = "Versión de drivers obsoleta" ValidaString = result End Function Private Sub SALIR_Click() End End Sub Las rutinas CifraString() y DescifraString() implementan un algoritmo para procesar la cadena de caracteres pasada como parámetro a la función HARDkey(). Este algoritmo se basa en dos vectores de 256 caracteres que están personalizados para cada kit y una password de 16 caracteres que la define el desarrollador. Esta password debe ser la misma que definió en el campo "password para cifrado de parámetros en protección interactiva" al instalar el kit. El programa instalador se encarga de incorporar esta password en la librería HKEY-W32.DLL en ese momento.

53 6

54 48 HARDkey - Manual para Desarrolladores 6 Utilitarios y drivers para manejar las llaves 6.1 Instalador del Servidor de llaves en Red El kit HARDkey NET viene equipado con una herramienta especialmente desarrollada para compartir llaves en redes Windows. El Servidor de llaves en red, se presenta en modo aplicación y en modo servicio. En sus dos versiones permite controlar la cantidad de terminales conectadas simultáneamente al sistema protegido, a su vez permite realizar validaciones de licencias para diferentes módulos. Vea el punto Servidor de acceso a la llave para redes para mayor información sobre este punto. Aquí detallaremos los pasos a seguir para realizar la instalación del servidor de llaves en red Instalación del servidor de llaves en red En esta sección se describe como realizar la instalación del servidor de llaves en red y componentes adicionales utilizando Instalador de Servidor de llaves HARDkey NET en Red. Abra el sistema para la instalación del servidor de llaves, la siguiente imágen muestra la pantalla del mismo.

55 Utilitarios y drivers para manejar las llaves Pasos a seguir para realizar una instalación Rápida: 1- Verificar si las componentes de este instalador están actualizados. Antes de comenzar con la instalación es recomendable verificar que la versión que se va a instalar esté actualizada. Para ello, el instalador cuenta con una opción que realiza las verificaciones de todos los componentes de forma automática. Presione el botón << Buscar Actualizaciones en Internet >> para obtener un reporte de los componentes que se encuentran disponibles en la web. Si algún componente presenta el signo de interrogación, significa que ese componente ha sufrido cambios importantes. Por ejemplo, en la siguiente imágen, vemos que se listan los componentes uno a continuación del otro. Cada componente muestra una breve descripción de las nuevas funcionalidades o correcciones que posee. En la columna versión, se muestra la versión de los componentes disponible en la web. 49

56 50 HARDkey - Manual para Desarrolladores Luego del cuadro de actualizaciones disponibles en la web, el sistema le indica si es conveniente descargar la nueva versión. Los posibles mensajes son los siguientes:

57 Utilitarios y drivers para manejar las llaves 51 Los componentes que tiene instalados están desactualizados. Es aconsejable descargar la nueva versión. Los componentes esenciales del instalador están al día. \nno es imprescindible descarga la nueva versión. Todos los componentes de este instalador están al día. No se requiere descarga. En el caso que aparezca el símbolo de admiración es muy importante que descargue la actualización de la web. 2- Descargar actualizaciones de la web Para descargar la últimaversión del software de la web presione el botón <<Descargar>>. En la misma carpeta donde se encuentra este ejecutable se descargará la nueva versión comprimida. Para realizar la instalación, deberá descomprimir el archivo y ejecutarlo. 3- Instalar el servidor de llaves Para realizar la instalación del servidor de llaves presione el botón <<Instalar>>. El proceso de instalación no requiere reiniciar el equipo. Si el sistema operativo es Windows 2000, XP, 2003 o Vista se instalará el servidor en modo servicio. Al realizar la instalación, el servicio se ejecutará compartiendo las llaves conectadas en la red. Si el sistema operativo es Windows 98 SE, o Millenium se instala el servidor de llaves en modo aplicación. En pantalla usted podrá ver la dirección IP de la PC donde será instalado el servidor para compartir llaves en red. Este dato es muy importante si desea configurar en los clientes el número de IP desde donde se está compartiendo la llave. Instalación de Componentes Adicionales: Antes de realizar la instalación, seleccione de pantalla que componentes adicionales desea que se instalen. Si usted está utilizando llaves paralelo, habilite la opción "Driver para llaves de puerto paralelo.

58 HARDkey - Manual para Desarrolladores Instalador de drivers para llaves de Puerto Paralelo Para el correcto funcionamiento de las llaves de protección de puerto paralelo en ambientes Windows, es necesario instalar los drivers apropiados antes de correr una aplicación protegida. Esto se realiza mediante un utilitario instalador cuya descripción y funcionamiento se detallan a continuación. En el caso de Windows NT y Windows 2000, la arquitectura del sistema operativo impide que una aplicación acceda directamente a recursos de hardware, en nuestro caso el puerto paralelo donde está instalada la llave. En Windows 95/98, los drivers VxD permiten tener el control total del procesador de la PC, evitando que otras aplicaciones se ejecuten en forma concurrente. Por otro lado si un trabajo de impresión ya está en curso en el momento de chequear el protector, el driver le roba el control al spooler durante unos pocos mili-segundos, y luego de acceder a la llave lo libera para que la impresión continúe normalmente. Otra característica fundamental de los drivers es su capacidad de acceder a la llave aunque se encuentren instalados otros drivers y/o cajas de herramientas de impresoras que bloquean el puertos paralelo. Si la PC donde se están instalando los drivers y la llave, a su vez va a compartir el protector para que pueda ser utilizado desde otros puestos de la red, será necesario instalar también el servidor de red para llaves HARDkey. Solo es necesario instalar los drives en las máquinas que tengan una llave conectada al puerto paralelo. Si la aplicación protegida trabaja en una red y la llave se encuentra en otra PC remota o en el servidor, las PCs clientes no necesitan ningún driver. Tampoco hace falta driver para las llaves HARDkey USB. Los protectores para interfaz USB trabajan con drivers Standard de Windows por lo cual no es necesario instalar otros drivers para poder utilizarlas. Estas llaves se pueden usar en PCs con sistema operativo Windows Me/XP/2000 y Los sistemas operativos Windows 95/98 y NT no tienen los drivers necesarios para el manejo de dispositivos USB porque fueron desarrollados antes que se popularizara dicha interfaz. En estos casos solo se podrán utilizar llaves de puerto paralelo Instalación desde la ventana del utilitario Para simplificar y automatizar la instalación de los drivers que requiere cada sistema operativo, dentro del kit encontrará un utilitario llamado HKDRIVER.EXE que realiza este proceso. Este programa auto-contenido (los drivers que se deben instalar están dentro del propio programa) al ser ejecutado presenta una pantalla con las opciones de instalar, remover o salir sin realizar cambios.

59 Utilitarios y drivers para manejar las llaves En la parte superior se muestra un recuadro donde se puede ver la versión del sistema operativo detectada y si los drivers ya se encuentran instalados o no. Al seleccionar la opción "Instalar" el utilitario procede a copiar y registrar los drivers correspondientes. Sobre Windows NT/2000/2003 y XP se copia el archivo: HKEY-KDD.SYS en el directorio WINDOWS\SYSTEM32\DRIVERS Mientras que en Windows 95/98/Me se copia el archivo: HARDKEY.VxD en el directorio WINDOWS\SYSTEM Si la casilla "Configurar esta PC para compartir la llave en la red" está tildada, el instalador copiará y registrará automáticamente el servidor de red para llaves. Esto le permitirá compartir las llaves HARDkey-NET (carcasa naranja) para que pueda ser accedida desde otros puestos de red que corran la aplicación protegida. El utilitario servidor de red para llaves sólo debe ser cargado en la PC que tenga instalado el protector. En las PC cliente deje esta casilla sin tildar al instalar los drivers. Según en que plataforma está corriendo, se instalará alguno de los siguientes componentes: 53

60 54 HARDkey - Manual para Desarrolladores En Windows NT/2000/2003 y XP HKNETSRV.EXE en el directorio WINNT\SYSTEM32 En Windows 95/98/Me HKEYNET.EXE en el directorio WINDOWS\ Estos componentes quedan configurados para que se inicien automáticamente al cargar Windows. Una vez terminada la instalación, es necesario reiniciar el equipo para que los cambios tengan efecto Instalación de drivers en modo comando El utilitario de instalación puede ser invocado en modo comando. De esta forma se puede armar un esquema donde el programa que instala su aplicación invoque al HKEYDRV.EXE pasándole el parámetro correspondiente, según se quiera instalar o remover los drivers. Mientras esto sucede su programa instalador puede estar mostrando alguna información personalizada, sin que en pantalla aparezca referencia alguna a SITEPRO o HARDkey. HKEYDRV HKEYDRV HKEYDRV HKEYDRE I S IS D (instalar drivers) (instalar servidor de red para llaves) (instalar drivers y servidor de red para llaves) (desinstalar todo sin mostrar pantalla) En todos los casos si se trata de instalar una versión anterior sobre la que ya esta instalada, se presenta un cartel informándole al usuario sobre esta situación y preguntando si desea sobre escribir Consideraciones importantes 1. Los drivers tanto de Windows 2000/NT como de Windows 95/98 son genéricos, esto significa que distintas aplicaciones protegidas (aunque sean de diferentes kit) pueden invocarlo para acceder a la llave. 2. Recuerde siempre entregar el utilitario HKEYDRV.EXE junto a su programa protegido, y realizar la

61 Utilitarios y drivers para manejar las llaves instalación de los drivers antes de ejecutar su aplicación. 6.3 Personalización y configuración de llaves HARDkey Cómo editar la memoria de las llaves HARDkey Las llaves recién compradas están en un estado Virgen, requieren ser codificadas con los parámetros propios del kit para poder ser reconocidas por las rutinas de protección. El proceso de personalización se lleva a cabo utilizando la llave programadora. Para mayor información sobre Llaves Programadoras vea La llave programadora. Desde el entorno de Gestión Integral para protección de software, usted podrá personalizar y configurar todas las opciones en la memoria de las llaves HARDkey. Para mayor información sobre el entorno de gestión vea el manual Entorno de Gestión.chm. 55

62 56 HARDkey - Manual para Desarrolladores 6.4 Actualización remota de llaves HARDkey Cómo funciona el utilitario de actualización remota Supongamos que usted ya desarrolló y protegió una aplicación con HARDkey. Esta aplicación se encuentra instalada en un cliente final y se plantea el caso de tener que habilitar un módulo más, configurarle mayor número de licencias en red o extenderle la fecha en que expira el uso del software. Estos parámetros se graban en determinadas celdas de memoria dentro del protector. El sistema de actualización remota de llaves (SAR) permite generar un ejecutable actualizador para enviar al cliente final, el cual al correr reconfigurar los parámetros deseados dentro de la memoria del protector. Esta metodología también es útil para la venta de paquetes enlatados a través de distribuidores. En este caso se puede armar un esquema en el cual el distribuidor tiene por un lado paquetes completos del software y por otro llaves sin licencias habilitadas. Cuando se concreta una venta el distribuidor informa qué módulos vendió con lo cual se le pasa el archivo correspondiente para habilitar una llave en particular. Para una descripción detallada de cómo generar actualizaciones remotas vea el manual Entorno de gestión Integral. 6.5 Cifrador manual de archivos Descripción del cifrado de archivos El entorno de protección automática además de proteger el ejecutable, permite realizar el cifrado inicial de las bases de datos asociadas a la aplicación. Esto es así cuando se especifica el nombre y el camino completo de los archivos, automáticamente al proteger se cifran los archivos seleccionados. Vea el manual Entorno de Gestión Integral para mayor información sobre las distintas opciones del cifrador de archivos. En el caso que se introduzcan nombres con comodines (ej. *.DBF, etc) o que los datos en cuestión no estuvieran accesibles en el momento de la protección, el cifrado inicial de dichos archivos puede realizarse manualmente mediante el ítem Cifrado de archivos desde el Entorno de Gestión Integral. Cuando los archivos de datos aún no estén creados podemos proteger la aplicación y posteriormente cifrarlos desde el cifrador de archivos. En este proceso debemos especificar la clave de cifrado, la cual no debe contener más de 20 caracteres. Además podemos seleccionar la opción "Cifrado Personalizado" que usa un algoritmo muy potente y

63 Utilitarios y drivers para manejar las llaves es el recomendado por su seguridad, en cambio para aquellos programadores que necesiten cifrar datos compatibles con versiones protegidas anteriormente no deben habilitar esta opción. El "Cifrado Personalizado" utiliza funciones "Query" que vienen con los microprocesadores de llaves HARDkey, por ese motivo el utilitario requiere que se coloque una llave del kit en la PC, además debe colocar las claves del protector para poder acceder al cifrado del archivo. Puede usarse cualquier llave del kit, y las claves de acceso pueden ser cualquier valor. Cifrado Modo Comando: Por otro lado, el kit cuenta con una herramienta que permite cifrar los archivos en modo comando. Puede invocarse el utilitario pasando como parámetro el password y nombre de los archivos a cifrar. La sintaxis de invocación es la siguiente: hkencrip "password_cifrado" <archivo_origen> <archivo_destino> Password_cifrado es la clave de cifrado, no debe contener mas de 20 caracteres entre los cuales no puede haber comillas, archivo_origen es la ruta del archivo que se va a cifrar y archivo_destino la ruta donde se almacenará el archivo_origen cifrado. Para obtener el mayor nivel de seguridad utilice una clave de cifrado del largo máximo permitido (20 caracteres). Evite usar como clave nombres conocidos, una buena técnica es mezclar letras en minúsculas y mayúsculas con caracteres de puntuación al azar. Por ejemplo si alguien pretendiera descifrar información mediante criptoanálisis cifrada con la clave "Batman" le resultaría mucho más fácil romper esta clave que si utilizamos algo tipo "X2sdilañ/m_SD$$%fo&". Esta clave para mas seguridad puede almacenarse en el memoria de una llave HARDkey y así quedar a resguardo de que nadie se entere de ella. 6.6 Utilitario para diagnostico de llaves y solución de problemas El utilitario de diagnóstico (HKINFO.EXE) permite obtener una radiografía del sistema donde están instaladas las llaves electrónicas. Entre las opciones a chequear se encuentran: verificar si los drivers para llaves paralelo ó controles ActiveX están correctamente instalados, verificar si las llaves conectadas funcionan correctamente, busca llaves compartidas en redes Novell y Windows y revisar parámetros de búsqueda. La siguiente imágen muestra la pantalla inicial del utilitario de diagnóstico. 57

64 HARDkey - Manual para Desarrolladores Componentes instalados En la primer ficha, Componentes Instalados, se muestra un informe de los componentes HARDkey que se encuentran instalados. Los drivers que se muestran son para los distintos modelos de llaves que puede soportar el sistema de protección HARDkey. La fila "Servidor de llaves para red" indica si el servidor de llaves está activado, esto es indispensable cuando la PC comparte la llave en red.

65 Utilitarios y drivers para manejar las llaves Para que el utilitario refleje los últimos cambios realizados al sistema debemos presionar el botón << Refrescar >> Prueba de llaves conectadas Esta opción permite básicamente realizar un diagnóstico para determinar el funcionamiento de las llaves electrónicas. Al presionar el botón << Refrescar >> se realiza una comprobación para determinar que llaves se encuentran conectadas. Es fundamental previamente haber verificado la ficha "Componentes instalados" para asegurarse que los drivers correspondientes se encuentren instalados. 59

66 60 HARDkey - Manual para Desarrolladores Luego de realizarse la comprobación se lista toda la información obtenida de esta búsqueda. Vale aclarar que por defecto no se buscan llaves en red, para ello debemos seleccionar específicamente la opción "Servidor Windows", "Servidor Novell" o "Servidor Linux". Las distintas columnas muestran características de la llave: La primera columna muestra el modelo de llave localizada. En segundo lugar se muestra el número de lote y serie, que es el identificador único irrepetible; a continuación se detalla si la llave está personalizada para algún kit, la ubicación donde fue encontrada, la versión de firmware y otros datos adicionales. En la imagen anterior se muestran 3 llaves localizadas: una llave HARDKEY MIO en el puerto USB, otra llave HARDkey NET en otro puerto USB y por último la misma llave NET pero encontrada a través de la red. Cuando se buscan llaves en red puede especificarse la dirección "IP" de la PC donde se encuentra conectada. Esto aumenta la precisión de la búsqueda disminuyendo la demora en detectar los protectores. Ver imágen anterior.en este caso es necesario conocer la dirección IP de la computadora que tiene la llave instalada y compartida. Otra de las opciones de la búsqueda de llaves es tildando "Toda la red", no es especifica dirección IP de la PC que comparte la llave. Si bien, este tipo de búsqueda no es tan precisa como la búsqueda por IP, es un mecanismo muy útil cuando tenemos un esquema de IP dinámicas en la red donde estamos realizando la instalación.

67 Utilitarios y drivers para manejar las llaves Definición de parámetros de búsqueda en red Esta ficha muestra determinados parámetros que pueden ser configurados para personalizar la búsqueda de las llaves en red: "Cantidad de intentos en red" muestra la cantidad de mensajes que se transmiten buscando una llave, el intervalo de tiempo de espera entre estos mensajes se mide como "Tiempo entre reintentos". El resto de los parámetros corresponden a valores internos del protector Solución de problemas Desde la última ficha se puede acceder a la guía de instalación y asistencia técnica de las llaves electrónicas. Esta guía esquematiza los pasos a seguir en el momento de instalar una aplicación protegida, y establecer soluciones para los diversos problemas que pueden presentarse. De no encontrarse la guía, desde esta pantalla puede descargarse de la Web si se dispone de una conexión a Internet. 61

68 62 HARDkey - Manual para Desarrolladores Este utilitario (hkinfo) es de uso genérico y se recomienda distribuirlo junto a su aplicación para que el usuario final disponga de una herramienta de diagnóstico que le facilitará la tarea de instalación y mantenimiento. 6.7 Esquema de distribución de llaves Generación de llaves distribuidor En ciertos casos donde la distribución del software se realiza mediante representantes que comercializan nuestros productos en distintas regiones, resulta muy útil facilitarles un stock de llaves para minimizar costos de despacho pero manteniendo el control sobre las licencias que disponen para vender. Esto se puede llevar a cabo mediante el "Esquema de habilitación parcial al Distribuidor", el cual brinda la posibilidad de que el distribuidor del software protegido que se encuentra en el exterior compre o tenga es stock llaves electrónicas vírgenes, enviándole el desarrollador la herramienta que le permite configurar dichas llaves a medida que se realizan las ventas.

69 Utilitarios y drivers para manejar las llaves Vea en el manual Entorno de Gestión Integral los pasos a seguir para armar un esquema controlado de distribución de licencias mediante llaves Distribuidor. 63

70 7

71 Como compartir una llave en una red local 7 Como compartir una llave en una red local 7.1 Servidor de acceso a la llave para redes La llave en una PC con Windows 95/98 o Me Cuando la llave compartida por las aplicaciones de toda la red se encuentra instalada en una máquina que corre Windows 95/98/Me, el programa residente que actúa como servidor de acceso al protector se llama HKEYNET.EXE. El utilitario instalador de drivers permite instalar en la misma operación este servidor de acceso HKEYNET.EXE. Este programa se incluye en el grupo "Inicio", para que corra automáticamente al cargar Windows. Para mayor información sobre el instalador de drivers consulte el capítulo "Instalador de drivers para Windows". Después de cargarse en memoria, el programa HKEYNET.EXE, se minimiza automáticamente y queda residente en forma de un pequeño icono. Este residente es genérico por lo tanto es capaz de administrar llaves HARDkey de cualquier kit 65

72 66 HARDkey - Manual para Desarrolladores conectadas al mismo o en distintos puertos paralelos de la PC. A partir de ese momento, cualquier PC que esté conectada a la red, puede ejecutar una aplicación protegida aunque no tenga una llave instalada, dado que todas compartirán el protector administrado por este residente. La pantalla del servidor se divide en dos secciones principales, el listado de conexiones activas y una tabla que muestra el detalle de paquetes recibidos por diferentes protocolos. El listado de conexiones activas muestra el nombre de la PC desde donde se requiere la conexión, la hora en que se inició y el número de lote y serie de la llave con la cual se levantó la conexión. Haciendo doble-click sobre la conexión se pueden ver los módulos que se están usando y las licencias globales. En la imagen siguiente se está usando 1 licencia del módulo 1.

73 Como compartir una llave en una red local La llave en una PC con Windows NT/2000/2003 o XP Cuando la llave compartida por las aplicaciones de toda la red se encuentra instalada en una máquina que corre Windows 2000 o NT, el servidor de acceso al protector tiene la forma de un servicio del sistema operativo que arranca automáticamente al cargar Windows. Este servicio es genérico por lo tanto es capaz de administrar llaves HARDkey de cualquier kit conectadas al mismo o en distintos puertos paralelos del servidor. Al detectar una plataforma NT o Windows 2000, el utilitario instalador de servidor de llaves permitirá instalar el servidor de acceso a la llave para compartirla con otras máquinas. El servidor de llaves trabaja por MailSlot y Socket de forma simultánea, para interiorizarse con más detalle en la configuración de estos protocolos vea la Nota Técnica TN La llave en un servidor Novell Netware Para manejar una aplicación protegida con una sola llave instalada en un servidor Novell se debe cargar un módulo NLM que actúa como servidor de acceso a la llave. El módulo HKEYLAN.NLM se encarga de atender los pedidos de acceso a la llave que le llegan desde otros puestos de red. El módulo es genérico por lo tanto es capaz de administrar llaves HARDkey de cualquier kit conectadas al mismo o en distintos puertos paralelos del servidor. Este programa puede ser ejecutado en servidores Novell de versión 3.11 o superior. En el caso de una red con varios servidores, las PCs clientes deberán estar "logeadas" a dicho servidor para que las aplicaciones puedan ver la llave. Para ejecutar este módulo en el servidor que tenga llave conectada, se debe copiar el archivo HKEYLAN.NLM que se encuentra en kit de HARDkey, en el directorio \SYSTEM del servidor. Luego se debe invocar desde la consola del sistema, usando para ello la siguiente sentencia: LOAD HKEYLAN Esto cargará en la memoria del servidor el programa, y este quedará listo para atender los pedidos de acceso a la llave. Para que esto se realice automáticamente cada vez que se arranca el servidor, se debe proceder de la siguiente manera: 67

74 68 HARDkey - Manual para Desarrolladores LOAD INSTALL Luego debe ir a la opción que dice "Opciones de archivos NCF" u "Opciones de sistema" (según la versión de Novell) Después se debe seleccionar la opción "Editar archivo AUTOEXEC.NCF" Una vez que aparezca el archivo, agregar al final la línea LOAD HKEYLAN Cerrar el archivo y salir del módulo Install pulsando ESC repetidas veces. Si tiene alguna duda respecto a lo anterior solicite ayuda al administrador del servidor. Pantalla del módulo HKEYLAN.NLM Una vez cargado, aparece una pantalla que contiene información sobre el estado del programa (Nombre del servidor, nodo y red del último acceso a la llave, la cantidad de paquetes recibidos, etc). Aparece además una tabla con los números de serie de las llaves que fueron accedidas por algún cliente y en el caso que se este usando el manejo de licencias, la cantidad de usuarios que actualmente están ejecutando la aplicación protegida con esa llave. Descarga del módulo HKEYLAN.NLM Para descargar el programa del servidor se debe apretar "Ctrl+Q". Esto desplegará un mensaje donde se pide que confirme la descarga del módulo, recordándole que al realizar esto, las aplicaciones dejarán de ver la llave. Si alguna de las llaves conectadas al servidor tiene uno o más usuarios conectados, el módulo no se descargará y mostrará un mensaje de aviso. Para descargarlo basta con salir de todas las aplicaciones que estén haciendo uso de la llave, y luego se podrá descargar normalmente La llave en un servidor Linux Esta versión del kit de desarrollo HARDkey cuenta con soporte para servidores Linux, ahora usted podrá compartir desde un servidor Linux la llave, validando usuarios concurrentes, almacenando información en la llave y todas las funcionalidades que hasta el momento sólo se podían realizar desde servidores Windows o Novell. El kit de desarrollo actualmente cuenta con soporte para Red Hat. Los modelos de llaves que se pueden compartir desde servidores Linux son SuperPro USB y 797 para puerto paralelo. A continuación se describe como instalar los drivers de la llave y el servidor de llaves en distribución Red Hat.

75 Como compartir una llave en una red local Red Hat En esta sección se describen los procesos a seguir para poder compartir llaves SuperPro desde servidores Linux distribución Red Hat. El procedimiento es muy sencillo y fácil de realizar, se puede dividir en dos pasos: instalar los drivers para llaves SuperPro e instalar el demonio para compartir la llave en red. Como primer paso instalemos el driver para manejo de la llave SuperPro. En la carpeta Red\Linux\Red_Hat\ encontrará todos los archivos necesarios para instalar el demonio y los drivers en Linux. Ingrese a Linux como usuario root, esto es necesario para tener los permisos necesarios que requieren las operaciones siguientes. Luego cree en /root una carpeta llamada hardkey. Copie allí todos los archivos y carpetas que se encuentran en la carpeta Red\Linux\Red_Hat\. Posiciónese en la línea de comando en la carpeta /root/hardkey/superpro. Escriba./install.sh. En pantalla se muestra el acuerdo de licencia, léalo y presione "Enter" para ir avanzando. Cuando llega al final escriba "y" para indicar que está de acuerdo con la licencia, luego muestra en pantalla las siguientes opciones: Sentinel SuperPro version Installation Script Copyright(C)2003 Rainbow Technologies, Inc. All rights reserved This script will install - Sentinel Unix Driver (SUD ) - SSP SDK and - Related Utilities This script will install Sentinel Parallel driver and/or USB daemon. 1 : Parallel Driver Only. 2 : USB Daemon Only. 3 : Parallel Driver and USB Daemon both. Please enter your choice: Seleccione 1 si solamente desea instalar el driver para llaves por puerto paralelo modelo 797, 2 en caso que desee solamente instalar el driver USB o 3 para instalar ambos drivers. Luego de instalar el driver debe ejecutar el demonio que comparte la llave. Para ello desde la línea de comando escriba: [root@ hardkey]#./hardkey_daemon start Iniciando /root/hardkey/hksrvx: [ OK ] 69

76 70 HARDkey - Manual para Desarrolladores Este comando inicia el demonio. Si el demonio se inicia correctamente sobre el lado derecho de la pantalla muestra [ OK ]. Una vez iniciado la llave está compartida en red, vea como debe configurar su aplicación para chequear la llave en linux. Para configurar que el demonio se cargue al iniciar Linux ejecute la siguiente instrucción en el servidor: ln -s /etc/init.d/hardkey_daemon.sh /etc/rc3.d/s98hardkey Para detener el demonio desde la línea de comando escriba: [root@ hardkey]#./hardkey_daemon stop Deteniendo /root/hardkey/hksrvx: [ OK ] También el script muestra el estado del demonio pasándole como parámetro <<status>>: [root@ hardkey]#./hardkey_daemon status hksrvx (pid ) is running... El servidor para compartir la llave fue testeado en Red Hat linux Administración de licencias en una red local La flexibilidad de HARDkey permite implementar el control de licencias, tanto a nivel global para aplicaciones de software únicas, como de manera independiente para cada módulo en sistemas de software modulares. La diferencia entre una aplicación de software única y una aplicación de software modular reside en el modo de comercialización que se aplica a la misma. Una aplicación global consiste en un sistema de software que posee integrado todas las herramientas que fueron diseñadas para cubrir las necesidades que pueden surgir del uso de la aplicación. Una aplicación modular consiste en un conjunto de aplicaciones o herramientas que se adquieren por separado, según la necesidad del cliente, y que permiten agregar funcionalidades al objetivo de la aplicación. Para ambos casos, HARDkey permite implementar un esquema de manejo de licencias similares, controlando la cantidad de usuarios que pueden ejecutar simultáneamente la aplicación protegida y negando la solicitud de ejecución cuando ha sido alcanzado el número máximo que se acordó en la licencia.

77 Como compartir una llave en una red local Control de licencia global Cuando la aplicación consiste en un programa único se puede utilizar el control de licencia global para restringir el máximo número de usuario que podrán acceder a la aplicación en forma simultánea. En el caso de proteger el ejecutable con el método automático, este control lo realiza directamente la rutina de protección en función de los parámetros que se hayan configurado en el proyecto Las alternativas disponibles son: No limitar la cantidad de usuarios: cualquier usuario de la red que tenga instalada la aplicación podrá ingresar mientras haya un protector que lo habilita. Limitar la cantidad de usuarios a un valor fijo: en este caso el número máximo de usuarios simultáneos que pueden ingresar a la aplicación está grabado como un parámetro en el propio programa protegido. Cuando se carga la aplicación, las rutinas de protección comparan este valor contra un contador administrado por el servidor de acceso a la llave para verificar si hay licencias disponibles. Limitar la cantidad de usuarios según valor en la llave: en este caso el número máximo de usuarios simultáneos que pueden ingresar a la aplicación está grabado como un parámetro en una celda 71

78 72 HARDkey - Manual para Desarrolladores especial de la llave. Esto permite en cualquier momento agregar o quitar licencias con sólo cambiar este parámetro en la llave. Si la aplicación se protege en el modo interactivo el desarrollador debe implementar la validación del límite de licencias por programa basándose en el comando "Iniciar conexión" para saber cuantos usuarios están compartiendo la llave en ese momento y cual es el límite configurado en la llave Control de licencias en sistemas modulares Esta característica del sistema de protección permite armar un esquema de licencias específico para cada parte de un programa compuesto de varios módulos. Por ejemplo, usted vende una sistema comercial que contiene cinco programas diferentes: Facturación, Stock, Sueldos, Contabilidad, Gestión El cliente final compra dos(2) licencias para Facturación, cinco(5) licencias para Stock, una(1) licencia para Sueldos, tres(3) licencias para Contabilidad y cuatro(4) licencias para Gestión. HARDkey realizará los chequeos correspondiente para garantizar que la cantidad de usuarios simultáneos de un mismo programa no supere los límites de licencia para ese módulo, utilizando únicamente una llave en toda la red. Cuando un usuario deja de utilizar la aplicación, la licencia que estaba siendo utilizada, automáticamente queda disponible para su re-utilización. Una característica importante de HARDkey es que el cliente puede adquirir en cualquier momento una nueva licencia para utilizar los otros módulos, o aumentar la cantidad máxima de usuarios permitidos. Usted simplemente deberá generar una clave que actualice la licencia existente, sin necesidad de instalar un nuevo software en el cliente o reemplazar la llave electrónica de protección. Si utiliza el método de protección automática lo único que deberá especificar es el número de módulo que le asignó a cada programa a la hora de proteger cada aplicación. Luego configurar las llaves con la cantidad de licencias deseadas para cada módulo, antes de entregarla al cliente final. Si la aplicación se protege en el modo interactivo el desarrollador debe implementar la validación del límite de licencias por módulo basándose en el comando "Iniciar conexión" para saber cuantos usuarios están compartiendo la llave en ese momento y cual es el límite configurado en la llave. En el equipo que se instala la llave HARDkey es necesario realizar la instalación de los drivers,

79 Como compartir una llave en una red local mediante el utilitario HKEYDRV.EXE e instalar el servidor de llaves HARDkey. El Servidor HARDkey es una pequeña aplicación dependiente del sistema operativo que se ejecutará en el momento de arranque del equipo y permitirá compartir la llave, pudiendo ser consultada desde los puestos de trabajo en la red. Además es el responsable de administrar el control de licencias. 73

80 8

81 Interfaz de Programación de Aplicación (API) 8 Interfaz de Programación de Aplicación (API) 8.1 Formato de la subcadena general El API (Application Programming Interface) de HARDkey consiste en una función que realiza la operación indicada según una cadena de parámetros. HARDkey(cadena_parámetro) La cadena_parámetro es una string de 200 caracteres utilizada como buffer para la transacción de datos entre la aplicación y la DLL. Al invocar la función en esta cadena se pasan por referencia los parámetros específicos del comando que se desea ejecutar. Cuando retorna contiene el resultado de la operación. Se utiliza este método como pasaje de parámetros con la intención de incrementar la seguridad en la comunicación con la API. Al encapsular la información transmitida a la llave de protección, evitamos las aplicaciones "espías", cuyo propósito es interpretar la información enviada desde y hacia la DLL. Luego, estudian esa información para simular respuestas que se quieran obtener, por ejemplo contestando siempre a la aplicación que hay llave conectada en la PC. Esta string se debe cifrar antes de invocar a la función HARDkey mediante un esquema que se detalla en "Protección interactiva de ejecutables". Una vez que la función retorna, la string respuesta debe ser descifrada para obtener los valores finales. El método de cifrado que empleamos transforma la cadena de forma tal, que dos cadenas iguales al cifrase son distintas, lo que aumenta de modo importante la seguridad de comunicación ya que en esta no se repite la información enviada. A diferencia de otros productos de protección de software, la interfase HARDkey es robusta y confiable, manejando un esquema de seguridad simple de usar. Con los distintos comandos se pueden diseñar métodos para prevenir ataques de piratería. Algunas características que se pueden controlar son la fecha de vencimiento, cantidad de ejecuciones, límite de usuarios simultáneos, validación a través de redes, además mecanismos propios de cada aplicación en particular. El esquema que sigue representa la comunicación entre la aplicación protegida y la librería de HARDkey, muestra la irrupción de hackers intentando interpretar la comunicación. 75

82 76 HARDkey - Manual para Desarrolladores El formato de la cadena_parámetro se divide en dos partes principales, la primera llamada subcadena_general transporta información básica, todos los comandos usan el mismo formato. La segunda llamada subcadena_comando, transporta información particular necesaria en los distintos comandos; por ejemplo el comando leer celda en la subcadena_comando envía un parámetro que indica el número de celda a leer; sin embargo el comando grabar celda en la subcadena_comando envía dos parámetros, el valor a almacenar y el número de celda. cadena_parámetro = subcadena_general (caracteres 0 al 30) + subcadena_comando (caracteres 31 en adelante) La respuesta es enviada en la misma cadena_parámetro, y para cada comando la respuesta tiene un formato específico de acuerdo a la información obtenida de la llave. La subcadena_general también se respeta en todas las respuestas recibidas, sin embargo difiere de las cadenas enviadas. Entre la aplicación protegida y la llave electrónica existen varios métodos de protección, los principales se encuentran en la comunicación entre la aplicación y la DLL, entre la DLL y los drivers, y los drivers con la llave electrónica.

83 Interfaz de Programación de Aplicación (API) 8.2 Formato de la subcadena comando Es el formato común a todos los chequeos, este se encuentra como preámbulo de la cadena enviada en cada comando. La sección salida describe el formato de la cadena respuesta de la llave que es común a las respuestas de todos los comandos. Entrada - Formato Detalle de los campos: Caracteres Random: Inicio: 0 Largo: 10 Valor: Cualquier cadena de 10 caracteres generados al azar. Descripción: En cada invocación a la función HARDkey(...) se incluyen 10 caracteres al comienzo de la cadena_parámetro generados aleatoriamente. Esta técnica se utiliza para que todas las cadenas generadas se distingan unas de otras aunque la información enviada sea la misma. Por otro lado, al descifrar la respuesta enviada por la librería se comparan estos 10 caracteres con los enviados previamente, si son iguales tenemos la certeza de que la DLL de HARDkey nos envía esta respuesta, en caso contrario puede ser enviada por un intruso. En este chequeo ayuda que los algoritmos usados para cifrar y descifrar la cadena no son simétricos. Conexión: Inicio: 11 Largo: 8 Valor: Numérico comprendido entre y Descripción: Cuando se inicia la búsqueda de una llave electrónica y es localizada, la respuesta contiene un número de conexión posteriormente usado para la comunicación con la llave. Los comandos siguientes deberán contener ese "número de conexión" así la llave los identifica bajo una ruta previamente establecida. Establecer una conexión es similar a abrir un canal de comunicación entre la llave y la aplicación, pueden existir distintos canales entre varias aplicaciones y una llave. El uso del número de conexión es de vital importancia cuando se comparte una llave HARDkey en red usando licencias para habilitar el uso de la aplicación desde las terminales de la red. En este caso la relación que se establece entre una conexión es uno a uno con la cantidad de licencias disponibles en la llave. 77

84 78 HARDkey - Manual para Desarrolladores Clave1: Inicio: 20 Largo: 5 Valor: Numérico comprendido entre y Descripción: Junto con la Clave 2 son valores establecidos por el usuario, requeridos para realizar operaciones sobre la llave electrónica. Estos valores vienen de fábrica seteados en 0, es recomendable que se modifiquen cuando se utilizan las llaves con valores de cinco dígitos, aumentando así la protección. Clave2: Inicio: 26 Largo: 5 Valor: Numérico comprendido entre y Descripción: Este es el valor asignado a la llave como Clave2. Este valor debe coincidir con el de la llave para poder acceder a la misma. Supongamos que tenemos una llave con clave1: clave2: 27508, para operar la subcadena_general debería ser como sigue: "+_&%#$+!^! " Salida - Formato Cuando retorna la llamada a la función HARDkey el formato de la subcadena_general se mantiene en todos los comandos como sigue. Detalle de los campos: Bytes de verificación: Inicio: 0 Largo: 10 Valor: Cadena de 10 bytes. Descripción: Para evitar que la aplicación sea engañada se utilizan estos caracteres generados

85 Interfaz de Programación de Aplicación (API) aleatoriamente. Cuando se realiza el llamado a la función HARDkey se envían calculando 10 caracteres al azar, los cuales tienen dos propósitos, alterar el cifrado de la cadena, y validar la respuesta obtenida verificando que sea de la DLL HARDkey. Los algoritmos se encuentran detallados en el directorio "\api\demos" de HARDKey para cada lenguaje en particular. Conexión: Inicio: 11 Largo: 8 Valor: Numérico comprendido entre y Descripción: El valor de este campo, si él "Estado" es igual a 00000, es el número de conexión asignado a la aplicación. Este número debe ser utilizado en los sucesivos llamados a la función HARDkey. Estado: Inicio: 20 Largo: 5 Valor: Numérico comprendido entre y Descripción: Al realizar la operación sobre la llave cuando se invoca a la función HARDkey se pueden obtener distintos resultados satisfactorios o no. Para diferenciarlos se implementó el valor "Estado" en la respuesta. El contenido de este campo indica el resultado obtenido al realizar la operación. A continuación se describen los valores válidos: 79

86 80 HARDkey - Manual para Desarrolladores El número del parámetro "Estado" es el que primero se debe evaluar en toda respuesta de la llave, en base a este valor determinamos si la operación se realizó con éxito y evaluamos el resto de la cadena. Lote: Inicio:26 Largo:4 Valor:Caracteres hexadecimales, entre 0000-FFFF Descripción:Cada llave HARDkey tiene un número único de LOTE-SERIE que las identifica. El valor de este campo, si él "Estado" es igual a 00000, es el número de lote de la llave HARDkey accedida. Serie: Inicio:31 Largo:5 Valor:Numérico comprendido entre y Descripción:El valor de este campo, si él "Estado" es igual a 00000, es el número de serie de la llave

87 Interfaz de Programación de Aplicación (API) 81 HARDkey accedida. La subcadena_general cuando retorna la llamada a la función HARDkey.NET si encuentra una llave con lote = 201A, serie = 52639, conexión = , tiene el siguiente formato: "########## A-52639" En caso de que no encuentre la llave nos retorna algo similar a: "########## xxxxxxxxxxxxxxx" Esto implica que si el estado es distinto de los demás campos no deben tenerse en cuenta Iniciar Conexión Antes de realizar cualquier operación sobre las llaves HARDkey debemos establecer una conexión, esto permite verificar que esté conectada en el puerto una llave electrónica con la configuración establecida por el comando. Este comando abre una conexión con la llave, chequea la presencia de la misma y retorna algunos parámetros adicionales referentes a la versión de la librería y los drivers. Es utilizado además para manejar los usuarios en red, manejando licencias globales o por módulo en forma automática o supervisada por el usuario. En el campo "número de conexión" se envía el valor " ", cuando la llave responde manda el número asignado a la conexión abierta, este debe usarse en cada comando enviado posteriormente hacia la llave. La conexión entre la llave y la aplicación permite manejar varios requerimientos hacia la llave de distintas aplicaciones. Entrada - Formato Detalle de los campos:

88 82 HARDkey - Manual para Desarrolladores Comando: Inicio: 32 Largo: 4 Valor: Numérico, Descripción: El número de comando le indica a la DLL la operación a realizar. El valor cero establece que se quiere iniciar conexión con la llave. Número de módulo: Inicio: 37 Largo: 2 Valor: Numérico comprendido entre 00 y 32 Descripción: Con una misma llave se pueden proteger varias aplicaciones manejando módulos en la llave. El esquema es que por aplicación asigno un módulo físico de la llave que puede estar habilitado o no. Entonces cuando se busca una llave con el comando Iniciar Conexión, se verifica que el módulo indicado esté activo. Supongamos que desarrollamos un sistema de gestión, que consta de tres aplicaciones, sueldos, facturación y proveedores. De este sistema algunas empresas pueden no necesitar de todas las aplicaciones. En este caso es muy útil diseñar un esquema de protección modular, esto implica asignar en la llave módulos a cada aplicación, puede ser 02 para sueldos, 15 a facturación y 25 a proveedores (Los números de módulo asignados a cada aplicación son seleccionados de modo que no sean consecutivos y sin patrón alguno. Esta medida se implementa para robustecer la protección) de esta forma al iniciar la conexión se envía el número de módulo, entonces se habilita la conexión si este módulo en la llave conectada está activo. Entonces de acuerdo a las aplicaciones que requiera cada cliente en particular se habilitan o no los distintos módulos en la llave entregada. El número de módulo es un valor de 2 dígitos comprendido en el rango El 00 se usa cuando se inicia conexión y no se quiere chequear por un módulo en particular. En el campo Tipo de manejo (notado como "m" en el esquema) se setea el modo en que se realiza la conexión, para chequear módulos debemos asignar el valor 03. Seguidamente se explica en detalle este campo. Tipo de manejo de usuarios en red: Inicio: 40 Largo: 1 Valor: Numérico comprendido entre 0 y 3 Descripción: Este campo determina la forma en la que se desean manejar las licencias. - 0 (No limitar usuarios en red): En este modo la función no verifica ni modifica la cantidad de usuarios que estén accediendo a la llave, simplemente realiza la lectura de la misma. - 1 (Levantar usuario): En este modo la función realiza la consulta de la llave y si la misma está presente, aumenta en uno la cantidad de usuarios de la licencia global, sin verificar el valor almacenado en la celda de máximo de licencias globales. - 2 (Automático): En este modo la función controla que el máximo de licencias globales no haya sido alcanzado, si no lo fue incrementa en uno la cantidad de usuarios y luego realiza el chequeo. - 3 (Validación de licencias por módulos): En este modo la función controla que el máximo de licencias para el módulo descripto en el campo "Número de módulo" no haya alcanzado el máximo permitido, si no lo fue incrementa el usuario en uno y realiza el chequeo.

89 Interfaz de Programación de Aplicación (API) Para más detalles ver el capítulo de manejo de llaves en una red. Como primer ejemplo asumamos que queremos iniciar una conexión con una llave cuyas claves son: clave1: 97865, clave2: Primero veamos como sería si la llave se encuentra en el puerto paralelo de la PC donde se ejecuta la aplicación: "########## " Si queremos levantar 1 licencia global: "########## " Consumiento 1 licencia en el módulo 14: "########## " Salida - Formato Todos los campos de la subcadena_comando deben ser tenidos en cuenta sólo si el campo "Estado" de esta misma es '00000', en caso contrario implica que hubo errores, por lo que estos campos no contienen la información real. Detalle de los campos: Versión de la Dll: Inicio: 37 Largo: 5 Valor: Cadena de la forma "v0.1b" Descripción: Esta campo contendrá la versión de la libreía HARDkey con que se interactúa. El valor sólo debe considerarse como válido si el estado es "00000". Versión de los Drivers: 83

90 84 HARDkey - Manual para Desarrolladores Inicio: 43 Largo: 5 Valor: Cadena de la forma "v0.1b" ó "USB01" Descripción: Este campo indica la versión de drivers HARDkey instalados en la máquina. Sólo debe tenerse en cuenta cuando el estado es 0. Si la llave es modelo USB la versión se expresa con la segunda cadena, el valor 01 indica que la versión de firmware de la llave es la 0.1. Versión del servidor de red: Inicio: 49 Largo: 5 Valor: Cadena de la forma "v0.1b" o "?????" Descripción: Cuando se comparte en una máquina la llave electrónica en red, y la conexión se realiza mediante la red, este campo contiene el la versión del servidor. En caso que la llave se encuentre en la máquina local ese campo contendrá los símbolos "?????". Esto sólo es válido si el estado es "00000". Día de la fecha de vencimiento: Inicio: 55 Largo: 2 Valor: Numérico entre 1 y 31 Descripción: El valor de este campo, si él "Estado" es igual a 00000, es el día de la fecha de vencimiento almacenada en la llave (celda 52). Mes de la fecha de vencimiento: Inicio: 58 Largo: 2 Valor: Numérico entre 1 y 12 Descripción: El valor de este campo, si él "Estado" es igual a 00000, es el mes de la fecha de vencimiento almacenada en la llave (celda 52). Año de la fecha de vencimiento: Inicio: 61 Largo: 4 Valor: Numérico entre 0 y 9999 Descripción: El valor de este campo, si él "Estado" es igual a 00000, es el año de la fecha de vencimiento almacenada en la llave (celda 53). Módulos habilitados: Inicio: 66 Largo: 32 Valor: Cadena formada por "0"(ceros) y/o "1"(unos) Descripción: Son 32 caracteres que representan el estado de los 32 módulos en la llave. Los módulos tienen dos estados posibles, 1 que significa activo o 0 desactivado. Por ejemplo si la cadena comienza con significa que el módulo 2 y 6 están activos en la llave mientras que el 1,3,4 y 5 están desactivados. Estos datos son válidos si el Estado es "00000". Límite de ejecuciones:

91 Interfaz de Programación de Aplicación (API) Inicio: 99 Largo: 5 Valor: Numérico entre 0 y Descripción: El valor de este campo, si él "Estado" es igual a 00000, es el límite de ejecuciones grabado en la llave. Máximo de licencias globales: Inicio: 105 Largo: 5 Valor: Numérico entre 0 y Descripción: La llave HARDkey.NET además de manejar licencias por módulo permite proteger aplicaciones con un esquema único de licencias denominado "Licencias Globales". La razón por la que se implementó esta metodología es únicamente la compatibilidad con los sistemas de protección anteriores. El uso de licencias globales como método de protección es similar a asignar un número de módulo a la aplicación. Recomendamos utilizar licencias por módulo en vez de licencias globales, lo que permite adaptar el sistema de protección en caso de que crezca la aplicación a proteger. Además por la sencillez y las ventajas que tiene aplicar protección modularizada. Número de licencias de red en uso: Inicio: 111 Largo: 5 Valor: Numérico entre 0 y Descripción: El valor de este campo, si él "Estado" es igual a 00000, es la cantidad de licencias globales que están siendo utilizadas hasta el momento. Si el chequeo de la llave es local, este campo devuelve '00000'. Al retornar de la llamada si no hubo problemas en el chequeo uno de los resultados posibles para una llave de lote = 201A, serie = es: "########## A v2.2a v2.0a????? 12/05/ ". Esta cadena muestra que se encontró la llave colocada en la PC local porque en el campo "Versión del servidor de red" se encuentra????? Verificar Conexión Luego de haber invocado el comando "Iniciar Conexión" es normal que cada ciertos intervalos se verifique la presencia de la llave protectora, esto evita que se cambie el protector de máquina y se inicien varias conexiones en distintas PC's sin habilitación. 85

92 86 HARDkey - Manual para Desarrolladores Esos chequeos deben realizarse con el comando "Verificar conexión", desarrollado específicamente con el propósito de validar la presencia de la llave y que la conexión iniciada siga activa en el menor tiempo posible. La invocación requiere el número de conexión obtenido al iniciar la conexión, el cual es chequeado por la llave para establecer si la conexión sigue activa. Supongamos que se realiza validación de licencias por aplicación. Si a la aplicación X le asignamos 2 licencias adquiridas por el usuario bajo el módulo 01, cuando se inicia una conexión (bajo el módulo 01) se mapea el número de conexión, por ejemplo , a una licencia de ese módulo. Supongamos que por causas externas debe reiniciarse el servidor, lugar donde se encuentra la llave conectada, entonces al conectarse nuevamente la llave tendrá dos licencias disponibles. Ud. se preguntará que pasa con la licencia asignada anteriormente, cuando se trate de comunicar con la llave usando el número , la respuesta será de conexión No válida (Estado = en salida de la subcadena_general). Las estadísticas indican que la mejor forma de protección es realizar chequeos usando el comando "Verificar Conexión" en intervalos aleatorios durante la ejecución de la aplicación. En caso de que falle un chequeo inmediatamente realizar dos reintentos, y en caso de que todos fallen cerrar forzosamente la aplicación informando por pantalla de la falta del protector. Entrada - Formato Detalle de los campos: Comando: Inicio: 32 Largo: 4 Valor: Numérico, Descripción: Este valor es el que determina la tarea que la función HARDkey debe realizar, El valor uno es el que indica Verificar Conexión. Salida - Formato

93 Interfaz de Programación de Aplicación (API) Estado: Largo: 4 Valor: Numérico entre 0 y 9999 Descripción: El valor de este campo, si él "Estado" es igual a 00000, es el año de la fecha de vencimiento almacenada en la llave (celda 53). Máximo de licencias globales: Inicio: 48 Largo: 5 Valor: Numérico entre 0 y Descripción: El valor de este campo, si él "Estado" es igual a 00000, es la cantidad de licencias globales grabadas en la llave. Número de licencias globales asignadas: Inicio: 54 Largo: 5 Valor: Numérico entre 0 y Descripción: El valor de este campo, si él "Estado" es igual a 00000, es la cantidad de licencias globales que están siendo utilizadas hasta el momento Finalizar Conexión Al iniciar conexión con la llave, obtenemos un número que nos permite comunicarnos posteriormente. Cuando se termina la aplicación debemos liberar ese número de conexión para que otros usuarios dispongan de una conexión. Este comando permite liberar una conexión con la llave, chequeando la presencia de la misma. Cuando se manejan licencias es de vital importancia sean liberadas al finalizar la ejecución del sistema o del módulo que la haya levantado. Esto permite a otros usuarios tomarla posteriormente. Puede suceder por motivos externos que la aplicación se cierre abruptamente, sin dar de baja la conexión con la llave. El peor caso se presenta al controlar la cantidad de usuarios habilitando licencias, el efecto producido es que no se liberan reteniéndolas sin ser usadas. Para evitar este inconveniente se implementó el esquema Aplicación Activa, basado en reportes que envía la DLL a la llave indicando su actividad. Pasado cierto tiempo desde que la llave deja de 87

94 88 HARDkey - Manual para Desarrolladores recibirlos ésta da de baja automáticamente la conexión liberando la licencia asociada. Entrada - Formato Entrada - Detalle de los campos Comando: Inicio: 32 Largo: 4 Valor: Numérico, Descripción: Este valor es el que determina la tarea que la función HARDkey debe realizar. El valor dos indica "Finalizar Conexión". Número de módulo (m): Inicio: 37 Largo: 2 Valor: Numérico comprendido entre 00 y 32 Descripción: Si este valor es 00 la función finalizara la conexión con la llave, dando de baja automáticamente todos los usuarios levantados bajo esta conexión. Si este valor está entre 01 y 32 la función solo dará de baja la licencia utilizada para el módulo indicado. Salida - Formato Salida - Detalle de los campos Número de licencias globales asignadas: Inicio: 37 Largo: 5 Valor: Numérico entre 0 y Descripción: El valor de este campo, si él "Estado" es igual a 00000, es la cantidad de licencias globales que están siendo utilizadas hasta el momento.

95 Interfaz de Programación de Aplicación (API) Leer Celda Las llaves HARDkey.NET viene equipadas con 106 bytes de memoria no volátil. Este comando permite leer las celdas, de tamaño 1 word que la conforman. Después de haber iniciado una conexión con la llave, se pueden leer información almacenada en su memoria para uso de la aplicación como por ejemplo passwords, fechas, montos. Entrada - Formato Entrada - Detalle de los campos: Comando: Inicio: 32 Largo: 4 Valor: Numérico, Descripción: Este valor es el que determina la tarea que la función HARDkey debe realizar, El valor tres es el que indica Leer celda. Número de celda: Inicio: 37 Largo: 5 Valor: Numérico comprendido entre y Descripción: Este es el número de celda que se desea leer. Salida - Formato Salida - Detalle de los campos Valor leído: Inicio: 37 Largo: 5 Valor: Numérico entre 0 y Descripción: El valor de este campo, si él "Estado" es igual a 00000, es el valor que contiene la celda leída. 89

96 HARDkey - Manual para Desarrolladores Grabar Celda Este comando permite modificar el valor que contiene una celda de memoria no-volátil de la llave. Vea el capítulo "Estructura interna de la llave HARDkey" para obtener una descripción más detallada sobre las celdas de memoria que puede utilizar. Se utiliza para almacenar información requerida posteriormente por la aplicación como por ejemplo parametrización de la aplicación (nombre del cliente, funciones habilitadas, si es bimonetario), montos de balance, fechas, códigos. Entrada - Formato Entrada - Detalle de los campos Comando: Inicio: 32 Largo: 4 Valor: Numérico, Descripción: Este valor es el que determina la tarea que la función HARDkey debe realizar, El valor cuatro es el que indica grabar celda. Número de celda: Inicio: 37 Largo: 5 Valor: Numérico comprendido entre y Descripción: Número de celda que se desea grabar. Valor a grabar: Inicio: 43 Largo: 5 Valor: Numérico comprendido entre y Descripción: Valor a grabar en la celda seleccionada. Salida - Formato Salida - Detalle de los campos:

97 Interfaz de Programación de Aplicación (API) Valor grabado: Inicio: 37 Largo: 5 Valor: Numérico entre 0 y Descripción: El valor de este campo, si él "Estado" es igual a 00000, es el valor que contiene la celda grabado Leer Cadena Este comando permite leer una cadena de caracteres de la memoria de la llave, pero para ello previamente se requiere haber abierto una conexión con la llave. Un ejemplo práctico del uso de lectura de strings es cuando se almacena en la memoria de la llave el nombre de la firma a la cual se le vende el Software. Luego cada vez que se carga la aplicación se lee la memoria de la llave para mostrar por pantalla el nombre. Entrada - Formato Entrada - Detalle de los campos: Comando: Inicio: 32 Largo: 4 Valor: Numérico, Descripción: Este valor es el que determina la tarea que la función HARDkey debe realizar, El valor cinco es el que indica leer una cadena. Byte de inicio: Inicio: 37 Largo: 5 Valor: Numérico comprendido entre y Descripción: Este es el número byte en el que se comienza a leer para formar la cadena. Largo Cadena: Inicio: 43 Largo: 5 Valor: Numérico comprendido entre y Descripción: Es la cantidad de bytes a leer de memoria. 91

98 92 HARDkey - Manual para Desarrolladores Supongamos que queremos leer el nombre de usuario para el Login que está grabado en la llave y comienza en el byte 44, de largo 30 caracteres. "######## " Salida - Formato Salida - Detalle de los campos: Cadena Leída: Inicio: 37 Largo: Variable (1 a 108) Valor: Cadena de bytes Descripción: En este campo, si el "Estado" es igual a 00000, se encuentra la cadena leída Grabar Cadena Este comando permite grabar una cadena en la memoria no-volátil de la llave. Requiere que se haya abierto una conexión para poder ser utilizada. Entrada - Formato Entrada - Detalle de los campos: Comando: Inicio: 32 Largo: 4 Valor: Numérico, Descripción: Este valor es el que determina la tarea que la función HARDkey debe realizar, El valor seis es el que indica grabar una cadena. Byte de inicio: Inicio: 37 Largo: 5

99 Interfaz de Programación de Aplicación (API) 93 Valor: Numérico comprendido entre y Descripción: Este es el número de byte de la memoria de la llave en el que se comienza a grabar la cadena. Largo Cadena: Inicio: 43 Largo: 5 Valor: Numérico comprendido entre y Descripción: Es el largo de la cadena a grabar expresado en bytes. Cadena a grabar: Inicio: 49 Largo: Variable (1 a 108) Valor: Cadena de bytes. Descripción: Esta es la cadena a grabar. La misma puede contener cualquier carácter, debido a que no existen caracteres "delimitadores". Supongamos que queremos grabar la cadena "Versión Full" en la memoria de la llave donde antes se encontraba grabado "Versión Demo" porque el cliente nos ha comprado la aplicación. Si comenzamos en el byte 44 (memoria de usuario celda 22) entonces la cadena a enviar es: "########## Full" Versión Salida - Formato Salida - Detalle de los campos: Cadena grabada: Inicio: 37 Largo: Variable (1 a 108) Valor: Cadena de bytes Descripción: En este campo, si él "Estado" es igual a 00000, se encuentra la cadena que se grabó.

100 HARDkey - Manual para Desarrolladores Cambiar Claves Este comando permite cambiar ambas claves de la llave en tiempo de ejecución. Las claves de la llave son las password que permiten operar sobre esta, si se quiere realizar cualquier operación pero estas son incorrectas el acceso a la llave es denegado. La modificación de las claves puede realizarse también con el editor de llaves, HKEYEDIT.EXE, en cualquier momento. Una vez cambiadas las claves, toda referencia que se haga a la llave debe hacerse con las claves nuevas. Puede utilizar cualquier número entre y Requiere que se haya abierto una conexión para poder ser utilizado. Entrada - Formato Entrada - Detalle de los campos: Comando: Inicio: 32 Largo: 4 Valor: Numérico, Descripción: Este valor es el que determina la tarea que la función HARDkey debe realizar, El valor siete es el que indica cambiar las claves. Nueva Clave1: Inicio: 37 Largo: 5 Valor: Numérico comprendido entre y Descripción: Este es el valor a colocar en la clave1 Nueva Clave2: Inicio: 43 Largo: 5 Valor: Numérico comprendido entre y Descripción: Este es el valor a colocar en la clave2

101 Interfaz de Programación de Aplicación (API) 95 Supongamos que las claves que queremos asignar a la llave son 21245(Nuevaclave1) y 44567(Nuevaclave2) siendo y los valores anteriores. Entonces la cadena de invocación tiene el formato: "########## ". Salida - Formato No devuelve información adicional Salida - Detalle de los campos: No devuelve información adicional Cifrar/Descifrar Cadena Cuando necesitamos almacenar información en archivos, o le pasamos información a otra aplicación es conveniente cifrarla para que los intrusos que la puedan intervenir no sean capaces de descifrar su contenido. Este comando fue implementado con el propósito de brindar otra herramienta de protección al momento de trabajar con la información. La función Cifrar/Descifrar trabaja sobre cadenas de 100 caracteres, solo puede usarse si la llave HARDkey.NET está conectada a la PC. Entrada - Formato Entrada - Detalle de los campos: Comando: Inicio: 32 Largo: 4 Valor: Numérico, Descripción: Este valor es el que determina la tarea que la función HARDkey debe realizar. El valor ocho es el que indica Cifrar/Descifrar cadena. Largo Cadena:

102 96 HARDkey - Manual para Desarrolladores Inicio: 37 Largo: 5 Valor: Numérico comprendido entre y Descripción: Este es el largo de la cadena a cifrar o descifrar. Cadena a cifrar/descifrar: Inicio: 43 Largo: variable de 1 a 100 bytes Valor: cadena de cualquier tipo Descripción: Esta es la cadena a cifrar/descifrar, por medio de la función. Salida - Formato Salida - Detalle de los campos: Cadena cifrada/descifrada: Inicio: 37 Largo: variable de 1 a 100 bytes Valor: cadena de cualquier tipo Descripción: El valor de este campo, si él "Estado" es igual a 00000, Es la cadena correctamente cifrada o descifrada según corresponda. Si él "Estado" es distinto de entonces esta cadena no es válida Configurar Modos de Chequeos Las llaves HARDkey.NET se colocan en el puerto paralelo o USB de una computadora. También existe la posibilidad de compartir una llave en una red Windows o Novell colocándola en una de las PC's que pertenecen a la red y luego usar el Servidor de llaves para compartirla. Entonces las llaves pueden ubicarse en el puerto paralelo de la PC donde se ejecuta la aplicación, en el puerto USB, ó en una máquina remota ya sea en una red Windows o Novell. Por defecto el orden de búsqueda es Red Windows, Red Novell, HARDkey local, SuperPro local. En algunas aplicaciones podemos definir en tiempo de diseño en que lugares se ubicará la llave, mientras que en otras puede ser que la llave sea colocada tanto en la máquina que se ejecuta como

103 Interfaz de Programación de Aplicación (API) en una red. Para establecer el esquema de búsqueda del protector se utiliza este comando, el cual permite definir en que lugares se buscará la llave y en que orden se hará. Supongamos que estamos desarrollando una aplicación de diseño gráfico, en general este tipo de aplicaciones se utiliza solamente por la persona encargada de realizar todas las imágenes que salen en los folletos, páginas Web y publicidades de la firma. En este caso, se puede establecer que el chequeo se realice en la máquina donde se ejecuta Figura 1-. Entonces la búsqueda se define como: 1. Local HARDkey.NET, Local SuperPro, (ambas) 2. Local SuperPro, Local HARDkey.NET, (ambas) 3. Local SuperPro, (solamente) 4. ó Local HARDkey.NET (solamente) Otro caso es si la aplicación es usada por múltiples usuarios desde distintas terminales, como por ejemplo un Sistema de Ventas que será usado por todos los vendedores de una empresa, desde sus terminales, para llevar la información de sus clientes. Este tipo de aplicaciones generalmente se instalan en un servidor y son accedidas desde terminales, en empresas grandes; pero puede suceder que alguna pequeña firma lo requiera y solo lo use en una PC. En este caso debemos realizar 3 chequeos: 1. Red Windows 2. Red Novell 3. Local HARDkey.NET 97

104 98 HARDkey - Manual para Desarrolladores 4. Local SuperPro A continuación se describe el formato de la cadena enviada para 5 Ver punto 5 Como Compartir una llave en una Red. A continuación se describen las ubicaciones donde buscar el protector. Entrada - Formato Entrada - Detalle de los campos: Comando: Inicio: 32 Largo: 4 Valor: Numérico, 0009 Descripción: Este valor es el que determina la tarea que la función HARDkey debe realizar, El valor nueve es el que indica configurar orden de chequeo Lugar de busqueda: Inicio: 37, 43, 49, 55, 61, 67, 73, 79 Largo: 5 Valor: En esta sección de la cadena se escriben los valores que representan cada lugar donde se buscará la llave. El orden en que se escriban representará el orden de búsqueda. Son 8 campos de los cuales no se usan todos, a los lugares que sobren se les asigna "00000", que es el valor ignorado para la búsqueda. A continuación describimos los valores asignados a cada ubicación posible del protector:

105 Interfaz de Programación de Aplicación (API) El valor se expandirá en los valores: 00378, 00278, 003bc en ese orden. Esto puede generar que los últimos valores no sean tomados en cuenta ya que solo pueden definirse 8. Por defecto la búsqueda de las llaves se realiza en el siguiente orden si al iniciar la conexión no se levantan módulos: llaves SuperPro, HARDkey local, Redes Windows y Redes Novell. En caso que se limite la cantidad de usuarios la búsqueda se realiza primero en Redes Windows, Redes Novell, SuperPro y HARDkey local. Para configurar el chequeo en un servidor Linux es necesario que esté habilitado desde la aplicación el chequeo en Servidores Linux o Windows. De ser así solamente debe modificar el archivo HARDkey.INI que se encuentra en la misma carpeta de la dll de protección (hkey-w32.dll). Debe agregar la sección [SOCKET] si es que no existe, y en el parámetro SIFACE escriba la dirección IP del servidor linux. Luego setee SO=LINUX, esto indica que el chequeo será por socket y el servidor de llaves tiene el sistema operativo LINUX. 99

Protección de Software Protección de información Protección para Internet

Protección de Software Protección de información Protección para Internet Protección de Software Protección de información Protección para Internet Con el Sistema Integral de Seguridad HARDkey obtiene una poderosa herramienta de protección de software, cifrado de archivos de

Más detalles

Manual del Usuario ADSL

Manual del Usuario ADSL Manual del Usuario ADSL Crear un usuario nuevo Pág. 2 Configuración de la Conexión Windows XP Pág. 5 Windows Vista Pág. 11 Windows 7 Pág. 15 Windows 98/ME/2000 Pág. 20 Ubuntu Linux Pág. 25 Linux Red Hat

Más detalles

V i s i t a V i r t u a l e n e l H o s p i t a l

V i s i t a V i r t u a l e n e l H o s p i t a l V i s i t a V i r t u a l e n e l H o s p i t a l Manual de Restauración del PC Septiembre 2011 TABLA DE CONTENIDOS SOBRE EL SOFTWARE... 3 CONSIDERACIONES ANTES DE RESTAURAR... 4 PROCEDIMIENTO DE RECUPERACION...

Más detalles

Software de programación de interfaz FDT DXID. Guía del programador (DXID P01.doc)

Software de programación de interfaz FDT DXID. Guía del programador (DXID P01.doc) Software de programación de interfaz FDT DXID Guía del programador (DXID P01.doc) PREFACIO...3 DXID...4 1.0 Descripción general...4 2.0 Instalación...4 3.0 Introducción a la programación...5 3.1 Precauciones...5

Más detalles

COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX

COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX En este manual se presenta el proceso de configuración de una Maquina Virtual en VirtualBox, que será utilizada para instalar un Servidor

Más detalles

Token ikey 2032 de Rainbow. Guía instalación y uso para Internet Explorer

Token ikey 2032 de Rainbow. Guía instalación y uso para Internet Explorer Token ikey 2032 de Rainbow Guía instalación y uso para Internet Explorer Abril de 2006 INDICE 1. Introducción 3 2. Requisitos mínimos 4 2.1 Requisitos de Hardware y Software 4 3. Configuración del ikey

Más detalles

Ayuda para la instalación Componente Firma Digital INDICE. 1 Configuración previa...2. 1.1 Configuración Internet Explorer para ActiveX...

Ayuda para la instalación Componente Firma Digital INDICE. 1 Configuración previa...2. 1.1 Configuración Internet Explorer para ActiveX... INDICE 1 Configuración previa...2 1.1 Configuración Internet Explorer para ActiveX...2 1.2 Problemas comunes en sistema operativo Windows...8 1.2.1 Usuarios con sistema operativo Windows XP con el Service

Más detalles

Instrucciones de instalación de TrueCode

Instrucciones de instalación de TrueCode Gracias por su compra y las instrucciones que le guiara a través del proceso de instalación y puesta en marcha de su nuevo software. Se recomienda la lectura y las discusiones de los usuarios por favor

Más detalles

WINDOWS 2008 5: TERMINAL SERVER

WINDOWS 2008 5: TERMINAL SERVER WINDOWS 2008 5: TERMINAL SERVER 1.- INTRODUCCION: Terminal Server proporciona una interfaz de usuario gráfica de Windows a equipos remotos a través de conexiones en una red local o a través de Internet.

Más detalles

TELEPROCESOS Y SISTEMAS DISTRIBUIDOS

TELEPROCESOS Y SISTEMAS DISTRIBUIDOS TELEPROCESOS Y SISTEMAS DISTRIBUIDOS Semana 11 Integrantes: Cantera Salazar, Julissa A. Yalico Tello, Diana Accho Flores, Wilber En una red Trabajo en Grupo se puede compartir, o hacer disponibles a través

Más detalles

Aplicación de protección con contraseña para los dispositivos flash USB de Verbatim

Aplicación de protección con contraseña para los dispositivos flash USB de Verbatim Introducción Manual del usuario Verbatim EasyLock Aplicación de protección con contraseña para los dispositivos flash USB de Verbatim Versión 1.00 Copyright 2010 Verbatim Americas, LLC. Todos los derechos

Más detalles

Manual Instalación. Componentes necesarias para operar en la Facturación Electrónica SII

Manual Instalación. Componentes necesarias para operar en la Facturación Electrónica SII Manual Instalación Componentes necesarias para operar en la Facturación Electrónica SII Fecha: 03/06/2008 CONTROL DE VERSIONES... 3 1. INTRODUCCIÓN... 4 2. REQUERIMIENTOS DE AMBIENTE... 5 2.1 EN CUANTO

Más detalles

PSI Gestión es un sistema multiusuario que le permite 2 tipos de configuraciones:

PSI Gestión es un sistema multiusuario que le permite 2 tipos de configuraciones: CARACTERISTICAS DEL SISTEMA PSI Gestión es un sistema multiusuario que le permite 2 tipos de configuraciones: Sólo Servidor: Una sola computadora con el sistema instalado en modo Administrador. Pueden

Más detalles

INSTITUTO TECNOLÓGICO DE COLIMA LIC. EN INFORMÁTICA

INSTITUTO TECNOLÓGICO DE COLIMA LIC. EN INFORMÁTICA INSTITUTO TECNOLÓGICO DE COLIMA LIC. EN INFORMÁTICA TERMINAL SERVER TUTOR: JORGE CASTELLANOS MORFIN 19/02/2012 VILLA DE ALVARES, COLIMA Indice Introducción... 3 Objetivo... 3 Lista de Materiales... 3 Procedimiento...

Más detalles

Escritorio remoto y VPN. Cómo conectarse desde Windows 7

Escritorio remoto y VPN. Cómo conectarse desde Windows 7 Escritorio remoto y VPN. Cómo conectarse desde Windows 7 Hay ocasiones en las que es necesario conectarnos a un equipo informático situado a mucha distancia de donde nos encontramos para realizar sobre

Más detalles

Accede a su DISCO Virtual del mismo modo como lo Hace a su disco duro, a través de:

Accede a su DISCO Virtual del mismo modo como lo Hace a su disco duro, a través de: Gemelo Backup Online DESKTOP Manual DISCO VIRTUAL Es un Disco que se encuentra en su PC junto a las unidades de discos locales. La información aquí existente es la misma que usted ha respaldado con su

Más detalles

Acronis License Server. Guía del usuario

Acronis License Server. Guía del usuario Acronis License Server Guía del usuario TABLA DE CONTENIDO 1. INTRODUCCIÓN... 3 1.1 Generalidades... 3 1.2 Política de licencias... 3 2. SISTEMAS OPERATIVOS COMPATIBLES... 4 3. INSTALACIÓN DE ACRONIS LICENSE

Más detalles

MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD

MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD Fecha última revisión: Diciembre 2010 Tareas Programadas TAREAS PROGRAMADAS... 3 LAS TAREAS PROGRAMADAS EN GOTELGEST.NET... 4 A) DAR DE ALTA UN USUARIO...

Más detalles

Uso de la red telefónica

Uso de la red telefónica Copyright y marca comercial 2004 palmone, Inc. Todos los derechos reservados. palmone, Treo, los logotipos de palmone y Treo, Palm, Palm OS, HotSync, Palm Powered, y VersaMail son algunas de las marcas

Más detalles

Proceso de cifrado. La fortaleza de los algoritmos es que son públicos, es decir, se conocen todas las transformaciones que se aplican al documento

Proceso de cifrado. La fortaleza de los algoritmos es que son públicos, es decir, se conocen todas las transformaciones que se aplican al documento Qué es AT-Encrypt nos permitirá dotar de contraseña a cualquier documento o carpeta. Este documento o carpeta sólo será legible por aquel que conozca la contraseña El funcionamiento del cifrado (o encriptación)

Más detalles

Configuracion Escritorio Remoto Windows 2003

Configuracion Escritorio Remoto Windows 2003 Configuracion Escritorio Remoto Windows 2003 Instalar y configurar servicio de Terminal Server en Windows 2003 Fecha Lunes, 25 diciembre a las 17:04:14 Tema Windows (Sistema Operativo) Os explicamos cómo

Más detalles

Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación

Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación Vicerrectorado de Tecnologías de la Información y la Comunicación Conexión mediante Escritorio Remoto de Windows Última Actualización 16 de septiembre de 2013 Histórico de cambios Fecha Descripción Autor

Más detalles

Edición de Ofertas Excel Manual de Usuario

Edición de Ofertas Excel Manual de Usuario Edición de Ofertas Excel Manual de Usuario Alfonso XI, 6 28014 Madrid F(+34) 91 524 03 96 www.omie.es Ref. MU_OfertasExcel.docx Versión 4.0 Fecha: 2012-11-26 ÍNDICE 1 INTRODUCCIÓN 3 2 CONSIDERACIONES DE

Más detalles

1 ÍNDICE... 3 Instalación... 4 Proceso de instalación en red... 6 Solicitud de Código de Activación... 11 Activación de Licencia... 14 2 3 REQUERIMIENTOS TÉCNICOS E INSTALACIÓN Requerimientos Técnicos

Más detalles

MANUAL TERMINALES X300 Manual Soporte Técnico.

MANUAL TERMINALES X300 Manual Soporte Técnico. Se asume que usted: Tiene los conocimientos básicos para desarmar y armar una Computadora. Ya cuenta con una computadora de escritorio con al menos 1 a 2 puertos PCI disponibles. Tiene los conocimientos

Más detalles

Instalación de epass 3000 Token USB

Instalación de epass 3000 Token USB Instalación de epass 3000 Token USB Qué es epass? epass es un dispositivo de autenticación de usuarios y portabilidad de certificados digitales, plug and play, ligero, portátil, pequeño, que provee la

Más detalles

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA Documento de trabajo elaborado para la Red Temática DocenWeb: Red Temática de Docencia en Control mediante Web (DPI2002-11505-E)

Más detalles

Portal Del Emisor MANUAL DEL USUARIO. Plataforma de Facturación Electrónica

Portal Del Emisor MANUAL DEL USUARIO. Plataforma de Facturación Electrónica Portal Del Emisor MANUAL DEL USUARIO Plataforma de Facturación Electrónica 1. Índice 1. Índice... 2 2. Descripción General... 3 2.1. Alcance... 3 2.2. Flujo de navegación... 4 2.3. Perfil del Usuario...

Más detalles

ZXHN H168N Modem VDSL Manual del Usuario

ZXHN H168N Modem VDSL Manual del Usuario ZXHN H168N Modem VDSL Manual del Usuario Versión del Documento: 20120819-D3.0 Copyright 2012 ZTE Corporation Todos los derechos reservados. Ninguna parte de esta documentación puede ser extraída, reproducida,

Más detalles

Notas para la instalación de un lector de tarjetas inteligentes.

Notas para la instalación de un lector de tarjetas inteligentes. Notas para la instalación de un lector de tarjetas inteligentes. Índice 0. Obtención de todo lo necesario para la instalación. 3 1. Comprobación del estado del servicio Tarjeta inteligente. 4 2. Instalación

Más detalles

Departamento CERES Área de Tarjetas Inteligentes Manual de Usuario

Departamento CERES Área de Tarjetas Inteligentes Manual de Usuario 14 CORREO SEGURO. Hay aplicaciones de correo que permiten enviar y recibir correos cifrados y firmados digitalmente utilizando criptografía. Estas operaciones garantizan el intercambio seguro de información,

Más detalles

MACROS. Automatizar tareas a través del uso de las macros.

MACROS. Automatizar tareas a través del uso de las macros. OBJETIVOS MACROS Definiciones Automatizar tareas a través del uso de las macros. Grabar Ejecutar Manipular macros. Tipos de Macros en Excel Introducción Las operaciones tradicionales que se pueden realizar

Más detalles

Kit de Autenticación con Tarjetas. Guía Técnica de Configuración

Kit de Autenticación con Tarjetas. Guía Técnica de Configuración Kit de Autenticación con Tarjetas Guía Técnica de Configuración 1 ÍNDICE 1. 2. 3. 4. 5. 6. 7. INTRODUCCIÓN... 3 INSTALACION DEL LECTOR Y ACTIVACIÓN DE LA LICENCIA... 4 ALTA DE CÓDIGOS ID... 7 ALTA DE USUARIOS

Más detalles

HARDkey.NET Sistema de protección de software y cifrado de datos 2000-2011 SITEPRO S.A. Versión 6.4.0622

HARDkey.NET Sistema de protección de software y cifrado de datos 2000-2011 SITEPRO S.A. Versión 6.4.0622 HARDkey.NET Sistema de protección de software y cifrado de datos 2000-2011 SITEPRO S.A. Versión 6.4.0622 Este archivo resume las nuevas características de esta versión del kit de desarrollo HARDkey NET.

Más detalles

Manual de usuario. Certificado de firma electrónica Clase 3 en Microsoft Internet Explorer. Público. Noviembre 2011

Manual de usuario. Certificado de firma electrónica Clase 3 en Microsoft Internet Explorer. Público. Noviembre 2011 Manual de usuario Certificado de firma electrónica Clase 3 en Microsoft Internet Explorer Público Noviembre 2011 Fecha de Aprobación 07/11/2011 Versión 1.3 Código SO-M-29 HISTORIAL DE REVISIONES Versión

Más detalles

CONFIGURACIÓN TERMINAL SERVER EN WINDOWS 2003

CONFIGURACIÓN TERMINAL SERVER EN WINDOWS 2003 CONFIGURACIÓN TERMINAL SERVER EN WINDOWS 2003 AUTORÍA ÁNGEL LUIS COBO YERA TEMÁTICA SERVICIOS DE INTERNET ETAPA BACHILLERATO, CICLOS FORMATIVOS. Resumen En este artículo, se detalla paso a paso como instalar

Más detalles

Banco de la República Bogotá D. C., Colombia

Banco de la República Bogotá D. C., Colombia Banco de la República Bogotá D. C., Colombia Subgerencia de Informática Departamento de Seguridad Informática MANUAL DE USUARIO PARA EL SERVICIO - SISTEMA DE GESTIÓN PKI DE USUARIOS ROAMING - USI-GI-56

Más detalles

Creación y administración de grupos de dominio

Creación y administración de grupos de dominio Creación y administración de grupos de dominio Contenido Descripción general 1 a los grupos de Windows 2000 2 Tipos y ámbitos de los grupos 5 Grupos integrados y predefinidos en un dominio 7 Estrategia

Más detalles

Guía de inicio rápido

Guía de inicio rápido Guía de inicio rápido Tabla de contenido 1. INSTALACIÓN DE ARGUS 2007 - - - - - - - - - - - - - - - - - - - - - - 2. CÓMO INSTALAR ARGUS EN UNA SOLA COMPUTADORA - - - 3. CÓMO INSTALAR ARGUS EN UNA RED

Más detalles

Guía de comprobación de requisitos y solución a problemas comunes en las Oficinas Virtuales

Guía de comprobación de requisitos y solución a problemas comunes en las Oficinas Virtuales Guía de comprobación de requisitos y solución a problemas comunes en las Oficinas Virtuales Introducción o o Configuración del navegador: Configuración general Configuración del navegador: Opciones de

Más detalles

Instalación del Admin CFDI

Instalación del Admin CFDI Instalación del Admin CFDI Importante!!!Antes de comenzar verifique los requerimientos de equipo esto podrá verlo en la guía 517 en nuestro portal www.control2000.com.mx en el apartado de soporte, ahí

Más detalles

SBConta.NET Manual de instalación. SBSS Consulting, S.A. 08010 Barcelona Telf. 93.268-0356, fax 93-268-0070 E-Mail: sbss@sbss.es, web www.sbss.

SBConta.NET Manual de instalación. SBSS Consulting, S.A. 08010 Barcelona Telf. 93.268-0356, fax 93-268-0070 E-Mail: sbss@sbss.es, web www.sbss. SBConta.NET Manual de instalación SBSS Consulting, S.A. 08010 Barcelona Telf. 93.268-0356, fax 93-268-0070 E-Mail: sbss@sbss.es, web www.sbss.es SBConta.NET C o n t e n i d o i Contenido 1. Introducción.

Más detalles

Guía de instalación 1

Guía de instalación 1 Guía de instalación 1 Tabla de contenidos 1. Requisitos de software y hardware 3 2. Instalación del sistema 6 Bienvenida... 8 Archivo de licencia... del producto 9 Información de... licencia 12 Acuerdo

Más detalles

CERTIFICADOS ELECTRÓNICOS Y LECTORES DE TARJETAS LTC31 USB CERTIFICADOS ELECTRÓNICOS Y LECTORES DE TARJETAS LTC31 USB

CERTIFICADOS ELECTRÓNICOS Y LECTORES DE TARJETAS LTC31 USB CERTIFICADOS ELECTRÓNICOS Y LECTORES DE TARJETAS LTC31 USB CERTIFICADOS ELECTRÓNICOS Y LECTORES DE TARJETAS LTC31 USB 1 LECTORES DE TARJETAS... 2 2. INSTALACIÓN DE DRIVERS DEL LECTOR DE TARJETAS LTC31 USB.... 2 3. INSTALACIÓN DE LOS MÓDULOS DE SEGURIDAD... 5 3.1

Más detalles

Microsoft Access proporciona dos métodos para crear una Base de datos.

Microsoft Access proporciona dos métodos para crear una Base de datos. Operaciones básicas con Base de datos Crear una Base de datos Microsoft Access proporciona dos métodos para crear una Base de datos. Se puede crear una base de datos en blanco y agregarle más tarde las

Más detalles

MANUAL DE USUARIO AVMsorguar

MANUAL DE USUARIO AVMsorguar MANUAL DE USUARIO AVMsorguar TABLA DE CONTENIDO TABLA DE CONTENIDO...1 INSTALADOR...2 INSTALACION...3 MANUAL DE USO...8 DESCARGA DE DATOS...8 CONFIGURACION DEL AVM...9 VISUALIZACION DE LOS DATOS...10 MANEJO

Más detalles

Operación Microsoft Windows

Operación Microsoft Windows Entornos de red Concepto de red En el nivel más elemental, una red consiste en dos equipos conectados entre sí mediante un cable de forma tal que puedan compartir datos. Todas las redes, no importa lo

Más detalles

AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7

AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7 Tutoriales de ayuda e información para todos los niveles AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7 Como agregar a una red existente un equipo con Windows 7 y compartir sus archivos

Más detalles

MANUAL COPIAS DE SEGURIDAD

MANUAL COPIAS DE SEGURIDAD MANUAL COPIAS DE SEGURIDAD Índice de contenido Ventajas del nuevo sistema de copia de seguridad...2 Actualización de la configuración...2 Pantalla de configuración...3 Configuración de las rutas...4 Carpeta

Más detalles

TPV VIRTUAL O PASARELA DE PAGOS DE CAJASTUR

TPV VIRTUAL O PASARELA DE PAGOS DE CAJASTUR TPV VIRTUAL O PASARELA DE PAGOS DE CAJASTUR El TPV (Terminal Punto de Venta) Virtual es un producto dirigido a empresas y comercios, con tienda en internet, que permite el cobro de las ventas realizadas

Más detalles

Manual Instalación epass 2000 FT12 Token USB

Manual Instalación epass 2000 FT12 Token USB Manual Instalación epass 2000 FT12 Token USB Diciembre 2008 Nueva York 9, Piso 14, Santiago, Chile. Tel (56-2) 4968100 Fax(56-2) 4968130 www.acepta.com info@acepta.com RESUMEN EJECUTIVO En este documento

Más detalles

INSTRUCCIONES ACTUALIZACION PASO A PASO a MICROSOFT WINDOWS-7 (rev.1.0):

INSTRUCCIONES ACTUALIZACION PASO A PASO a MICROSOFT WINDOWS-7 (rev.1.0): INSTRUCCIONES ACTUALIZACION PASO A PASO a MICROSOFT WINDOWS-7 (rev.1.0): Puede instalar Windows 7 como una actualización a una instalación existente de Windows Vista con Service Pack 1 o Service Pack 2

Más detalles

Tareas básicas en OneNote 2010 Corresponde a: Microsoft Office OneNote 2010

Tareas básicas en OneNote 2010 Corresponde a: Microsoft Office OneNote 2010 areas básicas en OneNote 2010 - OneNote - Office.com http://office.microsoft.com/es-ar/onenote-help/tareas-basicas-en-onenote... 1 de 3 23/04/2012 10:40 p.m. Soporte / OneNote / Ayuda y procedimientos

Más detalles

Internet Information Server

Internet Information Server Internet Information Server Internet Information Server (IIS) es el servidor de páginas web avanzado de la plataforma Windows. Se distribuye gratuitamente junto con las versiones de Windows basadas en

Más detalles

INSTALACIÓN DE TecLocal Su acceso con TecCom

INSTALACIÓN DE TecLocal Su acceso con TecCom INSTALACIÓN DE TecLocal Su acceso con TecCom Instalación y configuración del Software de pedido Release 3.0 CONTENIDO I. Modo de instalación II. III. Instalación de TecLocal Configuración de conexión on-line

Más detalles

Registro Único de Proveedores del Estado (RUPE) Guía para Gestores

Registro Único de Proveedores del Estado (RUPE) Guía para Gestores Registro Único de Proveedores del Estado (RUPE) Guía para Gestores INFORMACIÓN DE INTERÉS Última actualización: 21-04-2015 Nombre actual del archivo: RUPE-GuíaParaGestores.odt Contenido Contenido... 2

Más detalles

Manual de usuario de IBAI BackupRemoto

Manual de usuario de IBAI BackupRemoto Manual de usuario de IBAI BackupRemoto Índice Cliente de IBAI BackupRemoto... 3 Descarga del cliente de IBAI BackupRemoto... 4 Instalación del cliente de IBAI BackupRemoto... 5 Instalación sobre Microsoft

Más detalles

NOTA DE APLICACIÓN AN-P002. Programando Wiring con NXProg

NOTA DE APLICACIÓN AN-P002. Programando Wiring con NXProg NOTA DE APLICACIÓN AN-P002 Programando Wiring con NXProg Este documento se encuentra protegido por una licencia Creative Commons Creative Commons: Atribution, Non-commercial, Share Alike Atribución: Puede

Más detalles

Guía de instalación de la carpeta Datos de IslaWin

Guía de instalación de la carpeta Datos de IslaWin Guía de instalación de la carpeta Datos de IslaWin Para IslaWin Gestión CS, Classic o Pyme a partir de la revisión 7.00 (Revisión: 10/11/2011) Contenido Introducción... 3 Acerca de este documento... 3

Más detalles

Sumario Instalación MDT V5.3... 1

Sumario Instalación MDT V5.3... 1 Sumario Instalación MDT V5.3... 1 Requerimientos del Sistema... 1 Menú de Inicio... 2 Proceso de Instalación... 3 Después de la instalación... 4 Colocación de la Llave de Protección (USB)... 4 Colocación

Más detalles

Utilidades de la base de datos

Utilidades de la base de datos Utilidades de la base de datos Desde esta opcion del menú de Access, podemos realizar las siguientes operaciones: Convertir Base de datos Compactar y reparar base de datos Administrador de tablas vinculadas

Más detalles

@ Manual de Instalación Kit Router Thomson ST 510 y ST530 Indice 1 Material incluido dentro del Kit Router ADSL 2 Previo a la instalación 3 Instalación de los microfiltros 4 Instalación del Router Thomson

Más detalles

GUIA COMPLEMENTARIA PARA EL USUARIO DE AUTOAUDIT. Versión N 02 Fecha: 2011-Febrero Apartado: Archivos Anexos ARCHIVOS ANEXOS

GUIA COMPLEMENTARIA PARA EL USUARIO DE AUTOAUDIT. Versión N 02 Fecha: 2011-Febrero Apartado: Archivos Anexos ARCHIVOS ANEXOS ARCHIVOS ANEXOS Son los documentos, hojas de cálculo o cualquier archivo que se anexa a las carpetas, subcarpetas, hallazgos u otros formularios de papeles de trabajo. Estos archivos constituyen la evidencia

Más detalles

BIENVENIDOS SITEPRO S.A.

BIENVENIDOS SITEPRO S.A. BIENVENIDOS SITEPRO S.A. SITEPRO S.A. (Breve reseña) Más de 20 Años de Trayectoria en el Mercado Diseñamos, Fabricamos y Comercializamos nuestros Productos y Soluciones clasificados en las siguientes líneas

Más detalles

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN Tabla de Contenidos LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN... 1 Tabla de Contenidos... 1 General... 2 Uso de los Lineamientos Estándares...

Más detalles

Ayuda Aplicación SIGI

Ayuda Aplicación SIGI Ayuda Aplicación SIGI Versión 1.0 Autor Secretaría General Técnica Fecha Inicio 17/03/2013 12:33:00 Fecha último cambio 19/03/2013 11:38:00 Fecha: 19/03/2013 Página 1 de 17 Índice 1. PRESENTACIÓN 3 2.

Más detalles

Samsung Drive Manager Preguntas frecuentes

Samsung Drive Manager Preguntas frecuentes Samsung Drive Manager Preguntas frecuentes Instalación P.: Mi disco duro externo Samsung está conectado, pero no sucede nada. R.: Compruebe la conexión del cable USB. Si el disco duro externo Samsung está

Más detalles

SERVICIO NACIONAL DE APRENDIZAJE- SENA PROCESO RELACIONAMIENTO EMPRESARIAL Y GESTION DEL CLIENTE

SERVICIO NACIONAL DE APRENDIZAJE- SENA PROCESO RELACIONAMIENTO EMPRESARIAL Y GESTION DEL CLIENTE SERVICIO NACIONAL DE APRENDIZAJE- SENA PROCESO RELACIONAMIENTO EMPRESARIAL Y GESTION DEL CLIENTE Instructivo Gestión de Encuestas y Sondeos en CRM Versión 01 02/07/2015 CONTENIDO INSTRUCTIVO GESTIÓN DE

Más detalles

Guía de uso del Cloud Datacenter de acens

Guía de uso del Cloud Datacenter de acens guíasdeuso Guía de uso del Cloud Datacenter de Calle San Rafael, 14 28108 Alcobendas (Madrid) 902 90 10 20 www..com Introducción Un Data Center o centro de datos físico es un espacio utilizado para alojar

Más detalles

MANUAL DE SHAREPOINT 2013. Por: Área de Administración de Aplicaciones.

MANUAL DE SHAREPOINT 2013. Por: Área de Administración de Aplicaciones. MANUAL DE SHAREPOINT 2013 Por: Área de Administración de Aplicaciones. Indice 1. Tipos de Cuentas de Usuario... 2 2. Compatibilidad con exploradores de Internet... 2 3. Como acceder a un sitio de SharePoint

Más detalles

Capítulo 5. Cliente-Servidor.

Capítulo 5. Cliente-Servidor. Capítulo 5. Cliente-Servidor. 5.1 Introducción En este capítulo hablaremos acerca de la arquitectura Cliente-Servidor, ya que para nuestra aplicación utilizamos ésta arquitectura al convertir en un servidor

Más detalles

REDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS

REDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS REDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS Escritorio remoto - 1 - Escritorio Remoto...- 3 - Definición de Escritorio Remoto... - 3 - Habilitar Escritorio Remoto... - 4 - Instalación del

Más detalles

Cómo parametrizar el Puesto de Trabajo asociado a una base de datos de IVA

Cómo parametrizar el Puesto de Trabajo asociado a una base de datos de IVA Pág 1 de 5 Importante: Estos pasos deben seguirse si usted ya cuenta con puestos de trabajo definidos. En ese caso asumimos además que usted ya ha realizado la asociación del puesto de trabajo con una

Más detalles

Instalación del Software Magaya

Instalación del Software Magaya Instalación del Software Magaya INSTALACIÓN DEL SOFTWARE MAGAYA INTRODUCCIÓN A LA INSTALACIÓN DEL SOFTWARE MAGAYA Introducción a la Instalación del Software Magaya Este tema de instalación explica las

Más detalles

Ayuda de Symantec pcanywhere Web Remote

Ayuda de Symantec pcanywhere Web Remote Ayuda de Symantec pcanywhere Web Remote Conexión desde un navegador web Este documento incluye los temas siguientes: Acerca de Symantec pcanywhere Web Remote Protección de la sesión de Web Remote Formas

Más detalles

Guía Rápida de Inicio

Guía Rápida de Inicio Guía Rápida de Inicio 1. Acerca de esta Guía Esta guía le ayudará a instalar y dar los primeros pasos con BitDefender Security for SharePoint. Para disponer de instrucciones detalladas, por favor, diríjase

Más detalles

4. Control de inventario. Asistente LAN+PC

4. Control de inventario. Asistente LAN+PC 4. Control de inventario. Asistente LAN+PC El técnico debe descargarse el software desde el Canal Web de Operaciones antes de ir al domicilio del cliente y llevarlo en un dispositivo de almacenamiento

Más detalles

MANUAL DEL INSTALADOR

MANUAL DEL INSTALADOR MANUAL DEL INSTALADOR Índice Índice... 2 Instalación... 3 Extracción de archivos... 3 Actualización de los archivos de sistema... 3 Pantalla inicial... 4 Selección de la ruta de instalación... 4 Selección

Más detalles

Consideraciones para el reconocimiento del Dispositivo de Protección USB en una red.

Consideraciones para el reconocimiento del Dispositivo de Protección USB en una red. Pág 1 de 7 Nota: Tener en cuenta que bajo entornos WIRELESS (redes inalámbricas) el sistema puede presentar inconvenientes al leer el Dispositivo de Protección, en virtud a los micro cortes que se presentan

Más detalles

Juan Carlos Serna Morales

Juan Carlos Serna Morales Referencia: Información licencia software EasySMS Aplicación para PC INSTRUCCIONES INSTALACIÓN Y FUNCIONAMIENTO PLATAFORMA SMS EasySMS Versión 1.0 INSTALACIÓN: 1- Doble clic en SETUP 2- Clic en siguiente

Más detalles

Procedimiento de instalación y Configuración del. cliente VPN en Windows. Acceso remoto a la red corporativa

Procedimiento de instalación y Configuración del. cliente VPN en Windows. Acceso remoto a la red corporativa Acceso remoto a la red corporativa Página 1 de 20 Procedimiento de instalación y Configuración del cliente VPN en Windows Acceso remoto a la red corporativa Este documento es propiedad de la Dirección

Más detalles

Software Criptográfico FNMT-RCM

Software Criptográfico FNMT-RCM Software Criptográfico FNMT-RCM ÍNDICE 1. DESCARGA E INSTALACIÓN DEL SOFTWARE 2. EXPORTACIÓN DE CERTIFICADOS EN MICROSOFT INTERNET EXPLORER 3. IMPORTACIÓN DEL CERTIFICADO A LA TARJETA CRIPTOGRÁFICA -2-

Más detalles

Manual Operativo Sistema de Postulación Online

Manual Operativo Sistema de Postulación Online Manual Operativo Sistema de Postulación Online Este Manual está diseñado en forma genérica para apoyar el proceso de postulación en línea, las Bases de cada Concurso definen los requerimientos oficiales

Más detalles

Gestió n de Certificadó Digital

Gestió n de Certificadó Digital Gestió n de Certificadó Digital Contenido Introducción... 2 Exportar certificado... 5 Importar certificado... 8 Renovar el Certificado... 10 1 Introducción Los certificados digitales o certificados de

Más detalles

GUIA DE CONFIGURACION MULTIUSUARIO

GUIA DE CONFIGURACION MULTIUSUARIO GUIA DE CONFIGURACION MULTIUSUARIO Consideraciones generales Nuestros sistemas pueden operar en modo multiusuario en entornos de red. Para ello se usa una llave Hardlock multiusuario diferente físicamente

Más detalles

Módulo Cédulas de Auditorías desde Excel

Módulo Cédulas de Auditorías desde Excel Módulo Cédulas de Auditorías desde Excel EL módulo de Cédulas desde Excel permite obtener y manipular la información registrada en SuperCONTABILIDAD de manera rápida y confiable. Las aplicaciones de este

Más detalles

Elementos requeridos para crearlos (ejemplo: el compilador)

Elementos requeridos para crearlos (ejemplo: el compilador) Generalidades A lo largo del ciclo de vida del proceso de software, los productos de software evolucionan. Desde la concepción del producto y la captura de requisitos inicial hasta la puesta en producción

Más detalles

APLICACIÓN DE ACCESO REMOTO PARA POCKET PC. MANUAL DE USUARIO (Release 1.42)

APLICACIÓN DE ACCESO REMOTO PARA POCKET PC. MANUAL DE USUARIO (Release 1.42) APLICACIÓN DE ACCESO REMOTO PARA POCKET PC MANUAL DE USUARIO () Índice INTRODUCCIÓN... 3 MANUAL INSTALACIÓN DEL SOFTWARE... 4 GUIA USUARIO... 5 Iniciar la Aplicación Control Remoto... 5 Bienvenido... 5

Más detalles

EW1051 Lector de tarjetas inteligentes USB

EW1051 Lector de tarjetas inteligentes USB EW1051 Lector de tarjetas inteligentes USB 2 ESPAÑOL EW1051 Lector de tarjetas USB Contenidos 1.1 Funciones y características... 2 1.2 Contenido del paquete... 2 2.0 Instalar el dispositivo EW1051 mediante

Más detalles

Manual de Usuario Consulte en www.jazztel.com. Equipo ADSL Huawei MT 882

Manual de Usuario Consulte en www.jazztel.com. Equipo ADSL Huawei MT 882 3950 Manual de Usuario Consulte en www.jazztel.com Equipo ADSL Huawei MT 882 Antes de comenzar la instalación MUY IMPORTANTE: Bienvenido a Internet de JAZZTEL. El siguiente manual le indica paso a paso

Más detalles

Ingeniería de Software. Pruebas

Ingeniería de Software. Pruebas Ingeniería de Software Pruebas Niveles de prueba Pruebas unitarias Niveles Pruebas de integración Pruebas de sistema Pruebas de aceptación Alpha Beta Niveles de pruebas Pruebas unitarias Se enfocan en

Más detalles

Instalación y uso de Check 2000 Client Server con ZENworks 2

Instalación y uso de Check 2000 Client Server con ZENworks 2 Instalación y uso de Check 2000 Client Server con ZENworks 2 CHECK 2000 DESCRIPCIÓN GENERAL Check 2000* Client Server de Greenwich Mean Time es una aplicación de diagnóstico que se puede utilizar con ZENworks

Más detalles

Manual del Usuario. Sistema de Help Desk

Manual del Usuario. Sistema de Help Desk Manual del Usuario Sistema de Help Desk Objetivo del Manual El siguiente manual tiene como objetivo proveer la información necesaria para la correcta utilización del sistema Help Desk. Describe los procedimientos

Más detalles

Windows XP Instalación y configuración de hardware

Windows XP Instalación y configuración de hardware Servicio de Informática Atención al Usuario Windows XP Instalación y configuración de hardware Sección de Atención al Usuario Ultima modificación: 01 de Julio de 2.003 Instalación y configuración de hardware

Más detalles

Antivirus PC (motor BitDefender) Manual de Usuario

Antivirus PC (motor BitDefender) Manual de Usuario Antivirus PC (motor BitDefender) Manual de Usuario Índice 1. Introducción... 3 2. Qué es Antivirus PC?... 3 a. Eficacia... 3 b. Actualizaciones... 4 3. Requisitos técnicos... 4 a. Conocimientos técnicos...

Más detalles

Guía N 1: Fundamentos básicos(i)

Guía N 1: Fundamentos básicos(i) 1 Guía N 1: Fundamentos básicos(i) Objetivos Generales: Ver una breve descripción de las capacidades más comunes de Excel Objetivos específicos: Descripción de los elementos de un libro: Hojas, iconos,

Más detalles

Guía de instalación de la carpeta Datos de ContaWin

Guía de instalación de la carpeta Datos de ContaWin Guía de instalación de la carpeta Datos de ContaWin Para ContaWin CS, Classic o Pyme a partir de la revisión 12.10 (Revisión: 29/06/2011) Contenido Introducción... 3 Acerca de este documento... 3 Dónde

Más detalles

Firewall Firestarter. Establece perímetros confiables.

Firewall Firestarter. Establece perímetros confiables. Firewall Firestarter Qué es un Firewall? Un muro de fuego (firewall en inglés) es una parte de un sistema o una red que está diseñada para bloquear el acceso no autorizado, permitiendo al mismo tiempo

Más detalles

DOCENTES FORMADORES UGEL 03 PRIMARIA

DOCENTES FORMADORES UGEL 03 PRIMARIA DOCENTES FORMADORES UGEL 03 PRIMARIA 1. Recursos y Aplicaciones del Servidor La página de inicio del servidor (http://escuela) contiene los enlaces a las aplicaciones instaladas en el servidor, un enlace

Más detalles