This analysis identifies significant ambiguities, clarity issues, risks, consistency problems, and implementation challenges in the EEBUS Technical Specification - SHIP Requirements for Installation Process V1.0.0. The document contains numerous critical issues that could lead to incompatible implementations, security vulnerabilities, and testing difficulties.
Issue: The specification states devices "SHALL start with a DHCP-client active" but doesn't specify:
- Timeout duration for DHCP attempts before falling back to link-local
- Whether both IPv4 and IPv6 DHCP should be attempted simultaneously
- Order of preference when multiple addresses are obtained
Example: A device could wait 30 seconds or 5 minutes for DHCP, leading to inconsistent user experiences.
Impact: Implementation variance, poor user experience, interoperability issues.
Issue: The prohibition of "general category" definitions is vague:
Characters belonging to the so-called "general category" definitions "Control", "Format", and "Separator"
Problems:
- No reference to which Unicode standard version
- "Separator" category includes various types (Space, Line, Paragraph)
- Unclear if all subcategories are prohibited
Example: Is U+00A0 (non-breaking space) allowed? It's a separator but might be needed in brand names.
Issue: The specification uses "SHOULD" for the new SHIP ID format but then has conflicting requirements:
- [SRIP-220/4]: "SHOULD NOT be changed" for existing devices
- [SRIP-220/5]: "SHALL use the new SHIP ID format" for new devices
Confusion: What about firmware updates to existing devices that add new functionality?
Issue: Categories are too broad and overlapping:
- Category 2: "Energy Management System" - could include simple schedulers or complex AI systems
- Category 5: "Inverter (PV/battery/hybrid)" - doesn't distinguish between types
- No category for energy storage systems without inverter functionality
Example: A battery system with integrated EMS and inverter - categories 2,5 or just 5?
Issue: "The URL to the certificate file SHALL be unique for a given device"
Ambiguity:
- Unique per device instance or per device model?
- Can the URL change over time?
- What happens if the certificate is renewed?
Issue: Mixed use of SHALL/SHOULD for related requirements:
- [SRIP-220/10]: "SHALL be set to the name of the device's brand"
- [SRIP-220/12]: "SHOULD be set to a human-readable string with the device's type"
Problem: Why is brand mandatory but type optional when both aid device identification?
Issue: Different presence requirements for the same data:
- TXT record: Some fields mandatory, others recommended
- QR code: Different set of optional/mandatory fields
- No clear mapping table between the two
Example: "serial" is recommended in TXT but appears optional in QR code.
Issue:
- [SRIP-310/16]: "SHALL use the 'ENDSHIP;' mark"
- [SRIP-310/17]: "SHALL NOT consider it an error if this mark is absent"
Problem: Creates permanent ambiguity - is it required or not?
Issue: [SRIP-230/1] requires announcing "as long as it is able to establish a further SHIP connection"
Problems:
- No mechanism specified to determine connection capacity
- Resource consumption for continuous mDNS announcements
- Network flooding potential in large installations
Example: 100 devices continuously announcing could overwhelm network resources.
Issue: Multiple certificate formats and curves supported:
- secp256r1 (mandatory)
- brainpoolP256r1 (optional)
- brainpoolP384r1 (optional)
Problems:
- No clear fallback mechanism specified
- Complexity of managing multiple certificates per device
- SKI calculation differs per curve
Issue: 2-minute maximum for auto-accept mode
Problems:
- No specification of retry mechanisms
- No guidance on user notification
- Potential for failed installations if user misses window
Example: Installer starts process, gets interrupted, returns after 3 minutes - installation fails.
Issue: References to SHIP handshake phases without complete state diagrams
Problems:
- Error state transitions not defined
- Timeout handling not specified
- Recovery mechanisms unclear
Issue: "Only 'none' PIN verification state supported"
Risk: Reduces security to certificate-only authentication, vulnerable to:
- Certificate theft
- Man-in-the-middle attacks during initial pairing
- No second factor authentication
Issue: Annex A.3 describes post-trust but warns about "careful implementation"
Risks:
- Accepting unknown certificates creates attack window
- No rate limiting specified
- No audit trail requirements
Issue: Certificate URLs in QR codes with no integrity verification
Risks:
- DNS hijacking could serve malicious certificates
- No requirement for HTTPS certificate pinning
- No checksum or signature verification
Example: Attacker could compromise certificate server and serve different certificates.
Issue: References to SHIP 1.0.1 and 1.1.0 without clear compatibility rules
Problems:
- No test scenarios for version mismatch
- Unclear fallback behavior
- No minimum version requirements specified
Issue: No maximum size specified for TXT records
Problems:
- DNS implementations have varying limits
- Some routers/firewalls truncate large TXT records
- No guidance on handling truncation
Example: Full TXT record with all fields might exceed 512 bytes, causing issues with some DNS servers.
Issue: "Future key-value pairs may be added" with instruction to "skip unknown content"
Problems:
- No versioning mechanism for QR format
- Parser implementation variance
- No test vectors provided
Issue: Complex IP configuration requirements without test scenarios
Missing Tests:
- DHCP timeout behavior
- Dual-stack IPv4/IPv6 scenarios
- Link-local fallback timing
- Static IP configuration validation
Issue: No error codes or standardized error messages defined
Impact:
- Difficult to diagnose connection failures
- Poor user experience
- Challenging support scenarios
Issue: Many "SHOULD" requirements without implementation guidance
Examples:
- How to "offer the possibility" for static IP
- How to implement "sorting by type" in device lists
- How to handle UTF-8 encoding errors
Issue: References to external standards without version locking
Problem: UTF-8 from ISO10646 could change, affecting implementations
Issue: Requirement to use IANA PEN without guidance on:
- Obtaining IANA PEN for small manufacturers
- Handling acquisitions/mergers
- Managing sub-brands
Issue: NOMINALPOWER format "-8000,11000" is counterintuitive
Problems:
- Negative for production, positive for consumption
- No units in the format
- No provision for variable power devices
Example: Heat pump with variable consumption 500W-5000W - how to represent?
Issue: Devices must self-categorize without clear rules
Example Scenarios:
- Smart plug with energy monitoring - categories 2,6,7?
- EV charger with integrated meter - categories 3,7?
- Hybrid inverter with EMS - categories 2,5?
- Define clear timeouts for all operations (DHCP, auto-accept, connection attempts)
- Provide implementation guidance for ambiguous requirements
- Create comprehensive test suite with test vectors
- Add version negotiation mechanism for QR codes
- Specify error handling and diagnostic requirements
- State machine diagrams for all connection scenarios
- Example implementations for critical sections
- Compatibility matrix for version interactions
- Security best practices guide
- Conformance test suite with pass/fail criteria
- Interoperability test scenarios
- Security penetration test cases
- Performance benchmarks
The specification contains numerous ambiguities and gaps that will likely lead to incompatible implementations. The mixing of normative and informative content, inconsistent requirement levels, and lack of clear implementation guidance pose significant risks. A revision addressing these issues is strongly recommended before widespread implementation.
The most critical issues are:
- Ambiguous requirements that will cause implementation variance
- Security vulnerabilities from underspecified authentication
- Missing error handling and diagnostic capabilities
- Insufficient testing guidance for validation
- Compatibility concerns between versions and implementations
These issues should be addressed in a revision to ensure successful, secure, and interoperable implementations of the SHIP installation process.