چند وقته که حسابی کارا ریختن سرم و اصلا فرصت سرک کشیدن تو خودم رو نداشتم و در واقع به اون چیزی که علاقه خودم بود نمی رسیدم ، واقعا چقدر مسخره است وقتی که این همه تلاش میکنی ، ولی نتونی به اون چیزی که علاقه خودت هست بپردازی ؟! ، این شد که دو روز گذشته رو کلا تعطیل کردم و کار نیمه تمامی که شاید بیشتر از یک ماهه روش وقت گذاشتم(نه مداوم خیلی جسته گریخته) رو به سرنجام رسوندم ، و احساس رضایت نسبیی رو توی خودم حس کردم !

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

خوب برگردیم سر موضوع اصلی پست ، چیزی که از مترو شروع شده ، بحث پرداخت الکترونیک بلیت هست ، همین کارت هایی که به عنوان بلیت کارت ازشون استفاده می کنیم و میتونه خیلی کاربرد های دیگه ای جز پرداخت بلیت مترو و اتوبوس و تاکسی داشته باشه ! واقعا این مساله که چرا جز این کاربرد ها این نوع کارت ها کاربرد دیگه ای پیدا نکرده جای بحث داره مثل برداخت بلیت موزه و اماکن دیدنی و گردشگری و .....

بحث مهمی که توی استفاده از این تکنولوژی وجود داره ، بحث امنیت هست ، و چون پای مباحث مالی در میان هست ، اتفاقا خیلی بحث مهم و چالش بر انگیزی هست که ای کاش بیشتر به این مساله توجه می شد !

به همون اندازه که تکنولوژی اغواگر و شیرین هست و باعث میشه که کار ها با ترتیب و نظم بیشتری اداره بشن ، اما به همون اندازه که نه دو برابر یا بیشتر از اون خطرناک هم هست ، بحث سو استفاده های احتمالی ، بحث نقض حریم خصوصی افراد و .....

بحث اصلی ما ، امنیت کارت بلیت های الکترونیکی با ساختار فعلی هست ، در حال حاضر سه نمونه کارت بلیط از شهر های مختلف رو که بررسی کردم ، همه از یک مدل کارت استفاده می کنند ، کارت هایی موسوم به mifare که توسط شرکت NXP معرفی و توسعه داده میشه ؛ آخرین ورژن موجود از این کارت ها محصول 2016 هست به نام Mifare DESfire EV2 ، اما نوع کارت هایی که نمونه های مورد استفاده بود کارت Mifare Classic 1K است که محصول 1994 بوده است. این نوع کارت ها دارای یک کیلو بایت (معادل 1024 حرف) حافظه هستن که علاوه بر نگه داری مبلغ شارژ ، سابقه سفر های شما رو نیز در خودش ذخیره میکنه ! 



حافظه کارت های Mifare 1K به 16 قسمت تقسیم شده که هر قسمت دارای دو کلید 6 بایتی هست. برای دسترسی به داده های ذخیره شده در هر قسمت از کارت نیاز به داشتن یکی از کلید ها هست (دسترسی کلید ها هم قابل تنظیم است) پس برای دسترسی به داده های کارت شما نیازمند دانستن حداقل 16 رمز عبور (کلید) هستید و با توجه به 6 بایتی بودن ؛ هر رمز عبور قادر خواهد بود که 281474976710655 حالت مختلف داشته باشد. فرض کنید قصد داریم با سعی و خطا رمز یک قسمت از کارت را به دست آوریم ، و باز فرض کنید در هر ثانیه ما قادر خواهیم بود که صحت 1000 رمز را بررسی کنیم ، برای پیدا کردن رمز یک قسمت نیاز به 9000 سال تلاش داریم ! که در واقع به عمیر هیچ بنی بشری قد نمیده ! ، تازه این زمان لازم فقط برای به دست آودن رمز یک کلید از یک قسمت کارت هست ، و با توجه به 16 قسمت بودن کارت ما برای داشتن رمز هر 16 قسمت نیاز به 144000 سال زمان داریم :/ 

حالا اضافه کنید که هر کارت دارای یه مشخصه منحصر به فرد 4 بایتی است یعنی میتوانیم با توجه به این مشخصه رمز های متفاوتی برای هر کارت در نظر گرفت. یعنی این که شکستن رمز هر کارت به منزله شکستن شدن دیگر کارت ها نخواهد بود ، و 1440 قرن زمان لازم هست که یک کارت رو بتوانیم بخوانیم.

خوب اینجا به صورت کلی ، مشکل امنیتی به چشم نمی خوره و ظاهرا همه چیز برای استفاده تحت عنوان یک پلتفرم امن آماده است.


+ اما فکر کنید چه طور یک آشنا رمز یک کارت را در 1 ساعت شکست ؟ و با بهبود الگوریتم این زمان به دقیقه ها و ثانیه ها بهبود پیدا کرد ؟