Bu sayfa makine çevirisidir. İngilizce orijinalini okuyun. English

Firebird veritabanını IBSurgeon eklentisiyle nasıl şifrelersiniz: sunucuya kurun, bir uygulamadan bağlanın, geliştirici araçlarını kullanın ve şifreli yedekleme/geri yükleme yapın. Tam ürün: Encryption Framework.

1 adımda kurulum betikleri

Windows: GitHub'dan yükleyiciyi çalıştırın - English · Português.

Linux: IBSurgeon/firebirdlinuxinstall adresinden standart Firebird yükleyicisini -crypt-only ile kullanın.

Manuel kurulum için ön koşullar

  • Firebird 3.0.3 veya üzeri (3.x, 4.x, 5.x). Bu demo eski sürümleri desteklemez.
  • Deneme eklenti arşivleri ve Delphi/Lazarus/.NET/PHP örnekleri (aşağıda).
  • plugins klasöründe deneme DbCrypt.conf dosyası.
  • Bir SYSDBA kullanıcısı. Yoksa: Firebird'ü durdurun, isql -user sysdba employee.fdb çalıştırın, CREATE USER SYSDBA PASSWORD 'masterkey'; komutunu çalıştırın, servisi başlatın.

Bu kılavuz 64-bit Firebird kullanır. 32-bit için dosyaları ilgili WINDOWS_32bit (veya Linux 32-bit) arşivinden alın.

İndirmeler

ExampleApplications.zip - derlenmiş demo istemci ve kaynaklar. DbCrypt.conf - deneme anahtarı.

Firebird Windows 32-bit Windows 64-bit Linux 32-bit Linux 64-bit
3.0 zip zip tar.xz tar.xz
4.0 zip zip tar.xz tar.xz
5.0 zip zip - tar.xz

Adım 1 - İlk şifreleme (Windows örneği)

Şifrelenmemiş bir veritabanını uygun bir konuma yerleştirin, örneğin C:\Temp\EMPLOYEE30\EMPLOYEE30.FDB.

1. databases.conf içinde takma ad

crypt = C:\Temp\EMPLOYEE30\EMPLOYEE30.FDB
{
KeyHolderPlugin = KeyHolder
}

Anahtar tutucuyu her veritabanına uygulamak için firebird.conf dosyasına KeyHolderPlugin = KeyHolder ekleyin veya arşivdeki örnek firebird.conf dosyasını kopyalayın (adım 3).

2. Dosyaları server/plugins klasörüne koyun

FB_NN_WINDOWS_64bit\Server\plugins klasöründen:

  • DbCrypt.dll
  • DbCrypt.conf (deneme anahtarı)
  • KeyHolder.dll
  • KeyHolder.conf - yalnızca geliştirme için anahtarlar içeren metin dosyası. Son kullanıcılara göndermeyin.

3. Dosyaları Firebird kök dizinine koyun

FB_NN_WINDOWS_64bit\Server klasöründen: fbcrypt.dll, libcrypto-1_1-x64.dll, libssl-1_1-x64.dll, gbak.exe, firebird.msg ve isteğe bağlı olarak firebird.conf.

4. isql ile şifreleyin

isql localhost:C:\Temp\EMPLOYEE30\EMPLOYEE30.FDB -user SYSDBA -pass masterkey
SQL> alter database encrypt with dbcrypt key red;
SQL> show database;

show database; (veya gstat -h) Database encrypted bildirmelidir.

dbcrypt eklenti adıdır; red, KeyHolder.conf dosyasında tanımlı bir anahtardır. Linux'ta adları tırnak içine alın ve büyük/küçük harfe dikkat edin:

alter database encrypt with "DbCrypt" key Red;

Bu adımdan sonra sunucu anahtarları KeyHolder.conf dosyasında tutar (geliştirme / yönetici modu).

Sunucuda vs istemcide neler bulunur

Sunucu İstemci
plugins/dbcrypt.dll, plugins/keyholder.dll, DbCrypt.conf
libssl-1_1-x64.dll, libcrypto-1_1-x64.dll, fbcrypt.dll
Şifreli gbak: gbak.exe, firebird.msg
İsteğe bağlı: plugins/KeyHolder.conf (geliştirme anahtarları), firebird.conf
fbclient.dll, fbcrypt.dll, libcrypto-1_1.dll
İsteğe bağlı: firebird.conf

Adım 2 - İstemci uygulamasından bağlanın

Müşteri ortamını taklit etmek için plugins/KeyHolder.conf dosyasını yeniden adlandırın veya kaldırın. Eklenti daha sonra anahtarı uygulamadan bekler. ExampleApplications.zip derlenmiş bir Delphi XE8 istemcisi ile Lazarus, .NET ve PHP örnekleri içerir.

Normal bağlantıdan önce uygulama anahtarı gönderir (birkaç ek çağrı). Bundan sonra Firebird kullanımı değişmez. Delphi demosu Example_Delphi_EnhancedCryptTestClient\Win32\Debug altındadır:

  1. “1. Setup Login” altında veritabanı yolunu veya takma adını ayarlayın.
  2. Anahtar adını ve değerini girin (RED anahtarı için değeri KeyHolder.conf dosyasından kopyalayın).
  3. Bu anahtarla şifreleme/şifre çözme yapabilirsiniz - şifreleme aktif bir bağlantı gerektirir ve zaman alır.
  4. Şifreli bağlantı üzerinden basit bir SELECT çalıştırmak için Execute query'e tıklayın.

Demo yalnızca TCP/IP üzerinden bağlanır - XNET desteklenmez. Örnek, bağlantı, işlem ve sorgu adımlarını açık tutar, böylece deseni kopyalayabilirsiniz.

Şifreleme demo istemcisi: giriş, anahtar adı ve sorgu çalıştırma
Demo istemci: giriş, anahtar, şifreleme/şifre çözme, test sorgusu.
Şifreli Firebird veritabanına bağlantı adımlarını gösteren şifreleme demo istemcisi
Basit bağlantı / işlem / sorgu dizisi.

Adım 3 - Geliştirici araçları ve komut satırı

Encryption Framework v2021'den itibaren fbclient.dll anahtarları kendisi yükleyebilir. IBExpert, FlameRobin, SQLLY, Database Workbench, RedExpert, gfix, nbackup ve benzeri araçlar kod değişikliği olmadan çalışır.

İstemci bitliğini eşleştirin:

  • Firebird komut satırı araçları (isql, gfix, nbackup) sunucuyla eşleşir - Windows_64bit\WindowsClientPart_64bit klasörünü bu ikili dosyaların yanına kopyalayın.
  • Çoğu GUI aracı 32-bit'tir - Windows_32bit\WindowsClientPart_32bit klasörünü aracın klasörüne kopyalayın.

Komut satırı araçları daha sonra o fbclient kopyasının yanındaki plugins\KeyHolder.conf dosyasını kullanır. Diğer uygulamalar anahtarı kendileri iletmeye devam eder.

isql, istemci tarafı KeyHolder ile şifreli bir veritabanına bağlanıyor
İstemci tarafı anahtar yükleme: fbclient → KeyHolder → KeyHolder.conf.
  1. Araç başlar ve fbclient.dll dosyasını yükler.
  2. fbclient, firebird.conf dosyasını okur, KeyHolderPlugin=KeyHolder görür ve plugins\keyholder.dll dosyasını yükler.
  3. KeyHolder, KeyHolder.conf dosyasını okur (ör. Red anahtarı).
  4. isql bağlanır ve SHOW DATABASE çalıştırabilir.
FlameRobin, istemci tarafı anahtarları kullanarak şifreli bir Firebird veritabanına bağlandı
FlameRobin ile aynı desen.

gbak: istemci tarafı anahtar yükleme şifrelenmemiş bir .fbk üretir. Yedeklemenin şifreli kalması için framework gbak aracını açık -KEYFILE / -KEYNAME / -KEY parametreleriyle kullanın.

nbackup: artımlı kopyalar şifreli kalır.

Adım 4 - Yedekleme ve geri yükleme

Standart gbak, üretimde şifrelenmiş bir veritabanını açamaz (sunucuda anahtar yok, istemciden anahtar yok). Çerçeve, yedeği veritabanıyla aynı anahtarla şifreleyen bir gbak ile birlikte gelir. gbak -? şunları ekler:

-KEYFILE   DB ve yedekleme şifreleme anahtar(lar)ını içeren dosyanın adı
-KEYNAME   şifreleme için kullanılacak anahtarın adı
-KEY       "0x5A," gösteriminde anahtar değeri

Yedekleme

gbak'ın veritabanını okuyabilmesi ve .fbk dosyasını şifreleyebilmesi için anahtarı sağlayın - ya bir anahtar dosyası (KeyHolder.conf ile aynı düzen) ya da açık bir değer. Bu anahtarlarla şifrelenmemiş bir veritabanını yedeklemek yine de şifreli bir yedek üretir.

gbak.exe -b -KEYFILE h:\Firebird\examplekeyfile.txt -KEYNAME RED localhost:h:\employee_30.fdb h:\testenc4.fbk -user SYSDBA -pass masterkey

gbak -b -KEY 0xec,0xa1,0x52,0xf6,0x4d,0x27,0xda,0x93,0x53,0xe5,0x48,0x86,0xb9,0x7d,0xe2,0x8f,0x3b,0xfa,0xb7,0x91,0x22,0x5b,0x59,0x15,0x82,0x35,0xf5,0x30,0x1f,0x04,0xdc,0x75, -keyname RED localhost:h:\employee30\employee30.fdb h:\testenc303.fbk -user SYSDBA -pass masterkey

-KEY ile yine de -KEYNAME geçmelisiniz.

Geri yükleme

Aynı fikir: anahtar dosyası veya açık anahtar. Bu anahtarlarla şifrelenmemiş bir yedeği geri yüklemek şifreli bir veritabanı oluşturur.

gbak -c -v -keyfile h:\Firebird\examplekeyfile.txt -keyname white h:\testenc4.fbk localhost:h:\employeeenc4.fdb -user SYSDBA -pass masterkey

gbak -c -v -key 0xec,0xa1,0x52,0xf6,0x4d,0x27,0xda,0x93,0x53,0xe5,0x48,0x86,0xb9,0x7d,0xe2,0x8f,0x3b,0xfa,0xb7,0x91,0x22,0x5b,0x59,0x15,0x82,0x35,0xf5,0x30,0x1f,0x04,0xdc,0x75, -keyname RED h:\testenc4.fbk localhost:h:\employeeenc4.fdb -user SYSDBA -pass masterkey