Oyunlarda şifreli içerik


45

Kullanıcılarımın programımın içeriğini programın dışında bulmasını engellemek için şifreleme kullanma fikrine sahibim. Gibi kullanıcılar oyunda hiç kullanılmamış dokuları bulabilirler, oysa oyun verisine giderken bir tür Paskalya yumurtasının parçası olurlar. Bu, örneğin çevrimiçi olarak yayınlanması durumunda herkes için mahvedebilir.

Oyuncunun oyunda bir güvenlik kapısında doğru numaralara basması gerektiği, eğer doğru ise doğru şifre çözme anahtarını üretmesi ve ardından seviyenin bu kısmının şifresini çözmesi ve kapıyı açması gereken gizli bir oda düşünün. Böylece Paskalya yumurtasını aksi takdirde erişilmez hale getirmek, aslında anahtar olarak saklanmadığından oyun verisine bakarken bile kullanıcı girişine dayanarak üretilir.

Hayal ettiğim şeye bir örnek daha. Diyelim ki her biri farklı bir anahtar kullanarak şifrelenmiş 20 seviye olan bir puzzle oyunum var. Şifre çözme anahtarını doğrudan programın birisinin programı çözmesine ve bulmasına izin vermesiyle doğrudan programa depolamak yerine, bunun yerine önceki bulmacanın çözümüne dayanarak şifreleme / şifre çözme anahtarını oluşturuyorum. Bu şekilde oyuncu, oyun verisine bakarken bile, bir sonraki seviye hakkında herhangi bir bilgi edinmeden önce bulmacayı çözmelidir.

Eğer bilgiliyse, oyuncu yapboz çözümlerinin sayısının muhtemelen şifre çözme anahtarlarının sayısından daha az olduğu düşünüldüğünde “kolayca” zorlayabilmektedir. Bu gerçekten bulmacanın bir konu karmaşıklığı ve burada çok önemli değil. Yine de buraya bir cevap yazdım.

Bugün böyle bir şey yapan programlar / oyunlar var mı? Şifrelenmiş içeriği oyunlarında depolamak? Ya neden olmasın? Mağaza ya da ülke düzeyinde bununla ilgili birçok kural ve düzenleme var mı? Kaybettiğim bariz tuzaklar gören var mı? Kullanıcı deneyimi gibi şeyleri görmezden gelmekle birlikte, fikir bana doğru geliyor ve neden bunu daha önce görmediğimi merak ediyor.

Düzenleme : Söylediklerim tam olarak belli olmayabilir, bu yüzden burada daha somut bir örnek var.

Diyelim ki 20 karakterlik bir karakter dizisinde yer alan ve oyundaki bazı içerikleri şifrelemek / şifresini çözmek için kullanabileceğim simetrik bir anahtar ürettiğimi varsayalım. Kullanıcının bu içeriğe ulaşmasının tek yolu bu 20 karakteri tanımak ve aynı anahtarı oluşturmaktır. Bu anahtar hiçbir zaman doğrudan saklanmaz ve kullanıcı girişi temelinde anında oluşturulur. Bu karakterler oyunda kitap olabilir, NPC'lerle diyalog, hatta oyunun dışında bile kutunun arkasına bile gizlenebilir.

Yani 2 * 10 ^ 28 denemek için olası kombinasyonlar muhtemelen insanların oyun verilerini incelemek yerine içeriği amaçlanan şekilde bulması daha muhtemel olacaktır.

Düzenleme 2 : Söz konusu içerik , tüketiciye gönderilmeden önce isteğe bağlı ve gizli bir anahtarla şifrelenir . Bu anahtar açıkça oyunla birlikte gönderilmez. Bir şekilde, anahtarı temel alan bir dizi ipucu verilmiş ve oyun boyunca ya da başka bir yerde gizlenmiş olan ipuçlarını bir şekilde bulması gerekecekti. Ancak bu sistem kullanıcı için şeffaf olacaktır, çünkü oyun verilerini incelemeden içeriğin şifreli olduğunu bilemezsiniz.

Birçok kişinin belirttiği gibi, kullanım durumunun sınırlı olması nedeniyle bunun bir dezavantajı vardır. Tek bir kişi bunu çözdükten sonra, anahtar / çözüm değil, içeriğin kendisi değilse, onu herkesle paylaşabilir. Ancak, niyetimiz, o kadar gizli bir şeyi tek bir kişinin çözemediği ve insanların çözmesi için birlikte çalışması gerektiği ya da paskalya yumurtanızın (tasarım tarafından) bu kadar iyi gizlendiğinden korkuyor olmanız gerektiğidir. daha büyük olasılıkla oyun oynamak yerine birileri kodda bulacaktır. O zaman bunun çok işe yarayacağını düşünüyorum.

Şahsen, sadece oyun başına sadece bir kez ve yalnızca çekirdek oyun oynamayı etkilemeyen şeyler, örneğin paskalya yumurtaları, gizli bir bitiş için kullanmanızı öneririm. Herhangi bir yapbozun, insanları içeriğe şifrelemeye yetecek kadar yavaşlatması için çok karmaşık olması ya da iyi gizlenmesi gerekir ve eğer bu ilerleme ilerleyen insanların önünde durursa, o zaman kimse muhtemelen hiç eğlenmiyordur.


56
Cevaplar teknik detaylar üzerinde durulacak, ancak hedef gizlemek spoiler istiyorsa, bu bilgiler ile kullanılabilir hale gelecektir düşünün sadece oyun oynarken o (oyun popüler ise) hangi noktada olacak herkesin bir Wikia makalesinde üzerine düz git Oku, oyuncu ya da değil.
Leushenko

4
Oyun geliştirme işleminde yinelenen stackexchange: "Oyun verilerimi rahat bilgisayar korsanlarından nasıl koruyabilirim?"
Philipp,

5
Bu bir eğlence ürünü için biraz fazla değil mi? Demek istediğim, insanlar "anahtar" ı bir adım adım izleyerek alabilirler ya da oynatabilirler ya da daha önce oynayan kişilere sorabilirler. Ayrıca oyun, “başa çıkma konusundaki bu“ az ya da çok belirsiz ”yoldan dolayı daha fazla hataya açık hale gelebilir. Aksi halde bu fikirden hoşlanıyorum ve güzel bir numara olacak ama hala insanların hack / hile yapmasını engellemeyecek fakat daha da zorlaştıracak
BlueWizard

3
Bence, kullanıcılarınızın oyununuzu hacklediği biliniyorsa ve bilmecenin gerçekten zor olduğu durumlarda, bunun özellikle harika olacağını düşünüyorum . Forumlarda "bu tuhaf şifreli dosya nedir" deyin.
PyRulez

5
@PyRulez Ah evet! Bunun arkasındaki temel motivasyon buydu. Bu sinir bozucu hükümetler tüm paskalya yumurtaları bulmak için oyun dosyalarından geçtiğinde nefret ediyorum. Hepsi sadece düşman forumlarında yayınlayabilsinler ve ülkenin ahlâkını mahvedebilsinler diye.
Christer

Yanıtlar:


90

Bu soru, belirli oyun içeriğinin kilidini açmak için hack yapmak yerine en az 1 kullanıcıyı bir bulmacayı çözmeye zorlamanın mümkün olup olmadığını ( sadece ticari olarak uygulanabilir değil veya başka bir yorumlama) soruyor .

Bildiğim kadarıyla bu kesinlikle mümkün. Aslında, diğer cevapların, anahtarın ne üretilmediğini, ne de saklandığını, sadece oyun durumundan (mümkün olan googleplex'lere sahip olabilecek şekilde) okunduğunu açıkça belirtmiş olsanız bile, kesinlikle mümkün olmadığını söylemek tuhaf. değerleri). "Oyunun şifresini nasıl çözeceğini bildiği" argümanı işe yaramayacağına dair argüman daha sonra herhangi bir açık kaynaklı şifreleme / şifre çözme yazılımının (örneğin, TrueCrypt) kapsayıcıların şifresini çözmeyi bildiğiniz için güvensiz olduğu anlamına gelir. klavye girişine dayalı bir dize, bu basit değil mi?).

Mutlak en basit durumda, oyunun kendisinin bir klavye simülatörü olduğunu ve “şifreli dosyalarımın şifresi nedir?” Sorusunu sorduğunu düşünün, açık bir şekilde hepimiz, oyunun kaynak kodunun kullanılmasının işe yaramayacağına katılıyorum. Şimdi oyunun "Dünyadaki en küçük hayvanın adı ile en küçük hayvanın adı nedir?" Oyunun kaynak koduna sahip olmanın bile size yardımcı olamayacağı açık değil mi ve hala bulmacayı çözmeniz gerekiyor mu?

Bunun mümkün olup olmadığına ilişkin olarak cevap kesin EVET, bu mümkün.


9
Cevabınızın şu ana kadar sorumu tamamen anladığı görünen tek cevap olduğunu düşünüyorum. Çok fazla kişi otomatik olarak sorumun diğer oyunla ilgili şifreleme soruları gibi olduğunu düşünüyor gibi görünüyor. Nereden geldiklerini anlıyorum, ancak sorumu biraz daha iyi okumasını diliyorum.
Christer

7
Teklif ettiğiniz şey, sorunların çözümünün yalnızca şifrelenmiş bir şekilde depolanmasıdır. Geçerli bir çözümü onaylamak kesinlikle mümkün ancak temelde bundan geri dönmek imkansız. (nasıl yapılır mağaza-şifreler-101). Kullanıcı girişi yapılmasını gerektirmeyen içeriğin nasıl gizleneceği sorusunun ikinci kısmı, çözülmesi imkansızdır (kullanıcı girişi olmadığını söylediğimde bunu çok katı bir şekilde kastediyorum)
WorldSEnder

3
Bence asıl mesele, tek bir kullanıcıyı bulmacayı çözmesi için zorlamanın mümkün olduğudur, çünkü bu ilki herkesi bilgilendirebilir. Bu şifreleme egzersizinin bütün noktasını susturuyor.
cmaster

4
Kaynak koduyla (veya stringsçalıştırılabilir dosyadaki), "En büyük hayvanın adı nedir ...?" oyuncu / bilgisayar korsanı tarafından çözülmesi gerekebilir , ancak en azından sorunun gerçekleştiği oyunda bulundukları yere tehlikeli bir yolculuktan kaçınabilir. Bu nedenle, bilmecelerin kendileri de biraz gizli olmalıdır (grafikler çoğunlukla metinler yeterli olabilir ; daha ayrıntılı olarak, normal bir 3d nesnenin belirli bir noktadan bakıldığında, bir bilmecenin veya başka bir önemli şeyin çözümüyle perspektif olarak birleştirildiği bir oyunu hatırlıyorum. bilgi ...)
Hagen von Eitzen

4
"Çevrimiçi olarak yayınlanırsa, örneğin herkes için onu mahvedebilir." Asıl sorudan ... üzgünüm, ama bu cevabın anlamı eksik. Bu olurdu sadece cevap ya şifresi dosyaları ya da her türlü yayınlanmaktadır eğer herkes için mahvediyor olarak savunmasız ve olduğu gibi bunları göndermeden olarak savunmasız.
Nathan Tuggy

57

Denendi. Çok, çok defa. Kullanıcıların uygun gördükleri bir programa erişmelerini engellemek için şifreleme kullanmaya çalışan tüm alt sektörler var. Ve asla işe yaramaz. En iyi koruma programları, kırılmadan yaklaşık bir ay önce dayanma eğilimindedir ve Internet ile ilgili olan şey, bir kez kırıldığı zaman, birisinin yayınladığı anda her yerde sonsuza kadar kırıldığıdır. Kaçırdığınız bariz sorun, programınızın verileri kullanması için, şifresini çözmek için gereken tüm bilgileri içermesi gerektiğidir ve bilgisayar bunu yapabiliyorsa, bilgisayara erişimi olan bir kişi yapabilir söyledi.

Buna "şifrelemenin temel sorunu" deniyordu: Alice, Bob'a bir mesaj yollamak istiyor, Charlie ona ulaşsa bile okuyamıyor. Önerdiğiniz yaklaşımla ilgili sorun , bu durumda Bob ve Charlie'nin aynı kişi olması.

Kullanıcılarınızı şımartmama arzusunu anlayabiliyorum, ancak insanlar spoiler istiyorlarsa onları bulacaklar ve eğer istemiyorlarsa, aktif olarak spoilerden kaçınma eğiliminde olacaklar. Fakat gerçekten harika bir oyun yapmak istiyorsanız, tam tersi rotaya gidin: radikal bir açıklık. Gibi şeyler bak Neverwinter Nights , Starcraft veya Elder Scrolls serisi, yayımlanmasından sonra yıllarca popüler kalmak oyunlar. Bunu yapıyorlar çünkü kullanıcıların her şeyi kazmalarını, nasıl çalıştıklarını anlamalarını ve kendi içeriklerini oluşturmalarını ve paylaşmalarını sağlayan oyunla birlikte güçlü tasarım araçları gönderiyorlar. Oyun, bir topluluk haline gelinceye ve topluluklar katlanana kadar sadece bir oyundur .


3
Bu durumda şifrelemeyi kırmakla birlikte, bulmacaları çözen bir bot yazmak eşdeğer olacaktır. Muhtemelen oyunu tamamlamaktan ve cevapları yazmaktan daha zor
Ewan

15
Sadece bu cevabın gerçekten sorumu cevaplamadığını söylemek istiyorum! Aslında insanların kodları kırmalarını ya da yapbozumu çözmelerini istiyorum. Tüm mesele bu ve evet, birileri bir kere çözerse, çözümü paylaşmasını engelleyemem, denemiyorum. Ancak, bu bilginin kullanıcı tarafından verilmiş olmasından dolayı "şifresini çözmek için gerekli tüm bilgileri içermesi gerekir" diyerek yanılıyorsunuz. Ayrıntılar için güncellenmiş soruyu okuyun.
Christer,

6
Bu yapar ve burada @Christer neden: Mason söylediğini onlar bulmaca cevap bulmak için oyunu dosyalarına alabilirsiniz kimin umurunda çünkü çok azı aslında yapacak ..
Çılgın

9
@JonasDralle Bu iğrenç derecede alaycı bir bakış açısı ve aynı zamanda doğru değil. Etrafında inşa var güçlü, kalıcı topluluk Morrowind ve Oblivion engel olmadı Skyrim satışından; bir şey olursa, daha başarılı yaptı!
Mason Wheeler,

3
@Cronax "one time pad" tarzı şifrelemeyi kullanırsanız, bu durumda - anahtar bulmaca çözümü olduğundan, saldırganınız anahtar alanın büyüklüğünde kabahattan daha iyi bir seçeneğe sahip değildir. Doğru türden bir bilmeceyle, evrenin ömrü boyunca çözülecek kadar büyük olabilir. Ayrıca, paskalya yumurtası, örneğin, geliştiriciden bir mesajsa, bir saldırganın, gerçek mesajı rastgele bir doğru Egnlish'den ayırt etmenin bir yolu olmazdı.
Ben Aaronson

10

İçerik oradaysa, birisinin bulacağını bilecek kadar uzun zamandır bulundum. Bunu zorlaştırmak daha kararlı insanları cezbedecek. Ürününüz ne kadar popülerse, o kadar ilginç hale gelir. Kısmen bu bir meydan okuma olduğu için, kısmen bu tür bilgileri yayınlayarak "inandırıcı" elde edebileceğiniz çok fazla yer olduğu için.

Anahtar oyun tarafından yerel olarak oluşturulmuşsa, anahtarın üretildiği noktaya kadar oyunu aldatmanın bir yolunu bulabilir veya doğru kod parçasını kazabilirsiniz. Anahtar, oyundaki belirli adımları tamamladığınızda size bir sunucudan gönderilirse, birisi sunucunuzu yeterince ileri gittiklerini düşünerek kandıracaktır.

Sonuçta oyununuz, eğlenceli ve ilgi çekici hale getirmek için harcadığınız zamandan, bir sonraki seviye rengin ne olduğunu bulmayı zorlaştırdığından çok daha fazla fayda sağlayacak.


Yerel olarak depolanmış bir anahtarla şifrelenmiş veriler her zaman saldırıya uğrayabilir. Uygulamada tüm modern uygulamalar ve oyunlar bunu bir ölçüde kullanır.
Ewan

Soomla ve nasıl paralar göz atın
Ewan

Sorunun gelecekteki içeriği meraklı oyunculardan gizlemekle ilgili olduğuna inanıyorum, para birimlerini ve oyuncu istatistiklerini kurcalamaya karşı korumakla ilgili değil
axl

1
Bu bir paskalya yumurtasıyla ilgili olduğu için, dikkat çekmek tam istediğiniz şeydir.
PyRulez

6
Daha zorlaştırmak daha kararlı insanları cezbedecek , bunun bir oyun için harika bir pazarlama stratejisi olduğunu düşünüyorum :)
sampathsris

9

Bunun gamedev'de olmasının temel nedeni. Bu şifreleme işleminin oyunla ilgili sonuçları olması.

Bir yapbozun çözümünün bir sonraki için şifreleme anahtarı olmasını istersiniz. Yani, bu çözümün gerçek verileri bir sonraki bulmacanın şifresini çözmelidir. Bu, şifre çözme anahtarının oyun verilerinizin hiçbir yerinde olmadığı anlamına gelir; oyuncu tarafından üretilir.

Ve işte sonuç. Şifre çözme genellikle ikilidir. Verileri şifrelemek için gereken tam şifre çözme anahtarına sahipsiniz veya kullanamazsınız.

Buradaki sonuç, tasarladığınız oyunun o kadar dar odaklanmış olması gerektiğidir . Her seviyeye tek bir olası çözüm getirilebilir. Dolayısıyla, bulmaca mekaniğiniz, oyuncunun amacınıza göre farklı bir şekilde bulmacayı çözemeyeceği şekilde dikkatlice tasarlanmalıdır.

Örneğin Portal, Test Odası 10 atın. Sola gitmen, bazı şeyler yapman, sonra sağa gitmen ve bazı şeyler yapmak zorundasın, hepsi bir platformu indirmek için.

Ya da kendinize biraz hız verebilir ve içeri girdiğinizde platforma fırlatabilirsiniz.

GLaDOS: Demek bir puzzle oyunu yaptın. Bulmaca oyunlarından en çok zevk alan insanları cezalandırmayı sağlayan bir puzzle oyunu. Aferin. Ama en azından bu bilgisayar korsanları değerli verilerinize ulaşamayacak. Çünkü, bulmaca oyunları çözmekten hoşlanan insanlar, çevrimiçi bulmaca oyunları için çözümler arayan insanlardır.

Yani bu tamamen buna değer.

Yani, Lolo'nun Maceraları, SpaceCHEM ve Portal ( milyonlarca insan arasında ) gibi bulmaca oyunları tam anlamıyla dışarıda. Bunun yerine, oyununuzu birden fazla çözüme sahip bir yapboz oluşturmanın imkansız olduğu şekilde tasarlamanız gerekir . Bu çok büyük bir özen gerektirir ve genellikle büyük ölçüde kısıtlayıcı bir oyun gerektirir.

GLaDOS: Demek bir puzzle oyunu yaptın. Yapbozlara yaratıcı çözümler bulmaktan hoşlanan insanlar tarafından oynanan bir oyun. Ve yapbozlara yaratıcı bir çözümü olmayan bir oyun yaptınız. *yavaş alkış*

Böyle bir oyun yaratamayacağınızı söylemiyorum. Ya da böyle bir oyun iyi olamaz. Sadece böyle bir oyunun belli bir şekilde tasarlanması gerekecekti.

Oh, ve bu oyunu, mekanik olarak bir çözüm bulmanın imkansız (veya çok zor) olduğu şekilde tasarlamanız gerekiyor .

GLaDOS: Demek bir puzzle oyunu yaptın. Oynamaktan daha kesmek için daha ilginç olan bir puzzle oyunu . Aferin.


Tabii ki, buna bir uyarı var: "çözüm" nin anlamı. Veya dahası, bir çözümün hangi unsurlarını dikkate alıyorsunuz?

Hareketli bir karakter içeren herhangi bir oyun için, şifre çözme anahtarını oluşturmak için karakterin tam hareketlerini kullanmayacaksınız. Örneğin, oyuncunun bulmacayı "çözmek" için belirli eşyaları toplaması gereken bir bulmaca oyununuz varsa, anahtarı bu öğelere dokunma sırasına göre ayarlayabilirsiniz.

Tabii ki, bu bir oyuncunun sıra dışı şeyler yapmanın bir yolunu bulduğu yukarıdaki soruna yol açar. Bu da yine bulmacayı tasarlamanız gerektiği anlamına geliyor. Böylece bir şeyleri alabileceğiniz tek bir düzen olacak.

Ayrıca, şifre çözme anahtarını oluşturmak için hangi öğeleri kullanırsanız kullanın, kaba kuvvet şifre çözme işlemini zorlaştırmak için yeterli entropi sağlamanız gerekir. Yukarıdaki sipariş toplama teknisyenini kullanarak, her yeni ürün etkili bir ekstra bit. Bir seviyede yalnızca 8 öğe varsa, 8 bit şifreleme yapıyorsunuz. Hangi bok; çoğu akıllı telefon bunu saniyeler içinde halledebilir.

Bugünlerde, biraz zor olsa bile en az 128'e ihtiyacınız var. Bu, şimdi her seviyenin içinde çok şey olması gerektiği ve yine de oyun tasarımınızı etkilediği anlamına geliyor.


2
@Christer: Örnek, yalnızca genel sorunuzun ilgisizliğine ihanet ediyor. "Herhangi bir görevin dışında gizli bir sunak" ın içeriği, tanımı gereği, temel olarak görevleri tamamlamakla ilgili olan herhangi bir oyun için alakasızdır . Eğer oyununuz görevleri tamamlamakla ilgili değilse, neden bu konuda görevleriniz var? Her iki durumda da, genel gerçek kalır: oyununuzla veya oyuncularınızla hiçbir alakası olmayan bir şey için çok fazla zaman harcıyorsunuz. O şeylere senin çok sınırlı zaman ve enerji odaklanmalıdır olsun .
Nicol Bolas,

2
@Christer: " Ayrıca, şifrelemenin kullanıldığı gerçeği, kullanıcıların% 99,9'una karşı şeffaf olduğu için, bu korkunç bir fikir olduğu için geçerli bir argüman değil. " Gerçekten kullanışlı özelliklere gidin, sonra evet, bu korkunç bir fikir. Sorunuzu formüle etmek için daha fazla zaman harcadınız ve bu özelliğin hak ettiğinden çok yanıtları yanıtlayın . O zaman, gerçek oyununu yazıyor olabilirdin. Kullanıcıların% 99,9'u şeffafsa ... o zaman şifrelenmişse neden onlar için önemli? Neden insanların% 0,1'i için zaman harcıyorsun?
Nicol Bolas,

2
Üzgünüm, oyunlarımı yaparken eğlenmeyi seviyorum! Herkes oyun üreten bir robot olamaz. Ayrıca, bunun ne kadar zaman alacağı ve ne kadar harcamak istediğimin yargıcı olalım. Şifreleme bölümünün kendisi en azından uygulamak için yalındır olacaktır.
Christer,

1
The consequence here is that whatever game you design must be so narrowly focused that there is only one possible solution to every level.Zorunlu değil: olası her çözüm için içeriği şifreleyebilir ve olası tüm çözümler için yinelenen şifreli içerik gönderebilir. İki aşamalı bir şifreleme kullanarak alandan tasarruf edilebilir - bağlantılı yanıttaki kullanıcı anahtarı belirli bir çözüme karşılık gelir , belge içeriğe karşılık gelir.
mucaho

4
@mucaho: Önceden "olası her çözümü" bilmek gerekiyor.
Nicol Bolas,

8

Buradaki cevaplar iyi; Yine de buna başka bir açıdan bakardım. Tarif ettiğiniz şey bir özellik . Özelliklerin maliyeti ve faydaları vardır. Maliyetler, hem özelliği oluşturmanın dolar maliyetlerini hem de "fırsat maliyetlerini" içerir. Bunlar: sonlu dolarların, sonlu saatlerin ve sonlu programcıların olduğu bir dünyada, yaptığınız her özellik, yerinde yapılmamış sonsuz sayıda olası özellik anlamına gelir.

Öyleyse soru şudur: Bu özelliğin maliyetini gerçek anlamda belirtebilir misiniz? Ücretsiz özellik yoktur, bu nedenle maliyetler konusunda gerçekçi olun. Bu özellik için bin dolar ödemek ister misiniz? Yüz bin? Bir milyon? Bu özelliğe sahip olmak için hangi özellikleri kesmeye hazırsınız?

Bence bir şeyi maliyetler, faydalar ve kaçırılan fırsatlar açısından önceliklendirmeye başladığınızda, oyunu daha eğlenceli hale getirmenin yollarını düşünürken bu özelliği düşünmek için çok zaman harcadığınızı fark edeceksiniz.


5

Alice Bob ve Eve sorunu bunu iyi göstermektedir. Mason'un cevabında işaret ettiği gibi, Havva da Bob ise Havva'dan sır saklayamazsınız.

Böylece, herhangi bir çözüm Bob'un gerekli tüm bilgilere sahip olmamasından oluşacaktır. Her seviyeye ayrı bir mesaj olarak bakmalı, birbirlerinden ayrı şifrelenmeli ve bir sonraki seviye için mesajları düzgün bir şekilde saklayabilen mesajların harici bir kaynağına sahip olmalısınız .

Ama nihayetinde, bu bir tartışma haline geldi. Birisi oyunu kendisi oynayabilirse, o zaman oyunu almak için de bir program yazabilirsiniz. Yani tüm yaptığınız, onları dış kaynağınızdan (muhtemelen bir tür sunucu) ileri geri gitmeye zorlamak. İletileri sunucunuza nasıl oluşturacaklarını anladıklarında, aynı eski hikaye.

Ama burada kilit bir unsuru unutuyorsun. Bu bir oyun. Birisi bir oyunda hile yaparsa, büyük boğmaca. Oyunu hile için yazmadın. Görev yolları veya tesviye rehberleriyle aynı şey var: kendi başına çözmek için uğraşmak isteyen insanlar yayınlanan çözümleri göz ardı edecekler. Oyunu oynamadan kırmayı imkansız hale getirebilseniz bile (mantıksal olarak imkansız olduğunu biliyoruz, ancak EĞER OLABİLİRSİNİZ), onu yenmek için gereken her şeyi göndermeden önce sadece bir adam yürürdü. Yani sadece kaçınılmaz olanı geciktiriyorsun.

Müthiş bir oyun yaparak vaktinizi harcayın. Her Oyun İhtiyacı Olan On Şey Var ve son baktığımda şifreleme bunlardan biri değildi.


2

Fikrinizin anlamsız olduğuna inanıyorum.

Birisi oyununuzu oynadığında, oynamayı seçiyor, ödül kazanmak için yapmıyor, eğlence için yapıyorlar.

Kullanıcılar, en eğlencenin, kastettiğin ve aldatmayacağın oyundan geldiğini bilir, müşterileriniz olarak zaten bir hikaye anlatıcısı olarak size güvenirler.

Ayrıca birisi bir bulmacanın çözümünü bulduğunda, yani anahtarınız, internette bir yere gönderebilirler.
Hile yapmak isteyen oyuncular hala bunu yapabilir.


Ancak, oyununuz Super Mario Land gizli seviyeleri gibi birden fazla çözüm sunarsa, varlıklarınızı şifrelemek bu çözümlere kolay erişmenizi önler.

Bu senin fikrin lehine bir nokta gibi görünse de, sonunda değil.

Şifrelemeyle bile, bu tür gizli çözümlerin var olduğunu bilmek mümkün olabilir.
Gizli bir çözümün olduğu bilindikten sonra , oyuncuların gizli varlıklara bakmalarını önlemek, oyunun gizli kısımlarına oyunun kendisinden erişmeye devam etmek isteyecekleri için önemsiz olacaktır (evet, her gizli oyunu görmüş olsalar bile) doku / klibi / ses / metin).

Bazı unutulmaz bir teknik 1 kullanarak gizli çözümler varlığının sızmasını önleyebilirsiniz , ancak yine de şüpheli olur (neden gizli bir çözüm yoksa?), Oyuncular onları bulma konusundaki ilgisini kaybeder ve daha az oyuncu olur , daha fazla değil.
Ne de olsa bazı Paskalya yumurtaları tetiklemek için bir oyunu tamamladıktan sonra birkaç saat daha oynayabiliriz, ancak onları tetiklemek çok zor bir çaba gerektiriyorsa bir dakika daha oynamayacağız!


Okumakların kendilerini şımartmasını engellemek için bir sonraki bölümün bu bölümün bir kelimesiyle şifrelenmiş olduğu bir kitap gibi.
Bir düşün, anlamsız değil mi?

1 VeraCrypt gibi hemen hemen Gizli birimlerle yapın.


1
Aslında bu kitap fikrini sevdim. Anladığım kadarıyla birçok insanı sinirlendirebilir ama aslında böyle bir kitap isteyen insanları da hayal edebilirim. Bilmemeye çalışsalar bile, ileri atlayarak kendileri için sonu bozmaya yardım edemeyen insanları tanıyorum. Bu yüzden böyle bir kitap yardımcı olabilir sanırım. Anahtarlar kişiselleştirilmediği sürece çevrimiçi olarak hala anahtarlara bakabiliyorlardı. O zaman bile, doğrudan sonlara bakabiliyorlardı. Yine de o kadar çaresizlerse, söylediğiniz gibi onları daha fazla durdurmaya çalışmanın bir anlamı olmazdı.
Christer

1

Ticari uygulanabilirlik hakkında yorum yapmayacağım, ancak saf bir teknik açıdan eğlenceli bir mücadele.


Öncelikle şifrelenmemiş hiçbir şeyin korunamayacağını not edeceğim. Girişi bir sır olarak geçemezsiniz, krakerler geçidin etrafında bir yol bulacaktır, bunun yerine tüm sırrını geçidin kendisi yapmak zorundasınız. Varlıklar açısından, bu, tüm dokuların vb. Anlamına gelmesi anlamına gelmez… sadece planı şifrelemek, kullanılanlar ve bunların yeterli olması ve performans nedenleriyle mümkün olduğu kadar az veri şifrelemek isteyeceksiniz.


İkincisi, anahtarın yazılımda bulunması durumunda, yazılımdan çıkarılacağı konusunda haklısınız. Pek çok oyun, içeriği korurken, gizliliği kullanarak ya da oyun yazılımının değiştirilmemiş olmasını sağlayan mekanizmalarla güvenliği kullanmaya çalışır. Bunlar sadece geciktirici taktikler.

Bir gizem çözümünü anahtar olarak kullanma fikriniz oldukça ilginçtir, ancak doğrudan sağlanan anahtarı kullanmanın kolayca kaba şekilde zorlanması muhtemeldir. Bunun yerine, kullanıcı girişini bir şifre olarak ele alın ve son teknoloji bir şifre karma şeması kullanın: Üretilen karma anahtardır.

Ancak, o zaman bile, anahtarın oyunda bulunmadığına dair bir yanlışlık var. Öyle olmasa, oyuncularınızı ona doğru yönlendiremezdiniz; bu nedenle, kasayı zorla almaya çalışmak yerine, ipuçları arayan oyun varlıklarını tersine çevirmek mümkün olabilir. Düşünebildiğim olası bir bilmece glifleri kodlamak için dokular kullanmaktır ve ardından şifre oyuncuların ziyaret etmesi gereken yerlerin gösterdiği gibi klavyede mevcut olan birkaç taneden oluşur:

  • sorunun asıl amacı, görüntü tanımanın bilgisayarlar için hala biraz zor olmasıdır.
  • Bunun üzerine CAPTCHA krakerlerinin özel glifler yerine harfler ve rakamlar için ayarlandığı gerçeğini katmanlaştırıyoruz.
  • Glifi oyuncuya göstermek için çoklu dokuları (saydamlığı olan) bir araya getirerek, oyunda hiçbir varlığın glifin neye benzemesi gerektiğini içermediği gerçeğini ortaya koyarız.
  • yerin her yerinde başka parçaları (parçaları ile birlikte) kullanın, ancak oyuncunun asla ulaşamaması gereken gizli yerler dışında hiçbir zaman tam bir glif oluşturmayacak şekilde kullanın

ve kazanan glif kombinasyonunu otomatik olarak ayıklamak için herhangi bir program bir gün cehennem olacak.


Üçüncüsü, bir sonraki zorluk paylaşmaktır. Bir kez bir sır çözüm bulunursa, bu açıklanacak. İdeal olarak, her bireyin yazılımın biraz farklı bir sürümü kullanılmalıdır: anahtarın oyun sürümüne özgü olduğu bir yer. Pratik hale getirmek için, oyunu (varlıklarıyla birlikte) "sırlardan" (şifreli) ve "gizli sürücüden" (pek çok farklı yere birçok doku parçasını yerleştiren anahtar üreteçinden) ayırmanın daha kolay olacağını tahmin ediyorum. , bazıları şifreleri oluşturur).

Belirgin saldırı vektörü jeneratörü her zaman aynı şifreyi seçtiğinde kandırıyor veya doğrulayıcıyı her zaman aynı şifreyi kabul etmekte kandırıyor (örneğin, başka birinin gizli dosyasını indirerek).

Burada olası bir çözüm, dosyaları kullanıcının hesabına bağlamak ve genellikle önerilen şekilde şifreyi girmek olabilir:

  • kullanıcı bir dizi dosya istediğinde, rastgele bir tuz üretip sırları kadar çok parola oluşturup ardından gizli varlıkları yaratır (örneğin sunucunuzu aşırı yüklememek için bu işlemi bir gün / gün / kullanıcı ile sınırlamak isteyebilirsiniz).
  • Üretimin zaman damgasını ve tuzu kullanıcının hesap bilgilerinde saklayın
  • zaman damgasını ve kişiselleştirilmiş gizli dosyaları kullanıcıya geri gönder

Ardından, kullanıcı bir şifre göndermeye hazır olduğunda:

  • Kullanıcının giriş yapmasını sağlayın (eğer değilse)
  • yazılımın hem zaman damgası hem de glif şifresini göndermesini sağlayın
  • zaman damgası saklanandan farklıysa, kullanıcıya eski gizli dosyalar kullanmasını tavsiye edin.
  • eğer şifre zaten çok fazla denenmişse, kullanıcıya eski bir dizi gizli dosya kullandığını söyleyin.
  • Aksi halde, anahtarı üretmek için salt + şifresini kullanın.
  • aksi takdirde, anahtarı kişiselleştirilmiş dosyalarını görebilmesi için kullanıcıya geri gönderin
  • Bu parolanın bu hesap tarafından girilme sayısını artırın.

Buradaki amaç mümkün olduğunca hesap paylaşımını engellemektir:

  • Gizli dosyaları oluşturmak için bir hesap paylaşmak (a) sınırlıdır, çünkü günde yalnızca bir tane üretilebilir ve (b) yararsızdır, çünkü üretilen en son kullanılanı kullanılamaz hale getirir.
  • bir hesap paylaşmak ve ilişkili gizli dosyaları dağıtmak işe yaramaz çünkü belirli bir şifre, anahtarı artık vermeden önce N kere kullanılabilir.

Neredeyse oradayız.


Son olarak, orada bile, bir kraker, gizli varlıkların şifresini çözdüğü ve doğrudan entegre ettiği (dikkatli doğrulama planınızı atlayarak) oyunun değiştirilmiş bir versiyonunu yayınlayabilir.

Çözüm basittir (ve neredeyse her şeyi eskimiş 1 yapar ): müşteriye güvenmeyin.

Web sitenizde bir afiş oluşturun ve oyuncuların hesaplarındaki ilerlemelerini takip edin. Oyuncular istedikleri kadar oyunu tamamladıklarını iddia edebilirler, ancak hesapları bunu yansıtmazsa, herkes hile yaptıklarını bilir ...

... buna sosyal baskı denir;)

1 Bir programın anahtarı tahmin etmesini engellemek ve yine de kullanıcının onu almasını mümkün kılmak için kullandığımız doku konumlandırma dosyası dışında.


Düşünceli cevap için teşekkürler. İyi puanlar veriyorsun. Yine de, anahtarın / çözümün dediğiniz gibi oyunda saklanması gerekmediğini eklemek isterim. Örneğin, oyun web sayfasının html'sinde gizlenmiş olabilir, belki de böyle şeyleri arayan insanları ödüllendirmek istersiniz. Oyunda bile bilmeceleri bir çözüm olarak kullanmak, bir açıdan bakıldığında bilgiyi açığa çıkaran geometriyi kullanmak, daha fazla bilgi almadığınız sürece muhtemelen elde edemeyeceğiniz bağlamla ilgili şeyleri kullanmak gibi daha yaratıcı olabilirsiniz. oyun. Skyrim'in bilgisayar terminallerinde kitap ya da kayıt defteri gibi.
Christer

Benim sorumuzdan bahsetmedim, o yüzden endişelenme. Bunu nasıl hayal ettiğimi, bütün bir oyun boyunca oynayacağınızı ve tam bir oyun gibi hissettiğini. Ancak üzerinde asla geçmiş olamadığınız tuhaf bir kilidi olan bu gizli kapı vardı. Umarım insanları meraklandırır ve konuşur, belki de çözebilmek için birlikte çalışmasını sağlar. Kimse çözemediği için, bunu anlamak için de sahip olunan bir tür zaferdir. Belki de yeterince zaman geçerse, kapının zor sırları efsanelerin doğurur! Sadece oyun varlıklarını inceleyen biri tarafından mahvolmuş olması berbat.
Christer

@Christer: Sadece oyun varlıklarını inceleyen biri tarafından mahvolmuş olan berbat. => bu, yeri gerçekten tanımlamak için gizli dosyalar kullanarak çözülebilir (çoğunlukla mevcut dokuları yeniden kullanarak), sır bir kez dışarı çıktığında, dışarı çıktığında ...
Matthieu M.

0

Bu ilginç bir fikir; yapboz disklerinde ve el kitabından kopya koruma sistemlerinde kullanılan bir değişken. “ARG” oyunlarından bazılarının bu şekilde çalıştığını düşünüyorum, oyuncuların oyun tasarımcısına karşı ortak hareket ettikleri anlaşılıyor.

Açıkçası, ilk kişi şifresini çözdüğünde, internette yayınlayacaktır.

Üretken veya prosedürel içerik aynı şekilde çalışabilir: Bir "tohum" paylaşmadığın sürece başka bir oyuncu ile aynı dünyayı göremezsin.

Bununla ilgili herhangi bir yasal sorun göremiyorum, ancak Apple, App Store'undan reddedebilir ve oyun konsollarında onaylanması için çözüm sağlamanız gerekebilir.


0

Ekstra güvenlik önlemleri Contemplating eğlenceli, ama eklemez somut ürününüze değer - bu ürününüzü karşılaşmak kraker için niftiness gösterir. Prensip olarak, düşmanınız sizi yakalayacaktır.

Yaratıcılıkta gelişen geliştiricilerin aksine, krakerler analitik insanlardır - programınızı sezgisel olarak kullanabilirler. Geliştiriciler aşırı güvenlik önlemleri almaya eğilimli olduklarında, reddediyorlar - kırıcının koruma planlarını tekrar tersine çevirebileceği .

Bu arka plan yarışmasına katılmak isteyip istemediğiniz, o sizin çağrınız - ancak müşteriyi memnun etmesi gereken son ürününüzden rahatsız etmesine izin vermeyin. Oyunu bir sümüklü böcek haline getiren ilginç bir şifreleme sistemi işe yaramaz.


0

Mason Wheeler haklı: bunu yapamazsın. Birisi isterse oyununuzu tersine çevirebilir.

Oyununuzu zaten tanımladığınız şekilde "korumanıza" gerek yok. Bir kişi Paskalya yumurtasını bulur bulmaz sırrı çantadan çıkarır. Oyunun her kopyası farklı bir Paskalya yumurtasına sahipse, sadece hacker kopyası bilinir. 1000 kişiden birinin hacker'ın Paskalya yumurtasını oyun oynamadan bulması gerçekten umrunda mı?

Telif hakkı yasası, hiç kimsenin ciddi bir davayı riske atmadan oyundan para kazanamayacağı şekildedir, bu nedenle telif hakkı sizi korur.

Rasgele kullanıcılar dokularınızı forum avatarlarına koyarlar, peki ne? Çim kökleri reklamını düşünün.

Eşyaları "korumak" konusunda saplantılı olmak, sizi zorlu gerçeklerden uzaklaştırır: oyunu yapmak .

Var olmayan şeyler için IP koruma şemalarından bahseden hiçbir ürünü olmayan insanları gördüğümde, bu benim için bir tür boşanma anı çünkü tüm proje üzerinde büyük bir kırmızı bayrak ortaya çıkarıyor.


-1

Bazı olasılıklar:

  • Düz eski kod gizleme . Kodun kodunu çözmeyi imkansız kılmayacak, ama en azından zor olacak.

  • Sunucu tarafı çözümü. Sunucuya bazı özel komutlar gönderirsiniz ve sunucu size kodu gönderebilir ... hatta bir DLC indirebilir.

  • Diğer içerikteki yürütülebilir kodu gizlemek için Steganography kullanabilirsiniz .

Bu, sırrınızı% 100 güvence altına almaz ama sırr ortaya çıkarsa hiç kimse para kaybedemez.


-1

İstemcide hem anahtarı hem de algoritmayı depoladığınız diğer şemalar gibi işe yaramaz. "Anahtar nerede? Kullanıcıların girişine güveniyorum ve kendim saklamıyorum?" Bu kesin algoritma ve kaynakları, zor durumdaki oyunda henüz kodladığınız anahtar üretme algoritmasıdır. Herkes "varolmayan" anahtarınızı, sadece bilmecenizi kurallarınıza göre çözen küçük bir program yazarak alabilir.


1
Ancak, her yapboz daha önce yapılmamış bir bilmece gibi, bir bilgisayar tarafından kolayca çözülemez. Bir bilgisayarın oyundaki tüm iletişim kutularını okuması ve tüm dokuları işlemesi de zordur. Olsa bile, bu bilmeceyle ilgili bir şeyin ortaya çıktığını nasıl anlardı? Dolu anahtarın oyunda saklanması bile gerekmez, belki de anahtarın bulunduğu kutunun arka tarafını okumak için bir ipucu vardır, bilgisayar bunu yapamaz. Bulmacanın bilgisayarın çözebileceği bir şey olsa bile, Sudoku gibi, en azından onu çözmeyen bulmacayı çözüyor olacaktı.
Christer,

@Christer, başka herhangi bir "gizlilik gereği güvenlik" ev yapımı şifreleme bulmaktan farklı değildir. "Kutuda" - kullanıcıya verdiğiniz "dosya" kaynağı yerine, kullanıcıya verdiğiniz "kağıt kapak" kaynağının anahtarını yazdınız . Büyük anlaşma
Oleg V. Volkov

@Chriser, yani "daha önce yapılmamış bir bilmecenin çözülmesi", "daha önce yapılmamış bir ev yapımı şifreleme algoritmasının çözülmesi " ile tamamen eşittir .
Oleg V. Volkov

Kullanıcı girişi temelinde bir şifre çözme anahtarı nasıl üretebileceğinizi görmüyor musunuz? Bu kullanıcı girişinin bir şey olabileceğini görmüyor musun? İstediğiniz iyi bir şifre çözme anahtarı üreten doğru kullanıcı girişi nedir? Kim bilir, oyun boyunca her türlü ilginç şekilde gizlenir. Umarım bulduğunuz nokta budur! Aksi halde bu içeriğe ulaşmada iyi şanslar.
Christer,

Kaynak okumaktan tam olarak ne farkı var? Görevleri belirlenmiş kurallara göre yaparsınız -> anahtar alırsınız. Bu kadar. Bunun dışında, sadece oyun oynamak yerine, diğer oyun kaynaklarından "ipuçlarını" okuyarak kısayolları alabilirsiniz.
Oleg V. Volkov
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.