# Seguretat per la foscor

El principi de la seguretat per la foscor reposa sobre la no-divulgació d'informació relativa a l'estructura, al funcionament i a la implementació de l'objecte o del procediment considerat, per assegurar-ne la seguretat. Això s'aplica als àmbits sensibles de la informàtica, de la criptografia, de l'armament, etc.

## Cryptografia

En cryptografia, la seguretat per la foscor va en contra del Principi de kerckhoffs que vol que la seguretat de tot cryptosistema no descansi més que sobre el secret de la clau.
Un missatge avaluat per exemple amb ROT13 no pot continuar sent secret més que si el mètode que es fa servirt per xifrar continua sent desconegut de l'adversari. Si l'agressor «coneix el sistema» llavors serà capaç desxifrar el missatge. Els cryptoanalistes prediquen la transparència en matèria de procés i de disseny de sistemes criptogràfics. Tal pràctica permet avaluar millor la seguretat dels algorismes.

## Protecció contra l'enginyeria inversa

Per evitar que qualsevol pugui trobar el codi font d'un programa a partir de la versió compilada (binari), certes societats utilitzen programes per fer-ne l'anàlisi més àrdua. Existeixen diferents mètodes. Es pot citar:
* ofuscació del codi (vegeu més avall);
* Xifratge del programa;
* Execució de codi a distància: una part del programa és teleencarregada a cada execució;
* etc.
Ofuscació del codi màquina:
* Afegitó d'instruccions vàlides inútils i/o d'arguments inútils a les funcions (per fer la lectura del codi més complexa);
* Afegitó d'instruccions invàlides i un salt sobre aquestes instruccions per evitar els desassemblador que no suporten aquest gènere de "protecció";
* Afegitó de protecció anti-debug;
* etc.
Una societat pot distribuir el codi font dels seus programes obfuscant-los prèviament:
* Identificadors escollits amb noms semànticament sense significant;
* Supressió del sagnat, fins i tot de tots els espais no significatius;
* Supressió dels comentaris;
* Afegitó d'instruccions inútils;
* Afegitó d'arguments inútils a les funcions;
* etc.

### Exemple sobre els mainframe d'IBM

La societat IBM desenvolupava els seus principals programaris d'ordinador central en un llenguatge anomenat Pl/360, que generava de l'assemblador. És aquest codi assemblador el que era subministrat als seus clients que reclamaven les versions font dels productes i no el codi Pl/360. Ni al compilador del Pl/360 ni a l'especificació del llenguatge no se subministrava al públic, encara que les instruccions Pl/360 apareguessin en comentaris del llistat de l'assemblador que sí que es subministrava.

## Els límits

Pel passat, diversos algorismes o mòduls de programaris que contenien detalls interns guardats secrets han estat revelats al públic. A més a més, les vulnerabilitats s'han descobert i s'han explotat, fins i tot si els detalls interns han continuat sent secrets. Els exemples següents, mostren la dificultat, fins i tot la ineficàcia de guardar secrets els detalls dels sistemes i altres algorismes.
Un procediment basat sobre la seguretat per la foscor menteix sobre la fiabilitat real de la seva seguretat, en el pitjor dels casos, o almenys no n'anuncia més que els punts forts, en els millors. És llavors una senzilla relació de confiança establerta entre els proveïdors de l'objecte, de l'estructura o del procediment així protegit i els seus usuaris que fa referència en la visió de la-dita seguretat. Que una falla seriosa qüestioni el sistema és una font de dificultat per al proveïdor, ja que a més a més de les conseqüències directes degudes a la feblesa explotada, l'usuari es pot sentir enganyat pel fals sentiment d'invulnerabilitat en el qual s'ha mantingut.

### Exemples diversos

* El xifratge A5/1 per als telèfons mobiles s'ha fet públic en part gràcies a l'enginyeria inversa. Idem per a RC4: veure Arcfour.
* Els detalls de l'algorisme del programari criptogràfic RSADSI han estat revelats per una pretesa font sobre Usenet.
* Les vulnerabilitats en les versions successives de Microsoft Windows, el seu navegador web per omissió Internet Explorer, i les seves aplicacions principals de missatgeria Microsoft Outlook i Microsoft Outlook Express ha estat fonts de problemes a través del món quan els virus, troians, o els cucs informàtics les han explotat.
* Els detalls de la màquina de vot electrònic (societat Diebold Election Systems han estat publicats en un lloc web oficial, aparentment de forma intencionada.
* Porcions de codi font del sistema operatiu Microsoft Windows 2000 han estat revelades.
* El sistema operatiu dels ruters Cisco ha estat descobert accidentalment en una xarxa de l'empresa.

## Obertura i seguretat

La qualitat reconeguda de nombrosos programaris lliures en matèria de seguretat (Apache, Mozilla Firefox, Gnupg) és una bona il·lustració que l'obertura no perjudica la seguretat.
Citació del diputat francès Bernard Carayon en el seu informe Té armes iguals Presentat al Primer Ministre l'octubre de 2006: Finalment, i perquè el codi font és públic i, per tant, auditable, la seguretat dels programaris lliures es pot assegurar millor.

## Vegeu també

* Enginyeria inversa
* seguretat de la informació

## Referències

* ↑ Pl/360: llenguatge de programació dissenyat per Niklaus Wirth per a Ibm 360 i 370, veure (anglès) Pl/360
* ↑ «el 2004, 13 milions de línies de codi font de Windows 2000 en la naturalesa!». Arxivat de l'original el 2008-05-16. [Consulta: 10 gener 2010].
* ↑ Pdf L'informe del diputat Carayon al Primer Ministre Arxivat 2008-12-09 a Wayback Machine.