در
رمزنگاری
، گواهی دیجیتال یا گواهی کلید عمومی سندی الکترونیکی است که یک
امضای دیجیتال
را به کار میبرد تا یک
کلید عمومی
را به یک هویت مثل نام شخص یا سازمان و آدرس و اطلاعاتی از این دست، نسبت دهد.
نوعاً در یک طرح
زیرساخت کلید عمومی
(به
انگلیسی
: Public Key Infrastructure یا PKI)، امضا از طرف
مرجع صدور گواهی دیجیتال
(به
انگلیسی
: Certificate authority یا CA) است. در یک طرح
شبکه اعتماد
، امضا یا از طرف خود کاربر یا کاربران است. در هر صورت، امضاها در یک گواهی از طرف یک امضا کننده رسمی است و مصدق این است که مشخصات هویت و کلید عمومی مربوط به هم میباشند.
انواع مختلف گواهی
-
گواهی های کلید عمومی X.۵۰۹
-
گواهی های زیرساخت کلید عمومی ساده SPKI یا (Simple Public Key Infrastructure)
-
گواهی های کلید عمومی مخفی کردن نسبتا خوب PGP یا (Pretty Good Privacy)
-
گواهی اختیاری (Attribute Certificate)
این گواهی ها
فرمتهای
متفاوتی دارند. در برخی موارد، ممکن است یک نوع گواهی نسخه های گوناگونی داشته باشد، و از یک نسخه واحد به روشهای گوناگونی نمونه تهیه شود. برای مثال ۳ نسخه از گواهی کلید عمومی X.۵۰۹ موجود است. نسخه ۱ زیرمجموعه نسخه ۲ و نسخه ۲ زیرمجموعه نسخه ۳ میباشد. زیرا یک کلید عمومی نسخه ۳ شامل ضمائم متعدد انتخابی است که بنا به کاربرد میتواند در نمونههای مختلفی تهیه شود. برای مثال، گواهی های انتقال
الکترونیکی
امن (SET)، همان گواهی های کلید عمومی نسخه ۳ از X.۵۰۹ هستند که ضمائم آن منحصرا برای تبادلات SET تعریف شده اند. در اینجا منظور از گواهی همان گواهی کلید عمومی نسخه ۳ از X.۵۰۹ است. حال به ساختار و محتوای این گواهی می پردازیم.[۱]
انواع کلاسهای گواهی دیجیتال
-
گواهی کلاس۱: مخصوص امضا الکترونیکی و رمزنگاری پست الکترونیک
-
گواهی کلاس۲: مخصوص امضا الکترونیکی و رمزنگاری فایل های الکترونیکی ونرمافزارها
-
گواهی کلاس۳: مخصوص تولید گواهی برای مراجع گواهی دیگر
-
گواهی کلاس SSL: مخصوص تأمین امنیت سرورهای سازمانها و مراکزی که وبگاه دارند و یا خدمات تحت وب ارائه می نمایند. این گواهی در سه شکل مخصوص سرور و مخصوص کاربر و هردو صادر میگردد.
معناشناسی و ساختار گواهی
در ژانویه ۱۹۹۹ IETF استانداردی تحت عنوان RFC۲۴۵۹ برای کلید عمومی X.۵۰۹ (PKIX) ارائه نموده است. در سال ۲۰۰۲ استاندارد RFC۳۲۸۰ جایگزین استاندارد قبلی شد. اگرچه RFC۳۲۸۰ به منظور کاربردهای اینترنتی تدوین شده بود، اما تعدادی از توصیههای آن میتوانند در محیط سازمان و به طبع هر جای دیگر به کار برده شوند. شکل زیر ساختار کلی یک گواهی X.۵۰۹ نسخه ۳ را نشان میدهد. فیلدهای موجود در گواهی در زیر آمده است.
[۲]
-
نسخه (Version): نشاندهنده نسخه گواهی است (۱، ۲ یا ۳)
-
شماره سریال (Serial Number): شناسهای یکتاست که هویت صادرکننده را تعیین میکند.
-
الگوریتم امضا (Signature): نوع الگوریتمی که با آن گواهی تولید و صادر شده است. امضا نماینگر شناسه الگوریتمی است (که شامل شناسه عنصر یا OID، و پارامترهای مربوط به آن میباشد) که برای محاسبه امضای دیجیتالی روی گواهی به کار برده میشود.
OID، نمایشی منحصر به فرد از یک عنصر است. OID، دنبالهای از ارقام است که با ممیز اعشاری یا نقطه از هم جدا شده اند (مثل یک آدرس اینترنتی IP که در آن ارقام با نقطه از هم جدا شده اند). OID ها به طور طبیعی سلسله مراتبی هستند و در RA های بین المللی، ملی، یا سازمانی ثبت شده اند تا اطمینان حاصل شود که یک OID منحصر به فرد به هر عنصر نسبت داده شده است. برای متال OID برای SHA-۱ با RSA به این صورت میباشد: ۱٫۲.۸۴۰٫۱۱۳۵۴۹٫۱.۱٫۵.
-
صادر کننده (Issuer): نام متمایز (DN) یک مرجع صدور گواهی است که همیشه باید درج شده باشد.
DN یک نام گذاری سلسله مراتبی قراردادی است که در توصیههای X.۵۰۰ درج شده است. DN ها برای این طراحی شده اند تا مطمئن شویم که نامهای موجودیت ها یکتاست. DN ها تسلسلی از نام های متمایز وابسته (RDN) هستند که از نودِ سطح بالا یا ریشه تا آخرین نود نام گذازی شده اند. برای مثال "C=CA, O=ADGA OU=AEPOS Technologies, CN=Steve Lloyd " نمونهای از یک DN است. دقت داشته باشید که هر RDN (C=CA یک RDN است، O=ADGA یک RDN است و...) باید در هر سطح منحصر به فرد باشد، در غیر اینصورت تضمینی برای یکتا بودن DN نخواهد بود.
-
اعتبار (Validity): بازه زمانی که در آن مدت گواهی معتبر بوده و پس از آن باید باطل گردد. شامل تاریخ شروع و خاتمه اعتبار است.
-
موضوع (Subject): DNِ دارنده گواهی است که نباید خالی باشد. مگر اینکه از فرمِ نام دیگر استفاده شود. (به فیلد ضمائم مراجعه کنید)
-
اطلاعات کلید عمومی دارنده گواهی (Subject Public Key Info): کلید عمومی (و الگوریتم معین کننده) مربوط به موضوع که باید همیشه درج شده باشد.
-
ID یکتای صادرکننده گواهی (Issuer Unique ID): یک شناسه اختیاری یکتا برای صادرکننده گواهی است که تنها در نسخههای ۲ و ۳ میآید. این فیلد به ندرت در عمل استفاده میشود و در RFC۳۲۸۰ نیز به آن توصیه نشده است.
-
ID یکتای موضوع (Subject Unique ID): یک شناسه اختیاری یکتا برای دارنده گواهی است که تنها در نسخههای ۲ و ۳ میآید. این فیلد به ندرت در عمل استفاده میشود و در RFC۳۲۸۰ نیز به آن توصیه نشده است.
یک نشانه اهمیت به هر ضمیمه گواهی نسبت داده شده است. در حالت کلی ضمائم میتوانند مهم یا بی اهمیت باشند. ضمیمهای که نشان با اهمیت دارد باید به کاربرده شود، در غیر اینصورت نباید از گواهی استفاده شود. اگر یک ضمیمه بی اهمیت شناخته شده باشد، میتوان آنرا در نظر نگرفت و یا در صورت امکان آنرا به کار نگرفت. [۳]