ओएथ 2 एक्सेस टोकन की अवधि समाप्त होने की आवश्यकता नहीं है (या बल्कि वे करते हैं, लेकिन यह कई सालों से हो सकता है)।
संसाधन सर्वर से कुछ संसाधन प्राप्त करने के लिए एक एक्सेस टोकन का उपयोग किया जा सकता है, विशेष रूप से, यह उपयोगकर्ता द्वारा अनुमोदित उन संसाधनों के अधिग्रहण की अनुमति देता है। दूसरी ओर एक ताज़ा टोकन बार-बार पहुंच की अनुमति देता है। इस प्रकार कोई भी हर एक्सेस के बीच उपयोगकर्ता इंटरैक्शन की आवश्यकता के बिना ताज़ा टोकन के साथ नहीं कर सकता है।
सामान्य रूप से, टोकन को कभी-कभी उसी डिवाइस पर अन्य दुर्भावनापूर्ण ऐप्स द्वारा या फोन पर एमआईटीएम हमलों द्वारा चुराया जा सकता है। एसएसएल एमआईटीएम-सक्षम है अगर फोन को डोडी सर्टिफिकेट पर भरोसा करने के लिए बनाया जा सकता है। कभी-कभी कंपनियों द्वारा आंतरिक नेटवर्क तक पहुंचने की आवश्यकता होती है (उन्हें एक स्व-हस्ताक्षरित प्रमाणपत्र की स्वीकृति की आवश्यकता होती है, जो उन्हें कंपनी नेटवर्क पर होने वाले सभी एन्क्रिप्टेड यातायात को एमआईटीएम करने की अनुमति देता है। इस प्रकार एन्क्रिप्टेड टोकन भेजने का अर्थ है कि वे मार्ग में चोरी नहीं हो सकते हैं खतरनाक।
बेयरर टोकन किसी भी अन्य प्रकार के टोकन प्रति से कमजोर नहीं हैं, जैसा कि कागजात के एक समूह में साबित होता है (जिसमें से मेरा एक भी है, जिसे मैं इसे खोदने के लिए लिंक पोस्ट करूंगा।) हालांकि, भालू टोकन केवल उन मामलों में उपयुक्त हैं जहां वे धारणाएं वैध हैं। धारणा है कि टोकन को गुप्त रखा जा सकता है, सामान्य रूप से भालू टोकन की प्राथमिक धारणा है। यदि यह सत्य नहीं है तो भालू टोकन किसी भी सुरक्षा गुणों पर जोर नहीं देते हैं (हालांकि कुछ अभी भी पकड़ते हैं)। NIST Level 3 tokens देखें, जो परिभाषित करता है कि कौन से हमले वाले टोकन को हारना चाहिए, जैसा कि एस OAuth Bearer Tokens में pecified। छोटे भालू टोकन में टोकन की चोरी को हराने के लिए नहीं माना जाता है।
बेयरर टोकन निरस्त नहीं किया जा सकता है, यह सच है। हालांकि, यह देखते हुए कि अधिग्रहण के तुरंत बाद पहुंच टोकन का उपयोग करना सामान्य पैटर्न है, संभावित दुर्व्यवहार को रोकने के लिए किसी को टोकन तक पहुंच जल्दी से समाप्त करनी चाहिए, भले ही दुरुपयोग के मामले को वर्तमान में नहीं सोचा जा सके। लंबे समय तक एक टोकन चोरी होने की संभावना अधिक है। रीफ्रेश टोकन वास्तव में चुराए जाने के लिए और अधिक खतरनाक है, क्योंकि यह क्लाइंट आईडी को सुरक्षित नहीं कर सकता है, क्योंकि यह लंबे समय तक दोहराया गया है। OAuth2 सामान्य रूप से संसाधनों तक पहुंच प्रदान कर सकता है, और इस प्रकार उदाहरण के लिए एक समय के लिए क्लाइंट को एपीआई का पर्दाफाश करने के लिए इस्तेमाल किया जा सकता है। रीफ्रेश टोकन के साथ एक ही उपयोग टोकन के विपरीत, अधिक नुकसान किया जा सकता है।
क्लाइंट प्रमाणीकरण वास्तव में कई तरीकों से अधिक सुरक्षित बना दिया जा सकता है, उदाहरण के लिए, प्रत्येक क्लाइंट को एक अलग कुंजी डाउनलोड करने पर। यह सामान्यीकृत हमलों को रोकता है जहां एक डिवाइस पर रिवर्स इंजीनियरिंग एक टोकन क्लाइंट के सभी उदाहरणों के लिए सुरक्षा को तोड़ देता है। अन्य संभावित तकनीकों में क्लाइंट को आपके सर्वर के साथ सत्यापित करने के लिए OAuth का उपयोग करना शामिल है, जो तब प्राधिकरण सर्वर के साथ OAuth प्रोटोकॉल का दूसरा भाग करता है जिसे आप एक्सेस करना चाहते हैं। इसके बाद आपके पास उन क्लाइंट्स हैं जो नियमित रूप से अपनी चाबियाँ अपडेट करते हैं, और उनके लिए सभी अलग-अलग कुंजी होते हैं, उदाहरण के लिए फेसबुक या Google के स्वामित्व वाले प्राधिकरण सर्वर द्वारा उपयोग किए जाने वाले सिस्टम पर अवांछित बोझ नहीं डालते हैं।
मोबाइल ऐप का उपयोग करते समय, लंबे समय तक रहने वाले रीफ्रेश टोकन कुछ प्रकार के बहु-प्रयोग भालू टोकन होने से अधिक सुरक्षित होते हैं, भले ही कोई ग्राहक को सुरक्षित करने के लिए कदम न उठाए। ऐसा इसलिए है क्योंकि उपयोगकर्ता टोकन की समयसीमा समाप्त नहीं कर सकता है। यदि रीफ्रेश टोकन चोरी नहीं होता है, और उपयोगकर्ता केवल एक्सेस को निरस्त करना चाहता है तो यह किया जा सकता है। एक बहु-प्रयोग भालू टोकन को निरस्त नहीं किया जा सकता है भले ही उपयोगकर्ता केवल पहुंच को निरस्त करना चाहता हो। एक बहु-प्रयोग डेटाबेस संदर्भ टोकन को स्पष्ट रूप से निरस्त किया जा सकता है, लेकिन ऐसा नहीं है कि प्रोटोकॉल को किस प्रकार डिजाइन किया गया है और इस प्रकार सुरक्षा विश्लेषण जो ओएथ पर किए गए हैं, इस संकर प्रणाली की सुरक्षा के बारे में कुछ भी नहीं कहें।
निष्कर्ष में मैं ताज़ा टोकन और डेटाबेस टोकन का उपयोग करने की सलाह दूंगा, क्योंकि यह सुरक्षित होने की सबसे अधिक संभावना है। यदि आप क्लाइंट को सुरक्षित करने के लिए कुछ भी कर सकते हैं जो बोनस है, लेकिन जिन स्थितियों के खिलाफ यह सुरक्षा करता है, वे न्यूनतम हैं। यदि आप क्लाइंट को सुरक्षित करना चाहते हैं तो नरम टोकन, एक ला google प्रमाणीकरणकर्ता पर विचार करें, क्योंकि यह एक ठोस कार्यान्वयन है जिसने कुछ बहुत ही स्मार्ट लोगों द्वारा विश्लेषण को रोक दिया है।
"टोकन जारी करने पर, Google तब निर्णय ले सकता है कि डेवलपर द्वारा एप्लिकेशन को टोकन का अनुरोध करने के लिए अधिकृत किया गया था या नहीं।" वे यह काम कैसे करते हैं? एंड्रॉइड ओएस किसी भी तरह ऐप और नेटवर्क के बीच बैठा है, यह देखते हुए कि ऐप ठीक से हस्ताक्षरित है? – Thilo
एंड्रॉइड पर आप टोकन और प्राधिकरण को संभालने के लिए ['AccountManager'] (https://developer.android.com/reference/android/accounts/AccountManager.html) कक्षा का उपयोग कर सकते हैं, Google के लिए सेवा पहले से ही बनाई गई है। मुझे नहीं लगता कि वे पहले ही एप्लिकेशन हस्ताक्षर जांच का उपयोग कर रहे हैं, बल्कि क्लाइंट क्रेडेंशियल्स दृष्टिकोण का उपयोग कर रहे हैं। हस्ताक्षर जांच की घोषणा [आईएनआईवी इनबार द्वारा Google I/O 2012 की बात] (http://www.youtube.com/watch?v=dylFNrvZ_3U) में हुई है, दिलचस्प हिस्सा है [10:41] (http://www.youtube.com/watch?v=dylFNrvZ_3U&hd=1&t=10m41s)। –
परियोजना को [Google Play सेवाएं] कहा जाता है (https://developers.google.com/android/google-play-services/)। –