HMAC का অর্থ হলো Keyed-Hashing for Message Authentication। এটি একটি মেসেজ অথেন্টিকেশন কোড যা একটি ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশন (যেমন MD5, SHA1, এবং SHA256) ইনফরমেশন (যেটি অথেন্টিকেট করা হবে) এবং একটি শেয়ার্ড সিক্রেট কী এর ওপর চালিয়ে প্রাপ্ত হয়। HMAC RFC 2104-এ সংজ্ঞায়িত।
HMAC ডিজিটাল সিগনেচারের মত। উভয়ই ইন্টিগ্রিটি এবং অথেন্টিসিটি প্রদান করে। উভয়ই ক্রিপ্টোগ্রাফিক কী এবং হ্যাশ ফাংশন ব্যবহার করে। মূল পার্থক্য হলো ডিজিটাল সিগনেচার অ্যাসিমেট্রিক কী দাবি করে, HMAC সিমেট্রিক কী দাবি করে (কোনো পাবলিক কী নেই)।
HMAC যেকোনো ইটারেটেড ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশনের সাথে সিকোয়েন্সে ব্যবহার করা যেতে পারে। MD5 এবং SHA-1 হ্যাশ ফাংশনের উদাহরণ। HMAC কম্পিউটেশন এবং মেসেজ অথেন্টিকেশন ভ্যালু যাচাই করার জন্য একটি প্রাইভেট কী দাবি করে।
একটি হ্যাশড মেসেজ অথেন্টিকেশন কোড একই সাথে মেসেজের অথেন্টিসিটি এবং সেটির সাথে সম্পর্কিত ডেটা ইন্টিগ্রিটি যাচাই করতে পারে। সিক্রেট কীর সাইজ হ্যাশড মেসেজ অথেন্টিকেশন কোডের ক্রিপ্টোগ্রাফিক মজবুটি নির্ধারণ করে।
একটি হ্যাশড মেসেজ অথেন্টিকেশন কোড ইটেরেটিভ ক্রিপ্টোগ্রাফিক হ্যাশ ফাংশন যেমন SHA-1 এবং MD-5 সিক্রেট কীর সাথে ব্যবহার করতে পারে। হ্যাশড মেসেজ অথেন্টিকেশন কোড সার্ভার এবং ক্লায়েন্ট উভয়ের জন্য একটি পাবলিক এবং প্রাইভেট কী প্রদান করে। যদিও পাবলিক কী জানা থাকে, প্রাইভেট কী শুধু নির্দিষ্ট ক্লায়েন্ট এবং সার্ভারের কাছে জানা থাকে।
পুরো প্রক্রিয়া ক্লায়েন্ট দ্বারা অনুরোধ করা ইনফরমেশন ভিত্তিক একটি ইউনিক হ্যাশড মেসেজ অথেন্টিকেশন কোড তৈরি করার সাথে শুরু হয় এবং অনুরোধ করা ডেটা সিক্রেট কীর সাথে হ্যাশ করে। এটি রিকোয়েস্টের অংশ হিসেবে সার্ভারে পাঠানো হয়, যা দুটি হ্যাশড মেসেজ অথেন্টিকেশন কোড তুলনা করে, এবং যদি একই পাওয়া যায়, ক্লায়েন্টকে বিশ্বস্ত বলে.Request를 প্রসেস করতে দেয়। পুরো প্রক্রিয়াকেও একটি সিক্রেট হ্যান্ডশেক বলা হয়।
HMAC-এর মূল লক্ষ্যগুলো নিচে দেওয়া হলো:
- বिना পরিবর্তন উপলব্ধ হ্যাশ ফাংশন ব্যবহার করা। বিশেষ করে সফটওয়্যারে ভালো পারফর্ম করা হ্যাশ ফাংশন, এবং যেকোনো কোড szabadভাবে এবং ব্যাপকভাবে উপলব্ধ।
- হ্যাশ ফাংশনের আসল পারফরমেন্স সংরক্ষণ করা কোনো উল্লেখযোগ্য ডিগ্রেডেশন ছাড়া।
- কী ব্যবহার ও ম্যানেজমেন্ট সহজ উপায়ে।
- বেসিক হ্যাশ ফাংশন ওপর যুক্তিসঙ্গত অনুমান ভিত্তি করে অথেন্টিকেশন স্ট্রাকচারের মজবুতির একটি ভালো বোঝা हुआ ক্রিপ্টোগ্রাফিক্যাল অ্যানালাইসিস থাকা।
- বেসিক হ্যাশ ফাংশন সহজে রিপ্লেস করতে পারা যদি দ্রুত বা আরও নিরাপদ হ্যাশ ফাংশন খুঁজে পাওয়া যায় বা দরকার হয়।
- হ্যাশড মেসেজ অথেন্টিকেশন কোডের মূল উদ্দেশ্য হলো এটি কোলিশনের দ্বারা কম প্রভাবিত হয় এবং সিক্রেট ক্রিপ্টোগ্রাফিক কী পেতে ব্রুট ফোর্স হিসেবে বিবেচিত হয়।
- হ্যাশড মেসেজ অথেন্টিকেশন কোড একটি সুবিধাজনক উপায় প্রদান করে যাচাই করতে যে ইনফরমেশন টেম্পার করা হয়েছে কিনা এবং ব্যবহারকারীর অথেন্টিসিটি।