Pablo Iranzo Gómez's blog

jul 27, 2006

OCS Inventory Package deployment

Introduction

OCS Inventory is an excelent piece of GPL Software for getting info from hardware components, and software installed on computers running Windows or UNIX-like operating systems (there are also some unofficial clients for running on other platforms).

Since New Generation (OCS-NG), a new architecture was implemented: server were contacted using standard TCP/IP connection (Previous versions, used an MDB file to store information, and required a SMB share to inventory computers ), allowing remote computers to connect as well as providing a new web interface for computer administration, and inventory query.

Within new features, a new small client (about 64kb), was able to contact inventory server, and download from it the full set of required files (OcsAgent.exe) which was expanded to %SYSTEMDRIVE%ocs-ng, then executed, an inventory sent to server.

This approach had a little problem, if you had a small outgoing connection, serving a 700 Kb file was painful... but at least, despite some minor revision changes, machines were able to upgrade automatically (In many other times, you had to manually redeploy or force with the /DEPLOY:#VERNUMBER# the new deployment) when new version was deployed on the server.

With RC3, agent for installation uses near double that size, about 1.5 Mb, but the ability for after first installed, use external servers with a bigger upload bandwidth, eases installation of new versions in computers.

Release Candidate 3, and 1.0

OCS-NG RC3 came with important architectural changes, including several major and minor improvements, being these the more important ones:

  • Now the windows client works as a service (for the first time it includes a windows agent)
  • RC3 includes a component for software/files deployment/distribution

The new tool is called package deployment. This feature it is managed using the also improved admin web interface.

OCS-NG could be setup on different machines hosting each service:

  • An Inventory-receiving machine
  • An Admin web interface
  • A site with information about packages
  • A site with package fragments for deployment

or, as I did in my setup, use a Debian Linux machine for doing the four tasks, but I plan to relay the fourth task to other machines, when packages are bigger than expected.

Setting it up and running

I'll assume that you've running Apache, PHP, and were able to setup OCS using the bundled instructions, so you only have to enable new features for using package deployment.

First of all, we need SSL support in Apache.

Package deployment infrastructure, is too much powerfull, so it requiress SSL access to validate server before trying to download from it, so... we'll need some SSL certificates for use with our server.

I like http://www.cacert.org services: they sign your certificates, and provide one certificate aiming to be used with many FOSS projects, because it's free instead of paid certificates like the ones from Thawte or Verisign.

Getting SSL Certificates

First of all, we need to create a private key and a CSR (Certificate Signing Request) which we will send to CACERT for signing (please, note that if you don't have a domain name, will make it impossible to use OCS Package Deployment if your IP is also dynamic, so if that is your case (as was mine too), open an account at No-IP and create a URL-Redirector to your machine, you'll have to install an update client, but this will allow you to use certificates) it.

Having openssl installed, we will execute (please, double check that questions, specially CN exactly matches ServerName and "hostname", for it to work properly after) the following commands:

openssl genrsa -out server.key 1024
openssl req -new -key server.key -out server.csr

First one, will create a private key called "server.key", second one, will create a CSR which we will paste at https://www.cacert.org/account.php?id=10 to get our server certificate signed.

For being able to use http://www.cacert.org services, we'll have to create an account and add a domain to it, this is verified sending an email to an account like webmaster, root or so, clicking on the supplied link, will entitle to work in representation of that domain.

After that, Cacert.org will show you a certificate for your server that you'll have to copy to a file called "server.crt".

Let's then download CACERT's root certificate to "cacert.pem"

Configuring apache for using that certificates

Next, we'll have to tell apache, to use this certificate for SSL support, in my case, I configured:

/etc/apache2/conf.d/ssl:
SSLProtocol all
SSLOptions +StdEnvVars
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCACertificateFile /etc/apache2/ssl/cacert.pem
SSLCertificateFile /etc/apache2/ssl/server.crt
SSLCertificateKeyFile /etc/apache2/ssl/server.key

So, I had to put server.crt, server.key and cacert.pem in /etc/apache2/ssl/

Next one, was to configure a new site that requires SSL to work:

/etc/apache2/sites-enabled/001-default:
ServerName yourserver.no-ip.org
NameVirtualHost \*:443
ErrorLog /var/log/apache2/errssl.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/ssl.log combined
ServerSignature On
DocumentRoot /var/www
SSLEngine on
SSLOptions +StdEnvVars
SetEnvIf User-Agent ".\*MSIE.\*" nokeepalive ssl-unclean-shutdown

Afterthat... we have to reload apache configuration and try to connect to https://yourserver.no-ip.org to check if everything is ok.

Well, if this works, we had the first and harder step done ;)

Creating a package

There are three types of packages: RUN, STORE and LAUNCH.

Each of them has different behaviour, one runs a command, the other downloads a file and stores it on a folder, and the other does a combined thing: downloads a file, unzips it, and then runs a command.

For Package creating, we must have write access to Apache's DocumentRoot/download folder, and after creation, copy contents of "/download" to "/", or as I did, gave write access to "/var/www", and create (ln -s . download) a symbolic link for download.

So... let's create a first package:

  1. We must login into OCS Web interface, and select (first menu option on first yellow icon) package creation
  2. We must assign a name for the package, Platform, Protocol and Priority (priority will allow us to decide package execution order in the client, the lower number, the higher priority)
  3. If we're going to upload files, we must ZIP it BEFORE, so OCS will unzip on client machine, and then run commands
  4. We choose an action, and then, a path (we can use system variables like %SYSTEMDRIVE%, %TEMP%, %USERPROFILE%,%PROGRAMFILES%, etc) to store the file, or command to run
  5. We can choose if we want the user to be warned about package execution, and even to allow user to delay execution (useful for service pack deployments, etc)

Next step, will allow us to specify fragments (pieces in wich the package will be splitted for allowing better deployment, making use of redownloading for only failed fragments, etc), as well as checksum for data validity

Your package, will be created then on "/var/www/download/#pkgid#".

Activating a package

Once a package has been defined, we have an "info" file, describing package actions, and package fragments, we can have them together or split it between different servers, and we will have to specify where is located each piece, before using it on our machines. That process is called "Activation".

When we select that option, we have to specify the pkgid, so we use the second menu entry in the package deployment icon, and we'll get a list of packages ready for activation, and then, we select "Activate" from the one we're interested in.

On package activation, we will be asked for two SERVERS (thanks to the development team, specially to Pascal who helped in determining that we require to specify server name, not URL) one with https (for downloading info file) and one with http for downloading fragments (if any).

After sending server names, OCS will check availability of "info" and fragment files (if any (On RUN packages, there is nothing to download prior to running the commands) and then, package will be activated and ready for next step.

Afecting a package

In this step, we can select a computer in the main view, or do a search using specific criteria, and as a result, apply a package on listed computers.

We can affect a package to several computers at once, just to one, and even, have different packages affect to the same computer....

OCS will connect, and execute actions defined in priority order...

How to get client side Package working

Packages from client side, are as easy to setup, as having a working OCS Agent Service installed and a file called cacert.pem, which we got from the SSL Creation step... having them in the OCS Agent folder, and a package affected to a computer, will make computer to download, and do the actions specified. ¿What are the pro's and con's of this method?

When installing OCSAgent, using: OCSAgentSetup.exe /S /SERVER:yourserver.no-ip.org, we have no cacert.pem file copied, so we must copy it by hand, or, as I did, use a scriptable install system whicho does this in one step.

I've used NSIS to create a script for doing this:

First, we'll have to create a folder and put in it:

  • OcsAgentSetup.exe
  • cacert.pem
  • NSIS Script
  • service.ini (in my case, for accelerating first inventory creation)

service.ini like this:

[OCS_SERVICE]
TTO_WAIT=10
PROLOG_FREQ=1
OLD_PROLOG_FREQ=1
Miscellaneous= /S /SERVER:yourserver.no-ip.org

And NSIS script with:

; Script edited using HM NIS Edit Script Wizard.
; Creator Pablo Iranzo Gómez (Pablo.Iranzo@uv.es)
; Homepage: http://Alufis35.uv.es/~iranzo/
; License: http://creativecommons.org/licenses/by-sa/2.5/  
; HM NIS Edit Wizard helper
defines
!define PRODUCT_NAME "OCS"
!define PRODUCT_VERSION "RC3"
!define PRODUCT_PUBLISHER "Pablo Iranzo Gomez (Pablo.Iranzo@uv.es)"
!define PRODUCT_WEB_SITE "http://Alufis35.uv.es/~iranzo/"
SetCompressor zlib
Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
OutFile "ocs-inst.exe"
InstallDir "$TEMP"
Icon "${NSISDIR}ContribGraphicsIconsmodern-install.ico"
SilentInstall silent
InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""  Section "Principal" SEC01
SetOverwrite on
SetOutPath "$TEMP"
File "OcsAgentSetup.exe"
Exec "$TEMPOcsAgentSetup.exe /S /SERVER:yourserver.no-ip.org"
Exec "$PROGRAMFILESOCS Inventory AgentOCSService.exe -stop"
SetOutPath "$PROGRAMFILESOCS Inventory Agent"
File "cacert.pem"
File "service.ini"
Exec "$PROGRAMFILESOCS Inventory AgentOCSService.exe -start"
Exec "$PROGRAMFILESOCS Inventory AgentOCSInventory.exe /SERVER:yourserver.no-ip.org /DEBUG"
SectionEnd
Section -Post
SectionEnd`

This script, when compiled, will create a ocs-inst.exe file, with all files needed packed in it, when executed, will:

  1. silently run
  2. extract OCSAgentSetup
  3. install it using silent install
  4. then, stop service
  5. output cacert.pem certificate in OCS Service folder
  6. replace service.ini for faster inventory, and then,
  7. start service
  8. Force DEBUG and hand-started inventory

This will leave us with a working OCS Agent Setup, with a valid certificate for autenticating against our deployment server, and ready for creating more packages.

I hope this document is good for you to test this excelent software.

Thanks (again) to the OCS Developing team (specially to Pascal Danek) for creating such a nice program, and helping in diagnosing problems found and setup procedures for correctly using it.

Thanks to Pablo Chamorro for reviewing this article too ;)

Have a look at OCS Deployment Tips and tricks to get ideas on how to use package deployment

Click to read and post comments

may 23, 2004

Privacidad en las comunicaciones electrónicas

Este artículo, es una sencilla introducción al mundo del cifrado y a modo de resumen o extracto de diversos artículos, presenta información que luego es ampliada en los enlaces indicados, tanto en el cuerpo del artículo como al final en la sección dedicada a tal efecto.

Orígenes

Desde tiempos inmemoriales, a la vez que se avanzaba en la comunicación, se avanzaba también en la necesidad de mantener la privacidad de las mismas...

Cuando la escritura fue dejando de ser un privilegio de unas minorías y comenzó a utilizarse más ampliamente, era necesario también una firma, algo que indicase que el mensaje provenía de una persona y el lacre hizo perfectamente su función, una vez terminado un escrito, se plegaba sobre sí mismo y se dejaba caer unas gotas de lacre sobre la junta y se presionaba con un sello sobre el papel, dejando por un lado las dos partes del escrito unidas y sólo separables rompiendo el sello y por otro lado, con un sello identificativo de cada persona que certificaba que ese mensaje había salido de sus manos.

El lacre ha permitido que los mensajes fueran firmados y que se supiera si habían sido leídos o no de antemano, pero no permitía proteger la privadidad, ya que siempre podía ser interceptado y leído y ya nunca entregado, lo que lo convertía en poco fiable para transmitir grandes secretos.

Se hacía necesaria una forma de codificación que a ojos de extraños fuera ininteligible, pero para los receptores y emisores legítimos fuera clara.

Uno de los métodos más utilizados era la permutación de letras, si en un mensaje cambiábamos de orden todas las letras, siguiendo por ejemplo el orden del abecedario tendríamos un mensaje completamente distinto:

Siguiendo el abecedario: abcdefghijklmnñopqrstuvwxyz y una semilla de permutación, el mensaje:

  • Hola, este es un mensaje de saludo

...quedaría con una clave de permutación 13 (rot13)1:

  • Ubyn, rfgr rf ha zrafnwr qr fnyhqb

Que a simple vista parece algo ininteligible.

Estos sistemas se basaban en un secreto común, un código o llave que aplicada dos veces sobre el mismo mensaje en un sentido o en otro, lo descifraba o cifraba. Lo que se hacía entonces era transmitir una clave de cifrado y aplicarla por ambas partes para poder leer el mensaje.

Los problemas aparecían cuando la clave era interceptada, ya que así, si se interceptaban los mensajes, aplicando la clave era posible descifrarlo.

Un buen sistema de cifrado debe ser "fuerte", existen algunos, que mediante un análisis del texto cifrado puede romperse, por ejemplo, sabiendo las frecuencias de aparición de las letras en un texto suficientemente grande de un idioma, si repetimos la estadística con un mensaje cifrado, podríamos asociar en base a las presencias relativas de cada carácter, su equivalencia entre el cifrado y el descifrado, pudiendo así romper la protección del mensaje.

Uno de los sistemas "modernos" más conocidos fue la máquina Enigma famosa por ser utilizada por las fuerzas militares alemanas durante la Segunda Guerra Mundial y permitir, tras romper su cifrado, adelantar el fin de la guerra.

La máquina Enigma se basaba en una clave que una vez introducida cambiaba mediante unos tambores rotatorios el resultado de apretar una tecla, de forma que al apretar varias veces una misma tecla, se obtenían resultados diferentes, dificultando enormemente el descifrado de un mensaje si no se conocía la clave inicial.

Actualidad

Hoy en día las comunicaciones siguen siendo algo necesario y la privacidad de las mismas es, si cabe, aún más necesaria.

Con la aparición de nuevos medios técnicos, y el fomento del uso de las comunicaciones electrónicas (teléfono, fax, internet, email), ha aumentado considerablemente el flujo de las comunicaciones, pero paralelamente ha aumentado la potencia de cálculo de los ordenadores y por tanto, de la posibilidad de analizar el tráfico que pasa por ellos.

Prácticamente todo el tráfico de Internet pasa por unos cuanto servidores, lo que posibilita que un programa espía ubicado en ellos capture y registre información de todo tipo.

Echelon 2 era hasta hace unos años una simple sospecha, pero fue reconocido por haber sido utilizado por el gobierno Americano, así como los Ingleses (con sus respectivas "colonias") y que, en los casos declarados, hay sospechas de haber favorecido notablemente a empresas Americanas frente a Europeas en grandes acuerdos comerciales (por ejemplo a Boing frente a Airbus)...

Echelon se rumoreaba que registraba las comunicaciones telefónicas, emails, etc.

Todos conocemos los sistemas de reconocimiento de voz para PC que permiten dictarle al ordenador un texto, también conocemos el sistema de las compañías telefónicas, que a través de la voz nos permiten ir entrando en diversas opciones de sus menús para facilitarnos la búsqueda de información y por otro lado conocemos la potencia de buscadores de internet para encontrar en base a un texto que escribamos... si se combinan ambas podemos tener un potente sistema que catalogue nuestras conversaciones y permita realizar búsquedas sobre ellas...

Se rumorea que en Alemania, si durante una conversación telefónica se cita un número de palabras "prohibidas", automáticamente la conversación pasa a ser registrada para posterior análisis...

Se rumorea también que operadores de telefonía escuchan aleatoriamente conversaciones para comprobar la calidad de la comunicación...

¿Cómo proteger nuestra privacidad entonces?

Web

Para las páginas web, el estándar adoptado son las SSL 3 que cifran la comunicación entre el cliente y un servidor web autentificado con un certificado digital firmado por ciertas compañías consideradas de confianza y utiliza un cifrado de 56 ó 128 bits. Este cifrado es el más conocido, ya que es el que utilizan bancos, comercios, etc

Como medida adicional de seguridad, los bancos utilizan tarjetas de claves, solicitar carácteres al azar de una clave definida por el usuario, etc.

El uso de esta medida de seguridad viene indicado en los navegadores por el prefijo "https" en la barra de direcciones de la página que estamos visitando, así como un símbolo de un candadito en la barra de estado.

Este sistema tiene un inconveniente y es que las empresas que firman los certificados y están reconocidas por los navegadores más habituales son unas pocas y cobran por sus servicios, de forma que muchos particulares o servidores gratuitos no pueden ofrecer certificados que sean auntomáticamente validados ya que son generados individualmente.

Como alternativa libre surgió CACERT que ofrece un servicio gratuito de firma de certificados, de forma que el día en que CACERT sea añadida a todos los navegadores4, automáticamente sus certificados sean validados sin molestias para el visitante (teniendo que aceptar manualmente el certificado).

Estos certificados se basan en cadenas de confianza: tu navegador confía en unas empresas de certificado (CA 5 y todos los certificados "firmados" por esas empesas son válidos ante el navegador.... algo así como la frase "los amigos de mis amigos son mis amigos"

Redes

Para las conexiones entre diversas redes, se utilizan VPN6. Una VPN enlaza dos equipos a través de otra red (generalmente internet) y permite utilizar un sencillo cifrado, para que los datos enviados no estén desprotegidos,mediante una VPN es fácil unir distintas redes como si fueran una sola a la vez que se crea un poco más de seguridad para los datos que se transmiten7.

Correo Electrónico

El tema del correo electrónico es un aspecto muy importante, pero poco explorado por los usuarios. El más integrado en los programas más comerciales, es el basado en certificados, al estilo de las SSL, con el inconveniente de que requiere de un certificado firmado por una CA de confianza que es costoso en el caso de una comercial, o poco extendido en el caso de CACERT.

El otro sistema, más ampliamente utilizado y uno de los más potentes existente es el GPG8, un derivado libre de PGP9.

GPG se basa en el sistema de llave pública/llave privada. En dicho sistema, cada interlocutor dispone de dos claves complementarias, una que todo el mundo conoce y otra que sólo el conoce, y que a su vez, están protegidas por una contraseña.

Mediante este sistema, para enviar un mensaje cifrado, hacen falta cuatro claves para llevar a cabo la transferencia completa del mensaje:

  ----------------- -----------------
  *Usuario 1*       *Usuario 2*
  Clave privada 1   Clave privada 2
  Clave pública 1   Clave pública 2
  ----------------- -----------------

El usuario 1, cuando quiere enviar un mensaje cifrado al usuario 2 debe, por un lado cifrar el mensaje con su clave privada y con la clave pública de la otra persona.

Al recibir el usuario 2 el mensaje, utiliza su clave privada para deshacer el cifrado de su clave pública y la clave pública del usuario 1 para deshacer el cifrado de la clave privada del usuario 1.

Siguiendo este esquema, al ser necesarias las claves privadas de cada usuario y una clave que todo el mundo conoce, nos aseguramos que sólo el receptor podrá abrir el mensaje cifrado, de forma que aunque fuera interceptado, no se podría hacer nada con él.

Este sistema se basa en las mencionadas cadenas de confianza. Una clave pública de una persona es firmada a su vez por personas que tienen constancia de que realmente dicha clave pública pertenece a quien dice ser, en el momento que se ha realizado esa comprobación (encuentro personal, linea de comunicación segura, etc), se pasa a firmar la clave pública de dicha persona con tu clave pública, de modo que cualquier persona que confíe en tí, confía a su vez con los usuarios de los que has firmado su clave.

A cada firma, se le puede asignar también una "fiabilidad", por ejemplo, puedo recibir un mensaje de una "persona 1" que conozco, pero no estoy seguro de si su clave es o no esa, así que la acepto, pero le asigno poca confianza... si a su vez, en mi "anillo de claves" tengo a otros usuarios que han firmado a su vez la firma de la persona 1 y yo confío en los otros usuarios, estoy indirectamente confiando en la "persona 1"...

Las claves públicas se suelen ubicar en webs de fácil acceso, así como en una red mundial de servidores de claves, que a partir del email o nombre de una persona, nos proporciona su clave pública para poder enviarles mensajes cifrados.

Una característica muy importante es la "firma" de los mensajes, que es el equivalente a estampar nuestro sello personal sobre el lacre fundido de los mensajes, deja una marca que aunque cualquiera pueda ver el mensaje, en caso de cualquier modificación del mismo (por ejemplo una falsificación de un mensaje, alteración, etc), indica al receptor que la verifique que el mensaje permanece inalterado desde su envío (por lo tanto es un mensaje legítimo), o bien que ha sido modificado (por lo que deberemos hablar con el remitente para solicitarle el reenvío del mismo).

Si combinamos la firma de mensajes con el cifrado, dispondremos de un sistema muy bueno de cifrado que nos asegurará privacidad en las comunicaciones.

Redes inalámbricas WEP10 Es un sistema de cifrado equivalente a las SSL pero para redes inalámbricas, pero que ha demostrado ser fácilmente "rompible" y por lo tanto insuficiente para asegurar los datos enviados en una conexión.

En muchos casos se refuerza el WEP con túneles VPN cifrados con FreeSWAN además del uso de aplicaciones seguras (SSH, etc)

Actualmente poca gente protege sus redes inalámbricas y son numerosos los informes, incluso de empresas como Hewlett-Packard avisando sobre cómo haciendo wardriving11 es posible ntrar a las redes internas de muchas empresas.

Incluso utilizando WEP, una red inalámbrica no es segura, ya que debido a fallos de diseño, es posible acceder a ella saltándose la clave de cifrado.

Marco legal

Uno de los principales escollos para la criptografía fue y sigue siendo las leyes de exportación12 americanas, que impedían su exportación al extranjero de programas que incorporaran cifrado "fuerte" y que provocó situaciones tan ridículas como que el código fuente del programa PGP no pudiera ser exportado electrónicamente y que por lo tanto fuera impreso completamente en muchísimos volúmenes de texto, que se sacaron legalmente (sólo era ilegal en formato binario) del país, permitiendo que a su llegada a Europa, fueran escaneados y convertidos de nuevo a código de ordenador para crear la versión Europea de PGP (sin la restricción de exportación americana).

Los gobiernos argumentan que el uso de cifrado es indicativo de actividades delictivas y gran parte de la gente piensa que si no va a hacer nada malo, no tiene porqué ocultarlo, el problema no viene de aquí, sino que en parte, la dignidad de las personas se basa en la privacidad, la intimidad, que es un derecho otorgado por la constitución y que no debemos consentir en perder.

Se ha demostrado sobradamente que muy a pesar de los intentos de los gobiernos por impedir la criptografía, los terroristas13 siguen atentando, por lo tanto, quien tenga que hacer algo, lo hará de igual modo a pesar del atropello hacia nuestros derechos y libertades de impedirnos el secreto de las comunicaciones.

El gobierno Francés, conocido otrora como el de la "Legalité, Fraternité, Equalité", prohibió en su país el uso del sistema de cifrado PGP ya que no podían leer el contenido de los mensajes... Permitiendo juzgar como terroristas a los usuarios de cifrados que ellos no controlaran (es amplia la historia de puertas traseras(backdoors)14 en los programas informáticos para permitir accesos no autorizados)

Más recientemente y también por parte del gobierno francés se ha juzgado a un investigador por publicar en una web un informe acerca de un antivirus francés que se jactaba de ser invulnerable y 100% eficaz frente a virus conocidos y desconocidos.

El Científico acusado mediante varias pruebas conceptuales, demostró que esa publicidad que hacían del antivirus no era cierta y a pesar de ello, se enfrenta a una pena de hasta dos años de cárcel15 y 15.000 Euros de multa además de los gastos económicos en abogados y viajes de Boston a París para asistir al juicio...

Según el método científico, es la discusión sobre los experimentos y los problemas encontrados los que ayudan a mejorarlos y a llegar a soluciones, y en el caso de la computación, ha demostrado que sí, gracias a encontrarse fallos de seguridad, los programas han ido mejorando corrigiéndolos, por un lado los afectados y por otro lado los relacionados, para evitar los errores que otros han cometido... según la ley francesa, cualquier persona que informe sobre fallos de seguridad será denunciada...

En España si no recuerdo mal, era necesario comunicar las claves de cifrado a las fuerzas policiales en caso de requerimiento...

En fin, se intenta proteger a la gente haciéndolos ignorantes16.

El Software Libre ya ha demostrado que su fuerza se basa en que al estar disponible a la revisión y mejora de millones de personas en todo el mundo resulta más robusto y confiable... y cada vez más, aporta un grado de privacidad (debido a la no existencia de puertas traseras) que otros sistemas no ofrecen.

Hoy en día, en nombre de la "Seguridad", se están instalando cámaras en las calles (en Central Park, con reconocimiento facial, para saber quién entra y quien sale), chips en los coches para pasar por las aduanas o bien reconocerlos por la matrícula, se espían correos, webs visitadas, y ahora, en nombre de "Los derechos de Autor", se están espiando las comunicaciones de otros programas como los P2P17.

En Grecia, según una reciente noticia será delito la compra de CD's del top-manta con penas de hasta 3 meses de cárcel... Con la excusa de la seguridad, los derechos de autor y demás, gestión digital de derechos 18 se han creado protocolos como TCPA19/Palladium20 que relegan al poseedor de un ordenador a ser un simple usuario que sólo puede hacer lo que se le ofrece, muy al estilo de lo que pasa con los DVD's promocionales, que obligan a ver los anuncios sin posibilidad alguna de saltarlos...

Existen alternativas como Freenet que a costa de hacernos perder velocidad en nuestras conexiones, nos garantizan una mayor seguridad (los datos viajan por varios servidores antes de alcanzar realmente al destino, de forma similar a como cuando se utilizan redes de proxies para acceder a los servidores web), de forma que dificultan notablemente la posibilidad de trazarlos.

Consideraciones

El software de cifrado no debe utilizarse sólo cuando haya algo privado que decir ya que llamará la atención, debe utilizarse por costumbre y de contínuo, dada la potencia actual de los ordenadores, el cifrado sólo es útil hasta que saquen máquinas suficientemente potentes como para romperlo en un plazo razonable de tiempo (un escrito cifrado que necesite un año para romperlo, no es útil, pues estará muy desfasado cuando se complete el descifrado). Por eso, al utilizar con normalidad el cifrado y la firma de los mensajes, estaremos contribuyendo a mantener nuestra privacidad para los momentos donde realmente sea necesaria.

Debemos dejar de asociar el uso de cifrado, o de programas que oculten nuestras actividades en Internet a actividades/actitudes delictivas, estamos en nuestro derecho constitucional a la privacidad y como derecho, debemos ejercerlo siempre que podamos, para que no caiga en el olvido ni sea moneda de cambio ante empresas, monopolios, etc

Se puede conseguir "seguridad" sin sacrificar la privacidad, puede que no sea tan sencillo, pero ya se ha demostrado en multitud de ocasiones que a pesar de los grandes recortes de libertades, no tenemos "paz", sino al contrario, obtenemos radicalización por parte de la gente que quiere seguir haciendo "mal" (que lo van a seguir haciendo si quieren) y represión para el resto de nosotros.

¡Utiliza el cifrado!

Enlaces


  1. Web con un programa que cifra y descifra en www.rot13.com 

  2. Informe Echeclon, El Programa Echelon 

  3. Secure Socket Layers: Capas de sockets seguras 

  4. Existe una petición a Mozilla foundation para incluir estos certificados con su navegador 

  5. Certification Authority 

  6. Virtual Private Network 

  7. Por lo que son ampliamente utilizadas para interconectar organismos con diversas delegaciones 

  8. GNU Privacy Guard 

  9. Pretty Good Privacy: Privacidad bastante buena 

  10. Wired Equivalent Privacy 

  11. Técnica consistente en viajar con un vehículo y un equipo con posibilidad de conexión inalámbrica detectando las redes accesibles y marcándolas para su posterior acceso 

  12. Leyes que actualmente impiden a científicos de países "no buenos" publicar en revistas americanas, congresos, etc... 

  13. Los pongo aqui porque es el argumento recientemente utilizado desde los atentados del 11 de Septiembre para cualquier cosa que se aleje del pensamiento único: Antipatriotismo, terrorista, etc (un poco al igual que antes los "malos" eran los "comunistas") 

  14. Por eso el Software Libre aventaja al Privativo, en que al haber libre disponibilidad del código, se puede analizar en busca de puertas traseras 

  15. Le acusan con cargos de Terrorismo 

  16. Seguridad por ocultación: aunque muchas empresas basan el modelo de seguridad en este sitema, se corre el riesgo de que el día que alguien de "dentro" difunda la información, se vean todos los fallos y alguien lo aproveche malintencionadamente ya que los fallos existen, sólo se han "tapado" 

  17. Peer to Peer: Programas utilizados para el intercambio de archivos de igual a igual 

  18. DRM:Digital Rights Management 

  19. Trusted Computing Platform Alliance 

  20. Nombre en Clave del sistema operativo de MS que permitiría un control absoluto bajo las políticas de "seguridad" de TCPA 

Click to read and post comments

may 13, 2004

Patentes de Software

¿Qué es una patente?

Una patente es la legitimación jurídica formal para la explotación de un recurso determinado.

En realidad se trata de un modelo restringido de monopolio comercial. Como dato histórico cabe recordar las famosas "patentes de corso", licencias de asesinato y expolio que los estados otorgaban a piratas (los corsarios) para que ejercieran impunemente sus actividades bajo determinadas condiciones beneficiosas para ambos. ¿No os suena de algo?

¿Qué es lo que se patenta en este caso?

Se patentan programas de ordenador, estructuras de datos, flujos de proceso, o sea, ¡¡¡conceptos!!!. Algunos ejemplos de patentes: Ventanas de navegación con pestañas, ventanas flotantes, conexiones seguras ssl (Como las que utilizan los bancos a través de internet), formatos de archivo mp3, mpg4...

A partir de una posible aprobación de la Directiva Europea de Patentes, y tras un breve periodo de adaptación legislativa, ninguno de estos mecanismos de tan común uso hoy en día podrían ser empleados de forma libre, o aún peor, podrían patentarse otros que a día de hoy no lo están, o bien estructuras básicas de cualquier sistema operativo posible ("interfaz de usuario" , "sistema de archivos", "dispositivo de entrada") que dejarían de ser utilizables libremente en aras de una privatización forzosa.

Por otro lado, patentar cualquier cosa, supone un costoso proceso burocrático que sólo grandes empresas o multinacionales pueden permitirse, resultando evidente el sembrado de grandes desigualdades.

¿Qué riesgos conlleva el uso de las patentes en general?

Los de cualquier monopolio: concentración injustificable y abusiba de la gestión de recursos fundamentales, reducción del desarrollo, parálisis social, desigualdad económica....

En un caso similar o más grave si cabe, las patentes sobre el código genético, un ejemplo clarificador que representan una amenaza directa y sin precedentes sobre la biodiversidad global del planeta, postuladas sobre una más que discutible legitimidad "propietaria" basada en el elitista conocimiento de las estructuras bioquímicas constituyentes de los organismos vivos. Lo que están en juego son variedades agroalimentarias, procesos metabólicos del cuerpo humano, procedimientos de extracción textil, etc.

En el caso del software, las patentes se establecen sobre la difusa ética de posesión de estructuras consecutivas de procedimientos lógicos, y en su caso, el riesgo está asociado a las trabas económicas y legales impuestas sobre las ventajas técnicas que cualquiera de ellas ofrece como herramienta del conocimiento humano: algoritmos de comunicación, gestión y transacción de datos, representaciones gráficas de la información, etc

En ambos casos, de lo que se trata es controlar recursos y bienes que por si, son y deben seguir siendo públicos y de libre uso. Tal como y como se están desarrollando los hechos que se debatirán el próximo 17 de mayo, no existen garantía alguna de que estos bienes comunes vayan a a quedar razonablemente protegidos de la rapiña industrial

¿Cúales son las motivaciones subyacentes?

La necesidad de imponernos forzosamente en el contexto económico y jurídico actualmente vijente en EEUU de forma que se pueda controlar la libertad de acceso a la información y de paso, acabar con cualquier posibilidad de autogestión comunitaria de los medios de producción y distribución comunicativa para asegurar de esa manera la pervivencia exclusiva del mercado capitalista en un clima de arancelismo informativo, y por lo tanto, impedir cualquier compromiso social que mantenga la necesidad de compartir el conocimiento.

¿Cúal es la situación actual en Europa?

En Europa estas medidas inquisitoriales quieren materializarse en la Directiva del Parlamento Europeo y del Consejo sobre Patentabilidad de invenciones implementadas en un ordenador.

El proceso burocrático que debe seguir esta directiva para su aprobación es muy complicado y comenzó en el año 2002 con la propuesta inicial de la Comisión Europea que fue presentada al Parlamento Europeo, donde gracias a la presión social, fueron aprobadas unas enmiendas (que protegen de la patentabilidad del software) en contra de lo que pretendía la propuesta inicial

El siguiente paso tendrá lugar el próximo 17 de mayo en el Consejo Ministerial de la Competitividad que fue convocado expresamente para tratar de conseguir un posicionamiento común de los 25 estados miembros sobre una nueva redacción de la Directiva, claramente modificada por los grupos pro-patentes aprovechando la actual presidencia irlandesa y que ignora las enmiendas aprobadas por el Parlamento, permitiendo así de nuevo la patentabilidad ilimitada de software. Éste es un paso muy importante porque si se lograse un acuerdo, ese sería el texto final que se presentaría para aprobación final del europarlamento.

Las directivas europeas son acuerdos legales supracomunitarios de corge general que posteriormente deben ser adaptados a cada una de las legislaciones existentes en cada uno de los estados miembros. Si esta directiva fuera aprobada de tal forma qu permitiera la patentabilidad de software, sólo habría lugar para la impugnación:

  1. El primer nivel sería a través del Tribunal de Justicia de las Comunidades Europeas (Luxemburgo)
  2. El segundo nivel sería a través del Tribunal Supremo del Estado Español (Madrid)

¿Qué se puede hacer?

De lo que se trata aquí es de presionar para que no sea ignorado nuestro desacuerdo con cualquier directiva que no tenga en cuenta las enmiendas logradas en septiembre del año pasado.

  1. Difundir con la mayor urgencia y extensión posible el contenido del problema. La consignas es: "¡¡Haz visible tu desacuerdo!!"
  2. Seguir haciendo frente al poder y sea cual sea el resultado de los acuerdos a los que se llegue en Europa, el libre acceso a la información es nuestro derecho inalienable y fundamental al que no podemos renunciar de forma alguna. Si es necesario apelaremos a la desobediencia civil electrónica.
  3. Al mismo tiempo es muy importante sensibilizar a nuestros representantes parlamentarios de las graves repercusiones de estas legislaciones y animarlos a votar en contra: queramos o no, son nuestros únicos portavoces válidos
  4. Podemos firmar esta Petición por una Europa Libre de Patentes
  5. Puedes enviar tu propuesta al jefe del Consejo Europeo, el Irlandés Bertie Ahem, su email es info@jef-europe.net
  6. Seguir potenciando el uso de Software Libre como gesto de independencia tecnológica grente a los modelos de software propietario, principales interesados en imponer las patentes de software en Europa
  7. Mira lo que hicieron los demás
  8. En fin, actúa, no esperes a que sea demasiado tarde, échale algo de imaginación que no vamos a decidirlo todo nosotros ¿no?
  9. Patentar nosotros la patentabilidad.

Enlaces

Créditos

Extraído de: http://hacklab.causaencantada.org/wiki/PatentesDeSoftware

Click to read and post comments