কোনও ফাইলকে কীভাবে এমনভাবে পরিবর্তন করা যেতে পারে যা তার আসল SHA-1 হ্যাশ বজায় রাখে?


33

এই নিবন্ধ এবং আরও অনেকের মতে , SHA-1 নিরাপদ নয়।

আমার ক্ষেত্রে, আমি পাসওয়ার্ড বা ডিজিটাল শংসাপত্র সম্পর্কে উদ্বিগ্ন নই। আমি ফাইলের সততা সম্পর্কে উদ্বিগ্ন।

কোনও ফাইলের (যেমন কোনও আইএসও চিত্র বা এক্সিকিউটেবল ফাইল) পক্ষে এইভাবে দূষিতভাবে পরিবর্তন করা কি যুক্তিসঙ্গতভাবে সম্ভব:

  • মূল ফাইলের SHA-1 হ্যাশ বজায় রাখে এবং
  • ফাইলটির সামগ্রিক সামগ্রী এবং অপারেশন বজায় রাখে (তবে অবশ্যই এখন সেখানে দূষিত সামগ্রী রয়েছে যা মূলত সেখানে ছিল না)

আমি এটি যেভাবে দেখছি, কোনও ফাইলকে এমনভাবে পরিবর্তন করা যা কোনও SHA-1 সংঘর্ষের ফলস্বরূপ ফাইলটিকে সম্পূর্ণ অকেজো করে। আইএসও সম্পূর্ণরূপে দূষিত হবে, বা এক্সিকিউটেবল ফাইলটি একেবারে স্ক্র্যাম্বল হবে এটি এমনকি এক্সিকিউটেবল ফাইলও হবে না।

তবে, আমি যেভাবে দেখছি তা ভুল হতে পারে। ফাইল যাচাইকরণের জন্য SHA-1 এর অব্যাহত উপযুক্ততার জন্য গুগল অনুসন্ধানগুলিতে আমি এখনও কিছু খুঁজে পাইনি। কোন অন্তর্দৃষ্টি?


7
উত্তরটি হল, এটা নির্ভরশীল". যদি আইএসওর মধ্যে প্রচুর জেপিগ বা মুভি ফাইল থাকে - আপনার টার্গেটটি এক্সিকিউটেবল সহ, তবে এটি সম্ভব। আপনি জেপিগ ফাইলগুলি আকার বা ভিজ্যুয়াল উপস্থিতি পরিবর্তন না করে বেশ নাটকীয়ভাবে পরিবর্তন করতে পারেন। শেষ পর্যন্ত, ফাইলটি যত বড় হবে আপনার তত বেশি খেলতে হবে এবং ধ্বংসাত্মক সংঘর্ষের সম্ভাবনা তত বেশি।
পল

7
@ ক্যাপাস্ট হুবহু, অনেকগুলি ওয়েবসাইট আপনাকে ডাউনলোড ডাউনলোড যাচাই করতে মঞ্জুরি দেওয়ার জন্য SHA-1 হ্যাশগুলি তালিকা করে। এটি সম্পর্কে চিন্তাভাবনা করে, এটি অনেক বেশি সম্ভবত মনে হয় যে কোনও হ্যাকার সামগ্রী এবং প্রকাশিত হ্যাশটি পরিবর্তন করে কোনও ওয়েবসাইটের সাথে আপস করবেন । তারপরে আপনি সত্যিই খারাপ হয়ে গেছেন।
misha256

1
কেবলমাত্র, আমার প্রশ্নটি SHA-1 সম্পর্কে বিশেষত জিজ্ঞাসা করে কারণ এটি বেশ সাধারণ, বিশেষত মাইক্রোসফ্ট / এমএসডিএন থেকে ডাউনলোডগুলি নিয়ে। অবশ্যই কিছু ওয়েবসাইট MD5 হ্যাশগুলি প্রকাশ করে, অন্যগুলি SHA256 ইত্যাদি ইত্যাদি
misha256

2
প্রশ্নটি হল, আপনি কেন এমন হ্যাশ ব্যবহার করতে চাইবেন যার কোনও জ্ঞাত দুর্বলতা রয়েছে, যখন এমন বিকল্প রয়েছে যা কেবল তত দ্রুত, সহজেই ব্যবহারযোগ্য এবং বহুলভাবে উপলভ্য যেগুলি নেই (উদাহরণস্বরূপ SHA-256) ? অতিরিক্তভাবে, ক্রিপ্টোগ্রাফাররা কেবল একটি দুর্বলতা পাওয়া গেলে হ্যাশকে নিরাপত্তাহীন বলে ঘোষণা করার একটি কারণ রয়েছে: ইতিহাস দেখিয়েছে যে যখন একটি পাওয়া যায়, অন্যরা দ্রুত অনুসরণ করে। বিখ্যাত ব্রুস স্নিয়েয়ার উক্তিটি "আক্রমণগুলি সর্বদা উন্নত হয়, তারা কখনই খারাপ হয় না"
ব্লুরাজা - ড্যানি ফ্লুঘুফুট

3
@ Misha256 এই sha1 হ্যাশগুলি সুরক্ষার জন্য নয়, ডাউনলোড দুর্নীতি পরীক্ষা করার জন্য আপনার জন্য। আপনি যদি সুরক্ষা চান তবে জিপিজি স্বাক্ষরিত ফাইলগুলি ব্যবহার করুন
দেনিথ

উত্তর:


41

SHA-1 এর জন্য কেউ এখনও এটি সম্পাদন করতে পারেনি। এটি তত্ত্বের ক্ষেত্রে সম্ভব, তবে এখনও ব্যবহারিক নয়। এসএএএ -১-এর নিরাপত্তাহীনতার প্রতিবেদনগুলির অর্থ কেবলমাত্র এটি হ'ল সুরক্ষার স্তর যতটা আমরা চাই তা তত বেশি নয় এবং এর অর্থ আমাদের যতটা চিন্তা করা উচিত তার আগে আমাদের চিন্তা করার মতো এত বছর নেই।

একই SHA-1 হ্যাশ দিয়ে কোনও ফাইলকে একই SHA-1 হ্যাশ দিয়ে নিজেকে দুটি কারুশিল্প তৈরি করার চেয়ে প্রদত্ত ফাইল হিসাবে উত্পন্ন করা শক্ত। এবং যতদূর আমরা জানি, বিশ্বের কোথাও কেউ এখনও এই সহজ কাজটি সম্পাদন করতে পারেনি। এর অর্থ এই নয় যে এটি কাল হতে পারে না।


এমনকি কোনও প্রদত্ত ফাইলের সাথে সংঘর্ষের জন্য এসএএএএ -১-তে পরিচিত আক্রমণও রয়েছে? আমি এই ধারণাটির মধ্যে ছিলাম যে আক্রমণটি এমডি 5 বা এসএইএ -1 এর জন্য খুঁজে পাওয়া যায় নি (কেবলমাত্র একটি সংঘর্ষের আক্রমণ, দ্বিতীয়-
প্রাক

@ ক্যাপস্ট ফ্লে ম্যালওয়্যার একটি এমডি 5 সংঘর্ষটি মাইক্রোসফ্ট থেকে এসেছে এবং উইন্ডোজ আপডেট হাইজ্যাক বলে মনে হয়েছিল। তাদের বেছে নিতে মাইক্রোসফ্ট শংসাপত্রগুলির একটি গুচ্ছ থাকতে পারে, তবে তারা কেবল একই এমডি 5 সহ কোনও 2 ফাইল খুঁজে পাওয়ার চেষ্টা করছে না।
অ্যারন ফস্টার

2
অ্যারন নং, এটি কোনও প্রদত্ত ফাইলের সাথে সংঘর্ষের উদাহরণ নয়। শিখার সাথে, মাইক্রোসফ্টের একটি লাইসেন্সিং সার্ভার ছিল যা শংসাপত্র স্বাক্ষরের অনুরোধ অনুসারে X.509 শংসাপত্রগুলিতে স্বাক্ষর করবে, যার অর্থ আক্রমণকারী কিছু সীমাবদ্ধতার মধ্যে সাইন ইন করছে যা নিয়ন্ত্রণ করে। তাদের সাথে সংঘর্ষের কোনও প্রমাণ পাওয়া যায় নি; মাইক্রোসফ্ট সক্রিয়করণের অংশ হিসাবে গ্রাহকদের কাছ থেকে সিএসআর স্বাক্ষর করেছে, যা সংঘর্ষের আক্রমণ (যা দ্বিতীয়-প্রাক আক্রমণ নয়) ব্যবহার করতে দেয়।
cpast

2
@ অলিভারডুলাক না, এটি আসলে কখনও হয় নি। কোনও পরিচিত এসএএএ -৩ সংঘর্ষ নেই। আনুমানিক খরচ মাত্র একটি অনুমান - এটা না যে কেউ তা করতে এবং এই আমরা কতটা মনে হয় এটা কত খরচ, এটা যে কেউ এটা করেছে হয় কিন্তু আমরা মনে করি এই এটা কত হয় হবে টাকা লাগে।
সিপাস্ট

4
@cpast আমরা নিশ্চিত হয়ে জানি না হয়েছে বা হয়েছে কিনা, তবে একটি 3 মিলিয়ন ডলার আক্রমণ এনএসএর বার্ষিক বাজেটের 0.03% এর চেয়ে কম (আসলে, আক্রমণটি সস্তার হওয়া উচিত যে তারা ইতিমধ্যে হার্ডওয়্যারটির মালিক এবং না ভাড়া নিতে হবে)। উপসংহারে আসা যুক্তিসঙ্গত যেহেতু তাদের কাছে এটি করার উপায় এবং প্রেরণা রয়েছে, তখন তারা সম্ভবত ইতিমধ্যে এটি করেছিল। স্মরণ শিখা
বাইন

26

এটি তাত্ত্বিকভাবে সম্ভব, তবে এটি এখনও করা হয়নি।

আপনি যা খুঁজছেন তাকে "হ্যাশ সংঘর্ষ:" একই হ্যাশ সহ দুটি ফাইল বলা হয়। SHA-1 এর মতো ক্রিপ্টোগ্রাফিক হ্যাশ কোডগুলি সাধারণত এটিকে কঠিন করার জন্য তৈরি করা হয়। যেহেতু SHA-1 160 বিট কোড, এটি প্রতিলিপি সন্ধানের জন্য গড়ে 2 ^ 159 জোর বল প্রয়োগ করবে attempts যদি কোনও অ্যালগরিদম পাওয়া যায় যা কোনও ক্রিপ্টোগ্রাফিক হ্যাশের তুলনায় নির্ভরযোগ্যতার চেয়ে ভাল করে, হ্যাশটিকে "ভাঙ্গা" হিসাবে বিবেচনা করা হয়।

MD-5 একটি খুব ভাঙ্গা হ্যাশের উদাহরণ h এটির জন্য 128 বিটের একটি শক্তি থাকার কথা ছিল, যার গড় প্রয়োজন 2 ^ 127 প্রচেষ্টা attempts যেমনটি, জানা দুর্বলতাগুলিকে অপব্যবহার করে, প্রয়োজনীয় প্রচেষ্টার আসল সংখ্যা 2 ^ 47 এর চেয়ে কম হতে পারে। এটি 2 ^ 127 এর চেয়ে অনেক ছোট। আসলে, এটি একটি আধুনিক কম্পিউটিং ক্লাস্টারে একটি দিনের অধীনে করা হয়েছে।

আমি উদাহরণটি দিচ্ছি কারণ এটি কীভাবে আপনি SHA-1 ব্যবহার করতে চাইছেন তার নিকটতম। তবে, এটি নিশ্চিত করার জন্য যে হ্যাশগুলি ভেঙে যায় না, এটি সর্বাধিক সাধারণ পদ্ধতির ক্রিপ্টানালাইসিস ব্যবহার নয়। আপনি সাধারণত একটি ফাইল বাছাইয়ের পরিবর্তে আক্রমণকারী দ্বারা চয়ন করা হিসাবে আক্রমণকারী দ্বারা চয়ন করা হিসাবে তারা দুটি ফাইলের মধ্যে সংঘর্ষের অনুমতি দেয়। এই ধরণের আক্রমণটি বেঞ্চমার্ককে আরও সহজ করার একটি সুবিধা রয়েছে। যদি আমি আপনার ফাইলটি ফাটানো "শক্ত" বলে মনে করি, তবে এর অর্থ কি অন্য ফাইলটি একইভাবে শক্তিশালী? এই আক্রমণটি যেখানে আক্রমণকারী উভয় ফাইলই বেছে নিতে পারে তা নিশ্চিত করে যে আমরা সবচেয়ে খারাপের মধ্যে ধরা পড়ছি।

এই ধরণের আক্রমণটি " জন্মদিনের আক্রমণ " হিসাবে পরিচিত একটি আকর্ষণীয় কৌশলকে মঞ্জুরি দেয় । দীর্ঘ গল্প সংক্ষেপে, জন্মদিনের আক্রমণে অ্যালগরিদমের শক্তি অর্ধেক হয়ে যায়, তাই এসএএএ -1 এর জন্য 2 attempts 80 প্রচেষ্টা (গড়) এবং এমডি 5 এর জন্য 2 ^ 64 প্রচেষ্টা (গড়) প্রয়োজন হয়। এগুলি যথাক্রমে 160 এবং 128 এর অর্ধেক।

এসএএএ -১ এর আক্রমণগুলি জানা গেছে যা এর শক্তি 2 ^ 80 থেকে 2 ^ 69 এ কমেছে। এটি আপনার কাছে খুব বেশি গুরুত্ব পাচ্ছে না। 2 ^ 69 প্রচেষ্টা দীর্ঘ সময়।

তবে ইতিহাস থেকে আমরা খুঁজে পেয়েছি যে হ্যাশ অ্যালগরিদমগুলি স্বতঃস্ফূর্তভাবে ভাঙ্গা নয়, বরং সময়ের সাথে সাথে ভেঙে গেছে। এমডি -5 এর মতো অ্যালগরিদমকে কেউ ক্র্যাক করে না রাত্রে 2 ^ 64 থেকে 2 ^ 47 ধরে taking সময়ের সাথে সাথে এটি ঘটে, কারণ অনেক লোকেরা তার বিরুদ্ধে যে গণিতটি ব্যবহার করছেন তা নিয়ে কাগজপত্র প্রকাশ করে। অ্যালগরিদমের সূচনা থেকে আক্রমণের জটিলতা ধীরে ধীরে নীচে নেমে যেতে দেখা যায় (যেখানে সেরা আক্রমণটি সাধারণত জন্মদিনের আক্রমণ।

সংঘর্ষে আমরা কিছু পরিবর্তন দেখছি এই সত্যটি এসএএএ -১ টি সুড়ঙ্গের শেষে আলো দেখছে sugges এটি এখনও শক্তিশালী, তবে নতুন এসএইএ -3 এ যাওয়ার আগ্রহ থাকতে পারে যা বর্তমানে অনেক বেশি সুরক্ষিত much

আপনার হুমকি মডেল দৃষ্টিকোণ থেকে সত্যই এই জাতীয় সিদ্ধান্ত নেওয়া উচিত। কোনও আক্রমণকারী যদি এগুলির মধ্যে একটির সংঘর্ষের মুখোমুখি হয় তবে তাদের কত ক্ষতি হতে পারে। আপনার আক্রমণকারীরা কি কয়েকটি ল্যাপটপে অ্যাক্সেস সহ স্ক্রিপ্ট কিডিস বা পুরো সুপার কমপুটিং ক্লাস্টারগুলির সাথে তাদের সমাধানের জন্য সরকারগুলি। কোনও আক্রমণকারী কোনও সময় ব্যবহার করার আগে হ্যাশটি ভেঙে ফেলতে পারে (ক্রিপ্টোগ্রাফির অনেকগুলি ব্যবহার "পাসওয়ার্ডের রোটেশনের মতো" প্রহরী পরিবর্তন করা "জড়িত)। এগুলি সমস্ত সংঘর্ষগুলি বিবেচনা করার জন্য আপনাকে কতটা গুরুত্ব সহকারে প্রভাব ফেলবে তা প্রভাবিত করবে।


8
আপনার জন্মদিনের আক্রমণ সম্পর্কিত অনুচ্ছেদ সম্পর্কে, 2 ^ 80 হল 2 ^ 160 এর বর্গমূল , এর অর্ধেক নয় (যা 2 ^ 159 হবে)।
অ্যান্ড্রু মর্টন

প্রশ্নটি দ্বিতীয় প্রিমাইজ আক্রমণ সম্পর্কে, তবে আপনার উত্তর সংঘর্ষের বিষয়ে। SHA-1 & mdash এর বিরুদ্ধে প্রাক হামলা; এমনকি এমডি 5 & এমড্যাশ; অযৌক্তিকভাবে অবৈধ। (এমডি 5 এর বিরুদ্ধে 2 ^ 123 প্রিমাইজ আক্রমণ রয়েছে, তবে এসএএএ -1 এর সাথে আপনি 2 ^ 160 নিষ্ঠুর শক্তি নিয়ে আটকে আছেন।)
ম্যাট নর্ডফোফ

"যেহেতু SHA-1 160 বিট কোড, এটি প্রতিলিপি সন্ধানের জন্য গড়ে 2 ^ 159 জোর বল প্রয়োগ করবে" " তবে একটি 2 ^ 2 কোডটি 2 ^ 2 অনুমান করে। দেখছি না কেন তুমি -১। "দীর্ঘ গল্প সংক্ষিপ্ত," ... "অ্যালগরিদমের শক্তি অর্ধেক হয়ে যায়, তাই এসএএএ -1 এর জন্য 2 ^ 80" প্রয়োজন ... "এমডি 5 এর জন্য 2 ^ 64 প্রয়োজন" ... "এগুলি যথাক্রমে 160 এবং 128 এর অর্ধেক।" এখানে আপনার -1 করা উচিত। বিটগুলি তাত্পর্যপূর্ণভাবে শক্তিকে যুক্ত করে, তাই 160 বিট হ্যাশের শক্তি অর্ধেক করা এটি একটি 80 বিট হ্যাশ হিসাবে না, একটি 159 বিট হ্যাশ হিসাবে বিবেচনা করবে। প্রতিটি বিট একটি নিষ্ঠুর বাহিনীর আক্রমণ আক্রমণকে দ্বিগুণ করে।
তোগাম

@ টুগাম: তিনি বলেছেন 'গড়'; একাধিক বিচারের উপর, কী স্থান মাত্র 50% অনুসন্ধান করা উচিত নয় গড়ে একটি বলপূর্বক আক্রমণ সফল করার। অর্ধেক মন্তব্য হিসাবে, উপরের অ্যান্ড্রু মর্টনের মন্তব্য ব্যাখ্যা করেছে যে; এটি জটিলতার অর্ধেক নয়, বর্গমূল হতে হবে।
রিড

@ অ্যান্ড্রুমার্টন ভালো কথা, আমি আমার কথার সাথে পরিষ্কার ছিল না। আমি বেশিরভাগ ক্ষেত্রে রাজ্যের সংখ্যার এবং বেস -২ লোগারিথমের মধ্যে সাহিত্যের স্যুইচগুলি দেখতে পাই। আমার শব্দটি বিটের সংখ্যা অর্ধেক করার জন্য উল্লেখ করেছে কারণ লোক বিট সংখ্যায় "শক্তি" সম্পর্কে কথা বলে। আমি পিছনে পিছনে স্যুইচ করার অভ্যস্ত ছিলাম যে আমি অজ্ঞান হয়েছি। বিভ্রান্তি দূর করতে আমি সম্পাদনা করব।
কর্ট অ্যামোন - মোনিকা ২

8

এই নিবন্ধে আলোচিত SHA-1 এর ত্রুটিগুলি খুব সুনির্দিষ্ট: তারা আক্রমণকারীদের একই মূল্যে দুটি জিনিস হ্যাশ তৈরি করতে দেয় (একে "সংঘর্ষের আক্রমণ" বলা হয়)। তবে, একটি সংঘর্ষের আক্রমণটির জন্য আক্রমণকারী জড়িত উভয় ফাইলকে নিয়ন্ত্রণ করতে হবে that আক্রমণকারী যদি মূল ফাইলটি নিয়ন্ত্রণ না করে তবে একটি সংঘর্ষের আক্রমণ তাদের একই হ্যাশ মান সহ অন্য একটি ফাইল সন্ধান করতে দেয় না।

টিএলএস / এসএসএল (এবং সাধারণভাবে স্বাক্ষর) এর জন্য এটি গুরুত্বপূর্ণ কারণ হ'ল এইগুলির সাথে, একটি আক্রমণকারী প্রায়শই উভয় ফাইল নিয়ন্ত্রণ করতে পারে । একটি টিএলএস শংসাপত্রটি বেশিরভাগ ব্যক্তির দ্বারা অনুরোধ করে তৈরি করা হয় (তারা যে বিটগুলিকে নিয়ন্ত্রণ করে না তারা প্রায়শই অনুমানযোগ্য), সুতরাং সংঘর্ষগুলি তাদের বৈধ শংসাপত্র এবং একটি অবৈধ সনদ তৈরি করতে, বৈধ স্বাক্ষরিত করতে এবং স্বাক্ষর স্থানান্তর করতে দেয় let

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


"সংঘর্ষটি কার্যকর হবে না" - এর প্রতিক্রিয়া হিসাবে যখন আক্রমণে কোনও আক্রমণকারীকে দরকারী সংঘর্ষের পক্ষে সক্ষম হওয়ার প্রয়োজন হয় না , তবে "সংঘর্ষ" কে "দরকারী সংঘর্ষে পরিণত" এমন সাধারণ কাজ নয়। অনেকগুলি ফাইল ফর্ম্যাটে ন্যায্য পরিমাণে ঘর থাকে যাতে আপনি ফাইলের কার্যকারিতা প্রভাবিত না করে যা খুশি রাখতে পারেন; কোনও আক্রমণকারী সাধারণত সংঘর্ষের জন্য এটি সংশোধন করতে পারে (যদি সংঘর্ষগুলি ব্যবহারিকভাবে সন্ধানযোগ্য হয়), কার্যকরী অংশটি তারা যা খুশি তাই রাখে। "একাডেমিক আক্রমণ" এবং "ব্যবহারিক আক্রমণ" এর মধ্যে ব্যবধানটি বড় হতে পারে; "যে কোনও সংঘর্ষ" এবং "দরকারী সংঘর্ষ" এর মধ্যে ব্যবধানটি সাধারণত অনেক ছোট।


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


5

একটি সংঘর্ষের আক্রমণ এবং প্রিমেজ হামলার মধ্যে আপনাকে পার্থক্য করতে হবে । খোঁজা কোন দুটি বার্তা একই মান যে হ্যাশ একটি সংঘর্ষের হামলা।
একটি নির্দিষ্ট, প্রদত্ত বার্তা (এখানে: একটি নির্বাহযোগ্য) এর পরিবর্তে অন্য বার্তাটির সাথে একই হ্যাশ রয়েছে একটি (দ্বিতীয়) প্রিমেজ আক্রমণ।

SHA-1 ভেঙে ফেলা হয়েছে কারণ একটি সংঘর্ষের আক্রমণ 2 52 অপারেশনে একটি উইকিপিডিয়া নিবন্ধ অনুসারে করা যেতে পারে যা সেই সংখ্যার জন্য প্রশংসা প্রদান করে না (আমি জানি যে সেরা আক্রমণটি যা আমি সত্যই বিশ্বাসযোগ্য, এটিই ছিল মার্ক স্টিভেন্সের একটি , যা 2 60 অপারেশন নেয় )। তবে আসুন 2 52 এর নিরাশাবাদী কেসটি ধরে নিই

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

এখন, একটি প্রিমেজ আক্রমণটির দ্বিগুণ দ্বিগুণ আকার রয়েছে, সুতরাং সংঘর্ষের আক্রমণটির জন্য 2 52 ধরে , এটি হবে 104 অপারেশন, যা একেবারেই আলাদা বলপার্ক।

এটি কেবল অযৌক্তিকই নয় (পূর্ববর্তী অনুচ্ছেদে উল্লিখিত একের তুলনায় এক বিলিয়ন গতিযুক্ত একটি মেশিন এখনও প্রায় million মিলিয়ন বা এত বছর সময় নিতে পারে), তবে আমাদের বিদ্যুৎ উৎপাদনের ক্ষুদ্রতম মাধ্যমটি দেওয়া পুরোপুরি অসম্ভব।

এ জাতীয় বিশাল গণনা করার জন্য একটি শক্তির উত্সের প্রয়োজন হবে যা আমরা কোনও একক ক্রিয়াকলাপকে উত্সর্গ করতে পারি তার চেয়ে অনেক বড়। না, কোনও শক্তির উত্স সূর্যের আকার নয়, তবে এখনও বেশ বড় একটি

আপনি বাস্তবিকভাবে একটি ওয়াটের মধ্যে 10 থেকে 50 জিএফএলপিএস থেকে কিছু পাওয়ার আশা করতে পারেন। ধরে নিই যে কোনও রকম অলৌকিক ঘটনা ঘটে এবং প্রসেসররা রাত জুড়ে প্রায় কয়েক হাজার গুণ বেশি শক্তি অর্জন করে, কেউ 1 এসএএএলএ -1 এফএলওপি (বেশ আশাবাদী!) ধরে নিতে পারে। এই অর্থ হবে, যাতে 2 কার্য সম্পাদন করতে আপনাকে 104 10 বছরের মধ্যে হ্যাশ গণনার, আপনি একটি 10 প্রয়োজন 12 ওয়াট বিদ্যুৎ কেন্দ্র। আক্রমণটি 1 বছরের মধ্যে চালাতে, আপনার একটি 10 13 ডাব্লু শক্তি কেন্দ্র প্রয়োজন। এটি মার্কিন যুক্তরাষ্ট্র, ফ্রান্স এবং জাপানের পুরো পারমাণবিক বিদ্যুৎ কেন্দ্রগুলি কেবল একটি একক হ্যাশ তৈরির জন্য উত্পাদন করতে পারে তার প্রায় 50 গুণ 50

এটি ঘটছে না , একই লক্ষ্য অর্জনের অনেক সহজ উপায় রয়েছে (মূল সার্চটি সংরক্ষণ করে এমন সার্ভারটি শোষণ করে এবং সেটিকে প্রতিস্থাপন, কাউকে ব্ল্যাকমেল করা ইত্যাদি)।


"... একই জিনিস অর্জনের অনেক সহজ উপায় ..." xkcd.com/538 তে
রাল্ফ জে

2

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

অবহেলিত প্রযুক্তির জন্য থাম্বের বিধি :

  • আপনি যদি কোনও নতুন ডিজাইন করেন বা বৈশিষ্ট্যগুলি যুক্ত করেন তবে এটি (SHA1) ব্যবহার করবেন না।
  • আপনি যদি পুরানো কিছু বজায় রাখেন তবে কখন এটি প্রতিস্থাপন করবেন (SHA1) একটি পরিকল্পনা করুন।

ব্রুস শ্নিয়েয়ার দ্বারা 2012 ব্লগ পোস্ট থেকে সংক্ষিপ্ত উদ্ধৃতি: "মূল কথাটি হল আমাদের সম্প্রদায়ের লোকদের এখন SHA-1 থেকে দূরে এবং SHA-2 / SHA-3 এ স্থানান্তর শুরু করা উচিত।"


2

আপনার প্রশ্নের SHA-1 হ্যাশ সংঘর্ষের অংশের জন্য, এটি কয়েকটি উত্তর দ্বারা সম্বোধন করা হয়েছে।

তবে, এই ফাইলটির একটি বড় অংশ আমরা যে ধরণের ফাইলের সাথে কাজ করছি তার উপর নির্ভর করে:

ফাইলটির সামগ্রিক সামগ্রী এবং অপারেশন বজায় রাখে (তবে অবশ্যই এখন দূষিত সামগ্রী অন্তর্ভুক্ত রয়েছে যা মূলত সেখানে পরিবর্তিত সামগ্রী ছিল না )

এর অর্থ কীটি পরিবর্তনগুলি সনাক্ত করছে তার মধ্যে প্রচুর পার্থক্য রয়েছে:

  • যদি এটি একটি স্বাক্ষরিত সম্পাদনযোগ্য, (যুক্তিসঙ্গত) সুযোগ নয়: আপনাকে কোনওভাবে দুটি হ্যাশ সংঘর্ষ পেতে হবে: ফাইলের SHA-1 এবং অভ্যন্তরীণ। এক্সের স্বাক্ষর।
  • যদি এটি একটি স্বাক্ষরযুক্ত সম্পাদনযোগ্য,। কম, স্বাক্ষরযুক্ত। ডেল বা অনুরূপ হয় তবে তাদের সংস্থার কাঁটাচামচগুলি এমনভাবে যুক্ত করা যেতে পারে যা তাদের ক্রিয়াকলাপ পরিবর্তন করে না এবং এভাবে আপনি (শেষ পর্যন্ত) একটি হ্যাশ সংঘর্ষ পেতে পারেন যা 'সাধারণ' দ্বারা সনাক্তযোগ্য নয় অপারেশন.
  • যদি এটি কোনও উত্স কোড ফাইল বা অনুরূপ কাঠামো (.cs, .c, .h, .cpp, .rb, .mml, .config, .xML, .pl, .bat, .ini) সংযোজন, পরিবর্তন বা অপসারণসমূহ বৈধ মন্তব্য সিনট্যাক্সের ক্ষেত্রে সীমাবদ্ধ হতে পারে যে পরিবর্তনটি বেশিরভাগ ব্যবহারের দ্বারা স্পষ্ট হয় না (এটি সংকলন করে বা চালিত হয়, এটি কোনও পাঠ্য সম্পাদক দ্বারা খোলার নয়)।
  • যদি এটি একটি .iso বা .zip বা অন্য ধারক বিন্যাস হয় তবে এটি বেশ সম্ভাবনাও না কারণ বেশিরভাগ এলোমেলো পরিবর্তনগুলি ধারককে দূষিত করবে। এটি করা সম্ভব: একটি বোগাস ফাইল এন্ট্রি যুক্ত করুন বা ধারকটির মধ্যে একটি সামগ্রী পরিবর্তন করুন এবং এটি পুনরায় পরীক্ষা করুন, তবে আপনি জটিলতার একটি স্তর যুক্ত করছেন এবং ফলাফলটি পরীক্ষা করার জন্য অতিরিক্ত সময় যুক্ত করছেন, পাশাপাশি শ্রদ্ধার সাথে সীমিত স্বাধীনতার সীমাবদ্ধতা রেখেছেন কীভাবে এবং কী বিষয়বস্তু পরিবর্তন করা যেতে পারে।
  • যদি এটি কোনও পাঠ্য বা পাঠ্যের মতো ফর্ম্যাট থাকে তবে 'বৈধ' ফাইল থাকা অবস্থায় এগুলি আপনার পছন্দ মতো প্রায় কোনওভাবেই পরিবর্তন করা যেতে পারে, যদিও সামগ্রীটি সম্ভবত লক্ষণীয় হবে।
  • .Rtf, .doc, .html, .xslx, এবং অন্যান্য মার্কআপ-এস্কু ফর্ম্যাটগুলির মতো অনেকগুলি বিন্যাসের সাহায্যে এগুলি সংযোজন বা সংশোধন করা যেতে পারে যেগুলি পার্সার দ্বারা অন্বেষণযোগ্য হবে, সুতরাং দৈর্ঘ্য ব্যতীত (বা এমনকি একটি সীমাবদ্ধ দৈর্ঘ্যের সাথেও) , কম স্বাচ্ছন্দ্য) ফাইলগুলি পরিবর্তিত হতে পারে (শেষ পর্যন্ত) হ্যাশ সংঘর্ষ পেতে এখনও কেবল একটি বৈধ ফাইল নয়, তবে উল্লেখযোগ্যভাবে কোনও পরিবর্তন করা হয়নি যা তারা ব্যবহার করবে এমন সাধারণ অ্যাপ্লিকেশনগুলিতে দৃশ্যমান।

সুতরাং, আপনি যা রেখে গেছেন তা হ'ল যে কোনও কাঠামোর সাথে সংঘর্ষগুলি কীভাবে হয় যা অকার্যকর এবং সম্ভবত কিছুটা ডিগ্রী সনাক্তকরণযোগ্য:

  1. আপনার ইচ্ছার যে কোনও কার্যকরী পরিবর্তন করুন (সম্ভবত দূষিত সামগ্রী সন্নিবেশ করা) এবং ফাইল ফর্ম্যাট নির্দিষ্ট বৈধতা ধরে রাখতে কোনও অতিরিক্ত পরিবর্তন করুন
  2. অযৌক্তিক হবে এমন একটি বিভাগ যুক্ত করুন (মন্তব্য ব্লকগুলির মধ্যে, একটি টেক্সট ফাইলের একেবারে শেষে 3k ক্যারিজ ফেরত দেওয়া আছে, একটি বর্তমান মন্তব্য ব্লককে আলাদা করুন)
  3. পরিবর্তনের জন্য একটি অক্ষর / কোড পয়েন্ট / বাইট যুক্ত করুন বা নির্বাচন করুন এবং প্রতিটি সম্ভাব্য বৈধ সমন্বয় চেষ্টা করুন (উদাহরণস্বরূপ, প্রতিটি বাইট সমন্বয়টি বিভিন্ন এনকোডিংয়ের জন্য বৈধ নয়)।
  4. হ্যাশটির পুনঃসংযোগ করুন, দেখুন সংঘর্ষ মেলে কিনা।
  5. যদি এটি না হয়, যাও 3।

ধরা যাক আপনার কাছে একটি সুপার ফাস্ট কম্পিউটার এবং একটি ছোট ফাইল রয়েছে, যেমন বৈধ বাইট সিকোয়েন্স সহ পরিবর্তন এবং হ্যাশটির পুনরায় গণনা করতে 1 মিলিসেকেন্ড লাগে (সম্ভবত কিছু ডেডিকেটেড হার্ডওয়্যার প্রয়োজন)। যদি হ্যাশ বিতরণটি পুরোপুরি এলোমেলোভাবে এবং পরিসীমা জুড়ে বিতরণ করা হয় তবে আপনি SHA-1 এর সাথে প্রতিটি 2^160চেষ্টা (জোর করে জোর করে) এর সাথে সংঘর্ষ পাবেন ।

2^160/1000/60/60/24/365.24 
= 4.63x10^37 years 
= 46,300,000,000,000,000,000,000,000,000,000,000,000 years 
= 46 undecillion years.

তবে ওহে, আসুন 2^60এবং 2^52সংস্করণগুলি চেষ্টা করুন , এবং ভান করুন যে তারা আমাদের যেভাবে পছন্দ করে (তারা পছন্দ করে না) ফাইলটি সংশোধন করার অনুমতি দেয় এবং তারাও প্রতিটি চেষ্টা 1 মিমি করে সম্পন্ন করতে পারে:

2^52 yields 142,714 years 
/*humans might still be around to care, but not about these antiquated formats*/
2^60 yields 3.65x10^7 years = 36,500,000 years 
/*machines will probably have taken over anyway*/

তবে ওহে, আপনি ভাগ্যবান হতে পারেন। সত্যিই, সত্যিই, যেকোন কিছু-লোক-কল-অলৌকিক ঘটনাগুলির চেয়ে অলৌকিক ঘটনা।


0

আসলেই নয়, আপনি একবারে এই শর্তগুলির মধ্যে একটি সন্তুষ্ট করতে পারবেন তবে উভয়ই নয় .. দুটি ভিন্ন ফাইলের জন্য একই হ্যাশ পাওয়া সম্ভব তবে কারও পক্ষে একটি ফাইল পরিবর্তন করতে হবে এবং তারপরে একই হ্যাশ পাওয়ার চেষ্টা করা বেশ অসম্ভব আমি যতদূর জানি


1
এখনও অনেক অসম্ভব । পর্যাপ্ত কম্পিউটিং শক্তি দিয়ে সবকিছু সম্ভব।

-6

হ্যা এটা সম্ভব. কীভাবে ভাইরাসগুলি EXEs এ কাজ করে তা ভেবে দেখুন। ম্যালওয়্যার পে-লোডটি মূল এক্সই-তে সংযুক্ত করা হয়েছে, যাতে প্রোগ্রামটি এখনও এটি মূলত যা করে তা করে তবে একটি ভাইরাস হিসাবে ছড়িয়ে পড়ে। এখন, একই হ্যাশটি বজায় রাখার জন্য আপনার অতিরিক্ত বিশেষভাবে কারুকৃত প্যাডিংয়ের প্রয়োজন হবে ।

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


7
-1 এই পোস্টে সমস্ত কিছু সম্পূর্ণরূপে তৈরি। দৈর্ঘ্য-সম্প্রসারণ আক্রমণগুলি "একই হ্যাশ বজায় রাখে না " (হ্যাশটি কেবল একটি পরিচিত উপায়ে পরিবর্তিত হয়) । এছাড়াও, কোনও ভাইরাস "স্বল্প-ব্যবহৃত কোড" অপসারণ করার কোনও কারণ নেই (এটি কী তা নির্ধারণ করবে কীভাবে?) । এবং জেপিগের কোনও কিছুর সাথে কী কী আছে !?
ব্লুরাজা - ড্যানি প্লেফুঘিফ্ট

2
এটি পুরোপুরি ভুল, আমি পুরো উত্তরটি আবারও না লিখে সংশোধন করার পরামর্শ দিতে শুরু করতে পারি না
মার্ক কে কোয়ান

2
-1 মোটেও ঠিক নয়। ওরফে "এমনকি ভুল নয়" (ওল্ফগ্যাং পাওলি)
অলিভিয়ার দুলাক

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