This is an old revision of the document!
Desktop
Server
Task list, including FingerPrinter: [[access:LicenseKey-reworkd-2018-tasks|LicenseKey refactor tasks 2018]] - Server planning for rejection of of designated older versions. Faculty to designate said versions and tracking - Setting up limited Company with limited user access to files for all versions. Currently we store under Current Versions of the AGTEK Corporate Company (MC) - Creation of a Web Update page to be used for this campaign with clear messaging and direct links to versions both 64 bit and 32 bit. Not behind Firewall but set to not web index or link directly to the site.(MC) - Creation of a check key status (verify? name?) for use by the desktop code to verify the current key status at a random range and generate back to desktop when the next check time will be. This is distinguished from other calls in order to log possible dual use of keys. Server will at this time just log situations where the same key number is checking in too early. The absence of a checkin would not constitute a log situation necessarily as the user could have closed the program but retained the key. Make the bounds configurable from the server. - Add support for messaging with links, basic html. - Add support for specific to the user messaging. In the future the baked in ability for the server to respond with a message to a specific user based upon something they've done or not done (update your version for example). - Add total checkouts for report period to reset report to give problem context.
Check Web and mobile for compatibility.
Proposed Steps/Features of Key Revision ( Sitework, Materials, Trackwork, any others?)
The current versions store their files in \AGTEK along with other individualized AGTEK data like Materials and Structure lists. This is asking for an inadvertent or purposeful backup of bin files with checked out keys that will cause problems.
We apparently also don't do any cleaning of Bin files which have slots for multiple key opens and old stale settings may persist.
With few exception (Hasp), 4D key users are all required to have technical support and should have access to software updates. The android software (non play store) has the ability for us to push an update and notify the user. It's not possible to force the install but yo can remind them whenever the software starts.
My guess is we can use part of the server system for that side of the process. On the desktop side we'd have to create the method, be able to run it separately from the desktop code so that code can be shut down for updating.
We have some messaging built into the server now. It was primarily designed to announce Server maintenance. A suggestion is to add more capability like links.
We currently mainly check at startup and mode start. This is a legacy of hardware keys, single processes, and non-internet connected computers. We don't intend to disallow non-connected computers but most are connected. We need to check more often just a mode switch and should introduce a timed check of connection and then check of the key. This should not be on the UI thread as to not cause interruption to work and it can't be so often as to cause server loading issues. A possible other use for this is if we use a timed connection then it might be a tell of more than one key usage on different machines. If a test checked every 22 minutes and then a machine checked in five minutes later then that could be an indication of two separate machines. This checkin would need to be distinguishable from a normal checkin/checkout(Something we monitor only at first).
We also need to connect and leave a marker when the user exits software but retains the key.
Some of the anomalies showing up with logging show a need to refine the fingerprinter. These refinements include review of the weighting, removing some items like Mac Addresses and counts, looking for other markers, and checking the quality of the values we're seeing
Potential methods to identify key scofflaws Use set key timer checks (connected) to verify whether more than one key is in use and notify us of that case.
?Use computer name in key checks with server?
Fix Log issues on Fingerprinter
Register when the software is checking in a key for a fingerprinter violation
Set time checks to identify usage more often the
Keeping Key message - Exit from software.
Require that the computer get a machine ID to run
Version requires key to be checked in before install (no support of existing BIN files)
2018-09-19
This note describes reccomendations for changes to the management of LicenseKeys on desktop (Windows) applications.
Issues we've seen:
Goals:
Reccomendations:
Implications:
2018-09-19 Weights
Value | Weight | Example | Notes |
---|---|---|---|
CPU Count | 5 | 2 | Not currently used |
Machine ID | 5 | {710EB72B-488C-4F7E-ADBD-1E73122BC945} | Should use HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography, or both |
CPU description | 2 | Intel(R) Core(TM) i7-6600U CPU @ 2.60GHz | Not currently used (will add compare for first core) |
MAC Addr Count | 4 | 5 | Not reliable |
MAC Address | 5 | {9A427519-B1A2-45B9-B6DF-0392C6724526}:48:ba:4e:ea:84:a7:0:0 | Not reliable |
BIOS Version | 5 | 05/02/2018 | Bios dates are changing. Both Dell and HP have automatic BIOS updates possible |
OS Version | 4 | Windows 10 Enterprise | We're seeing variations, need to check reliability of check |
Memory size | 3 | 17053204480 | Bios changes may affect available memory number from being exact |
Computer Name | 5 | John's laptop | |
User ID | 9 | user@example.com |
Notes about compare:
Characterizing fingerprint values - Specific vs Unique Values
Part of the weighting strategy has to take into account the characteristics of values being compared.
Modeling Fingerprint Scenarios