رمزنگاری داده‌ها در دستگاه‌های همراه

رمزنگاری داده‌ها در دستگاه‌های همراه
بدون نظر, ۰۴/۱۲/۱۳۹۷, توسط , در موبایل

واحد خبر mobile.ir : امنیت داده‌ها همواره در دنیای تجارت، سیاست و در نهادهای نظامی از اهمیت بالایی برخوردار بوده است. با فراگیر شدن دستگاه‌های همراه و ارتباطات بی‌سیم، امنیت و حریم خصوصی کاربران عادی در معرض مخاطرات فراوانی قرار گرفته و توجه گسترده‌ای را به سوی خود جلب نموده است. چرا که به طور کلی ارتباطات بی‌سیم راحت‌تر در معرض حمله و شنود قرار گرفته و دستگاه‌های همراه که به طور معمول حاوی اطلاعات شخصی یا خصوصی کاربران هستند، خیلی راحت گم شده یا به سرقت می‌روند. یکی از مهم‌ترین و ساده‌ترین اقدامات ممکن برای حفاظت از داده‌ها، رمزنگاری آن‌هاست. در این مطلب قصد داریم شما را با ضرورت رمزنگاری، مفاهیم و روش‌های مختلف آن آشنا کنیم.

Mobile Data Encryption Techniques Overview

نیاز به رمزنگاری در دستگاه‌های همراه

گوشی‌های هوشمند همیشه و همه جا همراه افراد بوده و برای کارهای مختلف مورد استفاده قرار می‌گیرند. از این رو به طور معمول داده‌های مهمی هم‌چون شناسه‌های ملی، اطلاعات شماره حساب‌ها و کارت‌های بانکی، تصاویر خصوصی، مکالمات متنی و اطلاعات حساس کاری روی این دستگاه‌ها ذخیره می‌شوند. این داده‌ها چه در زمان جابجایی از طریق ارتباطات بی‌سیم و چه هنگامی که روی حافظه داخلی قرار داشته باشند، ممکن است مورد سرقت و سوء استفاده قرار گیرند. اطلاعاتی که از طریق امواج رادیویی در فضای آزاد منتقل می‌شوند، به طور طبیعی بیش‌تر در معرض شنود و سرقت قرار دارند. امروزه ارتباط وای-فای و هم‌چنین ارتباطات نسل چهارم مخابراتی (۴G یا LTE) متداول‌ترین راه‌کارهای جایجایی داده‌ها در دستگاه‌های همراه محسوب می‌شوند. استانداردهای نسل چهارم الزام می‌کنند که داده‌ها فقط به صورت رمزنگاری شده مبادله شوند. روترها و اکسس پوینت‌های تامین کننده ارتباط وای-فای نیز اگر به درستی تنظیم شده باشند، قادرند داده‌ها را به صورت رمزنگاری شده ارسال و دریافت نمایند. بنابراین کاربران دستگاه‌های همراه هنگام استفاده از اینترنت و برقراری ارتباطات بی‌سیم، خواسته یا ناخواسته برای تامین امنیت داده‌های خود به رمزنگاری متکی هستند.

امروزه اپلیکیشن‌ها و داده‌های ذخیره شده روی حافظه داخلی دستگاه‌های همراه با روش‌هایی هم‌چون پین‌کدهای ۴ رقمی، رسم الگو و رمزهای عبور متشکل از حروف و ارقام، یا روش‌های بیومتریک مانند تشخیص اثر انگشت، چهره و ساختار عنبیه چشم محافظت می‌شوند. پرکاربردترین این روش‌ها همان پین‌کد ساده ۴ رقمی است که با وجود امنیت نسبتا پایینی که دارد، توسط اغلب کاربران در سرتاسر دنیا مورد استفاده قرار می‌گیرد.‌ حداکثر تعداد ترکیب‌های ممکن برای یک رمز ۴ رقمی ۱۰ هزار عدد است که همین مساله آن را در برابر حملات brute force بسیار آسیب‌پذیر می‌کند. ابزارهای مختلفی وجود دارند که طراحی شده‌اند تا تمامی ترکیب‌های مختلف پین‌کدهای ۴ و ۶ رقمی را بدون فعال‌سازی مکانیزم‌های امنیتی دیگر امتحان نموده و در نهایت رمز عبور صحیح دستگاه را پیدا کنند. به کمک چنین ابزارهایی حتی افراد عادی که مهارتی در هک کردن ندارند ممکن است بتوانند با در اختیار داشتن یک دستگاه همراه دیر یا زود به اطلاعات ذخیره شده در آن دسترسی پیدا کنند. جدا از این‌ روش، هرگونه رمز عبور را می‌توان به روش‌های مختلف از جمله نگاه کردن به انگشتان کاربر هنگام ورود رمز، حدس زدن و حتی پرسیدن از صاحب دستگاه کشف نموده و مورد سوء استفاده قرار داد.

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

بنا به دلایل ذکر شده نمی‌توان برای حفظ امنیت دستگاه‌های همراه تنها به راه‌کارهای معمول قفل‌گذاری صفحه ورود متکی بود. حفاظت واقعی از داده‌ها با تشکیل یک ساختار دفاعی چندلایه یا به اصطلاح "دفاع در عمق" امکان‌پذیر خواهد بود. رمزنگاری یکی از متداول‌ترین و قابل اطمینان‌ترین روش‌های موجود برای تشکیل لایه‌های دفاعی عمیق در مقابل مهاجمین است. با استفاده از این روش حتی در صورت دسترسی فیزیکی فرد مهاجم به دستگاه همراه و استخراج داده‌های ذخیره شده روی حافظه داخلی آن، این اطلاعات برای وی حالت رمزنگاری شده و غیرقابل استفاده خواهند داشت.

Mobile Data Encryption Techniques Overview

رمزنگاری چیست و چگونه انجام می‌شود؟

به طور کلی رمزنگاری (cryptography) دانشی‌ست در زمینه ابداع و توسعه روش‌هایی برای انتقال اطلاعات به گونه‌ای که آن‌ها برای هیچ‌کس به جز افراد مجاز قابل درک و استفاده نباشند. تاریخچه رمزنگاری به یونان و روم باستان برمی‌گردد. یونانیان باستان برای این کار نواری از پارچه را دور یک سیلندر چوبی با اندازه و ابعاد مشخص به نام Scytale می‌پیچانده و پس از نگارش پیام مورد نظر روی آن، نوار را جدا کرده و ارسال می‌نمودند. بدین ترتیب پیام ارسالی در حالت عادی نامفهوم به نظر رسیده و در مقصد به کمک یک Scytale با ابعادی یک‌سان قابل خواندن بود. هم‌چنین در روم باستان و در زمان امپراطوری ژولیوس سزار برای رمزگذاری پیام‌ها هر حرف الفبا به تعدادی مشخص به سمت راست یا چپ در ترتیب حروف الفبا انتقال می‌یافت. فرد یا افراد مجاز به دریافت پیام از قبل در جریان تعداد و جهت جابجایی حروف قرار گرفته و قادر بودند با جایگزین کردن حروف به صورت صحیح، پیام درهم‌ریخته دریافتی را به پیام اصلی تبدیل نمایند.

در روش‌ها رمزنگاری امروزی که با استفاده از کامپیوترها انجام می‌شوند، به طور معمول اطلاعات قبل از ارسال با استفاده از یک الگوریتم مشخص رمزگذاری (encrypt) گردیده و افراد مجاز قادر خواهند بود تا در مقصد اطلاعات نامفهوم دریافتی را با استفاده از الگوریتمی متناظر به اصطلاح رمزگشایی (decrypt) نمایند. این سیستم‌های رمزنگاری کامپیوتری را می‌توان به دو دسته اصلی تقسیم‌بندی نمود:

• رمزنگاری کلید متقارن

• رمزنگاری کلید عمومی یا نامتقارن

در سیستم‌های رمزنگاری کلید-متقارن لازم است دریافت‌کننده و ارسال‌کننده پیام کلیدی یک‌سان را در اختیار داشته باشند. در این‌گونه روش‌ها کامپیوتر ارسال‌کننده پیام هر بسته (packet) از اطلاعات را به کمک یک کلید محرمانه رمزگذاری نموده و سپس آن را از طریق شبکه ارسال می‌کند. کامپیوتر دریافت‌کننده نیز با در اختیار داشتن همان کلید محرمانه، بسته‌های اطلاعاتی دریافت شده را رمزگشایی می‌نماید. بنابراین برای استفاده از چنین سیستم‌هایی لازم است ابتدا کلید مربوطه روی تمامی کامپیوترهایی که قرار است به صورت رمزگذاری‌شده با هم در ارتباط باشند، نصب گردد. این کلید را می‌توان به یک رمز محرمانه تشبیه نمود که هر کامپیوتر برای رمزگشایی پیام‌ها به آن نیاز دارد. بر این اساس روش‌های رمزنگاری سنتی از جمله انواع مورد استفاده در یونان و روم باستان را نیز می‌توان در زمره سیستم‌های رمزنگاری کلید-متقارن به شمار آورد. اولین الگوریتم رمزنگاری متقارن که به صورت رسمی و استاندارد شده ابتدا در امریکا و سپس در دیگر نقاط جهان مورد استفاده قرار گرفت، تحت عنوان DES (مخفف Data Encryption Standard به معنی استاندارد رمزگذاری داده‌ها) شناخته می‌شود. استانداردهای جدیدتری مانند AES و Twofish، هم‌چنین نسخه‌های بهبود یافته DES مانند DES-X ،Triple DES و G-DES از جمله دیگر الگوریتم‌های رمزنگاری کلید متقارن محسوب می‌شوند. نقطه ضعف اصلی سیستم‌های رمزنگاری متقارن آن است که افراد غیرمجاز با پیدا کردن یا سرقت کلید مورد استفاده برای رمزنگاری قادر خواهند بود پیام‌ها و اطلاعات تبادل شده را رمزگشایی نمایند. نقطه قوت مهم این سیستم‌ها نیز سرعت و کارایی بالای آن‌ها در رمزگذاری و رمزگشایی داده‌ها است.

Mobile Data Encryption Techniques Overview

سیستم‌های رمزنگاری کلید-عمومی یا نامتقارن برای غلبه بر ضعف امنیتی رمزنگاری کلید متقارن از ترکیب یک کلید خصوصی و یک کلید عمومی برای رمزنگاری داده‌ها استفاده می‌نمایند. هر شخص یا کامپیوتر شرکت‌کننده در ارتباط از یک کلید عمومی و یک کلید خصوصی برخوردار است. کلیدهای عمومی و خصوصی هر کامپیوتر در واقع دو رشته نسبتا بلند از اعداد تصادفی محسوب می‌شوند که از نظر ریاضی به یک‌دیگر مرتبط هستند. کلید عمومی همان‌طور که از نامش پیداست در اختیار همه قرار می‌گیرد. درحالی‌که کلید خصوصی هر فرد یا کامپیوتر مختص خودش بوده و بایستی به صورت محرمانه نگه‌داری شود. با توجه به منحصربه‌فرد بودن و وابستگی ریاضی هر جفت کلید عمومی و خصوصی، اطلاعات رمزگذاری شده با هر کلید عمومی تنها با استفاده از کلید خصوصی متناظر آن قابل رمزگشایی خواهد بود. هر بار که یک نفر قصد ارسال اطلاعات را دارد، بسته‌های داده‌ را با استفاده از کلید عمومی شخص گیرنده رمزگذاری می‌نماید. بسته‌های دریافتی در مقصد به کمک کلید عمومی شناسایی گردیده و با استفاده از کلید خصوصی مربوطه رمزگشایی می‌شوند. به عنوان مثال فرض کنید آرش قصد دارد پیامی را با استفاده از رمزنگاری نامتقارن برای امید ارسال نماید. او برای این‌که مطمئن شود فقط امید قادر به خواندن پیام خواهد بود، داده‌ها را با کلید عمومی امید رمزگذاری نموده و روی شبکه ارسال می‌کند. امید بسته‌هایی که توسط کلید عمومی او رمزگذاری شده‌اند را دریافت نموده و آن‌ها را به کمک کلید خصوصی خود رمزگشایی می‌کند.

برخی از مهم‌ترین و معتبرترین الگوریتم‌ها و پروتکل‌های مبتنی بر رمزنگاری کلید نامتقارن عبارتند از: RSA ،PGP ،GPG ،DSS و Diffie–Hellman. نقطه قوت اصلی این نوع سیستم‌های رمزنگاری را می‌توان در نیاز نداشتن آن‌ها به ارسال داده‌های حساس و محرمانه هم‌چون کلید رمزنگاری و رمز عبور روی کانال‌های ارتباطی ناامن دانست. تنها عنصر محرمانه در این نوع رمزنگاری کلید خصوصی است که نیازی به جابجایی نداشته و در کنج کامپیوتر شخصی شما جا خشک می‌کند. اما الگوریتم‌های رمزنگاری کلید نامتقارن به طور کلی نسبت به الگوریتم‌های کلید متقارن پیچیدگی و سربار محاسباتی بیش‌تری دارند. این مساله به طور معمول سرعت و کارایی پایین‌تر آن‌ها در رمزگذاری و رمزگشایی داده‌ها را به دنبال داشته و نقطه ضعف اصلی این نوع سیستم‌ها به شمار می‌رود. راه حل دانشمندان علم رمزنگاری برای غلبه بر این ضعف، طراحی و معرفی سیستم‌های رمزنگاری ترکیبی بوده است.

Mobile Data Encryption Techniques Overview

سیستم‌های رمزنگاری دوگانه یا ترکیبی (hybrid cryptosystems) سعی دارند امنیت بالای رمزنگاری کلید عمومی (نامتقارن) را در کنار کارایی بهتر رمزنگاری کلید متقارن ارائه نمایند. آن‌ها برای این منظور بخش عمده عملیات رمزگذاری و رمزگشایی را با استفاده از الگوریتم‌های متقارن انجام داده و برای ارسال امن کلید متقارن مربوطه از الگوریتم‌های کلید عمومی بهره می‌گیرند. به عنوان مثال در نظر بگیرید که آرش قصد دارد پیامی را به کمک چنین سیستمی برای امید ارسال کند. او ابتدا کلید عمومی امید را دریافت می‌کند. سپس یک کلید متقارن ایجاد نموده و پیام مورد نظر خود را بر مبنای آن رمزگذاری می‌نماید. آرش در نهایت این کلید متقارن را با استفاده از کلید عمومی امید رمزگذاری نموده و به همراه داده‌ها برای او ارسال می‌کند. امید پس از دریافت بسته‌های رمزگذاری شده، کلید متقارن را به کمک کلید خصوصی خود رمزگشایی می‌نماید. او سپس با استفاده از کلید متقارن به‌دست آمده پیام اصلی را رمزگشایی می‌کند. اغلب سیستم‌ها و پروتکل‌های رمزنگاری کلید عمومی (نامتقارن) که امروزه به صورت کاربردی و استاندارد‌شده مورد استفاده قرار می‌گیرند، بر مبنای همین روش ترکیبی طراحی گردیده‌اند. از مهم‌ترین این پروتکل‌ها می‌توان به SSH ،SSL/TLS و OpenPGP اشاره نمود.

مهم‌ترین استانداردهای رمزنگاری داده‌ها

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

(Data Encryption Standard (DES: یکی از اولین استانداردهای رمزنگاری داده‌ها به شمار می‌رود که در دهه ۷۰ میلادی منتشر شده و به عنوان استاندارد رسمی دولت فدرال امریکا برای رمزنگاری داده‌ها انتخاب گردید. استاندارد DES که توسط متخصصین شرکت IBM طراحی شده است، برای رمزنگاری داده‌ها از یک الگوریتم کلید متقارن با کلیدی ۵۶ بیتی بهره می‌گیرد. این کلید ۵۶ بیتی بیش از ۷۰ کوادریلیون ترکیب عددی مختلف را میسر می‌سازد. همین مساله موجب گردیده است تا این الگوریتم به تدریج امنیت خود را از دست داده و نسبت به حملات brute force آسیب‌پذیر گردد. چرا که کامپیوترهای قدرتمند امروزی می‌توانند در مدتی نسبتا کوتاه تمامی ۷۰ کوادریلیون ترکیب‌ ممکن را بررسی نموده و کلید مورد نیاز برای رمزگشایی داده‌ها را بیابند. این مشکل در کنار برخی نقاط ضعف دیگر DES موجب گردید تا در دهه ۸۰ و ۹۰ میلادی نسخه‌های ارتقا یافته این الگوریتم از جمله DES-X ،Triple DES و ICE با ساختاری پیچیده‌تر و قابلیت استفاده از کلیدهایی بلندتر (۶۴ تا ۱۶۸ بیت) طراحی و معرفی گردند. با این وجود قدمت، سادگی و سربار پردازشی کمی که این الگوریتم به دستگاه تحمیل می‌کند موجب گردیده است تا DES هم‌چنان در برخی دستگاه‌های کوچک و ضعیف مورد استفاده قرار گیرد.

(Advanced Encryption Standard (AES: در سال ۲۰۰۱ میلادی موسسه ملی استانداردها و تکنولوژی امریکا (NIST) با هدف انتخاب یک گزینه مناسب برای جایگزینی استاندارد DES، اقدام به برگزاری رقابتی میان برترین الگوریتم‌های رمزنگاری آن زمان نمود. برنده این رقابت الگوریتمی به نام Rijndael بود که پس از انجام برخی تغییرات و اصلاحات به عنوان استاندارد رسمی رمزنگاری داده‌ها در امریکا، به AES یا "استاندارد رمزنگاری پیشرفته" تغییر نام داد. این الگوریتم که هم از نظر امنیت و هم سرعت رمزنگاری بر DES برتری دارد، در حال حاضر یکی از معتبرترین و پرکاربردترین استانداردهای رمزنگاری در سرتاسر دنیا به شمار می‌رود. AES یک الگوریتم رمزنگاری کلید متقارن با امکان بهره‌گیری از کلیدهایی به طول ۱۲۸، ۱۹۲ یا ۲۵۶ بیت است. استفاده از کلیدهای کوتاه‌تر کارایی بالاتری را به دنبال داشته و کلیدهای بلندتر امنیت بیش‌تری را برای داده‌های حساس‌تر فراهم می‌آورند. امروزه بسیاری از پروتکل‌ها و اپلیکیشن‌های معروف از جمله OpenSSL ،RAR ،WinZip ،LastPass و WhatsApp برای رمزنگاری داده‌های خود از این الگوریتم بهره می‌گیرند.

Mobile Data Encryption Techniques Overview

RSA: یکی از اولین سیستم‌های رمزنگاری کلید عمومی یا نامتقارن توسط سه دانشمند به نام‌های Adleman، Shamir و Rivest طراحی گردیده و در سال ۱۹۷۷ میلادی منتشر شد. این الگوریتم که از کلیدهای رمزنگاری ۱۰۲۴ تا ۴۰۹۶ بیتی بهره می‌گیرد، با وجود امنیت بسیار بالا از سرعت رمزگذاری پایینی برخوردار است. همین مساله موجب شده است تا استاندارد RSA کم‌تر برای رمزگذاری مستقیم داده‌ها و بیش‌تر برای رمزگذاری کلیدهای متقارن در سیستم‌های رمزنگاری ترکیبی مورد استفاده قرار گیرد.

Twofish: یکی دیگر از الگوریتم‌های مهم رمزنگاری کلید متقارن Twofish نام دارد که توسط Bruce Schneier طراحی شده و اولین بار در سال ۱۹۹۸ میلادی منتشر گردید. این الگوریتم در رقابت سال ۲۰۰۱ برای انتخاب استاندارد جدید رمزنگاری امریکا یکی از ۵ فینالیست بود که در نهایت موفق به کسب آن عنوان نگردید. در آن زمان Twofish عملیات رمزنگاری را برای کلیدهایی به طول ۱۲۸ بیت کمی کندتر از Rijndael انجام داده و در رمزنگاری با کلیدهای ۲۵۶ کمی سریع‌تر عمل می‌نمود. این الگوریتم هم‌چون بسیاری دیگر از الگوریتم‌های مهم رمزنگاری متقارن دهه ۹۰ میلادی قادر است از کلیدهایی به طول ۱۲۸، ۱۹۲ یا ۲۵۶ بیت برای رمزگذاری داده‌ها استفاده نماید. نسخه ارتقا یافته Twofish که در سال ۲۰۰۸ میلادی با نام Threefish معرفی گردید، امکان بهره‌گیری از کلیدهای متقارنی به طول ۲۵۶، ۵۱۲ یا ۱۰۲۴ را فراهم می‌آورد.

(Pretty Good Privacy (PGP: نرم‌افزار PGP یک نرم افزار رمزنگاری‌ست که توسط شرکت Symantec توسعه یافته و در سال ۱۹۹۱ میلادی منتشر گردید. این نرم افزار از استانداردی متن‌باز به نام OpenPGP برای رمزنگاری داده‌ها بهره گرفته و برای اموری هم‌چون رمزگذاری و رمزگشایی فایل‌ها، متن‌ها، ایمیل‌ها و دیسک‌های ذخیره‌سازی مورد استفاده قرار می‌گیرد. OpenPGP یک الگوریتم ترکیبی‌ست که از یک کلید متقارن برای رمزگذاری داده‌ها و از کلید‌های نامتقارن برای رمزگذاری کلید متقارن استفاده می‌نماید. این استاندارد با پشتیبانی از کلیدهایی به طول ۵۱۲ تا ۲۰۴۸ و حتی ۴۰۹۶ بیت، از امنیت بسیار بالایی در مقابل حملات brute force برخوردار است. لازم به ذکر است که امروزه استاندارد OpenPGP به شکلی بسیار گسترده در رمزگذاری ایمیل‌ها به کار گرفته می‌شود.

کارایی الگوریتم‌های رمزنگاری

دو مشخصه مهم الگوریتم‌های رمزنگاری داده‌ها، امنیت و کارایی آن‌هاست. الگوریتم‌های مختلف بسته به روشی که برای رمزنگاری داده‌ها به کار می‌گیرند، از امنیت و سرعت متفاوتی نسبت به یک‌دیگر برخوردار بوده و هر یک ممکن است برای کاربردهای مشخصی بهتر از بقیه باشند. به طور کلی در کاربردهایی که امنیت داده‌ها در درجه اول اهمیت قرار داشته و محدودیت چندانی از نظر توان پردازشی یا زمان صرف شده برای رمزنگاری وجود نداشته باشند، استفاده از الگوریتم‌های رمزنگاری نامتقارن هم‌چون RSA و PGP مناسب‌تر خواهد بود. اما در مواردی که سرعت انجام عملیات رمزگذاری و رمزگشایی از اهمیت بالایی برخوردار بوده و توان پردازشی محدودی در اختیار باشد، به طور معمول از الگوریتم‌های کلید-متقارن از جمله AES و Twofish استفاده می‌شود. با توجه به محدودیت نسبی توان پردازشی دستگاه‌های همراه و لزوم دسترسی سریع کاربر به داده‌ها و اپلیکیشن‌های ذخیره شده روی آن‌ها، سرعت و توان رمزنگاری در این‌گونه دستگاه‌ها از اهمیت بسیار بالایی برخوردار است. به همین دلیل در اغلب دستگاه‌های همراه برای رمزنگاری داده‌ها از الگوریتم‌های متقارن یا سیستم‌های رمزنگاری ترکیبی بهره گرفته می‌شود.

عوامل مختلفی بر سرعت یک الگوریتم در رمزنگاری فایل‌ها تاثیرگذارند که از آن جمله می‌توان به سایز فایل‌ و اندازه کلید مورد استفاده برای رمزنگاری اشاره نمود. نویسنده وب‌سایت howtogeek.com برای مقایسه سرعت برخی الگوریتم‌های رمزنگاری از ابزار تست و بنچمارک موجود در نرم‌افزار رمزنگاری متن‌باز TrueCrypt استفاده نموده است. طی این آزمایش فایل‌هایی با اندازه تقریبی ۵ مگابایت با استفاده از برخی الگوریتم‌های رمزنگاری متقارن مهم هم‌چون AES ،Twofish ،Serpent و ترکیب‌های آن‌ها مورد رمزگذاری و رمزگشایی قرار گرفته‌اند. نتایج این آزمایش که در تصویر زیر به نمایش درآمده‌اند، حکایت از سرعت بالاتر الگوریتم AES در انجام عملیات رمزنگاری دارند. گرچه آزمایش‌های دیگر نشان می‌دهد که الگوریتم‌هایی هم‌چون Twofish و Serpent در رمزنگاری فایل‌های کوچک‌تر کارایی به مراتب بهتری از خود نشان می‌دهند.

Mobile Data Encryption Techniques Overview

رمزنگاری نرم‌افزاری و سخت‌افزاری

به طور کلی رمزنگاری را می‌توان از لحاظ بستر مورد استفاده برای پردازش و ذخیره‌سازی به دو نوع نرم‌افزاری و سخت‌افزاری تقسیم‌بندی نمود. در رمزنگاری نرم‌افزاری عملیات رمزگذاری و رمزگشایی داده‌ها توسط ابزارهای نرم‌افزاری انجام شده و کلید‌های رمزگذاری در کنار دیگر داده‌ها روی فضای ذخیره‌سازی اصلی دستگاه نگه‌داری می‌گردند. از این نوع ابزارهای رمزنگاری نرم‌افزاری می‌توان به BitLocker ویندوز، نرم‌افزار رمزنگاری PGP و بسیاری از نرم‌افزار مدیریت رمز عبور هم‌چون ۱Password اشاره نمود. رمزنگاری نرم‌افزاری به طور معمول متکی به یک رمزعبور است. با وارد کردن رمز عبور صحیح، فایل‌ها رمزگشایی گردیده و در غیر این‌ صورت به صورت رمزگذاری‌شده باقی می‌مانند. فایل‌های جدید ابتدا به نرم‌افزار رمزنگاری سپرده شده و پس از انجام عملیات رمزگذاری، روی دیسک ذخیره می‌گردند. هنگام درخواست کاربر برای خواندن فایل‌ها، همین نرم‌افزار، داده‌های رمزگذاری شده را از روی دیسک برداشته و پس از رمزگشایی به کاربر مجاز تحویل می‌دهد. این نوع رمزنگاری معمولا راحت و ارزان بوده، نیازی به سخت‌افزار ویژه ندارد. اما از آن‌جا که با واسطه سیستم‌عامل و در سطح نرم‌افزار انجام می‌گیرد، امنیت آن به طور کامل وابسته به امنیت کلی دستگاه است. اگر افراد غیرمجاز بتوانند رمزعبور شما را به دست آورند، قادر خواهند بود با استفاده از آن داده‌ها را رمزگشایی نمایند. هم‌چنین از آن‌جا که نرم‌افزارهای رمزنگاری مانند دیگر نرم‌افزارها از منابع پردازشی و ذخیره‌سازی عمومی دستگاه استفاده می‌کنند، در زمان کمبود منابع ممکن است بسیار کند عمل نموده و بر عکس در هنگام انجام عملیات رمزگذاری و رمزگشایی موجب کند شدن عمومی دستگاه گردند.

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

Mobile Data Encryption Techniques Overview

رمزگذاری داده‌ها در iOS

شرکت اپل از زمان عرضه iPhone 3GS در سال ۲۰۰۹ تا کنون رمزنگاری داده‌ها را در سخت‌افزار و سیستم‌عامل دستگاه‌های آیفون و آیپد خود پشتیبانی می‌نماید. از آن زمان درون هر دستگاه مبتنی بر سیستم‌عامل iOS یک موتور رمزنگاری مبتنی بر AES 256-bit تعبیه می‌شود که بین حافظه ذخیره‌سازی فلش و حافظه اصلی (RAM) جای می‌گیرد. علاوه بر این، یک واحد دَرهَم‌ساز (hash) مبتنی بر SHA-1 و یک شناسه منحصربه‌فرد (UID) نیز در سخت‌افزار این دستگاه‌ها جاسازی شده تا بر امنیت و کارایی عملیات رمزنگاری داده‌ها بی‌افزاید. شناسه منحصربه‌فرد یا UID که نقش کلید ۲۵۶ بیتی الگوریتم AES را ایفا می‌نماید، برای هر دستگاه منحصر به همان سخت‌افزار بوده و هیچ‌کجای دیگر ثبت نمی‌گردد. این شناسه درون پردازنده اصلی جاسازی شده و فقط توسط موتور رمزنگاری آن دستگاه قابل دسترسی است. در نتیجه هیچ نرم‌افزار یا سیستم‌عاملی امکان دسترسی مستقیم و خواندن آن را نداشته و آن‌ها فقط قادر به مشاهده نتایج عملیات رمزگذاری و رمزگشایی داده‌ها هستند. هم‌چنین از آن‌جا که کلید رمزنگاری (UID) به صورت سخت‌افزاری روی پردازنده درج گردیده است، در عمل امکان دست‌کاری یا دور زدن آن وجود ندارد. بنابراین داده‌های رمزگذاری شده روی هر دستگاه کاملا به سخت‌افزار آن گره خورده و روی هیچ دستگاه دیگری قابل رمزگشایی نخواهند بود.

انجام بخش عمده‌ای از عملیات رمزنگاری در سطح سخت‌افزار موجب افزایش امنیت و سرعت کار رمزگذاری و رمزگشایی داده‌ها می‌گردد. همین مساله موجب گردیده است که اپل این سطح از رمزنگاری را به صورت پیش‌فرض روی دستگاه‌های همراه خود فعال نموده و امکان غیرفعال‌سازی آن را نیز به کاربر ندهد. البته این رمزنگاری سخت‌افزاری در زمان گم‌شدن یا سرقت دستگاه همراه کمکی به محافظت از داده‌های کاربر نخواهد نمود. از این رو قابلیت‌های "Remote Wipe" و "Data Protection" در سیستم‌عامل iOS برای تکمیل و تحکیم امنیت داده‌ها در نظر گرفته شده‌اند. در صورتی‌ که کاربر قابلیت پاک‌سازی از راه دور یا remote wipe را از قبل فعال نموده باشد، قادر خواهد بود در هنگام گم شدن یا به سرقت رفتن دستگاه همراه خود داده‌های ذخیره شده روی آن را از راه دور پاک کند. قابلیت Data Protection نیز با به خدمت گرفتن رمزنگاری سخت‌افزاری، کار محافظت از داده‌ها را به کمک یک ساختار چندلایه در سطح نرم‌افزار تکمیل نموده و امنیت بالاتری را برای داده‌های کاربر فراهم می‌آورد.

Mobile Data Encryption Techniques Overview

سیستم‌عامل iOS از رمزنگاری مبتنی بر فایل یا File Based Encryption (به اختصار FBE) بهره گرفته و داده‌ها را به صورت فایل به فایل رمزنگاری می‌نماید. با به‌کارگیری قابلیت Data Protection هر فایل بر اساس سطح دسترسی‌پذیری مربوط به خود در یک کلاس مشخص دسته‌بندی گردیده و توسط یک ساختار رمزنگاری چندلایه محافظت می‌شود. در این ساختار چندلایه، عملیات رمزگذاری و رمزگشایی فایل‌ها به کمک یک سلسله مراتب از کلیدهای مختلف شامل کلید فایل، کلید سیستم فایل، کلید کلاس، رمز عبور کاربر و UID دستگاه انجام می‌شود. محتوای هر فایل با استفاده از کلید فایل (File Key) رمزنگاری شده و سپس همین کلید فایل نیز به کمک کلید دیگری به نام کلید کلاس (Class Key) مورد رمزنگاری قرار می‌گیرد. فراداده یا metadata مربوط به هر فایل – که شامل اطلاعات جانبی و کنترلی در مورد فایل است –به کمک کلید سیستم فایل (File System Key) رمزنگاری گردیده و همراه با کلید فایل نگه‌داری می‌شود. در نهایت از ترکیب کلید سخت‌افزاری یا UID و رمزعبور کاربر برای رمزنگاری و محافظت از کلید کلاس استفاده می‌گردد. درحالی‌که کلید سیستم‌فایل هم در سطح سخت‌افزار و با استفاده از UID مورد محافظت قرار می‌گیرد.

به این ترتیب داده‌های کاربر توسط یک ساختار رمزنگاری چندلایه و قدرتمند محافظت گردیده و رمزگشایی آن‌ها تنها با در اختیار داشتن دستگاه همراه و اطلاع از رمز عبور کاربر امکان‌پذیر خواهد بود. چنین مکانیزمی امکان محافظت از داده‌ها در مقابل حملات از راه دور، حملات brute force و سارقین را میسر می‌سازد. انجام بخش عمده‌ای از کار رمزگذاری و رمزگشایی داده‌ها در سطح سخت‌افزار موجب می‌شود که این عملیات با سرعتی بالا و بدون مطلع شدن کاربر صورت پذیرد. به طور طبیعی بهره‌گیری از قابلیت محافظت از داده‌ها (Data Protection) در سیستم‌عامل iOS تنها در صورتی ممکن است که برای باز کردن قفل دستگاه از رمز عبور استفاده شود. هر چه این رمزعبور پیچیده‌تر باشد، امنیت و محافظت بالاتری را برای داده‌ها به ارمغان خواهد آورد.

رمزگذاری داده‌ها در اندروید

قابلیت رمزنگاری کامل داده‌های ذخیره شده روی حافظه دستگاه‌ از سال ۲۰۱۱ و با انتشار نسخه سوم اندروید (Android Honeycomb) به صورت بومی به این سیستم‌عامل اضافه گردید. کاربرانی که نسخه‌های ۳، ۴ یا ۵ اندروید را روی دستگاه همراه خود دارند می‌توانند با مراجعه به بخش امنیت در تنظیمات دستگاه، این قابلیت را فعال نمایند. اما از زمان عرضه نسخه ۶ اندروید (با نام Marshmallow) در سال ۲۰۱۵ و در تمامی نسخه‌های بعدی این سیستم‌عامل قابلیت رمزنگاری داده‌ها به صورت پیش‌فرض در حالت فعال قرار دارد. به صورتی که حتی غیرفعال نمودن آن به راحتی امکان‌پذیر نبوده و مستلزم نصب رام‌های غیررسمی و kernel شخصی‌سازی‌شده است. تا قبل از انتشار اندروید ۷، این سیستم‌عامل فقط از روش سنتی رمزنگاری کل دیسک یا Full-Disk Encryption پشتیبانی می‌نمود. در این روش کل فضای حافظه ذخیره‌سازی در دستگاه اندرویدی به صورت یک‌جا به کمک الگوریتم AES و تابع درهم‌ساز DEK رمزنگاری می‌گردد. این نوع رمزنگاری در نسخه‌های ۳ تا ۶ سیستم‌عامل اندروید با استفاده از قابلیتی در هسته یا kernel لینوکس به نام dm-crypt انجام می‌شود که بر مبنای الگوریتم AES با کلید ۱۲۸ بیتی کار می‌کند. در نسخه‌های ۳ و ۴ از سیستم‌عامل اندروید، داده‌های موجود روی حافظه داخلی پس از روشن شدن دستگاه و در حین فرآیند بارگذاری سیستم‌عامل رمزگشایی شده و در اختیار کاربر قرار می‌گرفت. از آن‌جا که این روش موجب طولانی شدن زمان بارگذاری سیستم‌عامل می‌گردید، از نسخه ۵ به بعد فقط عملیات رمزگشایی پارتیشن data در فرآیند بوت دستگاه انجام گرفته و بقیه داده‌های ذخیره شده در حافظه پس از باز شدن قفل دستگاه مورد رمزگشایی قرار می‌گیرند.

Mobile Data Encryption Techniques Overview

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

Mobile Data Encryption Techniques Overview

به همین خاطر شرکت گوگل سرانجام با عرضه نسخه ۷ از سیستم‌عامل اندروید در سال ۲۰۱۶ به رمزنگاری مبتنی بر فایل یا File Based Encryption روی آورد. این در حالی‌ست که شرکت اپل از سال ۲۰۰۹ میلادی این نوع رمزنگاری را در سیستم‌عامل iOS پشتیبانی نموده و از این نظر ۷ سال جلوتر از رقیب جوان‌تر خود بوده است. استفاده از رمزنگاری مبتنی بر فایل در اندروید ۷ قابلیتی به نام Direct Boot را برای کاربران به ارمغان آورد. به کمک این قابلیت اپلیکیشن‌های مختلف را می‌توان به نحوی توسعه داد تا بتوانند پس از هر بار روشن شدن دستگاه، بدون نیاز به باز شدن قفل اجرا شوند. این قابلیت به طور ویژه برای اپلیکیشن‌هایی در زمینه زنگ‌ هشدار، مدیریت پیام‌ها، یادآوری کارها و دیگر موارد مشابه مفید است. برای فراهم آوردن این امکان دو نوع فضای حافظه برای اپلیکیشن‌ها در نظر گرفته شده است:

• حافظه رمزنگاری‌شده محرمانه: همان فضای ذخیره‌سازی پیش‌فرض که دسترسی به آن پس از روشن شدن دستگاه فقط با باز شدن قفل توسط کاربر امکان‌پذیر است.

• حافظه رمزنگاری‌شده دستگاه: ‌فضای ذخیره‌سازی ویژه‌‌ای که قبل و بعد از باز شدن قفل دستگاه قابل دسترسی است.

سیستم‌عامل اندروید هم‌چنین از نسخه ۶ به بعد رمزنگاری در سطح سخت‌افزار را پشتیبانی می‌نماید. در دستگاه‌های اندرویدی که رمزنگاری را به کمک سخت‌افزار انجام می‌دهند، کلید اصلی رمزنگاری در واحدی سخت‌افزاری به نام "عنصر امن" یا "Secure Element" نگه‌داری می‌شود. این عنصر امن که در تراشه پردازشی اصلی دستگاه یا همان SoC جای گرفته است، وظیفه انجام عملیات رمزگذاری و رمزگشایی داده‌ها را نیز به عهده دارد. بدین ترتیب علاوه بر افزایش سرعت عملیات رمزنگاری، دسترسی مستقیم به کلید رمزنگاری و مداخله در عملیات رمزگذاری و رمزگشایی داده‌ها برای اپلیکیشن‌ها امکان‌پذیر نخواهد بود.‌  

برچسب ها :
mobile.ir

درباره آریا پارسا

چند ساله که برنامه نویسی می کنم. به دنیای دیجیتال و وب بسیار علاقه مندم و سعی می کنم هر روز در دیجی وبی مطالب مفیدی را برای شما دوستان ارسال کنم.

نظر بدهید

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