مایکروسافت به زودی سرتیفیکیت‌های مبتنی بر SHA-1 رو غیرفعال می‌کنه، به دلیلی جالب

مایکروسافت در خبری نسبتا غیرمنتظره [اعلام کرده که احتمالا در زمانی به زودی جون ۲۰۱۶ سرتیفیک‌های TLSی که با الگوریتم هش SHA-1 درست شده باشن رو غیرفعال می‌کنه]. دلیل؟ تولید کالیژن (تصادم) در این شکل از رمزنگاری خیلی ارزون شده!

بذارین برای دوستان غیرفنی کمی به عقب برگردم. هش یا همون Hash الگوریتمی است که باعث می‌شه ما بتونیم از یک عبارت یا رشته یا فایل یا هر چیز دیگه که حاوی کمی اطلاعات باشه، به یک رشته برسیم. مثلا هش SHA1 اسم من این می‌شه:

$ echo -n "jadi" | sha1sum
6e2a6b79db87627480f48d9ebc06642b75c2a1d5  -

درست؟ حالا کافیه من به شما بگم «اسمم جادی است و هشش هم با ۶ شروع می شه و آخرش ۵ داره». شما اگر برین خونه و انواع مختلفی از اسم من رو بنویسیم و هش اونها رو حساب کنین، فقط در یک حالت به اون هشت که من بهتون دادم می رسین (اگر هش رو کامل بدم که بهترینه ولی معمولا بعیده دو رقم آخرش هم یکی در بیارد:

jadi@funlife:~$ echo -n "madi" | sha1sum
2ed1bf7f675c3e6a16ee159909348669980cc140  -
jadi@funlife:~$ echo -n "ladi" | sha1sum
423a605398fb490a7a7b583dc88974c2c46917d5  -
jadi@funlife:~$ echo -n "jady" | sha1sum
8d0136e02b2d142917a461130af21346d37c3f83  -
jadi@funlife:~$ echo -n "jaadi" | sha1sum
24dc889795b1aaf9845cd504606c62d3a968bb16  -
jadi@funlife:~$ 
jadi@funlife:~$ echo -n "jadi" | sha1sum
6e2a6b79db87627480f48d9ebc06642b75c2a1d5  -

در این مثال معلومه که کارمون مسخره است اگر ورودی بزرگ باشه، دادن هش برای چک کردن صحت ورودی روشی معقوله. مثلا وقتی می‌خواین سی دی اوبونتو رو دانلود کنین، هش‌هاش هم بهتون داده می شه تا بعد از دانلود مطمئن باشید که فایل کاملا سالمه.

تا اینجا درست؟ حالا آیا ممکنه یک هکر بیاد و فایلی درست کنه که ایزوی واقعی اوبونتو نیست ولی هش اون دقیقا با هش سی دی اوبونتو یکی بشه؟ این مساله از نظر ریاضی ممکنه (چون به هرحال طول هش SHA1 ثابته ولی طول ورودی می تونه متغیر باشه و در نتیجه حتما هش‌های تکراری داریم) اما از نظر عملی این امکان…

از نظر عملی درست کردن یک فایل که هش اون با هش مورد نظر ما دقیقا یکی بشه در سابق بسیار گرون بوده ولی از یک طرف با تلاش متخصص‌های رمزنگاری و ریاضی‌دان‌ها در پیدا کردن روش‌های سریعتر برای ایجاد تصادم و از اونطرف با اومدن کامپیوترهای پیشرفته تر و سریعتر و ارزونتر و بودن سرویس‌های ابری عظیم مثل EC2 آمازون که به آدم‌ها اجازه می ده با گرید کردن کامپیوترهای کوچیکتر به یک سوپرکامپیوتر برسن،‌ درست کردن یک هش تکراری با هش دلخواد هزینه‌اش حسابی پایین اومده، شاید چیزی در حدود ۷۵ تا ۱۲۰ هزار دلار که برای شکستن رمزهای TLS مبتنی بر SHA1 هزینه‌ای بسیار پایین به حساب می‌یاد.

در همراهی با مایکروسافت، موزیلا و گوگل کروم هم اعلام کردن که در زمانی نسبتا مشابه، سرتیفیکیت‌های تی ال اس مبتنی بر SHA1 رو غیرفعال خواهند کرد. کامپیوترها واقعا دارن پیشرفت‌ می‌کنن.