OAuth টোকেন উত্পন্ন করার সর্বোত্তম অনুশীলনগুলি?


101

আমি বুঝতে পারি যে OAuth স্পেসটি কনজিউমারকি, কনজিউমারসেক্রেট, অ্যাক্সেসটোকেন, রিকোস্টটোকেন, টোকেনসেক্রেট বা ভেরিফায়ার কোডের উত্স সম্পর্কে কিছুই নির্দিষ্ট করে না, তবে উল্লেখযোগ্যভাবে সুরক্ষিত টোকেন তৈরির জন্য যদি সেরা কোনও অনুশীলন থাকে তবে (বিশেষত টোকেন / গোপন সংমিশ্রণ)।

আমি এটি দেখতে পাচ্ছি, টোকেনগুলি তৈরি করার জন্য কয়েকটি পন্থা রয়েছে:

  1. কেবল র্যান্ডম বাইট ব্যবহার করুন, গ্রাহক / ব্যবহারকারীর সাথে সম্পর্কিত ডিবিতে সঞ্চয় করুন
  2. কিছু ব্যবহারকারী / ভোক্তা-নির্দিষ্ট ডেটা, গ্রাহক / ব্যবহারকারীর সাথে সম্পর্কিত ডিবিতে সঞ্চয় করুন
  3. ব্যবহারকারী / ভোক্তা-নির্দিষ্ট ডেটা এনক্রিপ্ট করুন

(1) এর সুবিধাগুলি হ'ল ডেটাবেস কেবল তথ্যের একমাত্র উত্স যা সবচেয়ে নিরাপদ বলে মনে হয়। (2) বা (3) এর চেয়ে আক্রমণ চালানো আরও শক্ত হবে।

আসল তথ্য হ্যাশিং (২) সম্ভবত ইতিমধ্যে পরিচিত ডেটা থেকে টোকেনটি পুনরায় তৈরি করার অনুমতি দেবে। (1) এর কোনও সুবিধা সত্যিই সরবরাহ করতে পারে না যেহেতু যাইহোক স্টোর / লুকিংয়ের প্রয়োজন হবে। (1) এর চেয়ে বেশি সিপিইউ নিবিড়।

আসল ডেটা (3) এনক্রিপ্ট করা ডিক্রিপ্টিংকে তথ্য জানার অনুমতি দেয়। এর জন্য (1) এবং (2) এর চেয়ে কম সঞ্চয় এবং সম্ভাব্যভাবে কম লুকআপের প্রয়োজন হবে তবে সম্ভাব্যভাবেও কম সুরক্ষিত হবে।

অন্য কোন পন্থা / সুবিধা / অসুবিধা বিবেচনা করা উচিত?

সম্পাদনা: অন্য বিবেচনাটি হ'ল টোকেনগুলিতে কিছু র্যান্ডম মান থাকতে হবে কারণ সেখানে নতুন টোকেনের মেয়াদ শেষ এবং পুনরায় প্রকাশ করার ক্ষমতা থাকতে হবে যাতে এটি কেবল সত্যিকারের ডেটা নিয়েই অন্তর্ভুক্ত থাকে না।

প্রশ্নগুলি অনুসরণ করুন :

উল্লেখযোগ্যভাবে ক্রিপ্টোগ্রাফিকভাবে সুরক্ষিত করার জন্য কি কোনও নূন্যতম দৈর্ঘ্য রয়েছে? আমি এটি বুঝতে পেরেছি, দীর্ঘ টোকেন সিক্রেটস আরও সুরক্ষিত স্বাক্ষর তৈরি করবে। এই বোঝাপড়াটি কি সঠিক?

হ্যাশিং দৃষ্টিকোণ থেকে অন্যটির উপরে একটি নির্দিষ্ট এনকোডিং ব্যবহার করার সুবিধা রয়েছে কি? উদাহরণস্বরূপ, আমি হেক্স এনকোডিংগুলি (যেমন জিইউইডি স্ট্রিং) ব্যবহার করে প্রচুর এপিআই দেখছি। OAuth স্বাক্ষরকারী অ্যালগরিদমে, টোকন একটি স্ট্রিং হিসাবে ব্যবহৃত হয়। একটি হেক্স স্ট্রিং সহ, উপলব্ধ অক্ষর সেট বেস 64 এনকোডিংয়ের চেয়ে অনেক ছোট (আরও অনুমানযোগ্য) হবে। এটি আমার কাছে মনে হয় সমান দৈর্ঘ্যের দুটি স্ট্রিংয়ের জন্য, বৃহত্তর অক্ষরের সেট সহ একটির আরও ভাল / প্রশস্ত হ্যাশ বিতরণ হবে। এটি আমার কাছে মনে হয় এটি সুরক্ষার উন্নতি করবে। এই ধারণাটি কি সঠিক?

ওএউথ স্পেস 1110 সিক্রেটস এর এনট্রপিতে এটি খুব সমস্যাটি উত্থাপন করে ।


এনক্রিপশন কেন? হ্যাশিং যথেষ্ট না? পাসওয়ার্ডের জন্য যদি কেবল হ্যাসিংই যথেষ্ট ভাল হয় তবে লম্বা অ্যাক্সেস টোকেনের জন্য আরও ভাল হওয়া উচিত নয়?
অ্যালিকেলিন-কিলাকা

আমি প্রশ্ন জিজ্ঞাসা করে 7.5 বছর হয়ে গেছে। আমি সততার সাথে মনে করতে পারি না।
ম্যাকামে

4
আবার পড়া, হ্যাশিং এবং এনক্রিপশন দুটি পৃথক পদ্ধতির পরামর্শ দেওয়া হয়েছিল। এনক্রিপশনটি সার্ভারকে কোনও ডিবি লুকআপ ছাড়াই কিছু তথ্য পাওয়ার অনুমতি দেয়। এটি ছিল অনেকের মধ্যে একটি বাণিজ্য trade
ম্যাকামে

উত্তর:


93

OAuth টোকেন সম্পর্কে কিছুই বলে না এটির সাথে এর সাথে একটি গোপনীয়তা যুক্ত রয়েছে। সুতরাং আপনার উল্লিখিত সমস্ত প্রকল্পগুলি কাজ করবে। সাইটগুলি বড় হওয়ার সাথে সাথে আমাদের টোকেনটি বিকশিত হয়েছিল। আমরা এর আগে যে সংস্করণগুলি ব্যবহার করেছি তা এখানে are

  1. আমাদের প্রথম টোকেনটি একটি এনক্রিপ্টড বিএলওবি যা ব্যবহারকারীর নাম, টোকেন সিক্রেট এবং মেয়াদোত্তীর্ণ হওয়া ইত্যাদি The সমস্যাটি হ'ল আমরা হোস্টের কোনও রেকর্ড ছাড়াই টোকেন প্রত্যাহার করতে পারি না।

  2. সুতরাং আমরা এটিতে ডাটাবেসে সমস্ত কিছু সঞ্চয় করতে পরিবর্তন করেছি এবং টোকেন হ'ল ডাটাবেসের মূল হিসাবে ব্যবহৃত একটি এলোমেলো সংখ্যা। এটির একটি ব্যবহারকারীর নাম সূচক রয়েছে তাই ব্যবহারকারীর জন্য সমস্ত টোকেন তালিকাবদ্ধ করা এবং এটি প্রত্যাহার করা সহজ।

  3. আমরা হ্যাকিংয়ের প্রচুর ক্রিয়াকলাপ পাই। এলোমেলো সংখ্যা সহ, টোকেনটি বৈধ কিনা তা জানতে আমাদের ডাটাবেসে যেতে হবে। সুতরাং আমরা আবার এনক্রিপ্ট করা BLOB এ ফিরে গেলাম। এবার, টোকেনে কেবল কী এবং মেয়াদ শেষ হওয়ার এনক্রিপ্ট করা মান রয়েছে। সুতরাং আমরা ডাটাবেসে না গিয়ে অবৈধ বা মেয়াদোত্তীর্ণ টোকেনগুলি সনাক্ত করতে পারি।

কিছু বাস্তবায়ন বিশদ যা আপনাকে সহায়তা করতে পারে,

  1. টোকনে একটি সংস্করণ যুক্ত করুন যাতে আপনি বিদ্যমানগুলি ভঙ্গ না করে টোকেন বিন্যাসটি পরিবর্তন করতে পারেন। আমাদের সমস্ত টোকেন সংস্করণ হিসাবে প্রথম বাইট আছে।
  2. বিএলএবকে এনকোড করতে বেস safe৪ এর ইউআরএল-নিরাপদ সংস্করণ ব্যবহার করুন যাতে আপনাকে ইউআরএল-এনকোডিং সংক্রান্ত সমস্যাগুলি মোকাবেলা করতে হবে না, যা ডিওগিংকে OAuth স্বাক্ষরের সাথে আরও জটিল করে তোলে, কারণ আপনি ট্রিপল এনকোডড বেসস্ট্রিং দেখতে পাচ্ছেন।

4
দুর্দান্ত, ধন্যবাদ সংস্করণ ধারণাটি একটি ভাল। আমার কাছে ইউআরএল-বান্ধব বেস 64 রয়েছে, তবে আমি চাইছি আরও সহজ পড়ার জন্য আমার কঠোরভাবে আলফা-সংখ্যাযুক্ত এনকোডিং থাকুন।
ম্যাকামে

এর আগে ভেবে দেখিনি, খুব মজাদার! আমি এপিসি কী-ক্যাচিংয়ের পরিকল্পনা করছিলাম এটি পড়ার আগেই অনাবৃত লোড বন্ধ রাখার জন্য। এখনও ভাগ করে নেওয়া নিশ্চিত না যে এটি ভাগ করে নেওয়া মেমরির লুকোচুরি এপিসির চেয়ে ধীরে ধীরে নাও হতে পারে (কমপক্ষে ২ য়, তৃতীয়, ইত্যাদি ... যুক্তিসঙ্গত টাইমস্প্যানের মধ্যে অনুরোধ)।
ফিলজেন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.