আমি কীভাবে জানতে পারি যে হ্যাশিং অ্যালগরিদম এসকিউএল সার্ভার DECRYPTBYPASSPHRASE ফাংশনটি ব্যবহার করার সময় এনক্রিপ্ট করা ডেটা ডিক্রিপ্ট করতে ব্যবহৃত হয়েছিল?


12

আমার প্রশ্ন দুটি উদাহরণ সহ নিম্নলিখিত পরীক্ষার সাথে সম্পর্কিত:

এসকিউএল সার্ভার 2017 এক্সপ্রেস উদাহরণ (মাইক্রোসফ্ট এসকিউএল সার্ভার 2017 (আরটিএম-সিইউ 16))
এসকিউএল সার্ভার 2014 এক্সপ্রেস উদাহরণ (মাইক্রোসফ্ট এসকিউএল সার্ভার 2014 (এসপি 2-সিইউ 18))

আমি একটি পাঠ্য এনক্রিপ্ট করতে এনক্রিপিটিবিওয়াইপাসস্প্রেস ফাংশনটি ব্যবহার করেছি এবং ফলাফলটি ডিক্রিওয়াইপটিবিওয়াইপ্যাসস্প্রেসের জন্য @ সিফারেক্সট হিসাবে ব্যবহার করেছি । আমার পরীক্ষার ফলাফল এগুলি ছিল:

ফলাফলের সারণী

এই মাইক্রোসফ্ট ফিক্স অনুযায়ী ,

[...] এসকিউএল সার্ভার 2017 পাসফ্রেজ হ্যাশ করতে SHA2 হ্যাশিং অ্যালগরিদম ব্যবহার করে। এসকিউএল সার্ভার 2016 এবং এসকিউএল সার্ভারের পূর্ববর্তী সংস্করণগুলি SHA1 অ্যালগরিদম ব্যবহার করে যা আর নিরাপদ বলে বিবেচিত হয় না।

কিন্তু এটি কীভাবে জানবে যে ডেকারওয়াইপটিবিওয়াইএসপিএসএসএফরাস ফাংশনে সম্পর্কিত কোনও যুক্তি না থাকলে ডেটা এনক্রিপ্ট করার জন্য অ্যালগরিদমটি কী ছিল? এটি কি এনক্রিপ্ট করা ডেটার অংশ?

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

উত্তর:


14

কিন্তু এটি কীভাবে জানবে যে ডেকারওয়াইপটিবিওয়াইএসপিএসএসএফরাস ফাংশনে সম্পর্কিত কোনও যুক্তি না থাকলে ডেটা এনক্রিপ্ট করার জন্য অ্যালগরিদমটি কী ছিল? এটি কি এনক্রিপ্ট করা ডেটার অংশ?

হ্যাঁ, ঠিক পয়েন্টে।

আমি আউটপুট জন্য নিম্নলিখিত ব্যবহার করতে যাচ্ছি:

DECLARE @Data VARBINARY(MAX)
DECLARE @Text NVARCHAR(MAX) = N'I''ll get you, and your little dog too!'
DECLARE @Phrase NVARCHAR(100) = N'Fly My Pretties!'

SELECT @Data = ENCRYPTBYPASSPHRASE(@Phrase, @Text)

SELECT @Data AS [Encrypted_Data]

SELECT CAST(DECRYPTBYPASSPHRASE(@Phrase, @Data) AS NVARCHAR(MAX))

যদি আমি এটি আমার 2014 উদাহরণে চালনা করি তবে আমি এনক্রিপ্টড_ডেটার জন্য নিম্নলিখিতটি পেয়ে যাব: 0x01000000E565142762F62...

যদি আমি আমার 2017 উদাহরণে এটি চালনা করি তবে আমি এনক্রিপ্টড_ডেটার জন্য নিম্নলিখিতটি পাব: 0x020000004D261C666204F...

কী পপ আউট করা উচিত তা হ'ল উপস্থাপনা, যেখানে আপনি দেখতে পাবেন যে 2014 এর উদাহরণটি শুরু হয় 0x01এবং 2017 উদাহরণটি শুরু হয় 0x02। এটি ব্যবহৃত এনক্রিপশন ধরণের সংস্করণ। মনে রাখবেন যে এর চেয়ে আরও অনেক কিছুই রয়েছে তবে এই উত্তরের উদ্দেশ্যগুলির জন্য সেই বিশদে যাওয়ার দরকার নেই, না এটি জনসাধারণের জ্ঞানেরও প্রয়োজন।

এসকিউএল সার্ভার 2017 বোঝে 0x01এবং 0x02কারণ এটি নতুন এবং নতুন জিনিসগুলি জানে। এসকিউএল সার্ভার 2014 কেবলমাত্র 0x01এটি পুরানো হওয়ার কারণে বোঝে এবং নতুন জিনিসগুলির ব্যাকপোর্ট করা হয়নি বলে নতুন কোনও কিছুই জানে না।

[...] এসকিউএল সার্ভার 2017 পাসফ্রেজ হ্যাশ করতে SHA2 হ্যাশিং অ্যালগরিদম ব্যবহার করে। এসকিউএল সার্ভার 2016 এবং এসকিউএল সার্ভারের পূর্ববর্তী সংস্করণগুলি SHA1 অ্যালগরিদম ব্যবহার করে যা আর নিরাপদ বলে বিবেচিত হয় না।

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


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