استاندارد اکس۵۰۹
اکس۵۰۹ (به انگلیسی: X.509) در رمزنگاری، استانداردی برای تعریف قالب گواهی کلید عمومی است. از X.509 در خیلی از پروتکلهای اینترنتی، شامل TLS/SSL که مبنای HTTPS (پروتکل امن برای مرور وب) است، استفاده میشود. از این استاندارد در کاربردهای آفلاین، مثل امضای الکترونیکی، نیز استفاده میشود.
Information technology - Open Systems Interconnection - The Directory: Public-key and attribute certificate frameworks | |
وضعیت | در حال استفاده |
---|---|
سال آغاز | ۱۹۸۸ |
آخرین ویرایش | 10/19 ۱۴ اکتبر ۲۰۱۹ |
سازمان | ITU-T |
هیئت | ITU-T Study Group 17 |
استانداردهای پایه | ASN.1 |
استانداردهای مرتبط | X.500 |
دامنه | رمزنگاری |
وبگاه |
یک گواهی X.509 شامل یک کلید عمومی، یک هویت (نام رایانه میزبان، یا یک سازمان، یا یک فرد) و یک امضا (توسط مرجع گواهی یا امضای شخصی) است. وقتیکه یک گواهی توسط یک مرجع گواهی مورد اعتماد امضا شود، یا به روش دیگری معتبر شناخته شود، فردی که گواهی را دارد میتواند بر روی کلید عمومی موجود در آن تکیه کند تا با طرف دوم ارتباط امن برقرار کند، یا اسنادی را که توسط کلید خصوصی متناظر امضا شدهاست را تأیید کند.
در X.509 میتوان لیستهای ابطال گواهی تعریف کرد، که راهی برای توزیع اطلاعات دربارهٔ گواهیهایی است که از نظر مرجع امضا کننده، نامعتبراند؛ همچنین میتوان یک الگوریتم اعتبارسنجی مسیر گواهی تعریف کرد که به گواهیها امکان میدهد تا توسط گواهی CA میانی امضا شوند، که خود این گواهی هم توسط دیگر گواهیها امضا میشود تا در نهایت به یک عنصر لنگر مطمئن برسیم.
X.509 توسط بخش استانداردسازی اتحادیه بینالمللی مخابرات (ITU-T) و گروه مطالعاتی شماره ۱۷ تعریف شدهاست و مبتنی بر ASN.1 است، که آن هم یک استاندارد از 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=CA
Path 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):
[1]Certificate Policy:
Policy Identifier=۲٫۱۶٫۳۶۴٫۱۰۱٫۱٫۳٫۱
[1,1]Policy Qualifier Info:
Policy Qualifier Id=CPS
Qualifier:
http://www.mocca.ir/repository/cps-gica.pdf%7B%7Bسخ}}
* 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):
[1]CRL Distribution Point
Distribution Point Name:
Full Name:
http://crl.rca.gov.ir/irica.crl%7B%7Bسخ}}
واژگان
روش اعتبارسنجی مسیر گواهی | certification path validation algorithm | ||
زیرساخت کلید عمومی | public key infrastructure | فیلد توسعه | Extension Field |
قیدهای پایهایی | Basic Constraints | ||
گواهی کلید عمومی | public key certificates | ||
لیست گواهیهای لغو شده | certificate revocation lists |
مخفف
OID= | Object Identifier | |
ASN.1= | Abstract Syntax Notation One |
پانویس
- ↑ "X.509: Information technology - Open Systems Interconnection - The Directory: Public-key and attribute certificate frameworks". ITU. Retrieved 6 November 2019.
منابع
مشارکتکنندگان ویکیپدیا. «X.509». در دانشنامهٔ ویکیپدیای انگلیسی، بازبینیشده در ۱۴ آذر ۱۳۹۹.