Firebird 3 veri şifreleme nasıl olur?

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
mehmetantalya
Üye
Mesajlar: 189
Kayıt: 30 Eyl 2013 10:17

Firebird 3 veri şifreleme nasıl olur?

Mesaj gönderen mehmetantalya »

Merhabalar,
Firebird 3 ile birlikte verilerin içerisini şifreleme özelliğide gelmiş görünüyor. Bununla ilgili çalışma yapan oldu mu acaba?
Biraz araştırdım ama nasıl yapilacağini çözemedim.
Teşekkürler.
Kullanıcı avatarı
fesiharslan
Üye
Mesajlar: 591
Kayıt: 20 Eki 2006 11:37
Konum: Erzurum
İletişim:

Re: Firebird 3 veri şifreleme nasıl olur?

Mesaj gönderen fesiharslan »

Merhaba;
Veri şifreleme benim de merak ettiğim ve sabırsızlıkla beklediğim özelliklerden biriydi.
Bu konuda @ramazan_t arkadaşımızın bir çalışması olmuş.
viewtopic.php?f=18&t=35675&hilit=firebird#p192308
mehmetantalya
Üye
Mesajlar: 189
Kayıt: 30 Eyl 2013 10:17

Re: Firebird 3 veri şifreleme nasıl olur?

Mesaj gönderen mehmetantalya »

Teşekkür ederim fesih bey,
Linki inceledim. İngilizcem yetersiz olduğu için olsa gerek konuyu tam olarak anlayamadim. "Alter table" ile şifreleme yapiyor ama parametre olarak plugin istiyor. Bu plug-in nedir ve ben bunlari nerede kullanacagim. Trigerlar icerisinde kullanacaksam key bilgisi acik yazildigi icin herkes tarafindan gorunmeyecek mi?
Birde db dosyasini baska bir pc ye tasidigimda tum bu guvenlik ayarlari sifirlanacak mi?
Teşekkürler.
mkysoft
Kıdemli Üye
Mesajlar: 3103
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: Firebird 3 veri şifreleme nasıl olur?

Mesaj gönderen mkysoft »

examples/dbcrypt altında örnek bir proje varmış plugin geliştirmek için. Plugin işlevsel değil demiş, isteğinize göre yazın. Her hangi bir yerde özel olarak kullanmanıza gerek yok, sistem kendisi kullanacak. Yani db şifresi olan yine erişecek, sistem otomatik olarak şifleme ve çözme işlemini yapacak. Şifreleme için kullanılcak keyler client tarafından da gönderilebilir demiş.

Şifreli bir db'yi taşırsanız plugin olmadan açamazsınız. plugin içinde key içerecek diye bir şart yok, plugin key'i başka bir yerden alıyor olabilir. Zaten key ile datayı aynı makinada tutmak mantıklı değil.
Buradaki temel kural makinaya fiziksel erişim ile db erişiminin aynı kişi yetkisinde olmaması.

şifreleme ve çözme işlemleri performans gerektiren işler olduğu için plugin desteği vererek kullanıcılara bırakmışlar yöntemi. isteyen xor yazar isteyen rsa2048.
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2356
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Re: Firebird 3 veri şifreleme nasıl olur?

Mesaj gönderen freeman35 »

"With Firebird 3 comes the ability to encrypt data stored in database. Not all of the database file is encrypted: just data, index and blob pages."
release notes dan alıntı mealen, tüm database değil sadece datalar şifrelenir.
plugin page ve index sayfalarını şifreliyor muş. Okuduğum yeri tam bulamadım, fb dökümanlarında bir yerdeydi sanırım.
"Firebird-3.0.0/examples/dbcrypt/cryptDb.pas" plugin source u bu. pas içinde nasıl compile edileceğinide yazmış, ama sıkıntı fpc linux istiyor olması :D yani bunu ancak linux da derleyebilirsiniz. sebebi, dependencies ler ve onlarıda linux sürümünde var. osx de dahi yoktu. Oturupta derlemeye çalışmadım bu arada.

ALTER DATABASE ENCRYPT WITH <PLUGIN_NAME> [ KEY <key-name> ]
bu dataları şifreliyor, diyelimki şifrelediniz. db başka makinaya alındı, plugini kopyalamak işi çözer. bir diğer çözüm, db yi kopyalamadan önce
ALTER DATABASE DECRYPT
bu 3 kelimeyi yazıp çalıştırmak. Buna şimdi şifrelemek mi diyorlar ?bu sadece yaptım oldu yada çok istediler alın işte gibi bir şey. Tavsiyem bununla uğraşmayın. 3 kelime ile iptal edilen şifremi olur arkadaş. İptaliçin şifre dahi gerekmiyor!!!! fırsat bulursam forumlarınada yazmayı düşünüyorum, yada üye olan varsa yazabilir, ne kadar çok kişi dile getirirse olma ihtimali yükselir.
Yanılmıyorsam Alex db ye şifre koyma işinde şifreyi nerede saklıyacağız sorunu var demiş. db de kullanıcı system table ı var, role lar bunlara göre yapılıyor sanırım. onuda geçtim, 31 char lık alan kullanıyorlar, securydb de, şifre için. db dede sadece şifre için bukadar bir alan yeter. oda db create edilirken verilir. API dede değişiklik yapılır, username ve pass server bağlantısı için kullanılıyor. dbpass diye bir parametre daha eklenir, buda db ye bağlanmadan önce kontrol edilir. bu create eden şifre admin yetkili ve db ye tüm müdahaleyi yapacak kişi olur. hepimizin istediğide bu değil mi zaten ? db de ki kullanıcılara role işlerini bu kullanıcı ile yaparız, gerekirsede admin yekili kullanıcı ekleriz buda var olan sistemdeki gibi çalışır, yani şifre mifre istemeden bodozlamadan dalar sisteme :)
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
mkysoft
Kıdemli Üye
Mesajlar: 3103
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: Firebird 3 veri şifreleme nasıl olur?

Mesaj gönderen mkysoft »

Buradaki arkadaşların şifreleme işleminden beklentisi farklı sanırım. Bir çok arkadaş, db yapısı gözükmesin, db kopyalanarak başka makinada açılmasın beklentisinde benim gördüğüm. Ancak kurumsal piyasa ve diğer db üreticilerinin böyle bir beklentisi olduğunu sanmıyorum.
Diğer db'lerde olduğu gibi fiziksel olarak db dosyalarına erişim olduğunda verilere erişilememesi amaçlanmış sadece. MSSQL'de de mantık aynı. Sonuçta yetkili bir kullanıcınız varsa db şifreleri de olsa verileri kullanabilirsiniz, ekstra birşey yapmanıza gerek olmaz.
@freeman35 3 komutla kalkan şifrelememi olur demişsiniz ancak büyük ihtimalle yetkiye bağlı bir komuttur. Yetkiniz varsa tabiki yapabilirsiniz.
Yukarıda da yazdığım gibi, sunucuya fiziksel erişen kişiyi, db admin'i ve şifreleme key'ini fiziksel olarak ayırmazsanız şifrelemenin hiç bir anlamı yok. Diğer veri tabanları için de durum aynı.
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2356
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Re: Firebird 3 veri şifreleme nasıl olur?

Mesaj gönderen freeman35 »

@mkysoft 3 kelime de şifre parametresi yok. local de login olurken de db yi create ederken de, kullanıcı adı ve şifre belirtmeye gerek yok. Yani local kullanımlarda hiç bir şey için yetkilendirme yok. Evet haklısın, fazla kurulsal düşünülmüş. local i herkes kendi pc sini kullanır, sorumlusuda o dur diye düşünüyorlar sanırım. Yazıyı bulamadım, dbcrypt için gereken şifre yanılmıyorsam db içine kaydediliyor. Banada burdan sonrası mantıksız geliyor işte, db ye şifre ekleniyor, kullanırken bununla şifreleniyor, ama şifre gerektirmeyen decrypt dedinmi şifre kalkıyor. isql den de çalıştırılacak bir komut herhangi bir tool da gerekmiyor.
Evet bende metadata nın görünmemesini istiyorum, 2.5 da sp ve trigger body lerini silerdim. Ben onlarca zaman harcamışım, bişi bilmeyen birisinin çalıp ben yaptım demesini istemem. Bunuda fb 3 de kaldırmışlar, body leride nullayamıyoruz.
Diğer lerinde olmaması, firebird dede olmamalı demek değildir diye düşünüyorum, bu eksiklikse, ve çok kişi tarafından talep ediliyorsa bunun olması gerektiğini düşünüyorum.
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
mehmetantalya
Üye
Mesajlar: 189
Kayıt: 30 Eyl 2013 10:17

Re: Firebird 3 veri şifreleme nasıl olur?

Mesaj gönderen mehmetantalya »

Merhabalar,
Öncelikle cevaplarınız için teşekkür ederim. Aslında benim sorunum musterilerim flash disklerde verilerini tutuyor. Bu flash lar kayboldugunda verilere erisilememesi veya yetkisiz kisilerin musterinin pc basina oturup db leri alip giderse evinde bu db lerin icindeki verilere ulaşamamalari.
Firebird 3 ile veya disardan baska yontemlerle bunu yapmanın yolunu ariyorum.
mehmetantalya
Üye
Mesajlar: 189
Kayıt: 30 Eyl 2013 10:17

Re: Firebird 3 veri şifreleme nasıl olur?

Mesaj gönderen mehmetantalya »

Teşekkür ederim Ramazan bey.
Cevapla