MODUL 5 - LEKCIJA 4

Enkripcija i Auditing Podataka

Always Encrypted, TDE i Ledger - novi standardi kriptografske sigurnosti i transparentnosti

⏱️ Trajanje: ~3.5 časa 📚 Nivo: Napredni / Ekspertski 🎯 Praktični primjeri: 5

📖 Zaštita Podataka po svaku cijenu

U današnjem svijetu, podaci su meta. Čak i ako se vaš server nađe u tuđim rukama, podaci unutar baze moraju ostati nečitljivi. SQL Server 2022 nudi više slojeva enkripcije koji se međusobno dopunjuju.

💾 Transparent Data Encryption (TDE)

TDE enkriptuje cijelu bazu podataka na disku (at-rest). Ako lopov ukrade fajl baze (.mdf), ne može ga otvoriti bez privatnog ključa.

🔑 Ključna prednost TDE

Nema potrebe za promjenom koda aplikacije. Enkripcija/Dekripcija se dešava automatski prilikom čitanja sa diska u memoriju. Ipak, administrator baze (DBA) i dalje može vidjeti podatke dok su u RAM-u.

🔐 Always Encrypted (Vrhunac Sigurnosti)

Ovo je tehnologija koja rješava problem "Niko ne smije vidjeti podatke osim korisnika". Sa Always Encrypted, podaci se enkriptuju na klijentskoj strani prije slanja bazi.

🕵️ SQL Server Audit

Želite znati tačno ko je pogledao tabelu plata u 3 ujutro? SQL Server Audit bilježi sve aktivnosti.

🛡️ Konfiguracija Audit-a
-- 1. Kreiranje Server Audita koji piše u fajl
CREATE SERVER AUDIT [MySecureAudit]
TO FILE ( FILEPATH = 'C:\AuditLogs\' );
GO

-- 2. Uključivanje audita
ALTER SERVER AUDIT [MySecureAudit] WITH (STATE = ON);
GO

-- 3. Kreiranje Database Audit Specifikacije za tabelu plata
CREATE DATABASE AUDIT SPECIFICATION [AuditSalaries]
FOR SERVER AUDIT [MySecureAudit]
ADD (SELECT, UPDATE ON Schema::HR BY [public])
WITH (STATE = ON);

⛓️ Ledger Tables: Blockchain u SQL-u

Novo u verziji 2022, Ledger pretvara SQL Server u nepromjenjivi (immutable) skladišni sistem. Bilo koja promjena u tabeli ostavlja kriptografski dokaz (hash) koji je nemoguće sakriti.

💼 Idealno za Audite

Niko, čak ni 'sa', ne može obrisati prošlost bez da sistem to primijeti. Savršeno za bankovne sisteme, logistiku i medicinske kartone.

🎯 Praktična Vježba: Enkripcija Kolone

Zadatak: Zaštita JMBG brojeva

Morate osigurati kolonu JMBG u tabeli Zaposlenici tako da podaci budu uvijek enkriptovani, čak i dok "putuju" mrežom.

💡 Koraci Rješenja (Logički)
-- 1. Generisati Column Master Key (CMK) u Windows Cert Store-u.
-- 2. Generisati Column Encryption Key (CEK) zaštićen sa CMK.
-- 3. Izvršiti ALTER TABLE ... WITH (ENCRYPTED_VALUE = ...) 
--    unutar ADO.NET aplikacije ili SSMS Wizard-a.

-- Napomena: Always Encrypted zahtijeva driver na klijentu za dekripciju!

✅ Zaključak Modula 5

Završili smo najkritičniji modul tutorijala. Vaša baza sada je:

📚 Modul 6: Budućnost uz AI

U posljednjem modulu istražujemo AI-Assisted Development. Vidjećemo kako moderni AI alati pomažu u pisanju boljeg SQL koda i predviđanju anomalija u bazi.