Hello AllStarLink community,
I'm working on integrating cryptographic authentication into app_rpt to enable secure remote management of repeaters. I'd like to share the concept and get feedback before submitting a pull request.
Background
I maintain gr-linux-crypto, an open-source cryptographic library for GNU Radio that provides Linux kernel keyring integration and Brainpool elliptic curve cryptography. The library has undergone extensive testing including formal verification and fuzzing (805+ million test executions).
The Problem
Currently, remote repeater management often requires physical access to sites, sometimes in difficult or dangerous conditions. While AllStarLink enables remote connectivity, there's no cryptographic authentication for control operator commands or configuration changes.
Proposed Solution
Add optional cryptographic authentication to app_rpt for:
-
Control Operator (COP) commands issued remotely
-
Configuration changes to repeater settings
The implementation uses:
-
Brainpool ECC for digital signatures (ECDSA)
-
Linux kernel keyring for secure key storage
-
Optional hardware security module support (Nitrokey, TPM)
Key Design Principles
-
Completely optional - Authentication is disabled by default
-
Backward compatible - No breaking changes to existing deployments
-
Gradual adoption - Three modes: disabled, optional, mandatory
-
No protocol changes - Authentication data embedded in existing IAX2 frames
Implementation Approach
The integration adds gr-linux-crypto as an optional dependency. When authentication is disabled (the default), app_rpt behaves exactly as it does today. When enabled, commands can be cryptographically signed and verified before execution.
Configuration example:
[general]
authentication_mode = disabled ; disabled (default), optional, mandatory
Technical Details
-
Challenge-response authentication using ECDSA signatures
-
Timestamp validation to prevent replay attacks
-
Per-node authorization policies
-
Audit logging of all authenticated operations
-
Build-time optional dependency (app_rpt can be built with or without authentication support)
Current Status
I'm preparing to fork app_rpt and create the integration layer. The cryptographic library is complete and tested, but has not been tested with actual radio hardware. The integration work can be done and tested in software before requiring RF validation.
Questions for the Community
-
Is there interest in cryptographic authentication for remote repeater management?
-
Are there specific COP commands or configuration parameters that should be prioritized?
-
What would be the preferred key management approach for your use case?
-
Any concerns about the proposed backward-compatible implementation?
Links
-
gr-linux-crypto repository: https://github.com/Supermagnum/gr-linux-crypto
-
Test results: https://github.com/Supermagnum/gr-linux-crypto/blob/master/tests/TEST_RESULTS.md
-
Fuzzing results: https://github.com/Supermagnum/gr-linux-crypto/blob/master/security/fuzzing/fuzzing-results.md
I'm open to feedback and suggestions before proceeding with the integration work. If there's interest from the community, I'll create a more detailed technical specification and submit a pull request for review.
Thanks for your time.