Securitatea datelor în clientul de poker
"Atunci când miza este foarte mare, nici efort nu este prea mare pentru a se asigura faptul că soluţia software implementată are un grad de siguranţă maxim". - Matt Schmid, Cigital, Inc.
Toate comunicaţiile între clientul de poker de pe calculatorul tău şi serverele noastre sunt criptate. Este important de menţionat faptul că, strict vorbind, criptarea în sine nu garantează secretizarea datelor. De exemplu, un site care transmite cărţile proprii ale tuturor jucătorilor către toţi jucătorii de la masă nu este un site sigur, indiferent de metoda de criptare aleasă. De aceea am investit mult efort pentru a construi un sistem sigur şi un set de politici adecvate.
Cele mai importante aspecte ale securităţii:
Download-ul software-ului:
Primul punct în care securitatea devine importantă este momentul în care salvezi clientul de poker pe calculatorul tău, de pe site-ul PokerStars. Trebuie să ne asigurăm de faptul că acest download are loc fără ca programul de poker să fie modificat în vreun fel. Pentru aceasta am implementat următoarele caracteristici în procesul de download:
- Pentru Internet Explorer validitatea executabilului descărcat este verificată de browser folosind cifrul nostru şi un certificat Thawte.
- Pentru alte tipuri de browser folosind un cifru RSA pe 1024 de biţi şi un certificat Thawte pentru proteja serverul nostru de web HTTPS şi procesul de download.
Securitatea în timpul jocului:
Avem un număr de caracteristici ale transmisiei de date care garantează securitatea jocului în sine.
- Clientul nostru de poker foloseşte certificate emise de propria noastră Autoritate de Certificate (CA) pentru a autentifica serverele de joc.
- Cifrul certificatului nostru CA foloseşte 1024 de biţi.
- Clientul nostru de poker foloseşte protocolul standard SSLv3. Este, de asemenea, configurat să folosească RSA pentru autentificare şi pentru generare de chei de criptare şi protocolul triple-DES (EDE3, în mod outer-CBC) pentru criptare. Momentan folosim o cheie de criptare RSA pe 512 biţi care, conform [1], este suficientă pentru secretizarea datelor pe termen scurt şi mediu (câţiva ani). Şi din moment ce facem update la cheile de cifrare ale serverelor noastre o dată la trei luni, putem spune că siguranţa oferită este deplină. Folosirea protocolului Triple-DES pentru criptarea sesiunilor de joc chiar şi mai sigură.
- Nici un fel de date care au caracter personal, cum ar fi cărţile proprii, nu sunt transmise către ceilalţi jucători.
COLLUSION
Collusion este o formă de trişare prin care doi sau mai mulţi jucători îşi dezvăluie cărţile proprii sau au un acord de a trişa într-un mod asemănător care este dăunător celorlalţi jucători de la aceeaşi masă.
Cu toate că este mai uşoară transmiterea de astfel de informaţii între jucători în pokerul online decât în pokerul live, este în acelaşi timp mult mai greu ca astfel de practici să poată avea loc fără a fi detectate, din moment ce cărţile şi acţiunilor tuturor jucătorilor pot fi examinate de către personalul autorizat după încheierea unei mâini.
Indiferent de nivelul de complexitate al acestui fenomen denumit collusion, acesta presupune unele acţiuni pe care jucătorii în cauză nu le-ar fi luat dacă nu ar fi fost implicaţi în această formă de trişare. Metodele noastre de detecţie au ca scop investigarea acestor acţiuni dubioase, lucru care va duce apoi la o investigare manuală mult mai amănunţită. De asemenea, vom investiga toate sesizările venite din partea jucătorilor privitoare la posibilitatea ca unii jucători să practice această formă de trişare.
Dacă este dovedit faptul că un jucător a luat parte la o astfel formă de trişare, contul său poate fi închis.
AMESTECAREA CĂRŢILOR
"Oricine consideră că folosirea de metode aritmetice poate conduce la generarea de numere aleatoare se înşeală cu siguranţă." - John von Neumann, 1951
Suntem conştienţi de faptul că folosirea unui algoritm de amestecare a cărţilor cu totul corect şi impredictibil este o cerinţă critică. Pentru a ne asigura de acest lucru şi pentru a evita problemele descrise în [2], folosim două surse independente de date aleatorii:
- date primite de la jucători, cum ar fi un rezumat al mişcărilor de mouse făcute într-o anumită perioadă şi alte evenimente de acest gen.
- un generator hardware de numere aleatoare dezvoltat de Intel [3], care foloseşte drept sursă de entropie zgomotul termal.
Fiecare dintre aceste două surse asigură destulă entropie pentru a asigura o amestecare a cărţilor total impredictibilă.
Cele mai importante aspecte ale amestecării cărţilor:
- Un pachet de cărţi de 52 de cărţi poate fi amestecat în 52! moduri. 52! este aproximativ egal cu 2^225 (mai exact, 80,658,175,170,943,878,571,660,636,856,404,000,000,000,000,000,000,000,000,000, 000,000,000 de moduri). Folosim 249 de biţi aleatori din ambele surse de entropie descrise mai sus pentru a obţine o distribuţie statistică uniformă şi impredictibilă.
- Mai mult decât atât, aplicăm unele reguli foarte conservatoare pentru a ne asigura că vom obţine gradul de impredictibilitate dorit. De exemplu, dacă datele culese de la jucători nu generează destulă entropie, nu vom începe următoare mână de poker decât după ce vom obţine diferenţa de entropie necesară de la generatorul Intel.
- Folosim algoritmul de criptare SHA-1 pentru a combina entropia obţinută de la cele două surse, asigurând astfel un nivel sporit de securitate.
- De asemenea, folosim şi un pseudo-generator de numere aleatoare bazat pe SHA-1 pentru a creşte nivelul de protecţie în cazul unor atacuri informatice.
- Pentru a transforma fluxul de biţi aleatori în numere aleatoare folosim un algoritm simplu şi de încredere.
De exemplu, dacă avem nevoie de un număr la întâmplare între 0-25:- folosim 5 biţi la întâmplare şi transformăm acest număr din baza 2 în baza 10, generând un număr între 0 şi 31
- Dacă acest număr este mai mare decât 25 renunţăm la el şi alegem alţi 5 biţi în mod aleator pentru a genera un alt număr
- Această metodă nu poate crea un model predictibil de generare de numere.
- Pentru a face o amestecare de cărţi, folosim un alt algoritm simplu şi de încredere:
- întâi extragem o carte la întâmplare din cele 52 generate şi o aşezăm într-un nou pachet - acum pachetul original are 51 de cărţi, iar noul pachet o singură carte.
- apoi extragem o altă carte la întâmplare din cele 51 rămase în primul pachet şi o aşezăm în noul pachet, deasupra - acum pachetul original are 50 de cărţi, iar noul pachet 2 cărţi
- repetăm acest proces până când toate cărţile au fost mutate din primul pachet în cel de-al doilea.
- Acest algoritm nu este afectat de eroarea ''Distribuţia proastă a unei amestecări de cărţi'' descrisă în [2].
Procesul de amestecare a cărţilor PokerStars este verificat de Cigital şi BMM International
PokerStars a pus la dispoziţie informaţii detaliate despre RNG-ul folosit către două organizaţii independente. Am cerut astfel acestor două organizaţii recunoscute să facă o analiză detaliată a factorului aleator al rezultatelor din RNG-ul nostru şi al aplicaţie sale directe la PokerStars – amestecarea pachetului de cărţi.
Ambele companii independente au avut acces total la codul sursă al programului nostru şi au confirmat caracterul aleatoriu şi securitatea metodei noastre de amestecare a cărţilor. Pentru mai multe detalii poţi vizita pagina despre generatorul de numere aleatoare.
Jocuri disponibile la PokerStars
Următoarele jocuri de poker şi turnee de poker sunt disponibile la PokerStars:
[1] B. Schneier. Applied Cryptography
[2] "How We Learned to Cheat at Online Poker: A Study in Software Security" - http://itmanagement.earthweb.com/entdev/article.php/616221
[3] "The Intel Random Number Generator" - http://www.cryptography.com/resources/whitepapers/IntelRNG.pdf





