OAuth 1.0 প্রোটোকলের সুরক্ষা ( আরএফসি 5849 ) একটি ক্লায়েন্ট অ্যাপ্লিকেশনটিতে এম্বেড করা একটি গোপন কী গোপনীয় রাখা যেতে পারে এই ধারণার উপর নির্ভর করে। তবে অনুমান নিরীহ।
ওআউথ ২.০ ( আরএফসি 6749 ) এ, এই ধরণের নিষ্পাপ ক্লায়েন্ট অ্যাপ্লিকেশনকে একটি গোপনীয় ক্লায়েন্ট বলা হয় । অন্যদিকে, এমন একটি পরিবেশে ক্লায়েন্ট অ্যাপ্লিকেশন যেখানে গোপনীয় কী গোপনীয় রাখা কঠিন, তাকে পাবলিক ক্লায়েন্ট বলা হয় । ২.১ দেখুন । বিশদ জন্য ক্লায়েন্ট প্রকার ।
সেই অর্থে, OAuth 1.0 শুধুমাত্র গোপনীয় ক্লায়েন্টদের জন্য একটি স্পেসিফিকেশন।
" OAuth 2.0 এবং দ্য রোড টু হেল " বলছে যে OAuth 2.0 কম সুরক্ষিত তবে OAuth 1.0 ক্লায়েন্ট এবং OAuth 2.0 গোপনীয় ক্লায়েন্টের মধ্যে সুরক্ষা স্তরের কোনও ব্যবহারিক পার্থক্য নেই। OAuth 1.0 এর স্বাক্ষর গণনা করা দরকার, তবে ক্লায়েন্টের পাশে কোনও গোপন কীটি গোপনীয় রাখা যেতে পারে তা ইতিমধ্যে যদি নিশ্চিত করা হয় তবে এটি সুরক্ষা বাড়ায় না। কোনও ব্যবহারিক সুরক্ষা বর্ধন ছাড়াই কম্পিউটিং স্বাক্ষর কেবল একটি জটিল গণনা। আমার অর্থ, সরলতার সাথে তুলনা করুন যে কোনও OAuth 2.0 ক্লায়েন্ট টিএলএস এর মাধ্যমে একটি সার্ভারের সাথে সংযোগ স্থাপন করে এবং কেবল উপস্থাপন করে client_id
এবং client_secret
, এটি বলা যায় না যে সুরক্ষার দিক থেকে ভারী গণনাটি আরও ভাল।
এছাড়াও, আরএফসি 5849 (OAuth 1.0) ওপেন পুনর্নির্দেশকারীদের সম্পর্কে কিছুই উল্লেখ করে না যখন আরএফসি 6749 (OAuth 2.0) করে। অর্থাৎ, oauth_callback
OAuth 1.0 এর প্যারামিটারটি সুরক্ষা গর্তে পরিণত হতে পারে।
অতএব, আমি মনে করি না যে OAuth 1.0 OAuth 2.0 এর চেয়ে বেশি সুরক্ষিত।
[এপ্রিল 14, 2016] আমার বক্তব্য স্পষ্ট করার জন্য সংযোজন
OAuth 1.0 সুরক্ষা স্বাক্ষর গণনার উপর নির্ভর করে। একটি স্বাক্ষর একটি গোপন কী ব্যবহার করে গণনা করা হয় যেখানে একটি গোপন কীটি এইচএমএসি-এসএএএ 1 ( আরএফসি 5849, 3.4.2 ) বা আরএসএ-এসএএএএ 1 ( আরএফসি 5849, 3.4.3 ) এর জন্য একটি ব্যক্তিগত কী রয়েছে shared যে কেউ গোপন কী জানে সে স্বাক্ষর গণনা করতে পারে। সুতরাং, যদি গোপন কীটি আপোস করা হয় তবে স্বাক্ষর গণনার জটিলতা অর্থহীন তবে তা জটিল।
এর অর্থ OAuth 1.0 সুরক্ষা জটিলতা এবং স্বাক্ষর গণনার যৌক্তিকতার উপর নির্ভর করে না তবে কেবল একটি গোপন কীটির গোপনীয়তার উপর নির্ভর করে। অন্য কথায়, OAuth 1.0 সুরক্ষার জন্য যা প্রয়োজন তা কেবল শর্ত যে কোনও গোপন কীটি গোপন রাখা যায়। এটি চরম শোনাতে পারে তবে স্বাক্ষর গণনা শর্তটি ইতিমধ্যে সন্তুষ্ট হলে কোনও সুরক্ষা বর্ধন যোগ করে না।
তেমনি, OAuth 2.0 গোপনীয় ক্লায়েন্টরা একই শর্তের উপর নির্ভর করে। শর্তটি ইতিমধ্যে সন্তুষ্ট থাকলে, সুরক্ষিত সংযোগের মাধ্যমে টিএলএস ব্যবহার করে কোনও সুরক্ষিত সংযোগ তৈরি client_id
এবং client_secret
কোনও অনুমোদনের সার্ভারে কোনও সমস্যা আছে কি? যদি উভয়ই একই শর্তে নির্ভর করে তবে OAuth 1.0 এবং OAuth 2.0 গোপনীয় ক্লায়েন্টের মধ্যে সুরক্ষা স্তরের কোনও বড় পার্থক্য রয়েছে?
আমি OAuth 2.0 এর জন্য OAuth 2.0 কে দোষ দেওয়ার জন্য কোনও ভাল কারণ খুঁজে পাচ্ছি না। আসল কথাটি হ'ল (১) OAuth 1.0 শুধুমাত্র গোপনীয় ক্লায়েন্টদের জন্য একটি স্পেসিফিকেশন এবং (২) OAuth 2.0 গোপনীয় ক্লায়েন্ট এবং সমর্থিত পাবলিক ক্লায়েন্টগুলির জন্য প্রোটোকলটিও সহজ করেছে । এটি সুপরিচিত বা না জানা যাই হোক না কেন, স্মার্টফোন অ্যাপ্লিকেশনগুলি সর্বজনীন ক্লায়েন্ট ( আরএফসি 6749, 9 ) হিসাবে শ্রেণীবদ্ধ করা হয় , যা OAuth 2.0 থেকে উপকৃত হয়।