Privacy van gegevens voor onze pokersoftware
"Als er veel op het spel staat, loont het de moeite om de beste veiligheidsmaatregelen in de software te implementeren". - Matt Schmid, Cigital, Inc.
Alle communicatie tussen onze servers en onze client-software die op client-computers wordt uitgevoerd, is gecodeerd. Houd er wel rekening mee dat strikt genomen, codering op zichzelf geen garantie is voor privacy. Een site waar iedereen elkaars kaarten kan zien, is onveilig, ongeacht of er codering wordt toegepast. Daarom hebben we zeer veel moeite gedaan voor ons veiligheidssysteem en -beleid.
Belangrijkste elementen van de beveiliging:
Software downloaden:
Het eerste moment dat beveiliging van belang is, is wanneer de client-software van de website van PokerStars wordt gedownload. We moeten ervoor zorgen dat de client-software onaangepast wordt gedownload. Om aan deze eis te voldoen, hebben we de volgende mogelijkheden ingebouwd in het downloadproces:
- Voor Internet Explorer wordt de geldigheid van het gedownloade programma door de browser geverifieerd met behulp van onze sleutel en Thawte-certificaat
- Voor andere browsers gebruiken we een 1024-bits RSA-sleutel en een Thawte-servercertificaat om onze HTTPS-webserver en downloads te beveiligen
Beveiliging tijdens het spelen:
We hebben een aantal mogelijkheden ingebouwd voor de beveiliging van het spel zelf.
- Onze client-software maakt gebruik van certificaten van onze eigen Certificate Authority (CA) om onze servers te verifiëren
- De certificaatsleutel van onze CA heeft een lengte van 1024 bits.
- Onze client-software maakt gebruik van het standaard SSLv3-protocol. De software is geconfigureerd voor gebruik van RSA voor verificatie en sleutelgeneratie, en Triple-DES (EDE3, in buitenste CBC-modus) voor codering. Momenteel gebruiken we een 512-bits RSA-sleutel die volgens [1] voldoet voor geheimen op korte en middellange termijn (tot een paar jaar). Omdat we elke drie maanden de geheime sleutels van de server bijwerken, hebben we een goede veiligheidsmarge. Door gebruik te maken van Triple-DES EDE3 voor codering is het nog veiliger
- Persoonlijke gegevens, zoals gesloten kaarten, worden nooit aan andere spelers getoond
AFSPRAKEN
Afspraken maken (of collusie) is een vorm van vals spelen waarbij twee of meer spelers elkaar met signalen duidelijk maken welke kaarten ze hebben, of anderszins samen vals spelen ten nadele van de andere spelers aan dezelfde tafel.
Hoewel het enerzijds bij online poker makkelijker is om informatie door te geven aan samenzwerende spelers dan bij poker in fysieke rooms, is het anderzijds veel moeilijker om niet te worden ontdekt, aangezien de kaarten van alle spelers achteraf kunnen worden gecontroleerd.
Hoe slim de afspraken ook zijn opgezet, het moet gaan om het spelen van een hand die normaalgesproken, dus zonder vooraf gemaakte afspraak, niet op die manier zou worden gespeeld. Door onze opsporingsmethoden worden ongebruikelijke speelpatronen opgemerkt en wordt het beveiligingspersoneel gewaarschuwd, dat vervolgens handmatig een grondig onderzoek inzet. We onderzoeken ook alle meldingen van spelers over mogelijke afspraken.
Wanneer van een speler wordt ontdekt dat hij of zij van te voren afspraken heeft gemaakt in enige vorm, wordt zijn of haar account mogelijk permanent afgesloten.
SCHUDDEN
"Iedereen die overweegt rekenkundige methoden te gebruiken voor het genereren van willekeurige cijfers is natuurlijk zondig." - John von Neumann, 1951
We begrijpen dat een eerlijk en onvoorspelbaar algoritme voor schudden hoogst belangrijk is voor onze software. Om hiervoor te zorgen en grote problemen te voorkomen, zoals beschreven in [2], gebruiken we twee onafhankelijke bronnen van volkomen willekeurige gegevens:
- Gebruikersinvoer, inclusief overzicht van muisbewegingen en timing van gebeurtenissen, die wordt verzameld aan de hand van client-software
- Hardware-generator voor willekeurige getallen, ontwikkeld door Intel [3], die gebruikt maakt van thermische ruis als bron van entropie
Deze bronnen genereren zelf afzonderlijk al genoeg entropie om het schudden eerlijk en onvoorspelbaar te maken.
Belangrijkste elementen van schudden:
- Een spel van 52 kaarten kan op 52! manieren worden geschud. 52! is ongeveer 2225 (om precies te zijn 80.658.175.170.943.878.571.660.636.856.404.000.000.000.000.000.000.000.000.000. 000.000.000 manieren). We gebruiken 249 willekeurige bits van beide entropiebronnen (gebruikersinvoer en thermische ruis) om een evenwichtige en onvoorspelbare statistische verdeling te bewerkstelligen.
- Ook passen we strikte regels toe om de vereiste mate van willekeur te bewerkstelligen. Als bijvoorbeeld gebruikersinvoer onvoldoende entropie oplevert, beginnen we niet met de volgende hand totdat we de vereiste mate van entropie hebben van de Intel RNG.
- We gebruiken het SHA-1 cryptografische hash-algoritme om de entropie van beide bronnen te mengen om zo een extra hoog beveiligingsniveau te bereiken.
- We handhaven ook een op SHA-1 gebaseerde, pseudo-willekeurige generator voor een nog betere beveiliging en bescherming tegen aanvallen op gebruikersgegevens.
- Voor het omzetten van een willekeurige stroom bits naar willekeurige nummers binnen het vereiste bereik, zonder afwijking, gebruiken we een eenvoudig maar betrouwbaar algoritme. We hebben bijvoorbeeld een willekeurig nummer nodig tussen 0 en 25:
- we nemen 5 willekeurige bits en zetten deze om in een willekeurig nummer tussen 0 en 31
- als dit getal boven de 25 uitkomt, verwijderen we de 5 bits en herhalen het proces
- Deze methode wordt niet beïnvloed door afwijkingen met betrekking tot modulusbewerkingen voor het genereren van willekeurige getallen die niet in de reeks 2n, n = 1,2,.. voorkomen
- Voor het uitvoeren van het daadwerkelijke schudden gebruiken we een ander simpel maar betrouwbaar algoritme:
- eerst trekken we een willekeurige kaart uit de oorspronkelijke stapel (1 van de 52) en beginnen hiermee een nieuwe stapel. De originele stapel bevat nu 51 kaarten en de nieuwe stapel 1 kaart.
- vervolgens trekken we een andere willekeurige kaart uit de oorspronkelijke stapel (1 van de 51) en plaatsen deze bovenop de nieuwe stapel. De originele stapel bevat nu 50 kaarten en de nieuwe stapel 2 kaarten.
- we herhalen dit proces totdat alle kaarten van de originele stapel naar de nieuwe stapel zijn verplaatst.
- Deze algoritme wordt niet beïnvloed door 'slechte verdeling na schudden', beschreven in [2].
Het schudden op PokerStars is gecontroleerd door Cigital en BMM International
PokerStars heeft beide onafhankelijke organisaties voorzien van uitgebreide informatie over de willekeurige-nummergenerator (RNG, random number generator). We hebben twee vertrouwde bronnen gevraagd een diepteanalyse te maken van de mate van willekeur in de uitvoer van de RNG en de implementatie ervan in het schudden van de kaarten op PokerStars.
Beide onafhankelijke bedrijven hebben volledige toegang gekregen tot de broncode en hebben de mate van willekeur en beveiliging van ons schudden bevestigd. Ga naar Online Poker Random Number Generator voor meer informatie.
Beschikbare spelvarianten met beveiligde pokersoftware van PokerStars
De volgende pokervarianten en pokertoernooien zijn beschikbaar met beveiligde pokersoftware van PokerStars:
[1] B. Schneier. Applied Cryptography (Toegepaste cryptografie)
[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




