Prywatność danych w oprogramowaniu do gry w pokera
„Gdy stawki są wysokie, warto poczynić wszelkie starania, aby zapewnić, żeby oprogramowanie zostało wdrożone z uwzględnieniem odpowiedniego poziomu bezpieczeństwa i ochrony”. — Matt Schmid, Cigital, Inc.
Cała komunikacja między oprogramowaniem klienckim działającym na komputerze klienta i naszymi serwerami jest szyfrowana. Należy zauważyć, że, ściśle mówiąc, samo szyfrowanie nie gwarantuje prywatności. Na przykład witryna, w której karty wszystkich graczy są przesyłane do każdego, nie jest bezpieczna bez względu na szyfrowanie. Właśnie dlatego poświęciliśmy wiele wysiłku na projektowanie naszego systemu i zasad zabezpieczeń.
Najważniejsze informacje o zabezpieczeniach:
Pobieranie oprogramowania:
Pierwszym punktem, w którym zabezpieczenia są ważnym czynnikiem, jest pobieranie oprogramowania klienckiego z witryny PokerStars. Musimy zapewnić, aby oprogramowanie klienckie zostało pobrane bez modyfikacji. Aby spełnić to wymaganie, w proces pobierania wbudowane zostały następujące funkcje:
- W programie Internet Explorer poprawność pobranego pliku wykonywalnego jest weryfikowana przez przeglądarkę przy użyciu naszego klucza i certyfikatu firmy Thawte.
- W przypadku innych przeglądarek używamy 1024-bitowego klucza RSA i certyfikatu serwera firmy Thawte w celu zabezpieczenia naszego serwera internetowego HTTPS i plików do pobrania.
Zabezpieczenia w czasie gry:
Mamy wiele wbudowanych funkcji zapewniających bezpieczeństwo samej gry.
- Nasze oprogramowanie klienckie używa certyfikatów wystawionych przez własny urząd certyfikacji (CA, Certificate Authority) w celu uwierzytelnienia naszych serwerów.
- Nasz klucz certyfikatu CA ma długość 1024 bitów.
- Nasze oprogramowanie klienckie używa protokołu SSLv3 będącego standardem branżowym. Jest ono skonfigurowane do uwierzytelniania i generowania kluczy przy użyciu algorytmu RSA oraz do szyfrowania za pomocą algorytmu Triple DES (EDE3, w trybie zewnętrznego CBC). Obecnie używamy 512-bitowego klucza RSA, który według [1] jest wystarczający dla tajemnic krótko- i średnioterminowych (do kilku lat). Ponieważ aktualizujemy klucze prywatne serwera co trzy miesiące, zapewnia to duży margines bezpieczeństwa. Korzystanie z algorytmu Triple DES EDE3 do szyfrowania sesji jest uważane za jeszcze bezpieczniejsze.
- Żadne dane prywatne, takie jak karty, nie są nigdy przesyłane do innych graczy.
ZMOWA
Zmowa to forma oszustwa, w której dwoje lub więcej graczy sygnalizuje swój stan posiadania lub w inny sposób tworzy spółkę oszustów na szkodę innych graczy przy tym samym stole.
Chociaż z jednej strony łatwiej jest przekazywać informacje między będącymi w zmowie graczami podczas gry w pokera online niż w sali w budynku, znacznie trudniej jest uniknąć wykrycia, ponieważ po rozgrywce można zbadać karty wszystkich graczy.
Bez względu na stopień zaawansowania zmowy musi ona obejmować rozegranie rozdania, które zostałoby rozegrane inaczej, gdyby nie było zmowy. Nasze metody wykrywania wychwycą odmienne wzorce gry i ostrzegą personel działu zabezpieczeń, który następnie przeprowadzi dokładne sprawdzenie ręczne. Sprawdzamy również wszystkie zgłoszenia graczy o podejrzeniu zmowy.
Jeśli którykolwiek gracz zostanie uznany za uczestnika jakiejkolwiek formy zmowy, jego konto może zostać trwale zamknięte.
TASOWANIE
„Każdy, kto rozważa arytmetyczne metody generowania przypadkowych cyfr jest, oczywiście, w stanie grzechu”. — John von Neumann, 1951
Rozumiemy, że zastosowanie uczciwego i nieprzewidywalnego algorytmu tasowania ma krytyczne znaczenie dla naszego oprogramowania. W celu spełnienia tego wymagania i uniknięcia poważnych problemów opisanych w [2] używamy dwóch niezależnych źródeł rzeczywiście losowych danych:
- danych wejściowych użytkownika, łącznie z podsumowaniem ruchów myszy i mierzeniem czasu zdarzeń, zebranych z oprogramowania klienta;
- prawdziwego sprzętowego generatora liczb losowych opracowanego przez firmę Intel [3], używającego szumu termicznego jako źródła entropii.
Każde z tych źródeł samodzielnie generuje entropię wystarczającą do zapewnienia uczciwego i nieprzewidywalnego tasowania.
Najważniejsze informacje dotyczące tasowania:
- Talię 52 kart można potasować na 52! sposobów. 52! to około 2^225 (dokładniej 80 658 175 170 943 878 571 660 636 856 404 000 000 000 000 000 sposobów). Używamy 249 losowych bitów z obu źródeł entropii (danych użytkownika i szumu termicznego) w celu osiągnięcia równomiernego i nieprzewidywalnego rozkładu statystycznego.
- Ponadto stosujemy konserwatywne zasady w celu wymuszenia wymaganego stopnia losowości; na przykład, jeśli dane użytkownika nie generują wystarczającej ilości entropii, nie rozpoczniemy następnego rozdania do chwili uzyskania wymaganej ilości entropii z RNG firmy Intel.
- Stosujemy kryptograficzny algorytm mieszania SHA-1 w celu zmieszania entropii uzyskanej z obu źródeł i zapewnienia dodatkowego poziomu bezpieczeństwa.
- Utrzymujemy również generator pseudolosowy oparty na algorytmie SHA-1 w celu zapewnienia jeszcze większego bezpieczeństwa i ochrony przed atakami na dane użytkownika.
- Aby przekształcić strumień bitów w liczby losowe z wymaganego zakresu bez przesunięcia, używamy prostego i niezawodnego algorytmu. Jeśli na przykład potrzebna jest liczba losowa z zakresu 0–25:
- bierzemy 5 losowych bitów i przekształcamy je w liczbę losową z zakresu 0–31;
- jeśli ta liczba jest większa niż 25, po prostu odrzucamy wszystkie 5 bitów i powtarzamy proces.
- Na tę metodę nie wpływają przesunięcia związane z operacją modułu w celu wygenerowania liczb losowych niemających postaci 2n, gdzie n = 1,2...
- Aby wykonać bieżące tasowanie, używamy innego prostego i niezawodnego algorytmu:
- najpierw pobieramy losową kartę z oryginalnej talii (1 z 52) i umieszczamy ją w nowej talii — teraz oryginalna talia zawiera 51 kart, a nowa — 1 kartę;
- następnie pobieramy inną losową kartę z oryginalnej talii (1 z 51) i umieszczamy ją na wierzchu nowej talii — teraz oryginalna talia zawiera 50 kart, a nowa — 2 karty.
- powtarzamy ten proces do chwili, gdy wszystkie karty zostaną przeniesionych z oryginalnej talii do nowej.
- Ten algorytm nie podlega „złej dystrybucji tasowania” opisanej w [2].
Tasowanie w witrynie PokerStars zostało zweryfikowane przez firmy Cigital i BMM International
Witryna PokerStars przesłała obszerne informacje o generatorze liczb losowych (RNG) do dwóch niezależnych organizacji. Poprosiliśmy te dwie zaufane firmy o przeprowadzenie dokładnej analizy losowości danych wyjściowych generatora RNG oraz jego wdrożenia do tasowania kart w witrynie PokerStars.
Obie niezależne firmy uzyskały pełny dostęp do kodu źródłowego oraz potwierdziły losowość i bezpieczeństwo tasowania. Więcej informacji można znaleźć w sekcji Generator liczb losowych dla pokera online.
Gry dostępne za pomocą bezpiecznego oprogramowania do gry w pokera w witrynie PokerStars
Następujące gry i turnieje pokerowe są dostępne za pomocą bezpiecznego oprogramowania do gry w pokera w witrynie 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



