Business software at Softtech GmbH
How public-key cryptography reduced support effort
How a manual licensing process became more robust through signed licenses, offline usage and internal support tooling.
Loading article…
Business software at Softtech GmbH
How a manual licensing process became more robust through signed licenses, offline usage and internal support tooling.
Loading article…
I'm based in Neustadt a.d. Weinstraße, Germany, and prefer remote work.
Software licensing is one of those topics nobody should notice when it works well. Customers simply want to work. Support wants to intervene manually as little as possible. And the software should reliably ensure that licenses are used correctly without unnecessarily blocking honest users.
In my first job after my apprenticeship at Softtech, a software company for architecture and construction planning solutions, I worked on a project that addressed exactly this tension. My responsibility covered SketchUp plugins and web topics. There we saw a practical problem: the existing licensing caused a lot of manual support effort and was technically hard to control.
For our area, we replaced a strongly manual, error-prone licensing process with a cryptographically signed model with smart offline support.
The concept included:
The company's existing licensing had grown historically. Depending on the product, USB dongles served as physical license carriers or simple files were used and often sent manually by support via email.
In theory that worked, but in practice it had disadvantages:
It was time for a new approach.
ASIDE: Reinventing the standard Looking back, it is almost a little funny: As a fresh developer, I thought the chosen solution was a pretty clever invention of our own. I derived the model from our practical problems. At the time I did not yet know that the concept of asymmetric cryptography, hardware fingerprinting and periodic offline checkout in the background was basically the industry standard for desktop software licensing. It was a nice aha moment later to realize that companies like JetBrains or Adobe use very similar concepts under the hood.
The central idea was to replace pure file or dongle existence checks with asymmetric cryptography.
The mechanism was simple but effective:
ASIDE: The pitfalls of device IDs Binding a license to a device sounds simple, but it is extremely error-prone. Which system parameters do you read? The MAC address changes when someone plugs in a USB Ethernet adapter. Disk IDs change during an SSD upgrade. Operating system updates can obscure system UUIDs. We had to implement an algorithm tolerant enough of small hardware changes, but stable enough to detect cloned virtual machines.
An important part of the concept was hardware identification through the generated device ID for Windows and macOS.
At the same time, we had to support architects' offline needs. A permanent online requirement was a no-go, because software must also work during customer presentations on the road or on construction sites without working Wi-Fi. We therefore integrated a periodic background checkout: roughly every two weeks, the software synchronized with the server by itself.
Especially important for user experience: we established a grace period. If the computer was offline or licenses looked suspicious, the software did not shut down in the middle of a customer appointment. It continued running, informed the user gently and set internal flags for support.
The best technical solution is useless if employees cannot operate it. The support dashboard built as part of the project fundamentally changed the workflow.
A blind ping-pong game with certificate files via email became a transparent process. Support could immediately see active licenses, connected devices and the latest checkouts. Warnings about abused licenses appeared proactively instead of having to be found reactively in daily support work.
ASIDE: Support tools are core product Internal tools are often treated as an annoying obligation. Here it became clear: the support dashboard actually was the product for our employees. It drastically reduced time to resolution for licensing problems. When support no longer has to act as a manual license generator but can work as an intelligent problem solver, customers feel it too.
This early project in my career showed me that software architecture and UX have to go hand in hand:
In the end, we successfully eliminated old dongles and email workflows in this area, relieved support significantly and made daily work easier for customers.