PKCS#7 Cryptographic Message Syntax (CMS)
Gelir İdaresi Başkanlığı teknik kılavuzları, Vergi Usul Kanunu ve UBL-TR standartları referans alınarak doğrulanmıştır.
Tanımı ve Standardizasyon Yapısı
PKCS#7, RSA Laboratories tarafından yayınlanan ve IETF tarafından RFC 5652 (Cryptographic Message Syntax - CMS) adıyla uluslararası bir internet protokolü haline getirilen, dijital imzalı, şifreli, zarflanmış ve zaman damgalı verilerin platformlar arası taşınmasını sağlayan temel kapsülleme standardıdır.
Türkiye e-Dönüşüm ekosisteminde özellikle CAdES (CMS Advanced Electronic Signatures) formatındaki elektronik imzaların, Adalet Bakanlığı UYAP sistemi UDF dosyalarının, KEP iletilerindeki S/MIME paketlerinin ve e-Tebligat eklerinin omurgasını PKCS#7 / CMS mimarisi oluşturur.
PKCS#7 / CMS Paket Anatomisi
Bir PKCS#7 dosyası genellikle .p7s (ayrık imza) veya .p7m (zarflanmış veri) uzantısına sahip olup ASN.1 (Abstract Syntax Notation One) ve DER (Distinguished Encoding Rules) ile kodlanmış şu temel bileşenlerden meydana gelir:
- ContentType: Paketin türünü belirtir (
signedData,envelopedData,digestedData,encryptedData). - SignerInfo: İmzalayan kişinin X.509 sertifika seri numarası, imzalama zamanı (SigningTime), kullanılan özet algoritması (SHA-256) ve dijital imza baytları.
- Certificates (Sertifika Zinciri): İmzayı doğrulamak için gereken imzalayan sertifikası, Alt Kök (Sub-CA) ve Kök (Root-CA) sertifikaları pakete gömülebilir.
- CRLs / OCSP Yanıtları: İptal kontrolü için paket içine gömülen güncel sertifika durum verileri (CAdES-XL / CAdES-A seviyesi için).
- Content (İçerik): İmzalanan asıl veri paketin içinde saklanabilir (Attached Signature) veya ayrı bir dosyada tutulabilir (Detached Signature - .p7s).
CAdES İmza Seviyeleri ve PKCS#7
| İmza Seviyesi | CMS / PKCS#7 İçeriği | Geçerlilik ve Yasal Dayanıklılık |
|---|---|---|
| CAdES-BES | Temel imza + İmzalayan sertifika referansı | Anlık imza geçerliliği, sertifika süresince doğrulanabilir |
| CAdES-T | CAdES-BES + Resmi Zaman Damgası (TSA) | İmzanın atıldığı anı kanıtlar, geriye dönük inkar edilemez |
| CAdES-XL | CAdES-T + CRL veya OCSP iptal kanıtları | Sertifika sağlayıcı kapansa bile bağımsız doğrulanabilirlik |
| CAdES-A | CAdES-XL + Periyodik Arşiv Zaman Damgaları | 10-50 yıl üzeri uzun vadeli arşivleme güvenliği |
Doğrulama ve Kodlama Pratikleri
Bir PKCS#7 imzası doğrulanırken şu adımlar uygulanır:
- ASN.1 yapısı çözümlenerek
SignerInfobloğu okunur. - İmzalanan içeriğin SHA-256 özeti hesaplanır.
- Sertifikadaki RSA açık anahtarı ile imza baytları çözülür ve özetler karşılaştırılır (Bütünlük Kontrolü).
- Sertifikanın kök otoriteye (TÜBİTAK Kamu SM, E-Tuğra, Türktrust vb.) kadar güven zinciri ve imza anındaki iptal (CRL/OCSP) durumu denetlenir.