আক্রমণকারীর প্রভাব
অনুপযুক্ত JWT বৈধতা আক্রমণকারীদের দাবি জাল করে বা মেয়াদোত্তীর্ণ টোকেন [S1] পুনরায় ব্যবহার করে প্রমাণীকরণ প্রক্রিয়া বাইপাস করতে দেয়। যদি কোনো সার্ভার বৈধ স্বাক্ষর ছাড়াই টোকেন গ্রহণ করে, তাহলে কোনো আক্রমণকারী বিশেষাধিকার বৃদ্ধি করতে বা কোনো ব্যবহারকারী [S1] ছদ্মবেশী করতে পেলোড পরিবর্তন করতে পারে। অধিকন্তু, মেয়াদোত্তীর্ণ (exp) দাবি কার্যকর করতে ব্যর্থ হলে একজন আক্রমণকারীকে একটি আপস করা টোকেন অনির্দিষ্টকালের জন্য [S1] ব্যবহার করার অনুমতি দেয়৷
মূল কারণ
একটি JSON ওয়েব টোকেন (JWT) হল একটি JSON-ভিত্তিক কাঠামো যা ডিজিটালভাবে স্বাক্ষরিত বা অখণ্ডতা সুরক্ষিত [S1] দাবির প্রতিনিধিত্ব করতে ব্যবহৃত হয়। নিরাপত্তা ব্যর্থতা সাধারণত দুটি প্রাথমিক বাস্তবায়ন ফাঁক থেকে উদ্ভূত হয়:
- অনিরাপদ JWTs গ্রহণ: যদি একটি পরিষেবা কঠোরভাবে স্বাক্ষর যাচাইকরণ প্রয়োগ না করে, তাহলে এটি "অনিরাপদ JWTs" প্রক্রিয়া করতে পারে যেখানে স্বাক্ষর অনুপস্থিত থাকে এবং অ্যালগরিদম "কোনটিই নয়" [S1] তে সেট করা থাকে। এই পরিস্থিতিতে, সার্ভার তাদের অখণ্ডতা [S1] যাচাই না করেই পেলোডের দাবিগুলিকে বিশ্বাস করে৷
- অনুপস্থিত দাবির বৈধতা:
exp(মেয়াদ শেষ হওয়ার সময়) দাবিটি সেই সময়কে চিহ্নিত করে যেটি বা তার পরে JWT অবশ্যই [S1] প্রক্রিয়াকরণের জন্য গ্রহণ করা উচিত নয়৷aud(শ্রোতা) দাবি [S1] টোকেনের উদ্দিষ্ট প্রাপকদের চিহ্নিত করে৷ যদি এইগুলি চেক না করা হয়, সার্ভার টোকেনগুলি গ্রহণ করতে পারে যেগুলির মেয়াদ শেষ হয়ে গেছে বা একটি ভিন্ন অ্যাপ্লিকেশন [S1] এর জন্য ছিল৷
কংক্রিট ফিক্স
- ক্রিপ্টোগ্রাফিক স্বাক্ষর প্রয়োগ করুন: যেকোন JWT প্রত্যাখ্যান করার জন্য অ্যাপ্লিকেশনটি কনফিগার করুন যা একটি পূর্ব-অনুমোদিত, শক্তিশালী স্বাক্ষর করার অ্যালগরিদম (যেমন RS256) ব্যবহার করে না।
- মেয়াদ শেষ হওয়ার বৈধতা দিন: বর্তমান তারিখ এবং সময়
expদাবি [S1]-এ নির্দিষ্ট সময়ের আগে নিশ্চিত করতে একটি বাধ্যতামূলক চেক প্রয়োগ করুন৷ - শ্রোতা যাচাই করুন: নিশ্চিত করুন
audদাবিতে স্থানীয় পরিষেবা চিহ্নিতকারী একটি মান রয়েছে;audদাবিতে পরিষেবাটি চিহ্নিত না হলে, টোকেন অবশ্যই [S1] প্রত্যাখ্যান করতে হবে। - রিপ্লে প্রতিরোধ করুন:
jti(JWT ID) দাবিটি ব্যবহার করুন প্রতিটি টোকেনের জন্য একটি অনন্য শনাক্তকারী বরাদ্দ করার জন্য, সার্ভারটিকে পুনরায় ব্যবহার করা টোকেন [S1] ট্র্যাক এবং প্রত্যাখ্যান করার অনুমতি দেয়৷
সনাক্তকরণ কৌশল
JWT পরিচালনার দুর্বলতাগুলি টোকেন গঠন এবং সার্ভার প্রতিক্রিয়া আচরণ বিশ্লেষণ করে চিহ্নিত করা যেতে পারে:
- হেডার পরিদর্শন:
alg(অ্যালগরিদম) শিরোনামটি "কোনটিই" সেট করা নেই এবং প্রত্যাশিত ক্রিপ্টোগ্রাফিক মান [S1] ব্যবহার করে তা নিশ্চিত করতে পরীক্ষা করা হচ্ছে। - দাবি যাচাই: JSON পেলোড [S1]-এর মধ্যে
exp(মেয়াদ শেষ হওয়া) এবংaud(শ্রোতা) দাবির উপস্থিতি এবং বৈধতা নিশ্চিত করা। - ভ্যালিডেশন টেস্টিং: সার্ভার সঠিকভাবে
expদাবি অনুযায়ী মেয়াদ উত্তীর্ণ হওয়া টোকেনগুলিকে প্রত্যাখ্যান করে বাaudদাবিaudদাবির দ্বারা সংজ্ঞায়িত ভিন্ন দর্শকের জন্য উদ্দেশ্যে করা হয়েছে কিনা তা পরীক্ষা করা।
