OpenSSL SHA1 ডাইজেস্ট নাম: একটি পুরোনো তালিকা কী বোঝায়
পুরোনো SHA1 নামগুলো লাইব্রেরির নিবন্ধন বর্ণনা করে, OpenVPN প্যাকেটে কী করেছে তা নয়। নিবন্ধিত নাম, ডাইজেস্ট এবং কলিং অপারেশন আলাদা রাখুন।
পুরোনো ডাইজেস্ট তালিকা ক্রিপ্টোগ্রাফিক সিদ্ধান্তের প্রতিলিপির মতো পড়া হয়, কিন্তু তা নয়। SHA1, DSA-SHA1-old বা RSA-SHA1-2 জাতীয় নাম পুরোনো OpenSSL বিল্ডে পাশাপাশি থাকে, কারণ লাইব্রেরিটি সম্পর্কিত হ্যাশ মেশিনারির চারপাশে একাধিক এন্ট্রি পয়েন্ট নিবন্ধন করেছিল। সেই তালিকার RSA বা DSA লেবেল OpenVPN প্যাকেটে কী করেছে সে সম্পর্কে কিছুই বলে না। আপনি যা পড়ছেন তা লাইব্রেরির ইনভেন্টরি, কোনো সেশনের রেকর্ড নয়।
যেকোনো সিদ্ধান্ত অর্থবহ হওয়ার আগে তিনটি জিনিস আলাদা করতে হবে: নিবন্ধিত নাম, তার নিচের ডাইজেস্ট গণনা এবং তা ব্যবহারকারী অপারেশন।
নিবন্ধন একটি ইন্টারফেস, শক্তির রেটিং নয়
OpenSSL 1.0.2-এ ডাইজেস্ট নিবন্ধন সারণি নাম, উপনাম ও বাস্তবায়নগুলোকে একটি ফাইলে যুক্ত করে। পুরোনো DSS1 বর্ণনাকারী সবচেয়ে স্পষ্ট উদাহরণ: এটি SHA-1-এর আউটপুট দৈর্ঘ্য জানায় এবং SHA-1-এর ফাইনালাইজেশন রুটিন ডাকে, অথচ এমন একটি নাম বহন করে যা সম্পূর্ণ ভিন্ন অ্যালগরিদমের ইঙ্গিত দেয়। তাই নিবন্ধনে অতিরিক্ত অক্ষর ভিন্ন হ্যাশ, দীর্ঘতর আউটপুট বা নতুন নিরাপত্তা স্তর বোঝায় না।
একই সোর্স পুরোনো কলারদের জন্য উপনামের সম্পর্ক সংরক্ষণ করে, যা ব্যাখ্যা করে কেন তালিকাটি ভিড়যুক্ত দেখায়। এটি সামঞ্জস্যের ডকুমেন্টেশন, বর্তমান OpenSSL প্রদানকারী একই নাম প্রকাশ করবে এমন প্রতিশ্রুতি নয়।
সাইনিং নাম সিগনেচার তৈরি করে না
একটি সাইনিং ফ্রেমওয়ার্ক একটি ডাইজেস্টকে অন্য অ্যালগরিদমের ইন্টারফেসে বেঁধে দিতে পারে যাতে বিদ্যমান কলাররা কম্পাইল হতে থাকে। প্রকৃত পাবলিক-কি সিগনেচারের জন্য একটি কি এবং তা ব্যবহারকারী সাইনিং ধাপ দুটোই দরকার, এবং মেনুর কোনো নাম এদের কোনোটিই সরবরাহ করে না। RSA-ঘেঁষা ডাইজেস্ট এন্ট্রি হলো এমন নাম যা কলার ব্যবহার করতে পারে, প্রতিটি VPN প্যাকেট RSA সিগনেচার বহন করেছে তার প্রমাণ নয়।
এই ধাপেই পুরোনো লেখাগুলো লোককাহিনিতে গড়িয়ে পড়ে। প্যাকেটগুলো কীভাবে প্রমাণিত হয়েছিল জানতে হলে যে অপশনটি পদ্ধতিটি বেছে নিয়েছিল তা খুঁজে বের করুন এবং আপনি যে সংস্করণ সত্যিই চালান তাতে এটি কী করে তা পড়ুন। সেই রিলিজের সঙ্গে দেওয়া ম্যানুয়াল পৃষ্ঠাটিই একমাত্র বর্ণনা যা আপনার সামনের প্রোগ্রামের সঙ্গে মেলে। সংরক্ষণাগারভুক্ত গাইডগুলো যে রিলিজের জন্য লেখা হয়েছিল তা বর্ণনা করে, যা কয়েকটি নামকরণ রীতি পিছিয়ে থাকতে পারে।
যে অপশনটি নামটি ব্যবহার করেছিল তা খুঁজুন
OpenVPN 2.6-এ নথিভুক্ত প্যাকেট-প্রমাণকরণের ক্ষেত্রে auth এমন একটি ডাইজেস্ট বেছে নেয় যা HMAC ব্যবহার করে, এটি সার্টিফিকেট সিগনেচার নয় বরং কি-যুক্ত বার্তা-প্রমাণকরণ গঠন। TLS সার্টিফিকেটের সাইনিং অ্যালগরিদম হ্যান্ডশেকের একটি পৃথক বৈশিষ্ট্য।
AEAD ডেটা সাইফারের সঙ্গে পৃথক auth সেটিং ডেটা চ্যানেলে প্রযোজ্য হওয়া বন্ধ করে, আর tls-auth-এর জন্য এর ভূমিকা আলাদা প্রশ্নই থেকে যায়। ডাইজেস্ট তালিকা তাই বলতে পারে না কোন হ্যাশ বর্তমান প্যাকেটগুলো রক্ষা করেছে, কোন TLS স্যুট নেগোশিয়েট হয়েছে, বা পিয়ার সার্টিফিকেট কীভাবে সাইন হয়েছে। কেবল কার্যকর কনফিগারেশন ও সংস্করণই এর উত্তর দিতে পারে, এবং কেবল আপনার সামনের সংযোগের জন্য।
আপনার কাছে আসলে কী আছে তা লিখে রাখুন
OpenVPN সংস্করণ, সংযুক্ত ক্রিপ্টো লাইব্রেরি, প্রোফাইলের সঠিক অপশন এবং একটি বাস্তব সংযোগের ফলাফল লিখে রাখুন। এই সেটটি এমন প্রশ্নের উত্তর দেয় যা ডাইজেস্ট মেনুর স্ক্রিনশট দিতে পারে না, এবং পরবর্তী আপগ্রেডেও টিকে থাকে কারণ এটি ধারণা নয়, সংস্করণের নাম বলে।
সবচেয়ে বড় কথা, কোনো পুরোনো উপনাম বেছে নেবেন না কারণ তার নাম বেশি শক্তিশালী বা নির্দিষ্ট শোনায়। পুরো সংযোগের জন্য সমর্থিত নীতি বেছে নিন, এবং পুরোনো নামগুলোকে লাইব্রেরি আগে কীভাবে নিজেকে উপস্থাপন করত তার রেকর্ড হিসেবে দেখুন।