Skip to content

applymytech/elaraSign

Repository files navigation

elaraSign

Content Provenance Standard + Public Signing Service

License: MIT

🌐 Live Service: sign.openelara.org


🎯 What is elaraSign?

elaraSign is a content provenance standard that embeds generation metadata into files. It answers the question: "How was this content created?"

4-Layer Protection

Layer Name Technique Survives
1 Billboard EXIF/PNG metadata Basic sharing (easily stripped)
2 DNA LSB steganography Lossless only
3 The Spread DCT spread spectrum JPEG, screenshots, cropping
4 Forensic AES-256 encrypted Same as The Spread

πŸ“– Full Architecture Docs

The Standard

Every signed file contains:

  • Generation Method: ai, human, mixed, unknown
  • Generator: Which tool/app created it
  • Timestamp: When it was created
  • Integrity Hash: Proof content hasn't been modified
  • Forensic Data: Encrypted accountability (IP, fingerprint) - operator only

⚠️ Brutal Honesty

What SURVIVES (The Spread layer):

  • βœ… JPEG compression (>50% quality)
  • βœ… Screenshots
  • βœ… Cropping
  • βœ… Social media upload
  • βœ… Format conversion

What DOES NOT survive:

  • ❌ Heavy blur or noise
  • ❌ Extreme compression (<50% JPEG)
  • ❌ Rotation/perspective transforms
  • ❌ AI regeneration (img2img)
  • ❌ Print and re-scan
  • ❌ Dedicated removal attacks

This is a deterrent and accountability system, not magic.

The Service

This repository provides a free public signing service at sign.openelara.org:

  • Upload an image β†’ Get it signed with provenance metadata
  • Upload a signed image β†’ Verify its authenticity and view metadata

🌍 Why This Matters

TODAY: Anyone can claim any image is real or AI-generated. No proof either way.

WITH ELARASIGN: Generation method is embedded at creation time.
                When adopted, AI images always show their provenance.
                Transparency becomes the default, not the exception.

The Trust Model

elaraSign doesn't detect AI images - it records provenance at generation time.

  • βœ… AI generators that adopt elaraSign β†’ Always signed as AI
  • βœ… Human artists can sign their work β†’ Proves human creation
  • ⚠️ Bad actors can still lie β†’ But they can't forge a legitimate signature
  • 🎯 Goal: Make signing ubiquitous, so unsigned = suspicious

When image APIs adopt this standard, the problem solves itself.


πŸ“‹ Supported Content

Type Status Notes
Images βœ… Ready PNG, JPEG, WebP
PDF πŸ”œ Planned Metadata in document properties
Video πŸ”œ Planned Frame-level + file-level signing
Audio πŸ”œ Planned Waveform embedding

Current Focus: Images - AI images are trivial to create and impossible to distinguish. We solve this first.


πŸ”§ How It Works

Signing (v2.0 Standard)

  1. Metadata created: Generation method, timestamp, model, etc.
  2. Hashes computed: Content hash + metadata hash (SHA-256)
  3. Signature embedded: 48-byte compact binary in 3 locations
  4. PNG chunks added: Full metadata in standard PNG text chunks

Multi-Location Redundancy

β”Œβ”€β”€β”€β”€β”€β”€β”β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Œβ”€β”€β”€β”€β”€β”€β”
β”‚ LOC1 β”‚                                 β”‚ LOC2 β”‚
β”‚ TL   β”‚                                 β”‚ TR   β”‚
β””β”€β”€β”€β”€β”€β”€β”˜                                 β””β”€β”€β”€β”€β”€β”€β”˜
β”‚                                               β”‚
β”‚              YOUR IMAGE                       β”‚
β”‚                                               β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Œβ”€β”€β”€β”€β”€β”€β”β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                 β”‚ LOC3 β”‚                     β”‚
β”‚                 β”‚ BC   β”‚                     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β””β”€β”€β”€β”€β”€β”€β”˜β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Any ONE location surviving = Valid signature
Trolls must crop ALL THREE corners to remove provenance

🌐 API Reference

Sign an Image

POST /api/sign
Content-Type: multipart/form-data

file: <image file>
generator: "my-app" (optional)
method: "ai" | "human" | "mixed" (optional, default: "ai")

Verify an Image

POST /api/verify
Content-Type: multipart/form-data

file: <image file>

Download Signed Image

GET /api/download/:sessionId

Get Sidecar JSON

GET /api/sidecar/:sessionId

πŸ—οΈ Architecture

elaraSign/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ core/           # THE signing standard (portable)
β”‚   β”‚   β”œβ”€β”€ signing-core.ts
β”‚   β”‚   └── signing-core.test.ts
β”‚   β”œβ”€β”€ cloud/          # Cloud Run service
β”‚   β”‚   β”œβ”€β”€ server.ts
β”‚   β”‚   └── routes/
β”‚   └── local/          # CLI tool (future)
β”œβ”€β”€ web/                # Demo UI
└── deploy/             # Cloud Run deployment

Code Flow

elaraSign/src/core/signing-core.ts  ← CANONICAL SOURCE
    β”‚
    β”‚ COPY to (not import):
    β”‚
    β”œβ”€β”€β–Ί openElara Desktop (src/lib/)
    └──► openElaraCloud (src/lib/)

πŸš€ Development

# Install dependencies
npm install

# Run tests (12/12 should pass)
npm test

# Start local server
npm run dev
# Server at http://localhost:3010

πŸ“‹ Technical Details

Signing Format: v2.0

  • 48-byte compact binary embedded in image pixels
  • 3 locations: top-left, top-right, bottom-center
  • Crop-resilient: Any 1 location surviving = valid signature
  • Metadata: content hash, meta hash, timestamp, generator, method

Supported Formats

Format Sign Verify Notes
PNG βœ… βœ… Full support
JPEG βœ… βœ… Lossy compression may degrade some locations
WebP βœ… βœ… Full support

🌌 Part of the Elara Universe

Project Type Signing
elaraSign Public Service Reference implementation (this repo)
openElara Desktop App Embedded signing
openElaraCloud Cloud App Embedded signing

All projects use identical copies of signing-core.ts - this repo is the source of truth.


πŸ“„ License

MIT License - Use this standard freely. The more adoption, the better for everyone.


"Transparency is not optional. It's the foundation of trust."

About

A standalone elaraSign signature tool for image, video and pdf files.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published