Güvenlik

Stok Kodlarını Şifrelemek ve Anahtar Rotasyonu: Panelinde Duran O Kodlar Sandığın Kadar Güvende Değil, İşte Sektörün Konuşmadığı Sistem

E-pin stok kodlarını şifrelemenin ve anahtar rotasyonunun gerçek yöntemi: AES-GCM, zarf şifreleme, key_version, sızıntı sonrası kurtarma. Scriptinde neyi sormalısın?

Stok Kodlarını Şifrelemek ve Anahtar Rotasyonu: Panelinde Duran O Kodlar Sandığın Kadar Güvende Değil, İşte Sektörün Konuşmadığı Sistem

Çoğu e-pin satıcısı stok güvenliğini tek bir cümleyle özetler: "Kodlar veritabanında duruyor, sunucuya kimse giremez." Bu cümle, sektörde yaşanan stok sızıntılarının neredeyse tamamının arkasındaki yanlış varsayımdır. Çünkü bir kodun çalınması için sunucunun tümüyle ele geçirilmesi gerekmez. Yanlış klasörde kalmış tek bir yedek dosyası, hosting taşıma sırasında WhatsApp'tan gönderilen bir .sql dökümü, panele bir hafta erişimi olan eski bir destek elemanının ekran görüntüsü ya da bakım için verdiğin geçici phpMyAdmin şifresi yeter. Kod dediğin şey sonuçta düz metindir; düz metin ise kopyalandığı anda senin kontrolünden tamamen çıkar.

İşin konuşulmayan tarafı şu: piyasadaki pek çok e-pin scripti stok kodlarını hâlâ olduğu gibi, sıradan bir metin kolonunda tutar. Bunu kötü niyetten değil, kolaylıktan yapar; çünkü şifrelenmiş kodun üstünde arama yapmak, toplu içe aktarmak ve "bu kod kime gitti" sorusunu cevaplamak zahmetlidir. Ama zahmetten kaçmanın faturası, bir sabah uyandığında 4.000 adet kullanılmamış kodun forumlarda dolaşması olarak geliyor. Bu yazıda sana şifrelemenin hangi katmanda yapılacağını, anahtarın nerede duracağını, anahtar rotasyonunun gerçekte nasıl işlediğini ve bir e-pin satış yazılımı değerlendirirken hangi soruları sormanı gerektiğini anlatacağım.

%71Stok sızıntısı, sunucu hacki değil yedek/erişim hatasından doğuyor
0 snDüz metin kod, kopyalandıktan sonra geri alınabilme süresi
90 günSağlıklı bir kurulumda önerilen anahtar rotasyon aralığı
1 kolonRotasyonu mümkün kılan tek şey: kayıt başına anahtar sürümü

Neden "sunucum güvenli" demek artık bir güvenlik önlemi sayılmıyor?

Güvenlikte tek bir duvara yaslanmak, o duvarın arkasındaki her şeyi tek bir olaya bağlamak demektir. Sunucu erişiminin güvenli olduğu varsayımı, kodların düz metin durmasını haklı çıkarmaz; sadece riski görünmez kılar. Doğru soru "sunucuma girilebilir mi" değil, "girildiğinde saldırganın eline ne geçer" sorusudur. Kodlar şifreliyse ve anahtar veritabanının yanında durmuyorsa, çalınan bir döküm dosyası saldırgan için işe yaramaz bir karakter yığınıdır. Şifreleme, saldırıyı engellemez; saldırının değerini sıfıra indirir. Bu ayrımı kavradığın gün stok yönetimine bakışın değişir.

Hangi katmanda şifrelemek gerçekten işe yarıyor?

Burada üç seçenek var ve üçü aynı şey değil. Disk şifreleme, sunucu çalışırken her şeyi açık gösterdiği için sızıntıya karşı neredeyse hiçbir şey yapmaz. Veritabanı seviyesindeki şifreleme, bağlantıyı ele geçiren birine karşı yine açık kalır. Gerçekten koruyan tek yaklaşım uygulama seviyesinde şifrelemedir: kod, veritabanına yazılmadan önce uygulama tarafında şifrelenir ve yalnızca müşteriye teslim edileceği o tek anda çözülür. Bu yüzden ciddi bir dijital ürün satış scripti değerlendirirken "şifreleme var mı" diye değil, "şifreleme hangi katmanda" diye sormalısın.

Algoritma tarafında da kafa karışıklığı büyük. Basit XOR, base64 veya geri döndürülebilir bir hash "şifreleme" değildir. İhtiyacın olan şey, hem gizlilik hem bütünlük sağlayan kimlik doğrulamalı bir şifrelemedir: pratikte AES-256-GCM. Her kayıt için ayrı ve rastgele bir IV üretilir, çıktının yanında kimlik doğrulama etiketi saklanır. Böylece biri veritabanındaki şifreli metni elle oynayıp bozmaya kalkarsa, çözme işlemi sessizce yanlış sonuç vermez, doğrudan hata verir. Bu davranış, teslimat hatalarını sessiz kalmadan yakalamanı sağlar.

YaklaşımDöküm sızarsaPanel ele geçerseArama/filtreKurulum yükü
Düz metin kolonTüm stok açıkTüm stok açıkÇok kolayYok
Geri döndürülebilir basit maskelemeBirkaç saatte açılırTüm stok açıkKolayÇok düşük
Disk / dosya sistemi şifrelemeYedek açıksa etkisizTüm stok açıkDeğişmezDüşük
AES-256-GCM, anahtar aynı sunucudaAnahtar da sızarsa açıkSınırlı korumaParmak izi kolonu gerekirOrta
AES-256-GCM + webroot dışı anahtar + sürümlemeAnlamsız veriYalnızca görülen kayıtlarParmak izi + indeksOrta-yüksek
Zarf şifreleme (ana anahtar ayrı serviste)Anlamsız veriHız sınırıyla frenlenirAynıYüksek

Anahtarı nereye koyduğun, algoritmadan daha önemli değil mi?

Doğru algoritmayı seçip anahtarı kodun içine gömmek, çelik kapı taktırıp anahtarı kapının üstündeki saksıya bırakmaktır. Anahtar asla sürüm kontrolüne, asla web kök dizinine, asla veritabanına girmez. Doğru yer, web erişimi olmayan üst bir dizindeki dosya veya işletim sistemi seviyesinde tanımlı bir ortam değişkenidir. Dosya izinleri yalnızca uygulama kullanıcısına okuma verecek şekilde daraltılır. Bir adım ötesi zarf şifrelemedir: her stok partisi kendi veri anahtarıyla şifrelenir, o veri anahtarı da ayrı tutulan bir ana anahtarla şifrelenir. Böylece ana anahtarı değiştirmek için milyonlarca kaydı yeniden şifrelemek zorunda kalmazsın.

Gerçek stok sızıntılarının kaynak dağılımı

  • Korumasız yedek / veritabanı dökümü 45%
  • Fazla yetkili panel ve eski personel erişimi 25%
  • Uygulama açığı ve zayıf oturum yönetimi 20%
  • Tedarikçi tarafı ve diğer 10%

Anahtar rotasyonu tam olarak nasıl yapılır, sistemi durdurmak gerekir mi?

Rotasyon, "anahtarı değiştirdim" demek değildir. Eski anahtarla şifrelenmiş binlerce kayıt hâlâ ortada olduğu için, tek anahtarla çalışan bir kurulumda anahtar değiştirmek doğrudan veri kaybıdır. Çözüm şaşırtıcı derecede basit: her şifreli kaydın yanına bir anahtar sürümü alanı koymak. Uygulama çözerken kaydın sürümüne bakar, o sürümün anahtarını kullanır; şifrelerken ise her zaman en güncel sürümü kullanır. Böylece iki anahtar bir süre yan yana yaşar ve sistem tek saniye durmaz.

Bundan sonrası kademeli geçiştir. Yeni gelen stok doğrudan yeni sürümle yazılır. Eski kayıtlar ise arka planda küçük partiler hâlinde okunup yeniden şifrelenir; genellikle gece saatlerinde çalışan bir görevle, her seferinde birkaç bin kayıt. Tüm kayıtlar yeni sürüme geçtiğinde eski anahtar devre dışı bırakılır ama en az bir rotasyon dönemi boyunca çevrimdışı bir yerde saklanır; çünkü göçün gözden kaçan bir tablosu çıkabilir. Acil rotasyon, yani anahtarın sızdığından şüphelendiğin durum, aynı mekanizmanın hızlandırılmış hâlidir: yeni sürüm devreye alınır, göç beklemeye alınmadan başlatılır ve etkilenen partiler tedarikçiyle iptal-yenileme sürecine sokulur.

Şifreliyken arama yapmanın yolu var

Aynı kodun iki kez yüklenmesini engellemek için kodun kendisini aramaya çalışma. Kodun tuzlu bir HMAC özetini ayrı bir kolona yaz ve o kolona tekil indeks koy. Böylece mükerrer kontrolünü şifreyi hiç çözmeden yaparsın; hız da kaybolmaz.

Şifreleme kimin kodu gördüğünü nasıl kayda geçirir?

Şifrelemenin en az bilinen faydası şudur: çözme işlemini tek bir fonksiyona hapsettiğin anda, kodu kimin ne zaman gördüğünü ölçebilir hâle gelirsin. Her çözme çağrısı; hangi yönetici, hangi sipariş, hangi IP ve hangi oturumla yapıldığı bilgisiyle loglanır. Bir hafta sonra "bu 120 kod nasıl sızdı" sorusunun cevabı tahmin değil, kayıt olur. Üstüne bir de hız sınırı koyarsın: normal bir gün içinde bir yönetici hesabının kaç kodu açtığı bellidir; bu eşik aşıldığında hesap otomatik olarak dondurulur ve sana bildirim gider.

Pinova bu noktada tam olarak bunu yapıyor. Pinova bir e-pin satış yazılımıdır; yani kendisi kod satmaz, kodu satan işletmenin altyapısını kurar. Stok kodları kimlik doğrulamalı şifrelemeyle saklanır, anahtar web kökünün dışında tutulur, kayıt başına anahtar sürümü yazılır ve rotasyon göçü arka planda kademeli yürür. Çözme erişimi rol bazlı sınırlanır, her çözme denetim kaydına düşer. Bu düzeneği sıfırdan yazmak aylar alır; hazır bir epin yazılım altyapısında ilk günden çalışır durumda gelir.

Yedekler, dışa aktarımlar ve tedarikçi dosyaları ne olacak?

Şifrelemenin en sık atlanan kör noktası, veritabanının dışına çıkan kopyalardır. Tedarikçiden gelen Excel dosyası indirdiğin klasörde kalır; panelden aldığın "stok raporu" CSV'si düz metin kodları içerir; otomatik yedek, anahtar dosyasıyla aynı arşive girer. Bu üç alışkanlık, ne kadar iyi şifrelersen şifrele koruma seviyesini düz metne geri düşürür. Kural nettir: dışa aktarım çıktılarında kod alanı varsayılan olarak maskelenir, tam kod yalnızca özel yetkiyle ve loglanarak alınır; yedek arşivi anahtardan ayrı yerde tutulur; içe aktardığın kaynak dosya, işlem tamamlanınca sunucudan silinir.

Kontrol maddesiNe aramalısınDurum
Şifreleme katmanıUygulama seviyesinde, AES-256-GCMZorunlu
Anahtar konumuWeb kökü dışında dosya veya ortam değişkeniZorunlu
Anahtar sürümü kolonuHer şifreli kayıtta sürüm numarasıZorunlu
Mükerrer kontrolüTuzlu HMAC parmak izi + tekil indeksZorunlu
Kademeli rotasyon göreviPartili yeniden şifreleme, kesintisizÖnerilir
Çözme denetim kaydıKullanıcı, IP, sipariş, zamanZorunlu
Çözme hız sınırıEşik aşımında otomatik dondurmaÖnerilir
Dışa aktarımda maskelemeVarsayılan kapalı, yetkiyle açıkZorunlu
Yedek ayrımıAnahtar ve veri farklı konumdaZorunlu
Acil rotasyon prosedürüYazılı, denenmiş, tek komutlaÖnerilir

Stok kodlarını ilk günden şifreli tut

Şifreleme, anahtar sürümleme ve kademeli rotasyon hazır gelen bir altyapıyla başla; bunları sonradan eklemek çok daha pahalı.

Şifreleme sistemi yavaşlatır mı?

Pratikte hayır. AES işlemleri modern işlemcilerde donanım destekli çalışır ve bir kodun çözülmesi mikrosaniyelerle ölçülür. Yavaşlama hissi, kodun kendisi üzerinde arama yapmaya çalışan kötü tasarımdan doğar; parmak izi kolonu kullanıldığında sorgu hızı değişmez.

Anahtarı kaybedersem kodlar tamamen gider mi?

Evet, doğru kurulmuş bir sistemde kaybedilen anahtar geri dönüşü olmayan veri kaybı anlamına gelir. Bu yüzden anahtarın çevrimdışı, şifreli ve en az iki ayrı fiziksel konumda yedeği tutulur; yedek geri yükleme tatbikatı yılda bir denenir.

Rotasyon sırasında satış durur mu?

Durmaz. Kayıt başına anahtar sürümü tutulduğu için eski ve yeni anahtar bir süre birlikte çalışır. Yeni stok yeni sürümle yazılırken eski kayıtlar arka planda partiler hâlinde geçirilir, müşteri tarafında hiçbir fark görünmez.

Küçük ölçekli satıcı için bu fazla karmaşık değil mi?

Karmaşıklık senin tarafında olmamalı. Bu mekanizmalar altyapının içinde hazır çalışıyorsa sen yalnızca stok yüklüyor ve satıyorsun. Sızıntı riski küçük ölçekte de aynıdır; fark, küçük işletmenin bir sızıntının maliyetini karşılamasının daha zor olmasıdır.

Stok kodlarının şifrelenmesi bir "ileri seviye özellik" değil, bu işin asgari şartıdır; anahtar rotasyonu ise o şifrelemenin zamanla çürümesini engelleyen bakım işidir. İkisini birlikte kuran bir e-pin scripti seni hem sızıntı anında hem de büyüme anında korur. Altyapının bunları nasıl yaptığını okumak yerine çalışırken görmek istersen özellik listesine ve fiyat tablosuna göz at, ardından canlı demo üzerinden stok yükleme, teslimat ve denetim kaydı akışını kendi elinle dene.

Daha Fazlasını Keşfedin

Dijital ürün satışı ve otomasyon üzerine güncel rehberlere göz atın.

Tüm Yazıları Gör →
Bu yazıyı paylaşın
Bu yazıyı beğendiniz mi?
Teşekkürler!
← Tüm yazılar