---
title: 'Sertifika Yaşam Döngüsü'
source: 'https://academia.sh/tr/kurslar/uygulama-protokolleri/sertifika-yasam-dongusu'
course: 'Uygulama Katmanı Protokolleri'
language: tr
updated: '2026-08-17T18:07:02+00:00'
license: 'CC BY-SA 4.0'
---

# Sertifika Yaşam Döngüsü

İptalin bir tur borcu olması: sormamanın kaç alışverişe mal olduğu, sormanın alışveriş başına eklediği tur, arada duran seçeneklerin bilme gecikmesi ve yanlış yapılandırmanın istemcide görülen belirtileri.

Önceki ders taşıma zarfını kapattı ve aracının kaybettiğini saydı. Kapanan zarfın altında bir
kabul vardı: istemci sunucunun zincirini doğrulamış, kurulumu o kabulün üzerine oturtmuştu.
O doğrulama, yapıldığı **anda** geçerliydi.

Sertifikanın bir başlangıcı ve bir bitişi vardır; ikisinin arasında iptal edilebilir. İptal
belgenin içine yazılamaz, çünkü belge imzalandığı anda donar — sonradan yazılan her şey
imzayı düşürür. Bu dersin sorusu buradan çıkar: belgenin içine yazılamayan bir şey nasıl
bilinir ve bilinmesi kaça mal olur? Zincir doğrulaması **sormadan** yürüyordu; iptal
**sorulmadan** bilinemez. Aradaki fark bir tur borcudur.

## Belgenin Ömrü ve İptalin Yeri

Ömür, sertifikanın geçerlilik alanındaki iki damganın arasıdır ve bu iki damga belgenin
**içindedir**, imzanın altındadır. Bu yüzden geçerlilik denetimi yereldir: istemci kendi
saatine bakar, kimseye sormaz.

**Yenileme (renewal)** ömür bitmeden yeni bir belge çıkarmaktır. Eski belgeyi uzatmaz;
uzatamaz, çünkü uzatmak imzalanmış bir alanı değiştirmek olurdu. Yeni belge üretilir, eski
belge kendi bitişine kadar geçerli kalır ve ikisi bir süre birlikte yaşar. Anahtar değişmişse
eski belge yeni anahtar hakkında hiçbir şey söylemez.

**İptal (revocation)** ömür dolmadan bağın geçersiz sayılmasıdır. Nedenleri belgenin
dışındadır: gizli anahtarın elden çıkması, adın el değiştirmesi, bağın baştan yanlış
kurulmuş olması. Hiçbiri belgeye sonradan yazılamayacağı için veren tarafın ayrı bir kayıt
yayımlaması gerekir.

```text
yaşam döngüsü
  istek -> imzalama -> dağıtım -> kullanım -> yenileme -> ... -> sona erme
                                     |
                                     +-- iptal: her an, belgenin dışından

ömrü taşıyan alanlar
  seri no      : veren içinde belgeyi tekil olarak adlandırır
  geçerlilik   : başlangıç .. bitiş        <- ömür bu aralıktır
  veren        : ara-1.ornek               <- iptali yayımlayacak taraf

iptal kaydı
  liste veren   : ara-1.ornek
  yayım anı     : bu listenin üretildiği an
  sonraki yayım : listenin tazeleneceği an  <- bilme gecikmesinin üst sınırı
  girdiler      : seri no | iptal anı | neden
```

Bu döküm çalıştırılmaz; alanların ne bildirdiğini gösterir. Kayıt belgeyi seri numarasıyla
adlandırır ve belgeyi değiştirmez — ona **dışarıdan** bir not düşer. Asimetri buradadır:
geçerlilik belgenin içinden okunur, iptal belgenin dışından. Birincisi tur istemez, ikincisi
ister.

## Ölçümün Kurgusu

Kurgu kursun geri kalanıyla aynıdır: Kuzey Yamaç ölçüm istasyonu bir istemciye ölçüm sunar
ve istemci her alışverişte sunulan sertifikanın hâlâ geçerli olup olmadığına karar verir.

- **GT1.** Ölçüm penceresi 960 saattir ve içinde kırk alışveriş yapılır; alışveriş anları
  pencere içinde üreteçten alınır.
- **GT2.** İptal anı pencerenin her saatinde ayrı denenir: 960 an süpürülür, her an için
  kırk alışveriş değerlendirilir.
- **GT3.** Kâhin — kararın gerçeği — kurguyu biz ürettiğimiz için bilinir: iptal anından
  sonraki her alışverişte sertifika geçersizdir.
- **GT4.** İstemcinin iptali öğrendiği ana kadar geçen süre **bilme gecikmesidir**; bu süre
  içine düşen her alışveriş bir **yanlış kabuldür**.
- **GT5.** İptal listesinin tazeleme aralığı 24, sunulan yanıtın tazeliği 6, kısa ömürlü
  sertifikanın ömrü 12, uzun ömürlünün ömrü 2160 saattir; dördü de ders içinde seçilmiş
  model değerleridir ve ders bir sürüm iddiası taşımaz.
- **GT6.** Zincir üç halkadır — yaprak ve iki ara sertifika; güven çıpası sorulmaz.
- **GT7.** Tur yalnız **istemcinin** ödediği gidiş–dönüştür; sunucunun ya da kayıt
  yayımlayan tarafın kendi turu bu sütuna girmez.
- **GT8.** Hiçbir bağlantı açılmaz, hiçbir sertifika çözümlenmez; dökümler kurgudur.

Tek bir iptal anında küme kırk karardır, çözünürlüğü 1/40 = 0,025'tir; ortalama sütunları
960 anın tamamından, yani 38.400 karardan alınmıştır.

## Sormamanın ve Sormanın Maliyeti

```python
TOHUM = 20260809
PENCERE = 960            # saat: kırk günlük ölçüm penceresi
OMUR = 2160              # saat: uzun ömürlü sertifikanın modellenen ömrü
HALKA = 3                # yaprak + iki ara sertifika; çıpa sorulmaz


def uretec(tohum: int):
    d = tohum % 2147483646 + 1

    def r(n: int) -> int:
        nonlocal d
        d = (d * 48271) % 2147483647
        return d % n
    return r


uret = uretec(TOHUM)
ZAMANLAR = sorted(uret(959) for _ in range(40))

REJIMLER = (
    # ad, alışveriş başına tur, tazeleme aralığı (saat), istemci kendi çeker mi
    ("sormamak", 0, None, False),
    ("her alışverişte sormak", 1, 0, True),
    ("önceden dağıtılmış iptal listesi", 0, 24, True),
    ("sertifikayla sunulan yanıt", 0, 6, False),
    ("kısa ömürlü sertifika", 0, 12, False),
)


def bilme_ani(iptal: int, aralik) -> int:
    if aralik is None:
        return OMUR
    if aralik == 0:
        return iptal
    return iptal + aralik - iptal % aralik


def olc(aralik) -> tuple[float, int, float, int]:
    gecikme_top = yanlis_top = gecikme_kotu = yanlis_kotu = 0
    for iptal in range(PENCERE):
        bilme = bilme_ani(iptal, aralik)
        yanlis = sum(1 for t in ZAMANLAR if iptal <= t < bilme)
        gecikme_top, yanlis_top = gecikme_top + bilme - iptal, yanlis_top + yanlis
        gecikme_kotu = max(gecikme_kotu, bilme - iptal)
        yanlis_kotu = max(yanlis_kotu, yanlis)
    return gecikme_top / PENCERE, gecikme_kotu, yanlis_top / PENCERE, yanlis_kotu


def istemci_turu(basina: int, aralik, ceker: bool, sayi: int, halka: int) -> int:
    tur = basina * sayi * halka
    return tur + (PENCERE // aralik * halka if ceker and aralik else 0)


print(f"{'rejim':<33s}{'tur/alışveriş':>14s}{'istemci turu':>13s}"
      f"{'bilme gecikmesi':>18s}{'yanlış kabul':>14s}")
for ad, basina, aralik, ceker in REJIMLER:
    og, kg, oy, ky = olc(aralik)
    print(f"{ad:<33s}{basina:14d}"
          f"{istemci_turu(basina, aralik, ceker, len(ZAMANLAR), HALKA):13d}"
          f"{f'{og:.1f} / {kg}':>18s}{f'{oy:.2f} / {ky}':>14s}")

print()
print(f"{'halka':>6s}{'her alışverişte sorma':>23s}{'iptal listesi':>15s}"
      f"{'sunulan yanıt':>15s}")
for h in range(1, 6):
    satir = [istemci_turu(b, a, c, len(ZAMANLAR), h)
             for _, b, a, c in REJIMLER[1:4]]
    print(f"{h:6d}{satir[0]:23d}{satir[1]:15d}{satir[2]:15d}")

print()
print(f"{'alışveriş':>10s}{'her alışverişte sorma':>23s}{'iptal listesi':>15s}")
for n in (40, 120, 400, 4000):
    satir = [istemci_turu(b, a, c, n, HALKA) for _, b, a, c in REJIMLER[1:3]]
    print(f"{n:10d}{satir[0]:23d}{satir[1]:15d}")

print()
print(f"alışveriş {len(ZAMANLAR)}, iptal anı {PENCERE}, "
      f"karar {len(ZAMANLAR) * PENCERE}")
```

```
rejim                             tur/alışveriş istemci turu   bilme gecikmesi  yanlış kabul
sormamak                                      0            0     1680.5 / 2160    22.02 / 40
her alışverişte sormak                        1          120           0.0 / 0      0.00 / 0
önceden dağıtılmış iptal listesi              0          120         12.5 / 24      0.57 / 4
sertifikayla sunulan yanıt                    0            0           3.5 / 6      0.15 / 2
kısa ömürlü sertifika                         0            0          6.5 / 12      0.31 / 3

 halka  her alışverişte sorma  iptal listesi  sunulan yanıt
     1                     40             40              0
     2                     80             80              0
     3                    120            120              0
     4                    160            160              0
     5                    200            200              0

 alışveriş  her alışverişte sorma  iptal listesi
        40                    120            120
       120                    360            120
       400                   1200            120
      4000                  12000            120

alışveriş 40, iptal anı 960, karar 38400
```

İlk tablonun ilk iki satırı dersin iki ucudur. Hiç sormayan istemci **sıfır tur** harcar ve
iptal edilmiş bir sertifikayı ortalama **22,02 alışveriş** boyunca geçerli sayar; en kötü
durumda kırkında da. Nedeni ince değildir: sormayan istemcinin tek bilgi kaynağı belgenin
kendi bitişidir, o bitiş de pencereden uzaktadır.

Her alışverişte soran istemci yanlış kabulü **sıfıra** indirir. Ödediği 120 tur iki çarpandan
gelir: kırk alışveriş çarpı üç halka. Alışveriş başına tur 1 görünür, ama gerçekte **halka
sayısı kadar** soru sorulur, çünkü zincirin her halkası ayrı ayrı iptal edilebilir.

İkinci tablo bu çarpanı açar ve kursun eksenindeki ayrımı keskinleştirir. Sertifikalar ve
Güven Zinciri dersinde zincir doğrulamasının turu zincir uzunluğundan **bağımsızdı**; iptal
sorusunun turu ona **doğru orantılıdır**: bir halkada 40, beş halkada 200. Belgenin içi
zincirle birlikte gelir; dışı gelmez ve her halka için ayrıca sorulur.

Üçüncü tablo bölenin ne olduğunu gösteriyor. Sorma turu alışveriş sayısıyla doğrusal büyür —
kırk alışverişte 120, dört binde 12.000 — ama önceden dağıtılmış listenin turu **sabit
kalır**: 120. Liste pencere başına ödenir, soru alışveriş başına. Kırk alışverişlik satırda
ikisinin eşit çıkması rastlantıdır; ayrım toplamda değil, **turun nereye yazıldığındadır**.

## Aradaki Seçenekler

Tablonun son üç satırı iki ucun arasını doldurur ve üçünün ortak özelliği şudur: **alışveriş
başına tur sıfırdır.** Hiçbiri alışverişin yoluna gidiş–dönüş eklemez; ayrıştıkları yer bilme
gecikmesidir.

**Önceden dağıtılmış iptal listesi** günde bir tazelenir; gecikme ortalama 12,5 saat, en kötü
24 saattir ve ortalama 0,57 alışveriş yanlış kabul edilir. **Sertifikayla sunulan yanıt**,
verenden alınmış geçerlilik yanıtının kurulumda sertifikayla birlikte gönderilmesidir;
istemcinin turu sıfırdır, çünkü yanıt zaten gelen bir iletinin içindedir. Gecikme 3,5 saate,
yanlış kabul 0,15'e iner. **Kısa ömürlü sertifika** ise iptal düzeneğini bütünüyle atar:
belge o kadar kısa yaşar ki iptal edilmesine gerek kalmaz, gecikme kalan ömürdür — ortalama
6,5 saat, yanlış kabul 0,31.

Üç satır yan yana okunduğunda bir düzen çıkıyor. Gecikme 3,5 iken yanlış kabul 0,15; gecikme
6,5 iken 0,31; gecikme 12,5 iken 0,57. Yanlış kabul, gecikmeyle birlikte ve kabaca onunla
orantılı büyüyor. Yani düzeneklerin adları farklı olsa da ölçülen şey tek bir sayıdır:
**mekanizma seçimi bir gecikme seçimidir.**

İptal sorusunun kendisi de sayılması gereken bir yüzeydir: soru, hangi belgeye bakıldığını
yanıtlayan tarafa bildirir ve her alışverişte sorulursa bildirim alışveriş sıklığını da
taşır. *Daraltma:* yanıt sertifikayla birlikte sunulduğunda istemci soruyu hiç sormaz,
dolayısıyla bakılan belgeyi bildiren de olmaz; önceden dağıtılmış liste ise tek tek belgeleri
değil listenin tamamını taşıdığı için hangi belgeye bakıldığını bildirmez. Sormamanın yüzeyi tablonun ilk satırındadır — ortalama
22,02 alışveriş. *Daraltma:* bu pencereyi daraltan tek şey belgenin ömrüdür.

## Ömür Kısaldıkça

```python
TOHUM = 20260809
PENCERE = 960            # saat: kırk günlük ölçüm penceresi
OMURLER = (2160, 720, 168, 72, 24, 12, 6)   # saat


def uretec(tohum: int):
    d = tohum % 2147483646 + 1

    def r(n: int) -> int:
        nonlocal d
        d = (d * 48271) % 2147483647
        return d % n
    return r


uret = uretec(TOHUM)
ZAMANLAR = sorted(uret(959) for _ in range(40))


def olc(omur: int) -> tuple[float, float, int]:
    gecikme_top = yanlis_top = yanlis_kotu = 0
    for iptal in range(PENCERE):
        bilme = iptal + omur - iptal % omur
        yanlis = sum(1 for t in ZAMANLAR if iptal <= t < bilme)
        gecikme_top, yanlis_top = gecikme_top + bilme - iptal, yanlis_top + yanlis
        yanlis_kotu = max(yanlis_kotu, yanlis)
    return gecikme_top / PENCERE, yanlis_top / PENCERE, yanlis_kotu


print(f"{'ömür (saat)':>12s}{'yenileme':>10s}{'ort gecikme':>13s}"
      f"{'yanlış kabul':>14s}{'yenileme x ömür':>17s}")
for omur in OMURLER:
    og, oy, ky = olc(omur)
    yenileme = PENCERE // omur
    print(f"{omur:12d}{yenileme:10d}{og:13.1f}{f'{oy:.2f} / {ky}':>14s}"
          f"{yenileme * omur:17d}")
```

```
 ömür (saat)  yenileme  ort gecikme  yanlış kabul  yenileme x ömür
        2160         0       1680.5    22.02 / 40                0
         720         1        420.5    13.02 / 28              720
         168         5         87.5      3.82 / 8              840
          72        13         37.1      1.32 / 4              936
          24        40         12.5      0.57 / 4              960
          12        80          6.5      0.31 / 3              960
           6       160          3.5      0.15 / 2              960
```

Bu tabloda iptal düzeneği yoktur; istemci bir şeyin geçersizleştiğini yalnız belge sona
erdiğinde öğrenir. İki sütun ters yönde yürüyor. Ömür 2160 saatken pencere içinde hiç
yenileme yapılmaz, gecikme ortalama 1680,5 saattir ve 22,02 alışveriş yanlış kabul edilir.
Ömür 6 saate indiğinde gecikme 3,5 saate, yanlış kabul 0,15'e düşer — ama pencere içinde
160 yenileme yapılması gerekir.

Son sütun toplam işin korunduğunu gösteriyor: ömür pencereden kısa olduğu her satırda
yenileme sayısı çarpı ömür pencereye eşitlenir. Kazanılan gecikme, ödenen yenileme sayısıyla
ters orantılıdır. Kırk günde 160 yenileme, ortalama altı saatte bir yenileme demektir; bu
elle yapılabilecek bir iş değildir. **Kısa ömür bir otomasyon koşuludur** ve koşul
sağlanmazsa kazanç maliyete dönüşür.

Bir gözlem daha var ve rastlantı değildir. Bu tablonun 24, 12 ve 6 saatlik satırları,
önceki tablonun iptal listesi, kısa ömürlü sertifika ve sunulan yanıt satırlarıyla **aynı**
sayıları veriyor. Üç ayrı düzenek, tek bir parametrenin işlevidir. Düzeneğin adı yanlış kabul
sayısını değiştirmiyor; değiştirdiği tek şey **turu kimin, ne zaman ve kaç kez ödediğidir.**

## Yanlış Yapılandırmanın Belirtileri

Doğrulama tek bir karar değil, bir yürüyüştür ve yürüyüşün her adımı ayrı ayrı düşebilir.
Belirti, hangi adımın düştüğünü ele verir.

```text
doğrulama yürüyüşü ve düşebileceği adımlar
  1  sunulan zincir toplandı              <- eksik ara sertifika burada düşer
  2  her halkanın imzası doğrulandı
  3  zincir güven çıpasına vardı mı       <- kendinden imzalı zincir burada düşer
  4  geçerlilik aralığı açık mı           <- süresi geçmiş sertifika burada düşer
  5  yaprağın adı istenen adı karşılıyor mu   <- ad uyuşmazlığı burada düşer
  6  halkalardan biri iptal edilmiş mi    <- yalnız bu adım belgenin dışını sorar
```

- **Süresi geçmiş sertifika.** Belirti: doğrulama dördüncü adımda düşer ve hata **bir anda**
  başlar, çünkü aralık herkes için aynıdır. Ayırt edici im, hatanın ağa, yola ve istemciye
  göre değişmemesidir. *Daraltma:* yenileme bitişten önce tetiklenirse aralık hiç kapanmaz;
  ömür kısaldıkça bu tetikleme otomatikleşmek zorunda kalır.
- **Eksik ara sertifika.** Belirti: aynı sunucu kimi istemcide çalışır, kiminde çalışmaz.
  Eksik halkayı başka bir alışverişte edinip saklamış istemci zinciri tamamlayabilir,
  edinmemiş olan tamamlayamaz. Ayırt edici im, sonucun **istemciye göre değişmesidir.**
  *Daraltma:* eksik halka sunucunun sunduğu zincire eklenerek kapatılır, istemcinin çıpa
  kümesi genişletilerek değil.
- **Ad uyuşmazlığı.** Belirti: imzalar tutar, zincir çıpaya varır, geçerlilik aralığı açıktır
  ve doğrulama yine de beşinci adımda düşer. Ayırt edici im, hatanın **hangi adla**
  gidildiğine bağlı olmasıdır. *Daraltma:* sertifikanın bildirdiği ad kümesi ile sunucunun
  yanıt verdiği ad kümesi tek bir kaynaktan üretilirse ikisi ayrışamaz.
- **Kendinden imzalı zincir.** Belirti: zincir tek halkadır ve o halkanın vereni kendisidir;
  istemcinin çıpa kümesinde karşılığı yoksa üçüncü adımda düşer. Ayırt edici im, hatanın
  çıpayı elle yerleştirmiş istemcide **görülmemesidir.** Bu, kendinden imzalı belgenin
  kusurlu olduğu anlamına gelmez — güven çıpalarının kendisi de çoğunlukla kendinden
  imzalıdır; ayrım, belgenin istemcinin elinde olup olmadığındadır. *Daraltma:* çıpa
  yerleştirilecekse kapsamı tek uca daraltılır, çünkü her çıpa o çıpadan inen bütün
  zincirleri kabul edilebilir kılar.

Dördü de doğrulamanın **bir adımının** düşmesidir. Doğrulamayı bütünüyle kapatmak dört
belirtiyi birden susturur; sustuğu için de bir düzeltme değildir — Sertifikalar ve Güven
Zinciri dersinde doğrulamayı hiç yapmayan istemcinin doğru karar sayısının düştüğü
ölçülmüştü. Bu ders neyin yanlış olduğunu yazar, nasıl yapılacağını değil.

## Özet

- Ömür belgenin içindedir ve yerel denetlenir; iptal belgenin dışındadır ve imzalanmış alana
  yazılamayacağı için ayrı bir kayıtla yayımlanır.
- Yenileme eski belgeyi uzatmaz, yenisini çıkarır; ikisi bir süre birlikte yaşar ve anahtar
  değişmişse eski belge yeni anahtar hakkında hiçbir şey söylemez.
- Hiç sormayan istemci sıfır tur harcar ve iptal edilmiş sertifikayı ortalama 22,02 alışveriş
  boyunca geçerli sayar; her alışverişte soran istemci yanlış kabulü sıfırlar ve 120 tur öder.
- İptal sorusunun turu zincir uzunluğuyla doğru orantılıdır — bir halkada 40, beş halkada
  200 — ve alışveriş sayısıyla doğrusal büyürken önceden dağıtılmış listenin turu sabit kalır.
- Aradaki üç seçeneğin alışveriş başına turu sıfırdır ve yanlış kabulleri yalnız bilme
  gecikmesine bağlıdır: 3,5 saatte 0,15; 6,5 saatte 0,31; 12,5 saatte 0,57.
- Ömür kısaldıkça gecikme düşer ama yenileme artar; yenileme çarpı ömür pencereye
  sabitlenir, yani kazanılan gecikme ödenen yenilemeyle ters orantılıdır.

## Sonraki Adım

Güvenli taşıma burada kapanıyor. Anahtar rolleri bölündü, zincir yerel doğrulandı, kurulumun
turu sayıldı ve iptalin tur borcu ödendi. TLS El Sıkışması dersinde ölçülen kayıp da yerinde
duruyor: zarf kapandığında yüz altmış karar aracıdan uçlara taşınmıştı. Ama o kaybın
ortasında bağlantı hâlâ **istek–yanıt** biçimindeydi: istemci bir ileti gönderiyor, sunucu
bir ileti döndürüyor, sıra yeniden istemciye geçiyordu. Aracı iletinin içini göremese de kaç
ileti olduğunu, her birinin nerede başlayıp nerede bittiğini biliyordu. Sonraki konu bunu
soruyor: bağlantının **biçimi** de değişirse geriye ne kalır?
