Bu yazıda PEM dosyası nedir? Nasıl oluşturulur ve x509 standardı ile nasıl kullanılır? Konularına değineceğiz.
PEM Nedir?
PEM Gizliliği Arttırılmış Posta (Privacy Enhanced Mail), açık anahtarlı şifreleme yöntemi kullanarak e-posta iletişiminin güvenliğinin sağlanması için IETF tarafından önerilen bir standarttır. IETF tarafından önerilen bir standart olmasına rağmen yaygın olarak kullanılmamıştır. PEM gizlilik, kimlik kanıtlama ve veri bütünlüğünün sağlanması amacıyla bünyesinde bir dizi kriptografik tekniği barındırır.
Birçok şifreleme standardı , veri yapılarını tanımlamak için ASN.1‘i ve bu yapıları seri hale getirmek için Distinguished Encoding Rules (DER) kullanır. [2] DER ikili çıktı ürettiğinden , elde edilen dosyaları elektronik posta gibi yalnızca ASCII‘yi destekleyen sistemler aracılığıyla iletmek zor olabilir. Bu yüzden ASCII destekleyen yapılarda çoğunluklu olarak PEM formatında dosyalar kullanılır.
Nasıl Bir Formatı Vardır?
PEM formatı, base64 kullanır ve iki sayı sistemini daha kolay gönderilebilir hale getirir. PEM içerisinde başlangıç ve bitişler okunabilir şekilde etiketler ile belirtilmiştir,
-----BEGIN
etiketi ve -----
, daha sonra alt bilgi için -----END
etiketi ile devam eden ----
etiketlenmesi mevcuttur.. Etiketler, kodlanan mesajın türünü belirler. Yaygın olarak kullanılan etiketler şunlardır;
CERTIFICATE
,CERTIFICATE REQUEST
,PRIVATE KEY
,X509 CRL
.
Dosya Uzantısı Ve İçeriği
PEM verileri sertifikalar için genellikle “.pem“, “.cer” veya “.crt” uzantılı, anahtarlar için ise (açık veya gizli anahtarlar) “.key” uzantılı dosyalarda depolanır. [3] Bir PEM dosyasının içeriğinde ne olduğun anlamak isteniyorsa eğer içerisinde yazılı olan etikete bakılmalıdır, uzantı çoğu zaman içerik hakkında detaylı bilgiyi yansıtmayabilir.
Aşağıda yer alan kod parçasında örnek bir PEM etiketi görülmektedir.
-----BEGIN PRIVATE KEY-----
-----END PRIVATE KEY-----
Bir PEM dosyası içerisinde x509 standardında bilgiler içerebilir. Farklı standartlar olmasına karşın bu yazıda x509‘u ele alarak OpenSSL ile birkaç sertifika örneği yapacağız.
OpenSSL Örnekleri
Aşağıda yazmış olduğumuz komut ile iki adet dosya üretmiş olacağız, bunlardan bir tanesi key.pem, içerisinde gizli anahtar yer alacak diğeri ise x509 standardına uygun kendinden imzalı req.pem dosyası olacak. Bu sertifika kök sertifikası olarak kullanılabilir.
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out req.pem
Aşağıda yazdığımız komut ise req.pem sertifika dosyasının içeriğini okunabilir şekilde bizlere sunacaktır, böylece sertifika dosyası hakkında tüm bilgilere ulaşabilir olacağız.
openssl x509 -in req.pem -text -noout
PEM dosyasının kullanıldığı bir başka yazımı okumak isterseniz aşağıdaki butona tıklayınız;