**پردازندهٔ رمزنگاری ایمن** (به انگلیسی: Secure cryptoprocessor) یک رایانه یا ریزپردازندهٔ اختصاصی برای انجام عملیات رمزنگاری است که در بسته‌بندی ای تعبیه شده‌است که چندین اقدام فیزیکی امنیتی که باعث ایجاد مقاومت در برابر دستکاری میشود، امن شده‌است. بر خلاف پردازنده های رمزنگاری که داده‌های رمزگشایی شده را به یک گذرگاه (به انگلیسی: bus) در یک محیط امن منتقل میکنند، یک پردازندهٔ رمزنگاری ایمن، داده های رمزگشایی شده یا دستورالعمل های برنامه رمزگشایی شده را در محیطی که امنیت همیشه نمی‌تواند در آن حفظ شود، استفاده نمی‌کند.

هدف پردازندهٔ رمزنگاری ایمن، این است که به عنوان کانون اصلی یک زیرسیستم امنیتی عمل کند و با اقدامات فیزیکی، نیاز به محافظت از بقیه زیرسیستم را برطرف کند.

نمونه ها
--------

یک ماژول امنیتی سخت‌افزاری (HSM) شامل یک یا چند تراشه رمزنگاری شده ایمن است. این دستگاه ها، پردازندهٔ رمزنگاری ایمنِ درجه بالا هستند که همراه با سرورهای سازمانی استفاده میشوند. یک ماژول امنیتی سخت‌افزاری میتواند دارای چندین لایه امنیت فیزیکی به همراه یک تک-تراشهٔ پردازندهٔ رمزنگاری ایمن به عنوان امن‌ترین مولفه، باشد. پردازندهٔ رمزنگاری ایمن، کلیدها یا دستورالعمل های اجرایی را روی گذرگاه فاش نمی‌کند مگر به صورت رمزنگاری شده یا صفر کردن کلید در صورت تلاش برای کاوش (به انگلیسی: probing) یا اسکن کردن. تراشه (های) رمزنگاری ممکن است در ماژول های سخت‌افزاری امن همراه با سایر پردازنده ها و تراشه های حافظه که داده های رمز شده را ذخیره و پردازش میکنند، محافظت شود. هرگونه تلاش برای از بین بردن حفاظ باعث میشود که کلیدهای موجود در تراشهٔ رمزنگاری، صفر شوند. یک ماژول امنیتی سخت‌افزاری ممکن است بخشی از یک کامپیوتر (به‌طور مثال یک دستگاه خودپرداز) باشد که در داخل یک بخش امن قفل شده عملیات را انجام میدهد تا از سرقت، تعویض و دستکاری آن جلوگیری کند.

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

ماژول بسترهای نرم‌افزاری قابل اعتماد (TPM)، پیاده‌سازی از یک پردازندهٔ رمزنگاری ایمن است که با ایجاد محیط امن، مفهوم محاسبات قابل اعتماد را به حوزهٔ رایانه های شخصی وارد میکند. تمرکز پیاده‌سازی های فعلی TPM بر روی ارائهٔ یک محیط راه انداز (به انگلیسی: boot) ضد حمله (به انگلیسی: tamper-proof) و رمزگذاری مقاوم و غیرفرار حافظه است.

تراشه‌های امنیتی در سیستم های تعبیه شده برای تهیه کردن سطح امنیتی فیزیکیِ کلیدها و سایر موارد محرمانه، مشابه با پردازنده های کارت های هوشمند یا TPM قابل استفاده هستند؛ اما در بسته‌بندی‌های کوچکتر، با پیچیدگی کمتر و ارزان‌تر. آن‌ها معمولاً به عنوان دستگاه های تأیید رمزنگاری شناخته میشوند و برای تأیید اعتبار لوازم جانبی (peripherals, accessories) یا موارد مصرفی مورد استفاده قرار میگیرند. آنها معمولاً مانند TPMها، مدارهای یکپارچه کلیدی هستند که قرار است در یک سیستم تعبیه شوند و معمولاً به یک برد کامپیوتر لحیم میشوند.

خصوصیات
-------

اقدامات امنیتی مورد استفاده در پردازندهٔ رمزنگاری ایمن:

* مهار کشف و آشکارسازی دخالت (به انگلیسی: tamper)
* لایهٔ محافظِ رسانا در تراشه که از خواندن سیگنال های داخلی جلوگیری میکند.
* اجرای کنترل شده برای جلوگیری از تاخیرهای زمانی در جهت افشای هرگونه اطلاعات مخفی.
* صفر کردن خودکار اطلاعات مخفی در صورت دستکاری.
* زنجیرهٔ اعتماد بارکنندهٔ راه اندازه (به انگلیسی: boot-loader) که قبل از بارگیری سیستم عامل، آن را تأیید میکند.
* زنجیرهٔ اعتماد سیستم عامل که قبل از بارگیری برنامهٔ نرم‌افزاری آن را تأیید میکند.
* رجیسترها با قابلیت های مبتنی بر سخت‌افزار، اجرای یک مدل جداسازی با اولویت یک طرفه.

درجهٔ امنیتی
------------

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

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

در حالی که آسیب‌پذیری که آن ها استخراج کرده اند نقصی در نرم‌افزار بارگذاری شده بر روی ۴۷۵۸ بود و نه معماری خود ۴۷۵۸، حملهٔ آنها به نوعی یادآوری این نکته است که یک سیستم امنیتی تنها به اندازهٔ ضعیف‌ترین پیوند خود امن است. قویترین لینک سخت‌افزار ۴۷۵۸ با وجود نقص های موجود در طراحی و خصوصیات نرم‌افزار بارگذاری شده بر روی آن، کاملاً بی استفاده شد.

کارت‌های هوشمند به‌طور قابل توجهی آسیب پذیرتر هستند، زیرا بیشتر در معرض حمله فیزیکی قرار دارند. علاوه بر این در پشتی (به انگلیسی: backdoor)های سخت‌افزاری میتوانند امنیت را در کارت‌های هوشمند و سایر پردازنده های رمزنگاری تضعیف کنند مگر این که سرمایه‌گذاری هایی بر روی متدهای طراحی ضد در پشتی (به انگلیسی: anti-backdoor) انجام شود.

در مورد برنامه‌های رمزگذاری کامل دیسک، به ویژه هنگامی که بدون PIN بوت پیاده‌سازی میشوند، یک پردازندهٔ رمزنگاری در برابر یک حملهٔ راه انداز سرد (به انگلیسی: cold boot attack) ایمن نیست، اگر امکان استخراج پشتیبانی داده‌ها برای رو گرفتن (به انگلیسی: dump) از محتوای حافظه، پس از این که سیستم عامل کلیدهای رمزنگاری را از TPM اش بازیابی کرد وجود داشته باشد.

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

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

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

اولین طراحی پردازندهٔ رمزنگاری تک تراشه، برای محافظت از کپی نرم‌افزارهای رایانه شخصی (رجوع کنید به ثبت اختراع ایالات متحده ۴٬۱۶۸٬۳۹۶، ۱۸ سپتامبر ۱۹۷۹) و با الهام از نامه بیل گیتس به علاقه‌مندان بود.

تاریخچه
-------

ماژول امنیتی سخت‌افزار (HSM)، نوعی پردازندهی رمزنگاری ایمن، توسط مهندس محمد م. آتالا، مهندس مصری-آمریکایی، در سال ۱۹۷۲ اختراع شد. وی یک ماژول با امنیت بالا به نام "Atalla Box" اختراع کرد که پیامهای PIN و ATM را رمزگذاری میکرد و از دستگاه‌های آفلاین با یک کلید تولید PIN غیرقابل حدس محافظت میکرد. در سال ۱۹۷۲، او برای دستگاه ثبت اختراع کرد. او در آن سال شرکت Atalla (که اکنون Utimaco Atalla است) را تأسیس کرد و سال بعد "Atalla Box" را با نام رسمی آن، تجاری کرد و رسماً با نام «سیستم Identikey» نامگذاری کرد. یک دستگاه کارتخوان و سیستم شناسایی مشتری بود که شامل یک کنسول کارتخوان، دو پدِ PIN مشتری، کنترل کنندهٔ هوشمند و بسته داخلی رابط الکترونیکی بود. به کاربر اجازه میداد تا یک رمز محرمانه را وارد کند که این رمز توسط دستگاه و با استفاده از یک ریزپردازنده برای teller به کد دیگری تبدیل میشد. در حین انتقال، شماره کاربری مشتری توسط کارتخوان خوانده میشد. این یک موفقیت به حساب می‌آمد و منجر به استفاده گسترده از ماژول های با امنیت بالا شد.

از ترس آن که Atalla بر بازار مسلط شود، بانک‌ها و شرکت های کارت های اعتباری کار بر روی یک استاندارد بین‌المللی را در دههٔ ۱۹۷۰ آغاز کردند. IBM 3624، که در اواخر دهه ۱۹۷۰ راه اندازی شد، یک پروسه تأیید صحت PIN مشابه با سیستم قبلیِ Atalla را اتخاذ کرد. Atalla رقیب اولیه IBM در بازار امنیت بانکی بود.

در کنفرانس انجمن ملی پس‌اندازهای متقابل (NAMSB) در ژانویه سال ۱۹۷۶، Atella از یک ارتقاء برای سیستم Identikey اش، با نام «Identikey تبادل»، رو نمایی کرد. او قابلیت پردازش تبادلات آنلاین و انطباق با امنیت شبکه را به محصول اضافه کرد. سیستم Identikey با تمرکز بر انجام معاملات بانکی به صورت آنلاین، برای عملیات تسهیلات مشترک گسترش یافته‌است. این سیستم سازگار و استوار با شبکه‌های مختلف سوئیچینگ بود و قادر به تنظیم مجدد خود به صورت الکترونیکی به هر یک از ۶۴۰۰۰ الگوریتم غیرخطی برگشت‌ناپذیر مطابق با سوابق اطلاعات کارت بود. دستگاه Identikey تبادل، در مارس ۱۹۷۶ عرضه شد. بعدها در سال ۱۹۷۹، Atalla اولین پردازنده امنیت شبکه (NSP) را معرفی کرد. محصولات ماژول امنیتی سخت‌افزار Atella هر روزه از ۲۵۰ میلیون تراکنش کارت از سال ۲۰۱۳ محافظت میکند و اکثر معاملات خودپردازهای جهان را از سال ۲۰۱۴ تضمین میکند.

منابع
-----

* Ross Anderson, Mike Bond, Jolyon Clulow and Sergei Skorobogatov, Cryptographic Processors — A Survey, آوریل ۲۰۰۵ (PDF). This is not a survey of cryptographic processors; it is a survey of relevant security issues.
* Robert M. Best, US Patent ۴٬۲۷۸٬۸۳۷, ۱۴ ژوئیه ۱۹۸۱
* R. Elbaz, et al. , Hardware Engines for Bus Encryption — A Survey, 2005 (PDF).
* David Lie, Execute Only Memory, .
* Extracting a 3DES key from an IBM 4758
* J. D. Tygar and Bennet Yee, *A System for Using Physically Secure Coprocessors*, Dyad