استاندارد اکس۵۰۹

X.509 یک استاندارد ITU-T است که به طور گسترده برای تعریف گواهی دیجیتال در زیرساخت کلید عمومی استفاده می‌شود. این استاندارد فرمت گواهی کلید عمومی، لیست گواهی‌های لغو شده، ویژگی گواهی‌ها و روش اعتبارسنجی مسیر گواهی را مشخص می‌کند. تاکنون سه نسخه از این استاندارد منتشر شده است. این استاندارد برای اولین بار در سال ۱۹۸۸ به عنوان قسمتی از استاندارد سرویس‌های دایرکتوری ITU X.500 منتشر شد. این استاندارد در سال ۱۹۹۳ مورد بازبینی مجدد قرار گرفت و به ساختار آن دو فیلد اضافه و به عنوان نسخه دوم منتشر شد. هدف از افزودن این دو فیلد، پشتیبانی از کنترل دسترسی به دایرکتوری بود. این استاندارد سپس مجددا مورد بازبینی قرار گرفت و در RFC 2459 به ساختار آن تعدادی فیلد توسعه افزوده و سپس به عنوان نسخه سوم منتشر شد. هدف از افزودن این فیلدهای توسعه، ذخیره کردن اطلاعات اضافی در مورد گواهی دیجیتال مثل کاربردهای آن است. به طور کلی در حال حاضر اصطلاح X.509 تنها برای نسخه سوم این گواهی به کار می‌رود. تاکنون برای نسخه سوم این گواهی چندین RFC از جمله RFC 4325، RFC 4630 و RFC 5280 منتشر شده است. در هر یک از این RFCها تعدادی فیلد توسعه به استاندارد X.509 افزوده شده است.
ساختار گواهی
ساختار پیش‌بینی شده برای فیلدهای این گواهی با فرمت ASN.1 ذخیره می‌شوند. ASN1 استانداردی است که برای کد کردن و دیکد کردن داده‌ها در سطح شبکه به کارمی‌رود. دلیل استفاده از این نحوه کدگذاری برای ذخیره گواهینامه X.509 مستقل از ماشین بودن این فرمت است و به راحتی توسط هر ماشینی قابل کد و دیکد کردن است. ساختار گواهی دیجیتالی x.509 نسخه ۳ به شکل زیر است:
توضیحات
نام فیلد
این فیلد نشان‌دهنده نسخه گواهی است
Version
این فیلد دربردارنده سریال گواهی است. این سریال باید به ازای هر مرکز صدور گواهی منحصربه‌فرد باشد.
Serial Number
این فیلد نشان‌دهنده روش تولید چکیده و الگوریتم رمزی است که این گواهی به وسیله آن توسط مرکز صدور گواهی امضا شده است.
Signature Algorithm
این فیلد اطلاعات صادرکننده گواهی را نشان می‌دهد.
Issuer
این فیلد تاریخ شروع اعتبار گواهی را نشان می‌دهد.
Valid from
این فیلد تاریخ پایان اعتبار گواهی را نشان می‌دهد.
Valid to
این فیلد اطلاعات فرد یا مرکزی که گواهی برای او صادر شده است را نشان می‌دهد.
Subject
این فیلد نشان‌دهنده الگوریتمی است که کلید عمومی آن در این گواهی قرار داده شده است. مثل RSA یا DSA
Algorithm
این فیلد حاوی کلید عمومی گواهی است
Public Key
توضیح این فیلد در پایین جدول آورده شده است.
Extensions
فیلد Extension
این قسمت از گواهی اختیاری است؛ و تنها در نسخه ۳ وجود دارد. این قسمت اطلاعات اضافی در مورد گواهی را دربرمی‌گیرد. این قسمت به هر تعداد دلخواه می‌تواند فیلد توسعه داشته باشد. هر یک از این فیلدهای توسعه برای خود یک شناسه دارد. به این شناسه اصطلاحاOID گفته می‌شود. این OIDها را به طور کلی می‌توان به سه دسته تقسیم کرد.
قیدهای پایه‌ایی
این نوع OID برای اینکه مشخص کنند این گواهی متعلق به کدام مرکز صدور گواهی است به کار می‌رود.
قیدهای نحوه استفاده از کلید
این نوع OID مشخص کننده قیدهایی است که برای موارد استفاده کلید عمومی محدودیت ایجاد می‌کند. مثلا مشخص می‌کند که کلید عمومی قرار گرفته در این گواهی تنها باید برای پروتکل SSL مورد استفاده قرار بگیرد نه امضای دیجیتال.
قیدهای توسعه‌ایی استفاده از کلید
این نوع OID نیز مثل نوع قبلی برای ایجاد قیدهایی بر روی نحوه استفاده از کلید به کار می‌رود.
این OIDها جمع عام نیز دارد و افراد نیز می‌تواند با توجه به نیازشان برای خود OID جدید تعریف کنند. اما این OID از آنجایی که درون استاندارد X.509 تعریف نشده است تنها برای شخص صادر کننده گواهی معتبر است و در زمان اعتبار سنجی گواهی توسط افراد دیگر مفهوم خاصی نداشته و نادیده گرفته می‌شود.
پسوند فایل‌های گواهی‌های X.509
گواهی‌های X.509 با توجه به محتویاتشان پسوند متفاوتی دارند که پراستفاده‌ترین آن‌ها به شرح زیر است.
توضیحات
پسوند فایل
از این پسوند برای ذخیره فایل گواهی کلید عمومی با فرمت ASN.1 DER استفاده می‌شود. این نوع فایل متداول‌ترین فرمت برای ذخیره گواهی امضای دیجیتال است.
.cer
از این پسوند برای ذخیره فایل گواهی کلید عمومی DER در غالب فرمت Base64 استفاده می‌شود.
.pem
از این دو فرمت برای ذخیره لیست سریال گواهی‌های لغو شده(CRL) استفاده می‌شود.
.p7b , .p7c
از این فرمت برای ذخیره گواهی کلید عمومی به همراه کلید خصوصی متناظر با آن، در یک فایل استفاده می‌شود.
.p12 , .pfx
نمونه گواهی
شکل زیر یک نمونه گواهی امضا شده توسط مرکز صدور گواهی زیرساخت ریشه ایران را نشان می‌دهد.
Version
V3
Serial Number
6107D34B000000000003
Signature Algorithm
sha1RSA(1.2.840.113549.1.1.5)
Issuer
CN=Islamic Republic of IRAN Root CA
Simple Name: Islamic Republic of IRAN Root CA
DNS Name: Islamic Republic of IRAN Root CA
Not Before
12/20/2010 3:13:00 AM
Not After
12/20/2026 3:23:00 AM
Subject
CN=Governmental General Intermediate CA, OU=Ministry of Commerce, OU=Iran Center for e-Commerce Development, OU=General Intermediate CA, O=I.R. Government, C=IR
Simple Name: Governmental General Intermediate CA
DNS Name: Governmental General Intermediate CA
Algorithm
RSA 2048 Parameters: 05 00
Public Key
30 82 01 0a 02 82 01 01 00 b6 e7 00 19 7b 40 fd cb 72 1a c8 38 67 f8 94 ca 54 3c d6 01 82 fc 52 8f 88 eb 21 24 00 44 54 7d a7 f5 5c 46 16 d2 fa 92 97 f5 e2 16 11 50 08 a4 f1 98 34 4a 14 d0 ff bc 92 20 38 62 c8 5c 21 e5 45 a6 02 03 b7 47 f3 5a a6 eb ea 3b a6 0b 4e 07 33 02 56 54 3c bf f5 0a 24 b4 7c 30 3b f6 f2 2b 2c 6b 0e 62 a9 07 d6 a8 44 ed ea 6a a7 54 10 67 4e 3a bd 95 b7 7e 92 5f b8 d3 69 73 0f 37 05 fa 51 5b fd bc 7d 33 b1 48 74 eb 90 ac 20 8b b5 b0 c6 d8 1c e9 aa 95 5a 97 2b f6 2b 92 29 d0 dd 50 ce 79 bc a5 32 99 b4 db 82 52 0e 64 78 48 0f b5 25 6d ec aa 6d 1e d0 d1 10 e9 dd d2 90 b0 c3 0c be 2f f1 69 c9 be 77 72 61 d8 52 2b 50 a7 c1 a3 3d b5 f1 92 72 0d 32 c7 06 19 21 2a 47 81 40 21 f6 a4 ee a7 2d 1f b1 35 07 96 d8 b3 ef e3 58 9f d8 f1 bc ef 00 4b f7 a9 ab 0d a1 57 9d c3 e6 31 02 03 01 00 01
Extensions
* Basic Constraints(2.5.29.19):Subject Type=CAPath Length Constraint=۴
* Subject Key Identifier(2.5.29.14):2b 8c 99 0b 8a d3 26 6d 06 a6 d6 7d c7 eb bd 0f e1 0d 6b 0b
* Key Usage(2.5.29.15):Digital Signature, Certificate Signing, Off-line CRL Signing, CRL Signing (86)
* CA Version(1.3.6.1.4.1.311.21.1):V0.0
* Certificate Policies(2.5.29.32):
1Certificate Policy:
Policy Identifier=۲٫۱۶٫۳۶۴٫۱۰۱٫۱٫۳٫۱
1,1Policy Qualifier Info:
Policy Qualifier Id=CPS
Qualifier:
http://www.mocca.ir/repository/cps-gica.pdf
* Certificate Template Name(1.3.6.1.4.1.311.20.2):SubCA
* Authority Key Identifier(2.5.29.35):
KeyID=fb 70 9f a6 ac ac 37 31 d7 1d 42 f9 fc 7d be 6e 7e c0 f9 74
* CRL Distribution Points(2.5.29.31):
1CRL Distribution Point
Distribution Point Name:
Full Name:
http://crl.rca.gov.ir/irica.crl
واژگان
روش اعتبارسنجی مسیر گواهی
certification path validation algorithm
زیرساخت کلید عمومی
public key infrastructure
فیلد توسعه
Extension Field
قیدهای پایه‌ایی
Basic Constraints
گواهی کلید عمومی
public key certificates
لیست گواهی‌های لغو شده
certificate revocation lists
مخفف
Object Identifier
Abstract Syntax Notation One