بررسی امنیت پروتکل‌های RFID

 

مقدمه
تگ‌های RFID به علت سایز کوچک و محدودیت سخت‌افزاری، از قدرت محاسباتی پایینی برخوردار هستند. این محدودیت محاسباتی اثر مهمی در تعداد بیت‌ها و همچنین انتخاب الگوریتم رمزنگاری که روی این تگ‌ها پیاده می‌شوند دارند. همچنین اجرای این رمزنگاری و در عین حال رسیدن به یک Authentication و ویژگی‌های غیر قابل تعقیب برای حفظ حریم افراد، امر بسیار ظریف و مهمی به حساب می‌آید. برای مثال در ارتباط با یک کارت‌خوان RFID، پیغام فرستاده شده از تگ، باید اطلاعات کافی برای تشخیص(تصدیق) تگ بدون ایجاد قابلیت استراق توسط گیرنده نامرتبط را فراهم آورد. به علت محدودیت سخت‌افزاری و محاسباتی، بالا بردن تعداد بیت‌های رمزنگاری کاری غیر مفید خواهد بود بنابراین نیاز به یک پروتکل ایمن بسیار مهم به نظر می‌آید.
یکی از پروتکل‌های بسیار رایج در نسل دوم EPC که برای RFID معرفی شده، پروتکل HMNB می‌باشد که دلایل رواج آن را می‌توان نام برد: ویژگی‌های جبری قوی، توابع درهمسازی قابل تغییر و ثبت براساس نیاز کاربر، و کلیدهای رمزنگاری قابل رویت محدود، یک پروتکل بسیار دقیق و قدرتمند را نتیجه می‌‌دهد. درعین حال یک اشتباه ساده در پروتکل منجر به نفوذپذیری در سه هدف تشخیص، عدم تعقیب‌پذیری و درنهایت کاهش تحمل پذیری در برابر عدم انطباق زمانی می‌گردد. در این مقاله به بررسی راه نفوذ و از بین بردن امنیت سیستم‌های RFID در حوزه سه هدف اشاره شده می‌پردازیم.

بررسی پروتکل HMNB
برای بررسی این پروتکل در این مقاله منظور از لفظ خواننده، یک کارت‌خوان RFID و منظور از عامل، یک تگ است. همچنین لفظ وظیفه به داده‌ی مورد انتظار خواننده از تگ که با استانداردهای پروتکل منتقل می‌شود اشاره دارد.
در این مقاله فرض را بر وجود عنصر غیر خودی که قصد استراق داده را دارد می‌گذاریم. هر چند استراق‌های جدید و پیشبینی نشده جدید همیشه وجود دارند ولی مدل تخاصمی که در این مقاله مورد بررسی قرار می‌گیرد، یکی از مهمترین مدل‌های استراق داده است که پایه‌ی اکثر استراق‌ها در گیرنده‌های RFID می‌باشد.
پروتکل‌های نسل دوم EPC(مثلا HMNB )به صورت دو جانبه برای تشخیص تگ‌ها توسط خواننده عمل می‌کند و یک ارتباط غیرقابل تعقیب و مقاوم در برابر عدم انطباق زمانی را مهیا می‌کند. همچنین الگوریتم‌های درهم‌سازی با مرتبه زمانی بسیار پایین که نیاز به محاسبات کمی دارد را مورد استفاده قرار می‌‌هد. در ادامه به بررسی یک ارتباط می‌پردازیم. در فلوچارت قابل ملاحظه در شکل زیر و در ادامه مقاله منظور از T یک تگ، R یک خواننده، ID پیام تشخیص هویت که باید از دید سایرین مخفی است،’ID آخرین پیام به روز شده قبل از پیام ID و HID داده‌ی ID ای است که عملیات درهمسازی(Hashing)روی آن صورت گرفته است ، ntپیام ارسالی توسط تگ برای خواننده و در یک لحظه و nr پیام ارسالی توسط خواننده برای تگ درهمان لحظه خواهد بود. همچنین صفر بودن متغیر باینری S یعنی پیام قبلی موفقیت‌آمیز توسط خواننده دریافت شده است. بنابراین این پروتکل مانند پروتکل TCP که در شبکه‌های کامپیوتری به کار می‌رود یک پروتکل وابسته به حالت است.
با توجه به توضیحات بالا پاسخ nt در صورت صفر بودن S ارسال خواهد شد. با صفر شدن مقدار S، تگ با پیاده کردن عملیات درهمسازی که در اینجا با (h(ID),nt) نشان می‌دهیم، به خواننده پاسخ می‌دهد یعنی مجوز مشاهده شدن موقت خود را به خواننده می‌دهد. در صورت 1 شدن بیت S، تگ با عمل (h(ID,nt,nr),nt) پاسخ خواهد داد. این اتفاق در عمل به ندرت اتفاق می‌افتد. در صورت اتفاق افتادن این امر، خواننده مجددا اطلاعات را برای تگ Update کرده و( h(ID’,nt را برای تگ ارسال می‌کند.اگر پیام دریافت شده با ( h(ID,nt مطابقت داشت، تگ ID قبلی خود را با ( h(ID,nr جایگزین می‌کند و بیت S را صفر می‌کند. در شکل زیر این فرایند نشان داده شده است:

 بررسی امنیت در حوزه تشخیص (Authentication)
هنگامی که در زمینه تشخیص به بررسی می‌پردازیم، در حقیقت منظور آگاهی کنونی است. منظور از آگاهی کنونی این است که تگ باید در راستای سلسله درخواست‌های دستگاه خواننده به ارسال پیغام پاسخ بپردازد. به عبارت دیگر پروتکل‌های نسل 2 EPC تضمین می‌کنند که یک عامل فرضی a با عامل در حال محاوره b (در این جا خواننده)که دارای آگاهی کنونی است، اگر a یک اجرا را کامل کند، عامل b هم یک رخداد را درحین این اجرا صورت می‌دهد. در ادامه به طرح یک حمله امنیتی در این حوزه می‌پردازیم. ذکر این نکته ضروری است که برای ایجاد یک ارتباط مبتنی بر پروتکل، پیغام‌های رد و بدل شده باید متناظر باشند و به طور موکد در پروتکل‌های نسل دوی EPC حتی اگر تمام پیغام‌ها با موفقیت ردوبدل شود و هیچ بلوکه شدن پیغامی در کار نباشد، تگ باید همواره به درخواست خواننده با دستور (h(ID پاسخ دهد که مستقل از درخواست خواننده است. هرچند برای افزایش کارایی و سرعت سیستم RFID نیاز به استفاده از این مکانیزم پیغام است ولی همین مکانیزم پیامد امنیتی را در پیش دارد که به توضیح آن می‌پردازیم: اگر تگی بیت S خود را صفر کرده باشد، عامل متخاصم می‌تواند خود را جای این عنصر قرار دهد. هرچند مدت زمان صفر بودن بیتS بسیار ناچیز است اما در همین زمان اندک هم می‌توان درخواست را به دستگاه خواننده ارسال کرد. بنابراین در استفاده‌های خاصی از RFID نظیر استفاده از آن برای کنترل دسترسی و تردد، اگر دستگاه خواننده امنیت پایینی داشته باشد، عامل متخاصم می‌تواند به جای چندین تگ پیغام درخواست را ارسال کند. در کاربرد هایی که تگ‌های زیادی برای خوانده‌شدن وجود دارد، اگر عامل متخاصم زمان صفر شدن بیت S را برای تگ‌ها به درستی
تشخیص دهد، نفوذ این عامل بسیار عمیق‌تر خواهد شد وحتی توانایی پاسخ به دریافت پیغام تشخیصی ارسال شده توسط خواننده را دارد.
به عنوان مثال فرض کنیم که عامل متخاصم یک دستگاه خواننده‌ی ساده را در محلی که انتظار دارد پیغام‌های ردوبدل شده توسط تگ‌ها و کارت‌خوان اصلی قابل استراق باشند نصب کند، چون ارتباط در RFID نیاز به خط دید مستقیم ندارد، این دستگاه را می‌توان در محلی که به سادگی قابل تشخیص نیست قرار داد. بنابراین با دریافت پاسخ ارسالی توسط تگ، عامل متخاصم به راحتی می‌تواند به ساختار امنیتی تگ پی برده و تگ‌هایی که با کارت‌خوان اصلی سازگار است را تولید کند. فقط ذکر این نکته ضروری است که ممکن است تصور شود که تگ و خواننده‌ی اصلی،ID درهم‌سازی شده را مبادله می‌کنند و درانتهای هر محاوره، ID به روزسانی می‌شود و از روی ID درهم‌سازی شده نیز نمی‌توان ID اصلی را به‌دست آورد و امکان حمله امنیتی وجود ندارد ولی باید به این نکته توجه داشت که عامل متخاصم اگر دستگاه کارت‌خوان خود را در محلی نصب کند که تگ امکان ارتباط با خواننده‌ی اصلی را خود را نداشته باشد، آنگاه دستگاه خواننده‌ی متخاصم با فرستادن پیغام درهم‌سازی شده تعریف شده توسط خود، الگوریتم درهم‌سازی خود را به تگ تحمیل کرده و به ID تگ پی می‌برد.

عدم تعقیب‌پذیری
گستردگی و بیسیم بودن ارتباط در RFID ، قابل ردیابی بودن تگ‌های RFID را در پی‌دارد. همچنین یکی از مهمترین دغدغه‌های حقوقی در استفاده از RFID حفظ حریم شخصی افراد است. این ویژگی قابل ردیابی بودن از دید حریم شخصی امری نامطلوب است. از طرفی پروتکلی را می‌توان پشتیبان عدم تعقیب‌پذیری در یک تگ خواند که عامل متخاصم به طور چندبار پشت سر هم نتواند به تشخیص اطلاعات آن تگ بپردازد. برای اکثر پروتکل‌های وابسته به حالت، مانند اکثر پروتکل‌های نسل 2 EPC ، برای حفظ امنیت، عامل متخاصم نباید قادر به تشخیص حالت کنونی تگ باشد. برای زیر سوال بردن عدم تعقیب‌پذیری در پروتکل‌های نسل 2 EPC، دو فاز را در نظر می‌گیریم. مرحله‌ی ادراک ارتباط و مرحله ایجاد ارتباط. در مرحله ادراک ارتباط عامل متخاصم A ممکن است یک ارتباط را با خواننده‌ی R یا تگ T برقرار کند. در این حال تگ یا خواننده از طریق پروتکل‌های تعریف شده خود به A پاسخ می‌دهند. در فاز ایجاد ارتباط، A دو تگ(Ti, Tj) را برای نفوذ خود انتخاب می‌کند و یکی را به صورت تصادفی برگزیده(*T) و دسترسی به این تگ را دارد. اگر درگام بعدی مجددا به تعامل با خواننده بپردازد، و به هویت تگی که به صورت تصادفی انتخاب کرده بود،پی ببرد(یعنی متوجه شود *T کدام یک از Ti یا Tj بوده) آنگاه طبق تعریف عدم تعقیب‌پذیری این امر زیر سوال خواهد رفت. بنابراین به طور دقیق محاورات زیر را می‌توان در قالب الگوریتمی برای اثبات ضعف در عدم تعقیب‌پذیری در نظر گرفت.
1. A به بیش از یک تگ از سیستم RFID (مثلا دو تگ) با نام‌های Ti , Tj دسترسی دارد.
2. A شروع به برقراری ارتباط با دستگاه خواننده‌ی R برای ارسال و دریافت پیام nr می‌کند.
3. A با ردگیری پیغام فرستاده‌ شده توسط خواننده برای تگ *T به موجودیت حقیقی *T  که یا Ti یا Tj است پی می‌برد.

ایجاد عدم انطباق
مد نظر قرار دادن مواردی چون عدم‌تعقیب‌پذیری و تضمین کیفیت سرویس چون ارسال صحیح و کامل اطلاعات همان‌گونه که منجر به ایجاد پروتکل‌های وابسته به حالت در شبکه‌های کامپیوتری(نظیر پروتکل TCP) گردید، به ایجاد پروتکل‌های وابسته به حالتی مانند اکثریت قریب به اتفاق پروتکل‌‌های نسل 2 EPC نیز گردیده است. اینگونه پروتکل‌های وابسته به حالت در انتهای هر انتقال و دریافت موفق پیغام، اطلاعات و اسرار(نظیر روش درهم‌سازی) خود را به روز رسانی می‌کنند. واضح است که خواننده و تگ باید در انتهای عمل به روزرسانی به یک کلید مشخص برای اعمالی چون درهم‌سازی برسند تا در ارتباط بعدی به طور موفق با هم ارتباط برقرار کنند. در یک حمله‌ی امنیتی به منظور از بین بردن انطباق، عامل متخاصم هدف خود را روی کلید به روز شده جدید می‌گذارد تا با ایجاد تفاوت میان کلید درک شده توسط تگ با کلید مورد نظر دستگاه خواننده، باعث عدم انطباق میان تگ و خواننده شود و تشخیص صحیح را در ادامه‌ی کار مختل کند.
در طراحی پروتکل‌های نسل 2 EPC برای جلوگیری از مشکلاتی که می‌تواند از عدم دریافت آخرین پیغام فرسناده شده‌ی خواننده از سوی تگ به وجود بیاید راه حلی پیش‌بینی شده است. این راه حل عبارت است از این که خواننده آخرین اطلاعات قبل از آخرین به‌روزرسانی مربوط به تمام تگ‌ها را ذخیره می‌کند و در صورت عدم انطباق میان خواننده و تگ، خواننده مجددا تمام IDهای ذخیره شده را که طبعا شامل ID قبلی تگی که انطباق را با خواننده از دست داده در آن است، را بررسی کرده و ID مربوطه را پیدا و مجددا به روز می‌کند اما می‌توان نشان داد که این فرایند قابل قبول است اما در همه‌ی شرایط کارایی لازم در برابر حملاتی که در طول الگوریتم آن عامل هوشمند(عموما انسان) قرار دارد را ندارد.

روش حمله در مورد عدم انطباق
هر تگی که در حالت S=0 قرار داشته باشد، امکان از دست دادن انطباق را خواهد داشت.در یک ارتباط میان تگ و خواننده، عامل متخاصم به جای خواننده پیغام جعلی ‘nr را که هر مقداری غیر از nr می‌تواند داشته باشد به تگ ارسال می‌کند. چون تگ در حالت S=0 قرار دارد، خواننده‌ی اصلی از صحت دریافت پیغام خود (nr) مطلع نخواهد شد و تگ هم ‘nr را به عنوان پیغام اصلی خود قبول خواهد کرد. بنابراین در انتهای فرایند ارسال و دریافت پیغام، خواننده‌ اصلی عمل درهم‌سازی ( h(ID,nr را صورت می‌دهد و تگ نیز عمل درهم‌سازی (‘ h(ID,nrرا اجرا می‌کند، بنابراین دو ID درهم‌سازی‌ شده مجزا خواهیم داشت و انطباق میان خواننده و گیرنده با خرابکاری عامل متخاصم مختل خواهد شد. در شکل زیر که در زیر قابل ملاحظه است این امر در یک فلوچارت نشان داده شده است.(E همان عامل متخاصم است)

نتیجه‌گیری
در این مقاله به بررسی مشکلاتی در امنیت پروتکل‌های نسل 2 EPC پرداختیم. این مشکلات در حوزه تشخیص متقابل تگ و خواننده، عدم تعقیب‌پذیری برای حفظ حریم شخصی و عدم انطباق میان تگ و خواننده بود. ریشه دو مورد از این سه حالت در وابستگی پروتکل به حالت بود که اگر تعداد بیت‌های حالت به دو بیت افزایش یابد، احتمال این نفوذها نصف و اگر به طور کلی تعداد این بیت‌ها n برابر گردد، این احتمال به نسبت دو به توان n کاهش می‌یابد اما همان‌گونه که اشاره شد افزایش حالات منجر به افزایش محاسبات و کاهش سرعت شدید خواهد شد بنابراین میان امنیت و سرعت در RFID یک معاوضه وجود دارد یعنی با افزایش یکی، کاهش دیگری را باید در نظر داشت. راه حل دیگر هم استفاده از پردازنده‌های سریع ولی گران‌قیمت در RFID است اما این روش به دلیل این‌که RFID در صنایع و تجارت کاربرد دارد عملا منتفی است و فقط در موارد حساس(مثل موارد مصرف در حوزه‌های امنیتی و نظامی) که سرعت در کنار امنیت کاربرد دارد، به کار می‌رود.

نویسنده:  مصطفی حسینی
ناشر:  شرکت پایوند همکاران سیستم

کلمات کلیدی:
امنیت، پروتکل، عامل متخاصم، حمله امنیتی، پیغام، درهم‌سازی(Hashing)، حالت(State)

منابع

Jules A, R. L Rivest, Selective Blocking Of RFID Tags for Consumers Privacy, ACM Conference on Computer and Communications,2003
Sarma S.E, D Brock, Radio Frequency Identification And Electronic Product Code, IEEE Micro 2001, Pages 50-54
Ton Van Deursen, Sasa Radomirov, Security of RFID Protocols- A Case Study,Faculty of Science Universitu of Luxamburg

دیدگاه خود را ثبت کنید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *