LicenseDNS employs a dedicated DNS server that signals its DNSSEC capabilities by setting the DO (DNSSEC OK) bit in its responses to DNS TXT queries. Upon receiving a valid query for an active license, the server returns the corresponding TXT records associated with that license. Crucially, when the client's DNS resolver successfully validates the DNSSEC signatures accompanying these TXT records, it provides a cryptographic guarantee that the license information genuinely originates from the LicenseDNS server and has remained unaltered during transmission. Consequently, the TXT values obtained through this process can be trusted implicitly, eliminating the need for the client application to implement any independent cryptographic signature verification mechanisms. The successful DNSSEC validation handled by the resolver establishes the necessary chain of trust.
LicenseDNS Query Structure for Activation/Deactivation
To manage your software license (activate or deactivate), you'll construct a specific DNS TXT query and send it
to any standard recursive DNS server. This query follows a defined structure, requiring three distinct labels
preceding the core LicenseDNS query host: q.licensedns.net.
The structure of these preceding labels is as follows:
License key: 5F32A-UN7KF-UE9V8-AW3NS
Product Id: ADA14AE9-08A8-4AE2-B69E-AAE277B8346F
Fingerprint: example-fingerprint
First calculate hash by concanating license key and product Id then take first 32 characters. A sample Java
code:
DigestUtils.sha256Hex("5F32A-UN7KF-UE9V8-AW3NS" + "ADA14AE9-08A8-4AE2-B69E-AAE277B8346F").substring(0, 32);
To activate this license, the domain to send DNS TXT query should be
a.7F3735C907D319640373EFA17E196059.example-fingerprint.q.licensedns.net
The first label a
is for activation, the second label
7F3735C907D319640373EFA17E196059
is the calculated hash
value. the third label example-fingerprint
is the fingerprint.
To deactivate this license, the domain to send DNS TXT query should be
d.7F3735C907D319640373EFA17E196059.example-fingerprint.q.licensedns.net
The first label d
is for deactivation, the second label
7F3735C907D319640373EFA17E196059
is the calculated hash
value. the third label example-fingerprint
is the fingerprint.
You can initiate the DNS query for license activation or deactivation either through programmatic means within
your application's code or by utilizing command-line tools provided by your operating system. For applications
requiring explicit DNSSEC validation, numerous libraries are available across various programming languages to
facilitate this process.
Below is an illustrative example demonstrating how to activate a license on a Linux system using the delv
command. The +short option is used to display only the relevant TXT record values, while the +trust option
explicitly shows the DNSSEC validation result:
$ delv a.7F3735C907D319640373EFA17E196059.example-fingerprint.q.licensedns.net -t txt +short +trust
; fully validated
"anything"
"result=success"
"company=Acme Co."
"fullname=John Doe"
"email=john@acme.com"
"some-key=some-value"
"feature1=some-value1"
"feature2=some-value2"
"epochtime=1742590074543"
"datetime=2025-03-21 20:47:54"
$ delv d.7F3735C907D319640373EFA17E196059.example-fingerprint.q.licensedns.net -t txt +short +trust
; fully validated
"result=success"
"epochtime=1742594751129"
"datetime=2025-03-21 22:05:51"