Pókerszoftverünk adatvédelmi jellemzői
„Magas alapú játéknál érdemes komoly erőfeszítéseket tenni annak érdekében, hogy a szoftveres megvalósítás feltétlenül a biztonsági és védelmi szempontok megfelelő figyelembevételével történjen.” – Matt Schmid, Cigital, Inc.
A felhasználók számítógépein futó kliensek és szerverünk kizárólag titkosított adatokat küldenek egymásnak. Fontos tudni, hogy a szó szoros értelmében véve a titkosítás önmagában még nem biztosítja az adatok védelmét. Egy olyan terem például, amely használ ugyan titkosítást, viszont valamennyi játékos kézbe osztott lapjainak adatait elküldi az összes kliens számára, nem biztonságos. Ezért tettünk komoly erőfeszítéseket biztonsági rendszerünk és előírásaink kidolgozására.
A fontosabb biztonsági jellemzők:
Programletöltés:
A biztonság fontosságának kérdései először a kliensprogramnak a PokerStars webhelyéről való letöltése során merülnek fel. Gondoskodnunk kell arról, hogy a letöltött szoftver módosításoktól mentes legyen. E követelmény teljesítése érdekében a következőkkel védjük a letöltési folyamat biztonságát.
- Az Internet Explorer a letöltött futtatható állomány érvényességét kulcsunk és a Thawte által kiállított tanúsítvány használatával ellenőrzi.
- Egyéb böngészők esetén HTTPS-kiszolgálónk, illetve letöltéseink biztonságát 1024 bites RSA-kulcs és a Thawte kiszolgálóján található tanúsítvány használatával védjük.
Biztonságos játékfolyamat:
Játékaink folyamatának biztonságát számos beépített funkció segítségével védjük.
- Szervereink hitelesítésére kliensprogramunk a saját tanúsítványkiadónk (CA) által kibocsátott tanúsítványokat használja.
- Tanúsítványkulcsunk 1024 bit hosszú.
- Kliensprogramunk az iparágban elfogadott SSLv3 protokollon keresztül kommunikál. Beállításai a hitelesítéshez és a kulcsok generálásához az RSA-algoritmus, míg az adatátvitel titkosításhoz tripla DES- (EDE3, külső CBC-módban) algoritmus használatát írják elő. Jelenleg 512 bites RSA-kulcsot használunk, amely az 1. forrásmunka szerint megfelelő a rövid és középtávon (azaz akár több éven át) megőrzendő titkos adatok esetében. Kiszolgálóink titkos kulcsait háromhavonta cseréljük, ami jó biztonsági ráhagyást jelent. A munkameneteket a tripla DES EDE3-algoritmus alkalmazásával titkosítjuk, ami még biztonságosabb.
- Jogosulatlan játékosok gépeire soha nem küldünk el olyan magánjellegű adatokat, mint például a kézbe osztott lapok.
ÖSSZEJÁTSZÁS
Az összejátszás a csalás egy formája. Lényege, hogy két vagy több játékos tájékoztatja egymást a kezükben lévő leosztásokról, vagy más módon működik együtt a velük egy asztalnál ülő többi játékos kárára.
Míg egyetlen leosztás lejátszása alatt az online pókertermekben egyszerűbb információkat megosztani, mint a valódiakban, a csalás leleplezését jóval nehezebb elkerülni, mivel játék után lehetőség nyílik valamennyi játékos lapjainak megvizsgálására.
Bármilyen kifinomult is legyen az összejátszás módszere, a leosztás lejátszásának menete mindenképpen el fog térni attól, mint ami összejátszás nélkül várható lenne. Ellenőrzési módszereink kiszűrik a szokatlan mintákat követő játékokat, illetve felhívják ezekre biztonsági munkatársaink figyelmét, akik ezt követően alapos manuális vizsgálatot végeznek. Kivizsgáljuk valamennyi játékosunk összejátszás gyanújáról szóló jelentését is.
Azon játékosok számláit, akiről bebizonyosodik, hogy bármilyen formában összejátszottak másokkal, véglegesen megszüntetjük.
KEVERÉSEK
„Aki véletlen számjegyeket generáló számtani módszereket igyekszik kidolgozni, az természetesen a bűn állapotában leledzik.” – Neumann János, 1951
Tisztában vagyunk azzal, hogy programunk szempontjából kritikus jelentőséggel bír az igazságos és semmilyen sémát nem követő keverési algoritmus alkalmazása. A 2. forrásmunkában leírt súlyos problémák elkerülése érdekében két, egymástól független forrásból nyerünk valóban véletlenszerű adatokat:
- A felhasználói adatbevitel különféle formáiból, melyek között szerepelnek az egérrel végzett mozgások, illetve a kliensprogramoktól begyűjtött összefoglalókból származó eseményidőzítések.
- Az Intel által kifejlesztett valódi hardveres véletlenszám-generátorból (3. forrásmunka), mely az entrópia forrásaként termikus zajt használ.
Ez a két forrás külön-külön is elegendő entrópiát biztosít az igazságos és semmilyen sémát nem követő keverésekhez.
A keverések főbb jellemzői:
- Egy 52 lapból álló kártyacsomag 52! különféle módon keverhető meg. Az 52! körülbelül akkora, mint 2 a 225. hatványon (egészen pontosan 80 658 175 170 943 878 571 660 636 856 404 000 000 000 000 000 különféle keverési lehetőségről van szó). Az egyenletes és nem megjósolható statisztikai eloszlás elérése érdekében mindkét entrópiaforrásunkból (a felhasználói adatbevitelből és a fehér zajból) 249 bitet használunk fel.
- Ezen túlmenően kiegészítő szabályokat vezettünk be a véletlenszerűség kívánt mértékének elérése érdekében. Ha például a felhasználói adatbevitelből nem nyerhető szükséges mértékű entrópia, akkor mindaddig nem kezdjük meg a következő leosztást, amíg azt az Intel véletlenszám-generátorából ki nem nyerjük.
- A biztonság szintjének emelése érdekében a két forrásból begyűjtött entrópiát az SHA-1 titkosítási hash-algoritmus alkalmazásával egyesítjük.
- A felhasználói adattámadásokkal szembeni védelmének, illetve a még fokozottabb biztonság elérésének érdekében SHA-1-alapú pszeudo-véletlengenerátort is alkalmazunk.
- A véletlenszerű bitfolyamokat egyszerű és megbízható algoritmus alkalmazásával konvertáljuk át a szükséges tartományon belülre eső véletlen számokká. Tegyük fel például, hogy a 0–25 tartományon belül szeretnénk véletlenszerűen kiválasztani egy számot.
- Ha 5 véletlenszerűen meghatározott bit áll rendelkezésünkre, akkor egy 0-nál nem kisebb és 31-nél nem nagyobb számot fogunk kapni.
- Amennyiben 25-nél nagyobb számot kapunk, úgy azt egyszerűen elvetjük, és újrakezdjük a folyamatot.
- E módszer segítségével kiküszöbölhetők a konvertáláshoz modulusműveleteket alkalmazó módszerek egyenetlenségei. Az utóbbiak nem megbízhatóak akkor, ha a konvertálandó tartomány elemeinek számát a kívánt tartomány elemeinek számával elosztva nem egész érték lesz az eredmény.
- Magát a keverési műveletet egy másik egyszerű és megbízható algoritmus alapján végezzük el:
- Először véletlenszerűen kiválasztunk egy lapot az eredeti pakliból (52 különféle lehetőség adott). E választás után az eredeti pakliban 51, míg az új pakliban 1 lap lesz.
- A második lépésben egy újabb lapot választunk ki véletlenszerűen az eredeti pakliból (ekkor 51 különféle lehetőség adott), majd azt az új pakli tetejére helyezzük. A második választás után az eredeti pakliban 50, míg az új pakliban 2 lap lesz.
- A második lépést mindaddig ismételjük, amíg az eredeti pakliból az összes lap át nem kerül az új pakliba.
- Ez az algoritmus mentes a „keverések rossz eloszlásától”, melyet a 2. forrásmunka ír le.
A PokerStars keverési algoritmusa rendelkezik a Cigital és a BMM International tanúsítványával
A PokerStars részletes tájékoztatást adott véletlenszám-generátoráról (RNG) két független szervezetnek. Mindkét megbízható forrást arra kértük, hogy alaposan elemezze az RNG kimenetét jellemző véletlenszerűséget, illetve annak a PokerStars lapjainak keverésében alkalmazott megvalósítását.
A független szervezetek teljes hozzáférést kaptak a forráskódhoz. Mindkettő igazolta, hogy keverési módszerünk véletlenszerű és biztonságos. További részletek az online pókerjáték véletlenszám-generátoráról szóló oldalunkon olvashatók.
A PokerStars biztonságos programjával játszható játékok
A PokerStars biztonságos pókerszoftverének használatával a következő pókerjátékokban és pókerversenyeken vehetsz részt:
[1] B. Schneier: Applied Crpytography (Alkalmazott kriptográfia)
[2] How We Learned to Cheat at Online Poker: A Study in Software Security (Hogyan tanultunk meg csalni az online pókerben: szoftverbiztonsági tanulmány) – http://itmanagement.earthweb.com/entdev/article.php/616221
[3] The Intel Random Number Generator (Az Intel véletlenszám-generátora) – http://www.cryptography.com/resources/whitepapers/IntelRNG.pdf



