Adli bilişim sürecindeki delillerin tüm aşamalar boyunca güvenli bir şekilde yönetilmesi için blok zinciri tabanlı bir platform.
Bu proje, adli bilişim sürecindeki delillerin güvenliğini ve bütünlüğünü artırmak amacıyla blok zinciri tabanlı bir platform önerisi barındırmaktadır. Akıllı kontratlar kullanarak, delil karartmayı önlemek, şeffaflığı sağlamak ve dijital deliller için doğrulanabilir bir muhafaza zinciri sunmak hedeflenmektedir.
DigitalForensicsChain.sol
akıllı kontrat Solidity dilinde yazılmış olup, farklı katılımcılar için rollerin yönetilmesi amacıyla rol tabanlı erişim kontrolü kullanır. Kontrat, delil ve rapor verilerini dört ana aşamada kaydeder:
- Tanımlama Aşaması: Olay yerinden delillerin toplanması ve kaydedilmesi.
- İnceleme Aşaması: Delillerin ön analizi ve imajlarının alınması.
- Analiz Aşaması: Adli bilişim uzmanları tarafından yapılan detaylı analiz.
- Raporlama Aşaması: Bulguların raporlanması ve yetkili makamlara iletilmesi.
- Rol Tabanlı Erişim Kontrolü: Farklı katılımcılara belirli fonksiyonlara erişim izni veren roller (
ROLE_TANIMLAMA
,ROLE_INCELEME
,ROLE_ANALIZ
,ROLE_RAPORLAMA
) atanır. - Değiştirilemez Kayıtlar: Tüm girişler blok zincirine kaydedilir, bu da veri bütünlüğünü ve şeffaflığı sağlar.
- Olay Kaydı: Önemli işlemler, izlemeyi ve takibi kolaylaştıran olayları tetikler.
- Yönetici Kontrolleri: Bir yönetici, roller atayabilir veya iptal edebilir ve dava numarasını belirleyebilir.
Bu kontrat, yerel çalışma ortamında derlenip çalıştırılacağı gibi Remix IDE kullanılarak da online olarak derlenebilir.
Yerelde çalıştırmak için aşağıdaki adımları izleyebilirsiniz.
-
Node.js ve npm: Node.js resmi web sitesi üzerinden yükleyin.
-
Truffle Framework: Akıllı kontratların derlenmesi ve dağıtımı için.
npm install -g truffle
-
Ganache: Test amaçlı kişisel Ethereum blok zinciri.
npm install -g ganache-cli
-
MetaMask: Blok zinciri ile etkileşim için tarayıcı uzantısı.
-
Depoyu Klonlayın
git clone https://github.com/Roor0ne/DigitalForensicsChain.git cd DigitalForensicsChain
-
Bağımlılıkları Yükleyin
npm install
-
Ganache'ı Başlatın
ganache-cli
-
Akıllı Kontratı Derleyin
truffle compile
-
Akıllı Kontratı Dağıtın
truffle migrate
-
Rollerin Atanışı
- Yönetici,
assignRole
fonksiyonunu kullanarak farklı adreslere roller atar. - Roller, farklı aşamalara karşılık gelir:
ROLE_TANIMLAMA
: Tanımlama AşamasıROLE_INCELEME
: İnceleme AşamasıROLE_ANALIZ
: Analiz AşamasıROLE_RAPORLAMA
: Raporlama Aşaması
- Yönetici,
-
Dava Numarasının Belirlenmesi
- Yönetici,
setCaseNumber
fonksiyonunu kullanarak dava numarasını belirler. - Bu işlem, kontrat başına sadece bir kez yapılabilir.
- Yönetici,
-
Delil Eklenmesi
- Katılımcılar, kendi aşamalarında delil eklemek için aşağıdaki fonksiyonları kullanır:
addEvidenceIdentificationPhase
addEvidenceExaminationPhase
addEvidenceAnalysisPhase
- Katılımcılar, kendi aşamalarında delil eklemek için aşağıdaki fonksiyonları kullanır:
-
Rapor Eklenmesi
- Raporlama Aşamasında, uzman
addReport
fonksiyonunu kullanarak rapor hash değerini ekler.
- Raporlama Aşamasında, uzman
-
Verilere Erişim
- Yönetici, tüm aşamalardaki verileri aşağıdaki getter fonksiyonları ile alabilir:
getIdentificationPhaseEvidence
getExaminationPhaseEvidence
getAnalysisPhaseEvidence
getReports
- Yönetici, tüm aşamalardaki verileri aşağıdaki getter fonksiyonları ile alabilir: