Quickies

1. Ce vedeam acum 2 ani pe National Geographic ca se va intampla peste 100 de ani, a inceput deja sa se intample: oceanul planetar si permafrostul, au inceput sa degaje metanul captat de-a lungul eonilor datorita incalzirii globale. Celor care cred ca asta inseamna rezolvarea crizei gazelor o mica informatie: 1 tona de metan echivaleaza cu 25 tone de CO2, iar asta nu este tot – daca CO2 este relativ usor de captat (in roci, biomasa etc), metanul este captat in milioane de ani si doar sub o anumita temperatura.

2. In cat timp analizezi calitativ 20TB? Cu un calculator simplu iti ia ani. Intr-un intranet sau grid distribuit cu cateva sute de calculatoare, probabil iti va lua zile-saptamani. IBM a facut-o in 20 de minute folosind supercalculatorul Blue Gene si un algoritm matematic revolutionar.

3. Valve se da pe Mac, incepe era jocurilor de calculator pe MacOS, adio Boot Camp.


URL shortening – How do they do it

URL shortening services had experienced a big push in the age of social networks rising, such as Twitter, where big urls collide with the 140 characters user input restriction.

So there was this need of magically transform URLs like this one http://raduboncea.ro/2009/04/01/twitter-autofollow-and-dm-using-python-twitter-imaplib-and-gmail/ into something like this http://tinyurl.com/cralfk.

Many would be tempted to think there is some kind of compression algorithm that would shorten a big URL and make it fit into a unique combination of 4,5 or 6 characters and then decompressed upon user request. Well it doesn”t work like this, mathematics prohibit it.

So how does it actually work?
A URL shortening service takes the big URL and saves it into a database along with an auto incremented numerical value, an id or sequence, so we would have the first big URL saved with ID=1, the second with ID=2 and so on. When someone would ask for http://tinyurl.com/1/ we would get from the database the big URL identified by ID=1 and redirect the user to that URL.

But there is a problem: having numerical ids does not shorten urls too much. For the URL number 1 million we would have 7 numerical characters. So the next step is to change base numerotation from 10 to a bigger one, lets say 36, so we include all a-z small latin letters or, why note, 62 which includes also the capital chars A-Z.
In 36 base we can save as much as 1.679.615 URLs into 4 characters. On base 62 we have 14.776.335 URLs fit into 4 chars, almost 10 times as much as base32 and 14.776 times base10.

Some security issues.
Many shortening services stopped to the algorithm above without digging into a very important security issue which is related to how redirects work. It is critical, before redirecting users to the URL they requested to check what’s behind that URL, to check if the URL is not yet another redirect which may result into a recursive loop and may disrupt the service.

A malicious user may save a URL to a page which will later modify to redirect back to the service URL and thus attempting to generate an infinite loop which could make the interpreter to hang.

To avoid this kind of DoS vulnerability, we must not allow redirects to our own links and to limit redirects to outside to a smaller finite number of depths analysis.

Beneath a small model-view example in django, using also urllib to check for redirects and the base10-base62 conversion algorithm similar to the base36 which is included in django.





Securitatea informațională

Prin securitate informațională înțelegem protejarea atât a informației cît și a sistemelor informatice care asigură depozitarea informațiilor, accesul și transportul lor.
Scopul esențial în protecția informațională constă în asigurarea a 3 elemente esențiale: confidențialitatea, integritatea și disponibilitatea.

Confidențialitatea
Este definită conform ISO (organizația mondială pentru standardizare) ca fiind asigurarea accesabilității informației doar de către persoanele autorizate în accesarea și folosirea acestor informații.
Cea mai eficientă metodă de asigurare a confidențialității informațiilor este criptografia. Astfel, datele cu caracter privat și sensibile sunt encriptate de către sursă și decriptate de către persoana autorizată.
Asigurarea confidențialității este critică în aplicațiile care folosesc tranzacții bancare online. De asemenea confidențialitatea este necesară și în menținerea caracterului privat al datelor cu caracter personal.

Integritatea datelor și a informațiilor
Are ca obiectiv asigurarea că informațiile ajung la persoanele autorizate nealterate, în formă identică cu informațiile de la sursă, iar modificările asupra datelor se fac doar de către persoanele care au autorizație.
Integritatea informațiilor poate fi compromisă de către persoane în mod accidental sau în mod voit. De asemenea alterarea datelor în mod accidental se poate întâmpla și din cauza disfuncționalității sistemelor informatice.
De accea se impun algoritmi de verificare a integrității datelor, aceștia putând fi catalogați ca MIC(Message Integrity Code) și MAC(Message Authentication Code).

  • MAC constă în generarea unui cod, numit și tag, pe baza unei chei secrete și a conținutului mesajului, de către sursă. Sursa va trimite mesajul alături de MAC, iar destinatarul va verifica dacă MAC-ul trimis este identic cu cel obținut din folosirea aceluiași algoritm aplicat mesajului recepționt. Desigur în acest caz destinatarul trebuie în prealabil să fi obținut cheia secretă de la sursă.
  • Spre deosebire de MAC, MIC nu folosește o cheie secretă pentru generarea codului, ci doar un algoritm de extragere a codului din conținutul mesajului. Algoritmii MAC pot fi construiți folosind primitivele criptografice,cum ar fi funcțiile hash de encripție (HMAC) sau blocurile cifru (OMAC, CBC-MAC si PMAC).
Algoritmi HASH Algoritmi MAC
GOST
HAS-160
HAVAL
LM hash
MDC-2
MD2
MD4
MD5
N-Hash
RadioGatún
RIPEMD
SHA family

CubeHash
Fugue
JH
Keccak
Lane
SANDstorm
MD6
Skein

Snefru
Tiger
WHIRLPOOL
crypt(3) DES

DAA
CBC-MAC
HMAC
OMAC/CMAC
PMAC
UMAC
Poly1305-AESa

Disponibilitatea
Se referă la asigurarea accesului la informație, atunci când este cerută și implică în principiu disponibilitatea sistemelor informatice de a oferi informația. Internetul a perfecționat acest principiu prin introducerea conceptului de disponibilitate permanentă (High Availability), fiind o necesitate absolută a traseului informție-utilizator. Sistemele informatice care oferă informație în internet trebuie să asigure disponibilitatea permanentă, să prevină prin soluții tehnice întreruperile de serviciu din cauze diverse (căderi de tensiune în rețeaua electrică,  disfunționalități hardware, etc) și  prevenirea atacurilor de tip Denial of Service.

Pe lângă cele 3 principii enumerate, confidențialitate, integritate, disponibilitate, în 2002, Don Parker a propus adițional alte 3: posesia, autenticitatea și utilitatea.

Alte principii de bază ale securității informaționale

Non-repudierea
În termeni juridici non-repudierea înseamnă imposibiliatea ca persoanele angajate în schimbul de informații să nege trimiterea, respectiv recepționarea informației. În asigurarea acestui principiu, sistemele informatice care deservesc informația, trebuie să înregistreze schimbul de informație (tranzacție) și starea acestei tranzacții, atât la emitent cât și la destinatar, astfel încât, prin comparare, să poată fi cunoscut dacă informația se poate supune repudierii sau nu.
Un exemplu ar fi sistemul de mesagerie (e-mail). Aplicația de tip server care trimite mesajul va scrie în jurnal starea și coordonatele specifice mesajului pentru identificare:
Jan 17 12:51:12 sursa-emitent sendmail[22714]: n0HApCg9022712: to=<client@adresaemail.ro>, delay=00:00:00, xdelay=00:00:00, mailer=esmtp, pri=122863, relay=smtp-serverclient.ro [209.85.220.179], dsn=2.0.0, stat=Sent (OK 1232189476 4si182086fxm.14)
În acest caz serverul de smtp care a trimis mesajul a catalogat mesajul ca trimis (Sent OK) și a primit inclusiv confirmarea că mesajul nu poate fi repudiat din cauză că destinatarul a recepționat mesajul acesta fiind salvat cu identificatorul  1232189476 4si182086fxm.14.

Autenticitatea
În comerțul electronic, e-Business în asigurarea securității informaționale este necesar a asigura și autenticitatea datelor, tranzacțiilor, comunicațiilor de documente (electronice sau fizice). De asemenea trebuie verificată inclusiv autenticitatea parților angajate, expeditorul și destinatarul.

Management-ul riscului
Management-ul de risc este procesul de identificare a vulnerabilitățiilor și amenințărilor la resursele informaționale folosite de către o organizație în atingerea scopurilor proprii, și alegerea de contra-măsuri, dacă este posibil, care să reducă astfel de riscuri la un nivel tolerabil, alegere bazată pe valoarea resursei informaționale pentru organizația respectivă.

Blogged with the Flock Browser