NetBurner 3.5.6
PDF Version
Key Blob

Key Blob Application

Overview

The Key Blob application is a device-locking security utility that generates a unique MD5-based key blob to bind an application to a specific device. This creates a hardware-specific signature that can be used for software licensing and device authentication purposes.

Purpose

This application creates an MD5 context that can be used to lock an application to a particular device. The generated key blob serves as a unique identifier that ties software to specific hardware, providing a form of copy protection and device authentication.

How It Works

  1. Initialization: The application initializes the network stack and waits for an active network connection
  2. MD5 Context Creation: Creates an MD5 context using a secret signing text
  3. Data Processing: Processes the secret text in 64-byte chunks through the MD5 algorithm
  4. Padding: When the secret text is shorter than 64 bytes, it pads the remaining space with incremental values
  5. Key Blob Generation: Outputs the MD5 context state as C code that can be compiled into other applications

Key Components

Secret Signing Text

const char *YourSecretSigningText = "This should be your company secret message";

This should be replaced with your company's unique secret message for generating device-specific keys.

MD5 Processing

  • Processes the secret text in 64-byte blocks
  • Pads remaining space with incremental byte values (0, 1, 2, ...)
  • Updates the MD5 context with the processed data

Output Format

The application generates C code output containing:

  • ctx_state[4]: MD5 context state array
  • ctx_count[2]: MD5 context count array
  • Buffer declarations for SSL/TLS support (conditional)
  • Complete MD5_CTX constructor call

Usage

  1. Customize Secret Text: Replace YourSecretSigningText with your company's secret message
  2. Compile and Run: Build the application for your target device
  3. Capture Output: The application will print the key blob as C code to the console
  4. Integration: Copy the generated code into your main application for device locking

Example Output

/*Your keyblob is:*/
uint32_t ctx_state[4]={1234567890u,987654321u,555666777u,111222333u};
uint32_t ctx_count[2]={128u,0u};
unsigned char buf[64];
#ifdef SSL_TLS_SUPPORT
unsigned char inbuf[64];
unsigned char outbuf[64];
#endif
MD5_CTX YourCompanySecret(ctx_state,ctx_count,buf
#ifdef SSL_TLS_SUPPORT
,inbuf,outbuf
#endif
);

Security Considerations

  • The secret signing text should be kept confidential
  • Each device will generate a unique key blob due to hardware differences
  • The generated key blob should be integrated into your application's authentication system
  • Consider additional security measures for production deployments

Dependencies

  • Network stack initialization
  • MD5 hashing library
  • System diagnostics (optional, recommended to disable in production)

Network Requirements

  • The application waits for DHCP address assignment
  • Network connectivity is required during initialization
  • Timeout is set to 5 seconds for network activation

Production Notes

  • Consider disabling EnableSystemDiagnostics() for production builds
  • Ensure the secret signing text is properly secured
  • Test the key blob integration thoroughly before deployment
  • The application runs in an infinite loop after generating the key blob

Application Flow

  1. Initialize network stack
  2. Enable system diagnostics (development only)
  3. Wait for active network connection
  4. Initialize MD5 context
  5. Process secret signing text through MD5
  6. Generate and output key blob as C code
  7. Enter infinite loop

This key blob system provides a foundation for device-specific software licensing and authentication mechanisms.