REST এপিআই সুরক্ষা: এইচএমএসি / কী হ্যাশিং বনাম জেডব্লিউটি


16

আমি এই নিবন্ধটি পড়েছিলাম যা কয়েক বছরের পুরনো তবে আপনার REST এপিআইগুলি সুরক্ষিত করার একটি চতুর উপায় বর্ণনা করে। মূলত:

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

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


1
লল ... আমি ঠিক একই প্রশ্ন জিজ্ঞাসা করতে চেয়েছিলাম এবং আপনার জুড়ে এসেছি। রাষ্ট্রবিহীন প্রমাণীকরণ সম্পর্কে আমি প্রথম যে জিনিসটি পেয়েছি তা হ'ল এডাব্লুএস থেকে: ডকস.আও.এসএজাজান / আমাজানসিম্পলডিবি / স্লেস্ট / ডেভেলপারগুইড / ,, এবং এই ম্যাসিমিলিয়ানোসিয়াকো.কমের মতো কিছু কার্যকর করেছে । তারপরে আমি জেডাব্লুএস / জেডাব্লুটি পেয়েছি এবং এটি কোনওরকম অনুরূপ। তবে আমি যতদূর বুঝতে পেরেছি JWT একটি মান এবং উপরে বর্ণিত অন্যান্য সমাধানগুলি হ'ল কিছু কাস্টম বাস্তবায়ন (মানক নয়)। আমি ভুল হলে কেউ আমাকে সংশোধন করে।
nyxz

2
জেনে রাখা ভাল যে আমি এই ধরণের বিশদ সম্পর্কে কেবল উদ্বিগ্ন নই! জেডাব্লুটিটি অবশ্যই একইরকম অনুভূত হয় এবং বোনাস হ'ল এটি মানসম্মত। আমি কেবল ভাবছি কীভাবে এটি এই কাস্টম এইচএমএসি সমাধানের সাথে মেলামেশা করে (সুরক্ষা-ভিত্তিক)।
স্মিবিব করুন

উত্তর:


7

আসুন এটি একটি খুব প্রাথমিক উত্তর দিয়ে শুরু করা যাক।

জেডব্লিউটি (ওআউথ এবং ওপেনআইডি প্রসঙ্গে ব্যবহৃত হিসাবে) ক্লায়েন্ট এবং এপিআইয়ের মধ্যে ভাগ করা গোপনীয়তার প্রয়োজন হয় না। এখানে 3 টি উপাদান এবং 2 টি জোড়া একটি গোপনীয়তা ভাগ করে থাকে: ক্লায়েন্ট <-> সনাক্তকরণ সার্ভার, সনাক্তকরণ সার্ভার <-> এপিআই।

এটি এপিআই থেকে সনাক্তকরণ সার্ভারে সবচেয়ে জটিলতা সরিয়ে দেয়, এপিআইকে কেবলমাত্র টোকেন সনাক্তকারী সার্ভার দ্বারা জারি করা হয়েছিল এবং তাতে মেজাজ ছিল না তা পরীক্ষা করতে হবে। যাচাই-বাছাই করে এআইপিটি সনাক্ত করে যে সার্ভার এবং এপিআইয়ের মধ্যে পরিচিত একক ভাগ ভাগের গোপনীয়তা সহ JWT- স্বাক্ষর বৈধ কিনা তা পরীক্ষা করে। এটাই!

সনাক্তকারী সার্ভারটি কীভাবে ব্যবহারকারীর পরিচয় যাচাই করে তা ব্যাপকভাবে পরিবর্তিত হতে পারে (অনেক ক্ষেত্রে এটি টিএলএস-সংযোগের ক্ষেত্রে পুরানো ব্যবহারকারীর নাম + পাসওয়ার্ডের জুড়ি), তবে আপনার এপিআইয়ের কোনও প্রভাব নেই।

জেডাব্লুটিটি ব্যবহার করার সময় গোপনীয়তা এবং বার্তার সুরক্ষা এবং টোকেন নিজেই টিএলএস দ্বারা পরিচালিত হয়, জেডব্লিউটি এই জাতীয় বিষয়গুলি সম্পর্কে অজ্ঞ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.