हालांकि फिलिप का जवाब पूरी तरह से अच्छा है, थोड़ा अलग तरीका है कि लॉगिन सर्वर और गेम सर्वर के बीच एक कनेक्शन की आवश्यकता नहीं है, जो इस तरह के कनेक्शन के लिए मुश्किल है।
- जब उपयोगकर्ता लॉगिन सर्वर पर सफलतापूर्वक प्रमाणित होता है, तो उन्हें गेम सर्वर पता और ऊपर के रूप में लॉगिन टोकन भेजा जाता है। हालाँकि इस टोकन में 2 भाग होते हैं: लॉगिन सर्वर पर समय, और उस नंबर का एक हैश उनके उपयोगकर्ता नाम, उनका आईपी पता, गेम सर्वर का आईपी पता या आईडी, और एक गुप्त कुंजी जिसे केवल आप जानते हैं।
- क्लाइंट इस टोकन को भेजकर प्रदान किए गए गेम सर्वर में लॉग इन करने का प्रयास करता है। सर्वर पहले की तरह ही हैश बनाता है, लॉगिन टोकन में जानकारी के आधार पर इसका अपना आईपी पता / आईडी और गुप्त कुंजी। यदि यह हैश टोकन में एक से मेल खाता है, तो आप जानते हैं कि खिलाड़ी ठीक से प्रमाणित है। फिर जाँच करें कि तारीख बहुत पुरानी नहीं है (उदाहरण के लिए 1 मिनट से अधिक)।
यह काम करता है क्योंकि:
- इसे कॉपी नहीं किया जा सकता है और जैसे ही यह तिथि समाप्त होगी।
- इसका निर्माण गुप्त कुंजी को जाने बिना एक नए लॉगिन के बिना नहीं किया जा सकता है।
- इसे आसानी से किसी और के द्वारा इंटरसेप्ट नहीं किया जा सकता है (जैसे कि एक पैकेट स्निफर के साथ) और इसका इस्तेमाल किया जाता है क्योंकि इसका निर्माण करने के लिए मूल आईपी पते का उपयोग किया जाता है।
- इसका उपयोग अलग खाते के लिए नहीं किया जा सकता क्योंकि उपयोगकर्ता नाम हैश का हिस्सा है।
- इसका उपयोग विभिन्न गेम सर्वरों पर समवर्ती लॉगिन के लिए नहीं किया जा सकता है क्योंकि सर्वर का आईडी / आईपी पता हैश का हिस्सा है।
या इसे और अधिक सरलता से रखने के लिए, हैश सुनिश्चित करता है कि प्रेषक के लिए अपना लॉगिन टोकन जाली होना लगभग असंभव है और इसलिए टोकन की जानकारी पर भरोसा किया जा सकता है।
किसी भी सुरक्षा उन्मुख हैशिंग के साथ, आपके द्वारा प्राप्त किए जा सकने वाले सर्वोत्तम हैश फ़ंक्शन का उपयोग करें - जिस समय लोगों को bcrypt, PBKDF2 और स्क्रीप्ट पसंद आते हैं - और यह सुनिश्चित करना कि आपकी गुप्त कुंजी बहुत लंबी है ताकि ब्रूट फ़ोर्स प्रजनन को अधिक व्यावहारिक बनाया जा सके।