diumenge, 15 de febrer de 2009

Dolor Friki

O com passar-se el cap de setmana treballant amb php. És un dolor de llenguatge, si li intentes fer fer coses sèries (com jo intento). I si a més li sumes pàgines dinàmiques a la AJAX (on probablement m'hagi passat), amb programació bàsica sota xslt, que és un llenguatge molt molt raro, molt molt friqui, que serveix per agafar indesxifrables xmls i transformar-los indesxifrablement en altres coses, en el meu cas, en fragments d'una pàgina web.

I tot això amb codi auto-ofuscat.

En fi, prou de complaure's, llista d'èxits:

  • Ofuscats els passwords. Ara, mirant la base de dades és estadísticament impossible saber el password d'algú (sempre pots trobar col·lisions al sha-1, però se suposa que si és l'algoritme estàndard de hash del govern americà no serà fàcil).
  • Quasi-acabada la part de registre de contes. No funciona enviar e-mails, serà un efecte secundari de fer servir com a server un ordinador que no ho és: el meu portàtil. No ho corregiré fins que no em mogui a un servidor seriós.
  • Log-in completat
  • Pagina php de recursos completada (falta escriure el xslt necessàri per a convertir-ho en xhtml, aquest el faré sobre el paper abans).
  • Dissenyades moltes coses:
    • Relació preu-producció de les mines i quan puja cada ampliació
    • Com es calculen els recursos
    • Com s'executen les actualitzacions
    • Com es resolen els combats (simulat sota java ^.^), vagament (molt vagament) inspirats en nWoD.
    • Impostos, mercat, etc...

i finalment només dir-vos una cosa:

Demostenes' Nades d'olla XXXVI:

Una pregunta i una resposta no tenen, ni de bon tros, el mateix valor. Tu tens, amb una pregunta, una direcció, un camí; mentre que amb una resposta, sense la seva pregunta no tens res.

O sigui, 42.

P.S.: de xkcd.com:



P.P.S.: Per si algú vol saber què és una funció de hash...

Bàsicament una funció de hash és una aplicació exhaustiva a partir d'una certa informació (un arxiu, un password, una pel·licula) per treure'n una mena de resum. La gràcia criptogràfica de tot plegat, és que no es pot recuperar el tot - ni una part del tot - només amb el resum. És com una mena de firma digital.

Com es fa servir això per a guardar passwords? Molt senzill:
Tu, quan has d'administrar passwords, el primer que et bé al cap és guardar-los en un arxiu i després, quan has de comprovar si fulanito té el password que t'està donant vas a aquest arxiu i comproves si és el que hi tens guardat. Aquest mètode, encara que senzill té l'evident problema que si algú aconsegueix mirar el arxiu de passwords ja els té, com qui diu, i el menys evident, encara que més important, TU tens accés als passwords.

Com evitem aquests problemes? Funcions hash.
En comptes de guardar el password directament, en guardes el seu hash. Guardes la firma. I per comprovar si el password que et donen és correcte, en fas el hash i comproves si és el que toca. Que algú se't cola a la base de dades? Veurà els hash, però no els passwords, i no serà capaç de reproduir-los. Efectiu.

Evidentment això no resol tots els problemes. Queden atacs per diccionari (parcialment resolts gràcies a "salt"s, que tampoc cal explicar avui que ja heu digerit prou), que algú t'entri de veritat i canvii coses... La seguretat perfecte no existeix, però certes prevencions van bé d'agafar.

Preguntes, etc per comentari o per boca, m'és força igual... (de fet no, feu comentaris i així s'entera més gen :-D)

4 comentaris:

  1. el evident --> l'evident
    voca--> boca

    i m'ha semblat per fi comprensible el teu post per mi eh?
    okei okei,,, m'agrada força!


    ;')

    ResponElimina
  2. "per fi comprensible"?

    Que vol dir aixòs? xDDDDDDD


    P.S.: Gràcies per les correccions

    ResponElimina
  3. vol dir que quan parles de cartes no m'entero d'una punyeta....

    ResponElimina
  4. En breu tornaré a parlar de cartes, especialment en motiu del torneig de diumenge :D

    ResponElimina