pillinetwork hesabınızla giriş yapın.

güvenlik için bu kadar mı kasılır?

online oyunları hilelerden koruma amaçlı bir güvenlik yazılımı yapıyorum. neyse şöyle böyle istediğim korumaları sağladım, fakat bi baktım kendi programımı koruyamamışım. adamlar bir şekilde çalışmasını durdurup hile yapıyorlarmış.

sonra ürettiğim çözüme gülsem de işe yaradı :)
çözüm mü?

1
2
3
4
5
6
7
8
9
10
11
string url1 = "http://server.xx.tr/connectornews.php?islem=sifreci";
WebRequest.DefaultWebProxy = null;
WebClient wc3 = new WebClient();
string sifre = wc3.DownloadString(url1);
sifre = sifre.Insert(sifre.Length, "x");
sifre = sifre.Insert(sifre.Length, "y");
sifre = HashString(sifre);
string url2 = "http://server.xx.gen.tr/connectornews.php?islem=kontrol&sifre=" + sifre + "&account=" + uo.MainWindowTitle;
WebRequest.DefaultWebProxy = null;
WebClient wc2 = new WebClient();
string durum = wc2.DownloadString(url2);

hafifçe bir anlatayım:

efendim gittim server'dan zamana bağlı bir şifre alıp buna oyunla ilgili 2 harf ekleyip (her sunucu için farklı) sonra bunu da md5 leyip tekrar onaya gönderdim. aynı algoritma sunucuda da var. boylece kapatan olursa bu doğrulama gerçekleşmiyor. adam da oyundan atılıyor.

ne yaptım ben ya :)

Spacer
Spacer
/* Etiketler: , , , , , */
/* Tcpip yazdı. 20 Kasım 2008 10:40. 21 yorum var */

Yorumlar

benim çok hoşuma gitti, daha önce benzerini görmüştüm .

connectornews.php'i google'a sorunca domain'e ulaşılabiliyor islem parametresinin değeride dönüyor. Bir sakınca doğurmaz umarım.

/* Loading... */

bir diğer güvenlik önlemi de http://www.narniauo.com/connectornews.php?islem=sifreci adresinde olduğu gibi internal kullanılan servislerin sadece belli ip'lere açık olmasına dikkat etmek gerek tabi :) kolay gelsin..

/* bet3 ~izlenimsel betimlemeler blog kardeşliği ~blogger en asil duygunun insanıdır */

pardon da bunun neresi guvenli anlayamadim: )

onay kodu static ise, oyunun sunucusuna baglaniyormus gibi yapip (proxy, host dosyasi vs) kendi sayfamdan o kodu verdirip islemi gayet guzel yaparim?

Writing Secure Code kitabında önemle üstünde durulan bir konu var. Güvenlik üzerine uzmanlaşmış bir bilim adamı olmadığınız sürece, kendi güvenlik algoritmanızı yazmaya/oluşturmaya çalışmayın :) Oyunda yaptıkları hile ne idi? Kesin bu konuda kabul görmüş bir güvenlik deseni vardır.

bursar çok haklı . işin arka derinliği çok derin ..

ismi lazim degil bir arkadasim var. bu online flash vs. oyunlari ve super lame /admin ekranlari sayesinde her ay bir cok hediye kazaniyor(mu$). bunlarin arasinda bedava tatiller, playstationlar ve onlarca ipod var. ozellikle flash oyunlarini memory edit, sql injection ve http post change yaparak. guvenlik icin cok kasmak lazim. dogru muhendislik anlayisi budur.

@dni katılıyorum bende neresi güvenli çözemedim :)

ayrıca mantığı ve sistematiği tam olarak yansıtsan çok güzel olurdu..

serverdan "zamana bağlı şifreyi veren dosyan"ın içeriği acaba şuna benziyormu


<?php echo date("m y d h i");?>

çok basit mantıklı bir güvenlik olmus sanırım. anlamak şahsımca zor olmadı

/* twitter */
connectornews.php'i google'a sorunca domain'e ulaşılabiliyor islem parametresinin değeride dönüyor. Bir sakınca doğurmaz umarım.

işlem parametresi ulaşılabilen bir değer onu saklamak zaten işime gelmiyor. herhangi bir net monitör ile de bulunabilirdi.

pardon da bunun neresi guvenli anlayamadim: )

RSA'ı bilirmisiniz bilmiyorum.
1. public kısmı vardır sizin gördüğünüz kısım.
2. anahtar kısmı vardır. anahtarı göremiyorsunuz sonucta bir yere kadar güvenliktir ve suana kadar geçen olmadı ki elbet kırarlarsa da yenisini yazmak boynumun borcu :)
Güvenlik üzerine uzmanlaşmış bir bilim adamı olmadığınız sürece, kendi güvenlik algoritmanızı yazmaya/oluşturmaya çalışmayın :)

oldu zaten uzmanlarda uzman olarak doÄŸuyor :)
serverdan "zamana bağlı şifreyi veren dosyan"ın içeriği acaba şuna benziyormu

public o şekilde üretiliyor evet.
eger uzmansanız public'i kullanarak brute force eder keyi de bulabilirsiniz. biraz zaman alabilir tabi. zaten komik bir çözüm oldugunu söylemiştim.

yorum yapan herkesin ellerine sağlık.
hatta varsa öneri bile alabilirim.
saygılarımla.

/* Gürsel Sayat Bir Developer'in Günlüğü */

biz www.goguug.com da bir flash oyunu yaptık caddedeki ışıklara tıklayıp ilerleme oyunu ilk bitirene büyük ödüller vs.. henüz kıran görmedim her adımda flash web servis ile konuşuyor tüm güvenlik önlemleri web servisten yapılıyor inceleyin isterseniz.

oldu zaten uzmanlarda uzman olarak doÄŸuyor :)

Bu bahsi geçen uzmanlar zaten oturup program yazmıyor ( yazanlar da var tabi ki), algoritmasını tasarlıyor.

@bursar,
sana katılıyorum. Zaten arkadaşın yaptığı hazır olan desenler ile çalışmak ama sanırsam farkında değil. Tekerlek zaten icat olmuş, arkadaşın yaptığı ise tekerleğin havasını cant büyüklüğünü değiştirmek.

bana bir flash oyunu verin, her türlü kırarım :)

RSA'ı bilirmisiniz bilmiyorum.
1. public kısmı vardır sizin gördüğünüz kısım.
2. anahtar kısmı vardır. anahtarı göremiyorsunuz sonucta bir yere kadar güvenliktir ve suana kadar geçen olmadı ki elbet kırarlarsa da yenisini yazmak boynumun borcu :)

evet RSA'yi biliyorum ve su anda turkiyedeki cogu bankanin kredi karti islemlerinde kendisini ve Triple-DES'i kullaniyoruz. Ayrica kendisini bir guzel kirabiliyoruz.

hayir neden is isten gectikten sonra rsa demeye basladin ki? burasi paylasim platformu degil mi, taksit taksit neden acikliyorsun olayi? te alam.

flash oyunlarında güvenliği aşmak için bir yöntem var en bilindik yöntem
mmorpg lerde de olan bir zamanlar knight online da bile yapılan şu wpe diye bir program var programı açıyorsun internet explorer yani target program seçiliyor siteye yani senin oyunu açıyoruz orada alsat yada önemli işlem yapılıyor yapıldıktan sonra wpe bakılıyor o işlemler esnasında ki bilgilerin hex değerleri incelenip bir kopyası oluşturulduktan sonra tekrar yollanıyor ve sonuç işlem gerçekleşiyor . bu dupleme vs.. gibi işlemlerde kullanılıyor
youtupe da wpe pro ile yapılan işlemleri izleyebilirsiniz...

yapılan her türlü güvenlik önlemi aşılabilir bu bilinen birşeydir. ancak kırılması zorlaştırılabilir. en basit ve temiz yöntemlerse bu konuda hackerı hacklemektir. yani insanı hacklemek, insanın sistemin kırılamayacağına inanmasını sağlamaktır. A sitesinde kullandığım şifreleme sistemi dünyadaki en iyi sistemdir. şuan herkesçe bilinen en büyük asal sayınında ötesinde bir sayıyla çalışır dediğim zaman çoğu kimse şifrenin "1" olabileceğini düşünmeyecektir. uzun lafın kısası düz algoritmanın ötesine geçen sistemler çok daha güvenli olur.

bunlara dayanarak bir öneride bulunayım. sunucu ile istemci arasındaki veri iletişimine gereksiz verilerde ekleyerek sistemin karışmasında yardımcı ol derim. mesela bir id değeri gidiyorsa rasgele bir md5in ortasındaki 4 tane haneyi söküp id değerinin hex değerini gir. sonra o orta bölümü alırsın, ya da ilk hane hangi hanede olduğunu söylesin id'nin. falan filan...

@qb
Ortaya cikan algoritmalara rasgele karakter eklemek veya cikarmak kesinlikle cok eglenceli bir durum. :)
Zati sifreleme nedeni ile allak bullak olan id bu hali ile cozmeye calisanlari cileden cikarabiliyor.

Benim kullandiğim yöntem de benzer.
Fakat ilk önce kendi kafama göre bir değişken yaratırım, bunun sağına solu veri ekler çıakrır, karıştırırım. Sonra şifrelemeye sokarım. Ardından yine sağını solunu kurcalarım (tabii ki 1. adımdan farklı bir yön ile) sonra da çıkan şeyi karşıya yollarım.

ilk etapta bu kod blokları sizi az biraz daha uğraştıracaktır.
Ve de şu kısım çok önemli, dökümantasyon.

Bir veriyi md5 e sokmayı ve de md5 ten çıkarmayı herkes bilir. Fakat bunun öncesinde ve/veya sonrasında kendi kafanıza göre yaptığınız işlemleri çok iyi dökümante etmelisiniz. Zira ürettiğiniz o anlık çözümler daha sonra kod bakımı sırasında "Bu ne yaa???" şeklinde karşınıza çıkacaktır.

Bir zamanlar SlayerTR'nin sahibi Deltree'nin yazdığı kodda aynen bu şekilde, mantıklı bir çözüm ama kırılmayan connector yoktur :)

ayrıca connector u kırmak 10 dakkamı almadı :) easyuo açmak çok basit Pyramid UO'nun connectorunu kırdım :)

Anlamıyorum arkadaşlar adam birşey çıkarmış ve paylaşmış herkeste böyle bir düşman taşlama edası görüyorum ne kadar çok güvenlikçi varmış ta haberimiz yokmuş madem öle olmaz böle olmaz, biri adam gibi çıkıp şuraya olurunu yazsın da biz de takdir edelim... Karalamak yerine mantıklı eleştrilerde bulunsanız daha iyi olmazmı... Yurtdışı sitelerde yazılan bir koda 10 dk içinde bir dünya yardım ve eklenti gelirken burda herkes nasıl bir hata buluruz da yazanı bu işten soğuturuz mantığında. Yapıcı olalım arkadaşlar aynı dili konuştuğumuz şu ülkede bu kadar düşmanımız varken bari aynı dili konuştuğunuz kişilerin bilgilerine saygı gösterin.. Haddimi aştımsa affola arkadaşlar. Kimse kusuruma bakmasın...

Bu kullandığın sistem oldukça güzel ve NTLM Authentication bilinen Microsoft'un kullanıcı adı, şifre doğrulama sistemi de bu şekilde çalışıyor aslında.

NTLM Authentication Prompt
NTLM Authentication Prompt
Sen bağlandığın zaman Server sana 8 harflik bir "challenge" gönderiyor ve bu metni sana ait şifrenin md5'lenmiş halini kullanarak tekrar'dan şifrelemeni istiyor, oluşan cevabı da "response" olarak göndermeni istiyor. Dolayısıyla her socket açılışında tekrardan karşıdaki istemcinin kimliğini kontrol etmiş oluyor.

/* "We are what we repeatedly do. Excellence then, is not an act, but a habit." keyif | ambar */

üye olunpillinetwork sitelerine yorum ekleyebilmek ve daha fazlası için, üye olun ya da giriş yapın.

Bu yazıyı rapor et. Kural dışı içeriğe rastladığınızda editörlerimize rapor ederek müdahale edilmesini sağlayabilirsiniz. (Hangi durumlarda rapor edebilirim?)

Bu site

Nokta ve pilli ortak yapımı olan kodaman.org hep birlikte içerik üretip gelirini yazarları ile paylaştığımız kolektif bir kod yazarları blogudur. Siz de katılabilirsiniz.

pilliilan

son yorumlar

arama

pillinetwork