Arxiu de la categoria 'Informàtica'.

Kerckhoffs i l’ocultació del codi

dijous 19 de octubre de 2006

Aprofitant que aquest semestre em toca estudiar un poc de criptografia, us presentaré al doctor Auguste Kerckhoffs, un professor de llengua que ens va deixar a principi del segle passat.

kerkhoffs.jpg

En particular volia parlar del Principi de Kerckhoffs.

Aquest criptògraf ja va afirmar fa dos segles el que pot semblar incoherent: és més segur fer públics els algorismes de seguretat d’un sistema i el seu funcionament que no intentar amagar-los als atacants. Tan sols cal tenir cura d’ocultar les claus.

És a dir, si tu creus que amagant els algorismes de seguretat del teu sistema va a ser més segur estàs enganyat, perquè com dia Claude Shanon, l’enemic ja coneix el teu sistema.

És el que s’anomena la seguretat mitjançant la transparència, en contraposició a la seguretat mitjançant l’ocultació, que es basa en la idea que amagant els algorismes d’un sistema fas ocultes també les seues vulnerabilitats a l’enemic.

Però el problema radica en què si ocultes els algorimes a l’enemic però aquest descobreix un forat de seguretat, llavors l’enemic pot fer el que vulga amb el teu sistema.

És la tècnica que fa servir el programari propietari, com per exemple MS, que pensa que amagant tots els problemes de seguretat del seu sistema el fan menys vulnerable als atacants. Però i si amagues un problema (i no el resols perquè així ningú s’entera) i l’enemic el descobreix?: ja tens una porta pel darrere.

Com molt bé deia Eric Raymond: “qualsevol disseny de programari de seguretat que no assumisca que l’enemic posseeix ja el codi font ja és per si mateix insegur; per això no cregues mai en el codi tancat“. Per a mi és evident això.

Kerckhoffs afirmava al seu axioma que si fas públic els algorismes i mantens oculta la clau aconsegueixes dues coses: si hi ha cap problema als algorismes, com són visibles per tothom són millorables i modificables. I segona, si l’enemic descobreix com entrar al sistema amb la clau oculta pots, de manera senzilla, tornar a encriptar el sistema, simplement modificant la clau, sense haver de fer el mateix amb tot el sistema.

I això ho va dir fa 2 segles. I és totalment aplicable a qualsevol aspecte del programari.

[Actualització 22/10/2006]: Segons puc llegir en Kriptòpolis.org, ens trobem davant d’un exemple clar del que deia en aquest apunt:

Un dels codis font per a la votació electrònica en els Estats Units s’ha filtrat. Les autoritats, tancant els oïts als experts informàtics i analistes que demanaven el contrari, el tenien ocult intentant així que fos més segur. Ara possiblement s’ha filtrat i ja no és segur.

A qui admire?

dissabte 17 de juny de 2006

Hui tinc l’exàmen final presencial de TALF II (Teoría d’Autòmats i Llenguatges Formals II), una de les assignatures més difícils amb què m’he trobat als meus estudis, malgrat el seus mínims 4.5 crèdits de què consta.

En ella ens hem enfrontat amb els problemes informàtics estudiant dues característiques, la calculabilitat i la complexitat.

En la calculabilitat hem descobert, per fi, entre altres coses el per què ens han dit durant tota la carrera que és impossible implementar un algorisme per evitar que un ordinador es quede penjat. Un problema d’aquest tipus és incalculable i el que es fa a la pràctica davant d’aquest problema és fer servir l’algorisme de l’estruç: suposar que no es va a penjar i si ho fa, el mètode més senzill per solventar-ho és que l’usuari reinicie l’ordinador.

La complexitat m’agradat més encara si pot ser. M’ha resultat curiós el que s’afirma als apunts: si trobeu un problema NP que siga resoluble en temps polinómic, és a dir, si demostreu que P=NP, llavors es convertireu en els més famosos de la informàtica teòrica.

Evidentment, el problema P=NP no és senzill, de fet és un dels problemes matemàtics del mil·leni. Aleshores puc afirmar clarament que no vaig a ser famós. Però he volgut fer un esforç i intentar pensar quins són els meus ídols informàtics. A qui admire?

La veritat que no hi ha molts “informàtics famosos”, però hi ha tres que sí pense que són un model a imitar.

El més gran per a mi és Donald E. Knuth(1*):

KnuthAtOpenContentAlliance.jpg

Possiblement és el ser humà viu que més sap d’algorismes i la seua implementació. És inevitable pensar en ell i en el seu llibre The Art of Computer Programming en la informàtica actual, segons la meua opinió.

El segon que admire és, com no, Avram Noam Chomsky (2*):

Noam_chomsky_cropped.jpg

Gran especialista en lingüística, a ell li devem entre altres coses la classificació de llenguatges i gramàtiques contextuals i incontextuals. Possiblement el que més m’agrada d’ell siga el seu activisme polític: és extremadament crític amb la realitat americana i és molt recomanable llegir els seus llibre i/o escrits que podeu trobar a la seua web.

El tercer personatge de la informàtica al qual admire és Edsger Wybe Dijkstra (3*):

Edsger_Dijkstra_large.jpg

A ell li devem entre altres coses l’algorisme que duu el seu nom i que resol en temps polinòmic problemes que tenien un cost exponencial que sembla poc, però és de gran importància per a un munt de problemes. La llàstima és que ja va morir fa quatre anys i no pot seguir donant-nos classes.

Aquestos són els meus tres grans personatges de la informàtica.

Notes:

(1*) Donald E. Knuth:

http://www-cs-faculty.stanford.edu/~uno/
Fotografia: Presa el 25 d’octubre de 2005 per Jacob Appelbaum.
Llicència de la fotografia: http://creativecommons.org/licenses/by-sa/2.5/

(2*) Avram Noam Chomsky:

http://www.chomsky.info/
Llicència de la fotografia: The copyright holder of this image allows anyone to use it for any purpose including unrestricted redistribution, commercial use, and modification.

(3*) Edsger Wybe Dijkstra:

http://www.cs.utexas.edu/users/EWD/
Fotografia: La imatge és cortesia de Brian Randell.
Llicència de la fotografia: It is under a non-commercial-use only licence.

Tinc un defecte

divendres 7 de octubre de 2005

En realitat en tinc molts, però aquest és especialment preocupant.

Veureu.
En un món, el de la informàtica, en el que tothom té un ordinador a casa. Un món en el que a ningú no li agrada “demostrar” que no sap, i en el que tothom sap dir unes quantes paraules tècniques enlloc per a no donar la impressió que no té ni idea, a mi no m’importa demostrar-ho.

Sóc estudiant d’informàtica de sistemes. I sé segur que necessitaria un parell de vides per aprendre aquesta carrera. És més, sé que encara així, davant el constant avanç que s’hi està produint, és impossible estar al dia en aquesta enginyeria. L’única cosa que sé fer és aprendre, i com més aprenc és preguntant. I no m’importa preguntar sobre nimietats.

A molts, en canvi, tant homes i dones no els agrada demostrar-ho per si de cas això els suposa donar entendre que no estan a l’última. El més inquietant per a mi és que ho he notat tot això també en persones de la meua carrera.

Tampoc no sé si això és culpa d’una matèria com la nostra, la informàtica, a la que tothom hi té accés i de la que tothom en sap alguna cosa. No sé, per exemple, si al estudiants d’automoció també els passa el mateix o és una peculiaritat d’aquesta carrera. Una conversa possible en el cas de l’automoció podria ser:
- Jo crec que el millor pistó per a un motor turbo és el d’alumini…
- Doncs ara hi ha un aliatge d’alumini amb tocs de bronze que és una passada… Saps escapçar un pistó?
- No.
- Ja ja ja ja.

Crec que la informàtica és diferent, no?

El que ve

diumenge 25 de setembre de 2005

Llig en un article del Wall Street Journal més informació sobre el nou sistema operatiu privatiu de MS.

Sembla ser que almenys un executiu amb experiència li ha dit fa poc al Billy que el nou sistema operatiu de MS, el Vista (TM), no funcionarà. El problema segons aquest executiu és el model de desenvolupament. Com podeu llegir a l’article, “MS tenia centenars centenars de programadors cadascú dels quals feien la seua part del codi de l’ordinador, i després cada tros es juntava per a formar un programa desmesurat”. Segons l’executiu MS ha de canviar i tornar a comenar.

A mi el que m’interessa del text són dues coses.
Primera, com a consumidor, estic veient, per la informació que s’està fent pública sobre el nou sistema operatiu, que aquest va a ser un monstre incapaç de ser mogut pel maquinari que ara tenim, un programari totalment innecessari que ens van a clavar fins a la medula i del qual, per a més inri, van a dir que és un producte d’innovació total. Pel que sembla també, va a ser un complet merder ple de forats i errades que no van a solucionar. Un producte amb DRM per a controlar el fluxe d’informació. Açò no em preocupa personalment perquè jo no el vaig a comprar. Em preocupa més pels amics, que ara per ara no tenen altra alternativa que empassar-se’l.

Segona, més important per a mi. Diu l’article que l’executiu avisava que MS pot quedar-se fora del mercat davant dels seus competidors, i cite literalment: “la creixent amenaça dels rivals com ara Google Inc., Apple Computer Inc. i aquells que fan el sistema operatiu lliure Linux“.

Fixeu-vos: a aquest grup de gent que fa el sistema operatiu lliure Linux (GNU/Linux, per a ser exactes…) els compara amb empreses d’una grandària econòmica com ara Google o Apple. Aixó corrobora el que sempre hem dit: el treball “per amor a l’art” que fan els programadors dels sistemes GNU/Linux val molts diners. Un programa com ara Mozilla Firefox, per posar un exemple, si l’haguera fet una empresa privada hauria costat molt de temps i diners.
Fixe-vos també: ens compara al mateix nivell d’innovació amb empreses com ara Google o Apple. Aixó corrobora el que sempre hem dit: el nostre model de desenvolupament, el del programari lliure, produeix molta més innovació i creació que no el tancat. I la prova està en la qualitat de molts programes lliures.

Anem pel bon camí.

Les lleis del mercat

diumenge 15 de maig de 2005

Ara pense com a programador.

Amb el programari propietari només puc treballar fent de servei tècnic d’aquella empresa monopolística que té la seua seu als Estats Units. Perquè modificacions en el programari no puc fer-ne. No tinc el codi, i per tant, si el meu client em demana alguna cosa especial, hauré de cercar alguna eina propietària que faça alguna cosa pareguda. Més sobrecost per al meus petits guanys.

Ja ni em plantege muntar una empresa pròpia de programari propietari. Hi ha milers d’empreses d’aquest tipus, milers que han tancat i milers que tancaran. És una crua lluita entre voltors per la simple subsistència.
A més, és molt costós fer un programari de gestió d’aquest tipus. Moltes hores de programació, molts pagaments a programadors i milions de línies de codi per a tan poc de rendiment. No val la pena.
Saps la quantitat de programari de gestió que fa pràcticament el mateix?

I si treballe programant per a aquesta empresa americana o alguna similar? Possiblement serà quasi impossible. Però així i tot, les lleis del mercat fa que els programadors asiàtics, on els sous són molt més barats tinguen totes les possibilitats. Passa el mateix que en la indústria tradicional.
Llegiu, si no s’ho cregueu, per example aquesta notícia (enllaç gràcies a Oliver Hernàndez Valls).

I amb el programari lliure?
El programari lliure impulsa la indústria local. No cal treballar per a ningú. Tinc el codi i puc fer les modificacions que el client em demane amb l’única limitació del meu coneixement del llenguatge que trie per a la meua aplicació.

També treballaré fent serveis per al meu client, com en el programari propietari, però en aquest cas la qualitat de les meues personalitzacions poden crear una major fidelització de la meua clientela.

No tindré grans costos de programadors i hores dedicades, perquè programes de gestió amb llicència GPL hi ha suficients, i en diversos llenguatges. En puc triar. Sols he d’agafar el seu codi i adaptar-lo a les demandes del meu client.

La lluita pel meu client serà dura, igual que amb el programari propietari. Un altre pot donar el mateix servei que jo estic donant al meu client. Jo hauré de millorar els meus serveis, adaptar-los als canvis en la tecnologia, fer notar al meu client que el cuide i l’estime.

La propietat del programari i del maquinari passa a ser d’ell, del meu client. I segur que notarà tots els avantatges.

Cada vegada entenc menys als que defensen el programari propietari.

Barahona

dijous 24 de març de 2005

He traduït un article del Jesús M. González Barahona de fa uns anys, però que m’ha paregut interessant perquè encara està vigent el seu contingut: Falsedats sobre el programari lliure.
Parla d’alguns idees falses que envolten el programari lliure i que fa que, fins i tot els propis enginyers informàtics, tinguem una falsa idea del que és i el que suposa.
Bona lectura!

Una bogeria de MS

dijous 24 de març de 2005

En Slashdot hi trobe un apunt des del que he pogut llegir una notícia que em sembla increïble, i que posa cada vegada més clar que això de les patents és una bogeria que s’ha escapat de les intencions inicials d’aquest tipus de lleis protectores d’empreses.

Resulta que MS està intentant patentar (sembla que no és la primera vegada) quelcom similar al IPv6, la nova versió d’Internet. El titolar encara ho diu més clar: “MS intenta patentar altra vegada Internet”.

Us recorde que la intenció de les patents és protegir la creació pròpia d’una empresa durant uns anys perquè aquesta empresa puga treure profit de les despeses emprades en la investigació. Però allò patentat no pot estar fet per altres, ni pot estar basat en el treball d’altres… Però empreses amb molta pasta estan aconseguint que els patenten tecnologia que ens pertany a tots.

Com diu el titular de la notícia, tot açò és una mostra més de com les patens avui en dia serveixen per a matar i inhibir els estàndards, cosa que intenta MS des de sempre.

Increïble…