Spaces:
Running
π‘οΈ FakeShield: System Architecture & DFD Documentation
This document provides a comprehensive analysis of the FakeShield AI Forensic Laboratory architecture. It details the Level 1 Data Flow Diagram (DFD) and zooms in on the Level 2 Data Flow Diagram (DFD) for the AI Image Forensic Lab (Process 3.0).
π Overview of Data Flow Diagrams (DFDs)
A Data Flow Diagram (DFD) maps out the flow of information for any process or system. It uses standardized symbols to represent:
- External Entities (Square / Rectangle): Sources or destinations of data outside the system's boundary.
- Processes (Circle / Rounded Rectangle): Processing units that transform input data flows into output data flows.
- Data Stores (Open-ended Rectangle / Parallel Lines): Locations where data is stored.
- Data Flows (Arrows): Directed paths showing the movement of data.
π Core Architectural & Access Control Rules
The DFD is designed to enforce the two main technical characteristics of your platform:
1. Unified Database Store (MongoDB)
All persistent data in FakeShield is stored within a single logical MongoDB Database. It is segmented into the following collection stores:
users: Stores usernames, password hashes, and subscription status (freeorpaid).text_forensics: Stores text scan logs and detailed model outputs.image_forensics: Stores image metadata audits, Grad-CAM overlays, and ELA records.audio_forensics: Stores voice cloning results, spectrograms, and pitch metrics.video_forensics: Stores frame-by-frame landmark tracking and consistency telemetry.
2. Tiered Access Permissions
- AI Text Lab (Process 2.0): Open to both Free and Paid/Subscription tiers. Users only need to register and log in to scan text.
- AI Image Lab (Process 3.0), AI Audio Lab (Process 4.0), and AI Video Lab (Process 5.0): Restricted to Paid/Subscription tier accounts. Free users are blocked with a
403 Forbiddenerror. They must use the Upgrade Handler (Process 8.0) to gain access.
π¨ Level 1 DFD: System Overview
The Level 1 DFD displays the macro-level subsystems of FakeShield, showing how data streams between user inputs, the security routers, the background status tracker, and the backend MongoDB database.
graph TD
%% Define Styles and Shapes for DFD Standards
classDef entity fill:#1e1b4b,stroke:#818cf8,stroke-width:2px,color:#fff;
classDef process fill:#0f172a,stroke:#38bdf8,stroke-width:2px,color:#fff;
classDef datastore fill:#18181b,stroke:#a1a1aa,stroke-width:2px,color:#fff;
%% External Entities (Rectangles)
User["π€ External Entity: User / Client (React UI)"]:::entity
SMTP["π¨ External Entity: SMTP Mail Server"]:::entity
OAuth["π External Entity: OAuth Provider (Google/GitHub)"]:::entity
%% Process Nodes (Rounded Rectangles / Circles)
P1["βοΈ Process 1.0:<br/>Authentication & Profile Manager"]:::process
P2["βοΈ Process 2.0:<br/>AI Text Lab (Free Tier Access)"]:::process
P3["βοΈ Process 3.0:<br/>AI Image Lab (Subscription Plan Only)"]:::process
P4["βοΈ Process 4.0:<br/>AI Audio Lab (Subscription Plan Only)"]:::process
P5["βοΈ Process 5.0:<br/>AI Video Lab (Subscription Plan Only)"]:::process
P6["βοΈ Process 6.0:<br/>Forensic PDF Report Builder"]:::process
P7["βοΈ Process 7.0:<br/>Dashboard & Analytics Aggregator"]:::process
P8["βοΈ Process 8.0:<br/>Subscription & Payment Upgrade Handler"]:::process
%% Unified MongoDB Data Store (Parallel Lines / Cylinders)
subgraph D1["πΎ Data Store 1.0: Unified MongoDB Database"]
D1a["D1.1: Users Collection"]:::datastore
D1b["D1.2: Text Forensics Collection"]:::datastore
D1c["D1.3: Image Forensics Collection"]:::datastore
D1d["D1.4: Audio Forensics Collection"]:::datastore
D1e["D1.5: Video Forensics Collection"]:::datastore
end
%% In-Memory Cache for Status Tracking
D6["πΎ Data Store 2.0:<br/>In-Memory Job Cache (RAM)"]:::datastore
%% -------------------------------------------------------------
%% Data Flows
%% -------------------------------------------------------------
%% Authentication flows
User -->|Local credentials / Signup info| P1
User -->|OAuth Sign In Trigger| P1
P1 <-->|OAuth Verification token exchange| OAuth
P1 -->|Issue JWT session token & profile details| User
P1 <-->|Read / Write user profile parameters| D1a
%% Billing & Upgrade flows
User -->|QR payment code & Upgrade request| P8
P8 -->|Upgrade status / tier confirmation| User
P8 -->|Update user status to subscription_tier=paid| D1a
%% Text Lab (Free Tier Flow)
User -->|Submit Text & JWT token (Free or Paid)| P2
P2 -->|Acknowledge request & return Job ID| User
P2 -->|Initialize job status| D6
P2 -->|Background Worker runs models| P2
P2 -->|Update job status to complete & write results| D6
User -->|Poll status (Job ID, JWT)| P2
D6 -->|Read current job status & outputs| P2
P2 -->|Return Text Analysis details| User
P2 -->|Persist text scan outputs| D1b
P2 -->|Dispatch warning email when threat=CRITICAL| SMTP
%% Image Lab (Subscription Plan Flow)
User -->|Submit Base64 Image, Grad-CAM request, JWT token| P3
P3 -->|Validate Subscription Status| P3
D1a -->|Verify tier is paid| P3
P3 -->|Synchronous ELA, spectral analysis & DINOv2 metrics| P3
P3 -->|Persist image scan metrics| D1c
P3 -->|Return Image forensics split maps & scores (if paid)| User
%% Audio Lab (Subscription Plan Flow)
User -->|Submit Audio WAV/MP3 file, JWT token| P4
P4 -->|Validate Subscription Status| P4
D1a -->|Verify tier is paid| P4
P4 -->|Acknowledge request & return Job ID (if paid)| User
P4 -->|Initialize job status| D6
P4 -->|Background Worker runs WavLM & AST| P4
P4 -->|Update job status to complete & write results| D6
User -->|Poll status (Job ID, JWT)| P4
D6 -->|Read current job status & outputs| P4
P4 -->|Return Audio analysis metrics| User
P4 -->|Persist audio scan metrics| D1d
%% Video Lab (Subscription Plan Flow)
User -->|Submit Video MP4 file, JWT token| P5
P5 -->|Validate Subscription Status| P5
D1a -->|Verify tier is paid| P5
P5 -->|Acknowledge request & return Job ID (if paid)| User
P5 -->|Initialize job status| D6
P5 -->|Background Worker checks landmark consistency| P5
P5 -->|Update job status to complete & write results| D6
User -->|Poll status (Job ID, JWT)| P5
D6 -->|Read current job status & outputs| P5
P5 -->|Return Video consistency metrics| User
P5 -->|Persist video scan metrics| D1e
%% PDF Report Builder flows
User -->|Request report download (Scan ID + JWT)| P6
P6 -->|Downloadable PDF binary stream| User
D1b -->|Fetch text results| P6
D1c -->|Fetch image results| P6
D1d -->|Fetch audio results| P6
D1e -->|Fetch video results| P6
%% Dashboard and Stats flows
User -->|Request dashboard overview & statistics| P7
P7 -->|Aggregated scan counts, history logs| User
D1a -->|Verify user's billing/tier metadata| P7
D1b -->|Query text scans list| P7
D1c -->|Query image scans list| P7
D1d -->|Query audio scans list| P7
D1e -->|Query video scans list| P7
π¬ Level 2 DFD: AI Image Forensic Lab (Process 3.0)
A Level 2 DFD zooms in on a specific Level 1 Process to map out its internal steps. The diagram below details the inner workings of the AI Image Forensic Lab (Process 3.0), demonstrating how base64 inputs are sanitized, evaluated for quick-veto watermarks, processed through a thread pool, and combined into a final confidence-weighted decision.
graph TD
%% Define Styles
classDef entity fill:#1e1b4b,stroke:#818cf8,stroke-width:2px,color:#fff;
classDef process fill:#0f172a,stroke:#38bdf8,stroke-width:2px,color:#fff;
classDef datastore fill:#18181b,stroke:#a1a1aa,stroke-width:2px,color:#fff;
%% External Entity
User["π€ External Entity: User / Client (React UI)"]:::entity
%% Sub-processes of Process 3.0
P31["βοΈ Process 3.1:<br/>Base64 Decoder & Format Sanitizer"]:::process
P32["βοΈ Process 3.2:<br/>Watermark & C2PA Metadata Auditor<br/>(Fast Short-Circuit Checks)"]:::process
P33["βοΈ Process 3.3:<br/>Forensic Signal Extraction Pipeline<br/>(Parallel Thread Pool)"]:::process
P34["βοΈ Process 3.4:<br/>Confidence-Weighted Fusion Engine<br/>(Veto Rules & Decision Logic)"]:::process
P35["βοΈ Process 3.5:<br/>MongoDB Image Scan Logger"]:::process
%% Data Stores
D1a["πΎ D1.1: Users Collection (MongoDB)"]:::datastore
D1c["πΎ D1.3: Image Forensics (MongoDB)"]:::datastore
%% -------------------------------------------------------------
%% Data Flows (Process 3.0 Breakdown)
%% -------------------------------------------------------------
%% Input and Authorization
User -->|1. Base64 Image string + JWT token| P31
D1a -->|2. Verify user has paid/subscription status| P31
%% Decoding & Magic number check
P31 -->|3. Cleaned Image Byte Stream (WAV/PNG/JPG checks)| P32
%% Short circuit evaluation (Gemini Watermark / C2PA metadata)
P32 -->|4a. Watermark/C2PA Detected: AI Veto (1.0 Prob, 100% Conf)| P34
P32 -->|4b. No Short-circuit: Pass bytes to ML extractors| P33
%% Deep Extraction Pipeline
subgraph P33Sub["Forensic Extraction Modules"]
P33 -->|FFT Spectrum| FFT["FFT Anomaly Extractor"]
P33 -->|DINOv2 ViT CLS| DINO["RIGID Perturbation Evaluator"]
P33 -->|umm-maybe & dima806| Neural["Neural Classifier Ensemble"]
P33 -->|Error Level Analysis| ELA["ELA Compressor"]
P33 -->|Wiener Filter Residual| PRNU["PRNU Noise Auditor"]
P33 -->|EXIF Auditor| EXIF["EXIF Metadata Inspector"]
P33 -->|CLIP Prompt Align| CLIP["CLIP Semantic Evaluator"]
end
%% Outputs from extraction to decision engine
FFT -->|5. Radial average slope & colormap| P34
DINO -->|5. Cosine similarity shifts| P34
Neural -->|5. Combined classifier weights| P34
ELA -->|5. Recompression error variance map| P34
PRNU -->|5. Isotropy residual metrics| P34
EXIF -->|5. Software tagging blacklist results| P34
CLIP -->|5. Prompt similarity vectors| P34
%% Decision, Logging and Return
P34 -->|6. Unified Diagnostics payload (Verdicts, Heatmaps)| P35
P35 -->|7. Persist document to image_forensics collection| D1c
P34 -->|8. Final Analysis report (JSON response)| User
π Detailed Level 2 Data Flow Specifications (Process 3.0)
| Step ID | Source | Destination | Data Elements Transmitted | Purpose / Code Reference |
|---|---|---|---|---|
| 3.0.1 | User | Process 3.1 | Base64 Image String, Grad-CAM Flag, JWT | User triggers image audit. Check authorization from users collection. |
| 3.0.2 | Process 3.1 | Process 3.2 | Sanitized Binary Bytes | Decodes Base64, strips padding, validates magic headers (JPEG FF D8 FF, PNG 89 50 4E 47, etc.). |
| 3.0.3 | Process 3.2 | Process 3.4 | AI Veto (1.00 Prob, 100% Conf) | Short-Circuit Route: Bypasses heavy processing if Google Gemini watermark astroid or C2PA c2pa.genai is found. |
| 3.0.4 | Process 3.2 | Process 3.3 | Verified Byte Stream | Standard Route: If no watermark is found, routes bytes to thread pool for feature extraction. |
| 3.0.5 | Process 3.3 (Modules) | Process 3.4 | Individual Scores, spectral graphs, ELA images | Extracts 7 signals (FFT, DINOv2, ELA, PRNU, Neural, EXIF, CLIP) in parallel. |
| 3.0.6 | Process 3.4 | Process 3.5 | Final Verdict, Threat Level, Heatmaps | Merges signals using confidence weights. If CLIP Semantic > 0.92, triggers digital art veto. |
| 3.0.7 | Process 3.5 | D1.3 Store | Scan document schema | Logs scan results to MongoDB image_forensics collection. |
| 3.0.8 | Process 3.4 | User | Final JSON analytical results | Delivers ELA diff overlay, Spectral power plots, and gauges back to the frontend. |
ποΈ Step-by-Step Drawing Guide for Project Presentation
To explain the Level 2 DFD in your project slides or viva:
- Emphasize the Short-Circuit (Process 3.2): Standard ML models are computationally heavy. Explain that Process 3.2 checks for Gemini astroid watermarks and C2PA credentials to immediately output a verdict of
AI-Generatedwithout consuming ML thread time. - Describe the Parallelism (Process 3.3): Explain that the system spawns a
ThreadPoolExecutorto extract seven separate forensic signals (FFT, RIGID/DINOv2, Neural Ensemble, ELA, PRNU, EXIF, CLIP) concurrently, preventing CPU execution block. - Explain the Weighted Fusion (Process 3.4): Highlight how the engine resolves conflicts. If deep classifiers report "human" due to texture smoothing, the CLIP Semantic veto overrides the neural model to correctly classify AI-generated illustrations.