Common questions about implementing and using the Digital Signing of Physical Items Protocol for shipping authentication and privacy-preserving delivery.
DSPIP (Digital Signing of Physical Items Protocol) is an open cryptographic protocol for authenticating physical shipments using digitally signed QR codes. It provides:
The protocol is designed to work with existing shipping infrastructure and is currently an Internet-Draft submitted to the IETF.
Traditional tracking systems tell you where a package is, but not who actually sent it or if the label is legitimate. DSPIP adds cryptographic authentication:
DSPIP doesn't replace tracking - it adds an authentication layer that works alongside existing carrier systems. Think of it as adding a tamper-proof seal that also proves who applied it.
DSPIP is currently an Internet-Draft (draft-midwestcyber-dspip-01) submitted to the Internet Engineering Task Force (IETF). The specification is stable and suitable for implementation.
The protocol is designed to be compatible with existing standards:
SHIP is the type identifier for shipping applications in the DSPIP protocol. The QR code format includes a type field that is set to "SHIP" for all shipping use cases.
The protocol is designed to be extensible - future type identifiers could support other physical item authentication scenarios beyond shipping. Currently, SHIP is the only defined type.
DSPIP uses industry-standard cryptographic algorithms:
These algorithms are the same ones used by Bitcoin, Ethereum, and other cryptographic systems, providing battle-tested security.
DSPIP uses DNS TXT records for public key distribution, following the proven model established by DKIM for email authentication. Keys are published at:
<selector>._dspip.<domain>
For example: warehouse._dspip.example.com
Benefits of DNS-based distribution:
DSPIP QR codes contain 6 or 7 pipe-delimited fields:
DSPIP|version|type|keyLocator|payload|signature[|privateMessage]
Yes, DSPIP supports offline verification in two ways:
Split-key mode is specifically designed for environments without reliable network connectivity, such as remote delivery locations or military field operations.
DSPIP supports three privacy modes for different security requirements:
A last mile provider is the entity that decrypts the final delivery address in privacy-preserving modes. This could be:
omaha-main._dspip.usps.govmailroom._dspip.acmecorp.comomaha._dspip.fedex.comRecipients select their preferred last mile provider at checkout. The sender encrypts the delivery address with that provider's public key. Carriers transiting the package see only "deliver to USPS Omaha Main" - not the actual recipient's home address.
In encrypted and split-key modes, no. Intermediate carriers only see:
Your actual home address is encrypted and can only be decrypted by the last mile provider you selected. This follows the "digital envelope" model - just like a physical letter inside a sealed envelope.
Yes. DSPIP only stores hashed parcel IDs on blockchain:
The blockchain provides an immutable audit trail for custody events without exposing sensitive shipment details. Only parties with the original tracking number can correlate blockchain records.
DSPIP provides official SDKs for popular languages:
npm install @dspip/corepip install dspipgo get github.com/dspip/dspip-goAll SDKs provide key generation, signing, verification, and DNS lookup functionality. See the developer documentation for complete API references.
Add a TXT record to your DNS with this format:
warehouse._dspip.example.com. IN TXT "v=DSPIP1; k=ec; c=secp256k1; p=YOUR_PUBLIC_KEY_BASE64; types=SHIP"
Required tags:
v=DSPIP1 - Protocol versionk=ec - Key type (elliptic curve)c=secp256k1 - Curve identifierp=... - Your Base64-encoded public keytypes=SHIP - Supported typesKey lifecycle tags (recommended): t (creation), exp (signing expiration), exp-v (verification expiration), s (status), seq (sequence number).
DSPIP supports smooth key rotation using lifecycle fields:
warehouse-2025)seq values=verify-only or let exp expireexp-v passes (recommended: 365 days after exp)exp-v timestampVerifiers MUST accept signatures from verify-only keys for packages created before the signing expiration (exp). The payload timestamp is compared against key expiration.
Yes! DSPIP provides a live test DNS record:
dig TXT test._dspip.dspip.io
You can use this record to verify your implementation against known test vectors. The test private key is published in the documentation for development purposes only.
For production, you'll need to set up your own DNS records.
Yes, DSPIP is an open protocol with no licensing fees. The specification is published as an Internet-Draft, and reference implementations are open source.
Costs to consider:
Yes, DSPIP is designed to complement, not replace, existing shipping infrastructure:
Organizations can adopt DSPIP without requiring all carriers in the chain to support it immediately.
DSPIP can help with various regulatory requirements:
The protocol provides the cryptographic infrastructure; specific compliance implementations depend on your use case.
DSPIP allows senders to revoke packages that are lost, stolen, or recalled:
This prevents misuse of copied QR codes from packages that should no longer be in transit.
Our team is here to assist with implementation questions and enterprise deployments.