Poker adalah permainan kartu yang dinikmati banyak orang di seluruh dunia. Poker dimainkan di meja dapur, di kasino, dan ruang kartu — dan baru-baru ini, Web. Beberapa dari kami di sini di Teknologi Perangkat Lunak yang Andal bermain poker. Karena banyak dari kita menghabiskan sebagian besar hari-hari kita secara online, hanya masalah waktu sebelum sebagian dari kita menyatukan kedua minat itu. Ini adalah kisah tentang bagaimana minat kami pada poker online dan keamanan perangkat lunak bercampur untuk menciptakan eksploitasi keamanan yang spektakuler.
Permainan
Di Texas Hold’em, setiap pemain dibagikan dua kartu (disebut kartu saku). Kesepakatan awal diikuti oleh ronde pertaruhan. Setelah putaran pertama, semua kartu yang tersisa dibagikan tertutup dan dibagikan oleh semua pemain. Dealer menempatkan tiga kartu menghadap ke atas di papan (disebut flop). Putaran kedua taruhan kemudian terjadi. Texas Hold’em biasanya merupakan permainan batas tetap, artinya ada jumlah tetap yang dapat dipertaruhkan pemain di setiap ronde pertaruhan. Misalnya, dalam permainan $3 hingga $6, dua ronde pertaruhan pertama adalah taruhan $3 sedangkan ronde pertaruhan ketiga dan keempat adalah $6 taruhan. Setelah putaran kedua pertaruhan, dealer menempatkan kartu lain menghadap ke atas di papan (disebut giliran). Putaran ketiga taruhan kemudian terjadi. Akhirnya, dealer menempatkan kartu terakhir menghadap ke atas di papan (disebut sungai), dan ronde pertaruhan terakhir pun terjadi. Setiap pemain yang tersisa mengambil dua kartu saku mereka dan menggabungkannya dengan lima kartu komunitas untuk membuat kartu poker lima kartu terbaik. Tangan terbaik di antara para pemain ditentukan oleh urutan tangan poker standar.
Risiko Keamanan Berlimpah
Semua kenyamanan ini ada harganya. Sayangnya, ada risiko nyata untuk bermain poker online. Kasino mungkin penipuan, yang ada hanya untuk mengambil uang dari pemain naif tanpa pernah berniat untuk membayar kembali kemenangan. Server yang menjalankan kasino online dapat diretas oleh penyerang jahat yang mencari nomor kartu kredit, atau mencoba memanfaatkan beberapa keuntungan dalam permainan. Karena sebagian besar kasino tidak mengautentikasi atau mengenkripsi lalu lintas jaringan antara pemain yang menjalankan program klien dan server yang menghosting permainan kartu, pemain jahat dapat memeriksa lalu lintas jaringan (dengan serangan klasik person-in-the-middle ) untuk keperluan penentuan kartu lawannya. Semua risiko ini sangat familiar bagi pakar keamanan Internet.
Kolusi adalah masalah yang unik untuk poker (berlawanan dengan permainan lain seperti blackjack atau dadu), karena pemain poker bermain melawan satu sama lain dan bukan kasino itu sendiri. Kolusi terjadi ketika dua atau lebih pemain yang duduk di meja yang sama bekerja sama sebagai sebuah tim, sering kali menggunakan bankroll yang sama. Pemain yang berkolusi mengetahui tangan anggota tim mereka (seringkali melalui sinyal halus), dan bertaruh dengan tujuan memaksimalkan keuntungan tim mereka di tangan mana pun. Meskipun kolusi adalah masalah di ruang kartu nyata, ini adalah masalah yang jauh lebih serius untuk poker online. Menggunakan alat seperti pesan instan dan panggilan konferensi telepon membuat kolusi menjadi risiko serius bagi pemain poker online. Bagaimana jika semua pemain dalam game online semuanya bekerja sama untuk menipu Web patsy yang tidak curiga? Bagaimana Anda bisa yakin bahwa Anda tidak pernah menjadi korban serangan ini?
Risiko Keamanan Perangkat Lunak
Cacat perangkat lunak pertama yang akan kami fokuskan adalah mengocok kartu virtual. Apa artinya mengocok setumpuk kartu dengan adil? Pada dasarnya, setiap kemungkinan kombinasi kartu harus memiliki kemungkinan yang sama untuk muncul. Kami akan menyebut setiap urutan 52 kartu tersebut sebagai pengocokan.
Kami menemukan bahwa algoritma http://139.99.80.41/ yang digunakan oleh ASF, perusahaan yang memproduksi perangkat lunak yang digunakan oleh sebagian besar permainan poker online, menderita banyak kekurangan. ASF telah mengubah algoritme mereka sejak kami menghubungi mereka terkait penemuan kami. Kami belum melihat pendekatan baru mereka. Mendapatkan semuanya dengan benar dari perspektif keamanan tidaklah mudah (seperti yang akan ditunjukkan artikel ini).
Menghasilkan Angka Acak Pada Mesin Deterministik
Kumpulan kelemahan perangkat lunak pertama yang kami diskusikan hanya mengubah kemungkinan kartu tertentu akan muncul. Kemiringan yang terkait dapat digunakan oleh penjudi yang pintar untuk mendapatkan keunggulan, tetapi kekurangannya tidak benar-benar merupakan kerusakan total dalam sistem. Sebaliknya, kelemahan ketiga, yang kami jelaskan di bagian ini, adalah doozy yang memungkinkan poker online dikompromikan sepenuhnya. Sebuah tutorial singkat tentang generator nomor pseudo-acak mengatur panggung untuk sisa cerita kita.
Cara Kerja Generator Angka Pseudo-Acak
Misalkan kita ingin menghasilkan angka acak antara 1 dan 52, di mana setiap angka memiliki probabilitas yang sama untuk muncul. Idealnya, kami akan menghasilkan nilai pada rentang dari 0 hingga 1 di mana setiap nilai akan muncul dengan probabilitas yang sama, terlepas dari nilai sebelumnya, lalu kalikan nilai itu dengan 52. Perhatikan bahwa ada jumlah nilai yang tak terbatas antara 0 dan 1. Perhatikan juga bahwa komputer tidak menawarkan presisi tak terbatas!
Untuk pemain poker pemula yang masih dalam tahap pembelajaran, sebaiknya anda membaca artikel ini untuk menambah wawasan Anda tentang dunia poker online : Cara Bermain Poker Untuk Pemula!