Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

gradientgeeks/aegis

Open more actions menu

Repository files navigation

Aegis Security Environment - IIEST UCO BANK HACKATHON 2025

Overview

Aegis Security Environment is an enterprise-grade, multi-layered security platform designed to protect mobile banking applications from fraud and unauthorized access. It implements advanced cryptographic protocols, device fingerprinting, and policy-based security enforcement to ensure end-to-end protection of financial transactions.


Table of Contents


Architecture Overview

flowchart TD
    subgraph MobileApp[Mobile Application]
        SFEClient[SFE Client SDK]
        DemoBankApp[Demo Banking App]
    end

    subgraph BankBackend[Demo Bank Backend]
        Auth[User Authentication]
        Accounts[Accounts & Transactions]
        Integration[Aegis API Integration]
    end

    subgraph AegisAPI[Aegis Security API]
        Controllers[Controllers]
        Services[Services]
        Repositories[Repositories]
        Entities[Entities]
    end

    subgraph DataLayer[Data Layer]
        PostgreSQL[(PostgreSQL/TiDB)]
        Redis[(Redis Cache)]
    end

    subgraph Admin[Admin & Monitoring]
        Portal[Admin Portal - React]
        Dashboard[Bank Dashboard - React]
    end

    SFEClient -->|Provision/Sign| AegisAPI
    DemoBankApp --> BankBackend --> AegisAPI
    AegisAPI --> DataLayer
    Portal --> AegisAPI
    Dashboard --> BankBackend
Loading

System Components

1. Aegis Security API (/aegis)

The core backend providing cryptographic services and device management.

Key Features:

  • Device registration and provisioning
  • HMAC-SHA256 signature validation
  • Policy-based security enforcement
  • Real-time fraud detection
  • Device fingerprinting and tracking
  • Admin management interface

Architecture Layers:

  • Controller Layer DeviceController, AuthController, AdminController, PolicyController, FraudController
  • Service Layer CryptographyService, DeviceRegistrationService, SignatureValidationService, PolicyEnforcementService, DeviceFraudDetectionService, IntegrityValidationService
  • Repository Layer (Spring Data JPA) DeviceRepository, UserRepository, PolicyRepository, DeviceFingerprintRepository, PolicyViolationRepository
  • Entity Layer Device, DeviceFingerprint, Policy, PolicyRule, PolicyViolation

2. Demo Bank Backend (/backend-app)

Simulates a bank backend system integrated with Aegis.

Key Features:

  • User authentication and session management
  • Account and balance tracking
  • Transaction processing with signature validation
  • Device rebinding support
  • KYC data management

3. Android Security Framework (/sfe)

3.1 SFE Client SDK (/sfe/sfe-client)

Headless Android library providing cryptographic and security services.

Key Features:

  • Secure device provisioning
  • HMAC-SHA256 signing
  • AES-256 encryption & RSA envelope encryption
  • Android Keystore integration
  • SecureVaultService for sensitive data
  • Device fingerprinting

Core Classes:

AegisSfeClient - Main SDK interface
SecureKeyStorage - Android Keystore wrapper
RequestSigningService - HMAC signing implementation
SecureVaultService - Encrypted storage service
DeviceFingerprintCollector - Device characteristic gathering
UserMetadataCollector - User context collection

3.2 Demo Banking App (/sfe/app)

Demo Android app showcasing SDK integration.

Features:

  • Biometric authentication
  • Account dashboard
  • Secure transfers & transaction history
  • Device provisioning UI
  • Jetpack Compose UI

4. Admin Portal (/aegis-portal)

React-based administrative dashboard.

Features:

  • Device management
  • Policy configuration
  • Fraud detection analytics
  • Real-time alerts & audit logs

5. Bank Dashboard (/bank-dashboard)

React-based operations monitoring dashboard.


Security Features

Cryptographic Implementation

1. Key Generation

SecureRandom secureRandom = new SecureRandom();
String secretKey = new BigInteger(256, secureRandom).toString(32);

2. HMAC-SHA256 Signing

String stringToSign = method + "|" + path + "|" + timestamp + "|" + nonce + "|" + body;
Mac mac = Mac.getInstance("HmacSHA256");
SecretKeySpec spec = new SecretKeySpec(secretKey.getBytes(), "HmacSHA256");
mac.init(spec);
String signature = Base64.getEncoder().encodeToString(mac.doFinal(stringToSign.getBytes(StandardCharsets.UTF_8)));

3. Secure Storage (Android)

  • Android Keystore
  • AES-256-GCM encryption
  • RSA-2048 key wrapping
  • Envelope encryption pattern

Device Security

  • Fingerprinting: Hardware, software, network, display parameters
  • Policy Enforcement: Real-time rules & violations
  • Fraud Detection: Fingerprint changes, geo anomalies, patterns, biometrics

Technology Stack

  • Backend: Spring Boot 3.5.3 (Java 21), PostgreSQL/TiDB, Redis, JWT, Gradle
  • Android: Kotlin, Jetpack Compose, MVVM, Retrofit, Hilt
  • Web: React 18, TypeScript, Redux Toolkit, Material-UI, Axios

Security Flow

1. Device Registration

App → Backend → Aegis API → Device ID + Secret → Keystore

2. Secure Transaction

App Signs (HMAC) → Backend Validates via Aegis → Result

3. Policy Enforcement

Request → Fingerprint → Policy Rules → Risk Score → Allow/Deny

Installation & Setup

Prerequisites

  • Java 21
  • Android Studio
  • Node.js 18+
  • PostgreSQL / TiDB
  • Redis

Quick Start

git clone https://github.com/gradientgeeks/aegis.git
cd aegis
./gradlew bootRun

Database Setup

CREATE DATABASE aegis_security_v3;

Run migrations (auto on first boot). Optional demo data:

./gradlew bootRun --args="--spring.profiles.active=demo"

API Documentation

Device Registration

POST /api/device/register
Content-Type: application/json

{
  "clientId": "UCOBANK_PROD_ANDROID",
  "registrationKey": "REG-KEY-123",
  "integrityToken": "play-integrity-token",
  "deviceFingerprint": { ... }
}

Signature Validation

POST /api/device/validate-signature
Headers:
  X-Device-Id: device-uuid
  X-Signature: base64-hmac-signature
  X-Timestamp: 1234567890
  X-Nonce: unique-nonce

{
  "data": "request-body"
}

Full docs: /api/swagger-ui.html


Development

Backend

./gradlew build
./gradlew test
./gradlew jacocoTestReport

Android

./gradlew assembleDebug
./gradlew assembleRelease
./gradlew test
./gradlew connectedAndroidTest

Deployment

Docker

docker build -t aegis-api ./aegis
docker build -t bank-backend ./backend-app
docker-compose up -d

Azure

./deploy-azure-cloud-build.sh
./monitor-azure.sh

Environment Variables

SPRING_DATASOURCE_URL=jdbc:postgresql://localhost:5432/aegis
SPRING_DATASOURCE_USERNAME=aegis_user
SPRING_DATASOURCE_PASSWORD=secure_password
SPRING_REDIS_HOST=localhost
SPRING_REDIS_PORT=6379
JWT_SECRET=your-secret-key

Security Considerations

  • Enforce HTTPS/TLS
  • Rate limiting & audit logging
  • Key rotation with HSM storage
  • Fraud monitoring & anomaly detection
  • OWASP MASVS compliance

License

MIT License


Version: 1.0.7

Last Updated: September 2025

Maintained by: Gradient Geeks

About

Aegis Security Environment is an enterprise-grade, multi-layered security platform designed to protect mobile banking applications from fraud and unauthorized access. It implements advanced cryptographic protocols, device fingerprinting, and policy-based security enforcement to ensure end-to-end protection of financial transactions.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Morty Proxy This is a proxified and sanitized view of the page, visit original site.