UniKey User Manual: Difference between revisions

From SecuTech Wiki
Jump to navigationJump to search
Cynthia (talk | contribs)
Cynthia (talk | contribs)
No edit summary
Line 51: Line 51:
</table>
</table>


The data and information contained in this document cannot be altered without the express written permission of SecuTech Solution Inc. No part of this document can be reproduced or transmitted for any purpose whatsoever, either by electronic or mechanical means.
The data and information contained in this document cannot be altered without the express written  


The general terms of trade of SecuTech Solution Inc. apply. Diverging agreements must be made in writing.
permission of SecuTech Solution Inc. No part of this document can be reproduced or transmitted for any
 
purpose whatsoever, either by electronic or mechanical means.
 
The general terms of trade of SecuTech Solution Inc. apply. Diverging agreements must be made in  
 
writing.


Copyright SecuTech Solution Inc. All rights reserved.
Copyright SecuTech Solution Inc. All rights reserved.
Line 63: Line 69:
<b>Software License</b>
<b>Software License</b>


The software and the enclosed documentation are copyright-protected. By installing the software, you agree to the conditions of the licensing agreement.
The software and the enclosed documentation are copyright-protected. By installing the software, you  
 
agree to the conditions of the licensing agreement.


<b>Licensing Agreement</b>
<b>Licensing Agreement</b>


SecuTech Solution Inc. (SecuTech for short) gives the buyer the simple, exclusive and non-transferable licensing right to use the software on one individual computer or networked computer system (LAN). Copying and any other form of reproduction of the software in full or in part as well as mixing and linking it with others is prohibited. The buyer is authorized to make one single copy of the software as backup. SecuTech reserves the right to change or improve the software without notice or to replace it with a new development. SecuTech is not obliged to inform the buyer of changes, improvements or new developments or to make these available to him. A legally binding promise of certain qualities is not given. SecuTech is not responsible for damage unless it is the result of deliberate action or negligence on the part of SecuTech or its aids and assistants. SecuTech accepts no responsibility of any kind for indirect, accompanying or subsequent damage.
SecuTech Solution Inc. (SecuTech for short) gives the buyer the simple, exclusive and non-transferable  
 
licensing right to use the software on one individual computer or networked computer system (LAN).  
 
Copying and any other form of reproduction of the software in full or in part as well as mixing and  
 
linking it with others is prohibited. The buyer is authorized to make one single copy of the software  
 
as backup. SecuTech reserves the right to change or improve the software without notice or to replace  
 
it with a new development. SecuTech is not obliged to inform the buyer of changes, improvements or new  
 
developments or to make these available to him. A legally binding promise of certain qualities is not  
 
given. SecuTech is not responsible for damage unless it is the result of deliberate action or  
 
negligence on the part of SecuTech or its aids and assistants. SecuTech accepts no responsibility of  
 
any kind for indirect, accompanying or subsequent damage.


<b>Contact Information</b>
<b>Contact Information</b>
Line 75: Line 101:
<b>Email: </b>[mailto:sales@eSecuTech.com sales@esecutech.com]
<b>Email: </b>[mailto:sales@eSecuTech.com sales@esecutech.com]


Please Email any comments, suggestions or questions regarding this document or our products to us at: [mailto:sales@eSecuTech.com sales@esecutech.com]  
Please Email any comments, suggestions or questions regarding this document or our products to us at:  
 
[mailto:sales@eSecuTech.com sales@esecutech.com]  


<br>
<br>
; CE Attestation of Conformity
; CE Attestation of Conformity
[[File:CE Attestation.png|left|100px|top]]
[[File:CE Attestation.png|left|100px|top]]
: UniMate is in conformity with the protection requirements of CE Directives 89/336/EEC Amending Directive 92/31/EEC. UniMate satisfies the limits and verifying methods: EN55022/CISPR 22 Class B, EN55024: 1998.
: UniMate is in conformity with the protection requirements of CE Directives 89/336/EEC Amending  
 
Directive 92/31/EEC. UniMate satisfies the limits and verifying methods: EN55022/CISPR 22 Class B,  
 
EN55024: 1998.
<br><br><br>
<br><br><br>
; FCC Standard
; FCC Standard
[[File:FCC.png|left|100px|top]]
[[File:FCC.png|left|100px|top]]
: This device is in conformance with Part 15 of the FCC Rules and Regulation for Information Technology Equipment.
: This device is in conformance with Part 15 of the FCC Rules and Regulation for Information  
: Operation of this product is subject to the following two conditions: (1) this device may not cause harmful interference, and (2) this device must accept any interference received, including interference that may cause undesired operation.
 
Technology Equipment.
: Operation of this product is subject to the following two conditions: (1) this device may not cause  
 
harmful interference, and (2) this device must accept any interference received, including  
 
interference that may cause undesired operation.
<br><br><br>
<br><br><br>
[[File:USB Logo.png|left|100px|top]] The equipment of UniMate is USBbased.
[[File:USB Logo.png|left|100px|top]] The equipment of UniMate is USBbased.
Line 91: Line 129:
; Conformity to ISO 9001<nowiki>:</nowiki>2000
; Conformity to ISO 9001<nowiki>:</nowiki>2000
[[File:ISO 9001.png|left|100px|top]]
[[File:ISO 9001.png|left|100px|top]]
: The Quality System of SecuTech Solution Inc., including its implementation, meets the requirements of the standard ISO 9001:2000
: The Quality System of SecuTech Solution Inc., including its implementation, meets the requirements  
 
of the standard ISO 9001:2000
<br><br><br>
<br><br><br>
; ROHS
; ROHS
Line 101: Line 141:


==About this guide==
==About this guide==
The UniKey manual is designed to help software publishers protect and license their software using the UniKey system. This manual provides details on how to operate the UniKey system and how it can best serve your protection and licensing requirements. This Manual is divided into these chapters:  
The UniKey manual is designed to help software publishers protect and license their software using the  
 
UniKey system. This manual provides details on how to operate the UniKey system and how it can best  
 
serve your protection and licensing requirements. This Manual is divided into these chapters:  


'''Chapter 1 - Introduction'''
'''Chapter 1 - Introduction'''
Line 127: Line 171:


===Introduction to the SDK===
===Introduction to the SDK===
[[File:Unikey software protection solution driverless USB dongle SDK.png|130px|left|top|alt=UniKey software protection developer's kit]]
[[File:Unikey software protection solution driverless USB dongle SDK.png|130px|left|top|alt=UniKey  
The UniKey Software Protection Developer's Kit proves to be a powerful tool when implementing protection for all types of software. With this kit you receive a fully functional UniKey Hardware Key, Protection Kit Software CD, a Quick Start guide, a Brochure and a Data Sheet. We recommend that you get started with a UniKey Developer Kit before purchasing a sole UniKey hardware key.
 
software protection developer's kit]]
The UniKey Software Protection Developer's Kit proves to be a powerful tool when implementing  
 
protection for all types of software. With this kit you receive a fully functional UniKey Hardware  
 
Key, Protection Kit Software CD, a Quick Start guide, a Brochure and a Data Sheet. We recommend that  
 
you get started with a UniKey Developer Kit before purchasing a sole UniKey hardware key.


<div style="clear:both;"></div>
<div style="clear:both;"></div>
Line 138: Line 190:
[[File:CD.jpeg|130px|left|top|alt=protection kit software CD]]
[[File:CD.jpeg|130px|left|top|alt=protection kit software CD]]
====Protection Kit Software CD====
====Protection Kit Software CD====
The Protection Kit Software CD contains the facilities and tools you need to apply UniKey protection and licensing.
The Protection Kit Software CD contains the facilities and tools you need to apply UniKey protection  
 
and licensing.


<div style="clear:both;"></div>
<div style="clear:both;"></div>
[[File:Unikey Software protection driverless USB dongle quick start guide-001.jpg|130px|left|top|alt=UniKey quick start guide]]
[[File:Unikey Software protection driverless USB dongle quick start guide-001.jpg|130px|left|top|
 
alt=UniKey quick start guide]]
====Quick Start====
====Quick Start====
The Quick Start is designed to guide you through the set-up and use of a UniKey, within a few minutes. More detailed information about UniKey is available in <code>SDK</code> This tutorial lays emphasis on the process of installing UniKey and protecting an application.
The Quick Start is designed to guide you through the set-up and use of a UniKey, within a few minutes.  
 
More detailed information about UniKey is available in <code>SDK</code> This tutorial lays emphasis on  
 
the process of installing UniKey and protecting an application.


<div style="clear:both;"></div>
<div style="clear:both;"></div>
[[File:SecuTech-Brochure-Software protection and licensing and two factor authentication one time password token-001.jpg|130px|left|top|alt=UniKey brochure]]
[[File:SecuTech-Brochure-Software protection and licensing and two factor authentication one time  
 
password token-001.jpg|130px|left|top|alt=UniKey brochure]]


====Brochure====
====Brochure====
The Brochure is designed to familiarize you with basic information about UniKey products including the concept of software protection, benefits to customers and UniKey License Models.
The Brochure is designed to familiarize you with basic information about UniKey products including the  
 
concept of software protection, benefits to customers and UniKey License Models.


<div style="clear:both;"></div>
<div style="clear:both;"></div>
[[File:data sheet.jpeg|130px|left|top|alt=UniKey data sheet]]
[[File:data sheet.jpeg|130px|left|top|alt=UniKey data sheet]]
====Data Sheet====
====Data Sheet====
The Data Sheet is designed to give you a clear understanding of UniKey products, such as casing, identification number, dimensions, weight and so on.
The Data Sheet is designed to give you a clear understanding of UniKey products, such as casing,  
 
identification number, dimensions, weight and so on.




Line 162: Line 228:
<table class="wikitable" align="left" style="width: 100px;">
<table class="wikitable" align="left" style="width: 100px;">
  <tr>
  <tr>
   <td align="center"><i>You do not have to install a driver since UniKey is a driverless dongle.</i></td>
   <td align="center"><i>You do not have to install a driver since UniKey is a driverless  
 
dongle.</i></td>
  </tr>
  </tr>
</table>
</table>


====Installation of UniKey Hardware====
====Installation of UniKey Hardware====
Plug the UniKey dongle into one of the USB ports. It will automatically be detected and installed (you will not see the dongle icon).
Plug the UniKey dongle into one of the USB ports. It will automatically be detected and installed (you  
 
will not see the dongle icon).


====Installation of UniKey Software====
====Installation of UniKey Software====
Line 175: Line 245:


===Introduction to UniKey models===
===Introduction to UniKey models===
There are four models in the UniKey family for customers to choose from. You can select the model that best fits your budget and protection requirements.
There are four models in the UniKey family for customers to choose from. You can select the model that  
 
best fits your budget and protection requirements.


[[File:UniKey STD up.png|left|alt=UniKey STD driverless software protection]]
[[File:UniKey STD up.png|left|alt=UniKey STD driverless software protection]]
====UniKey STD====
====UniKey STD====
If you only require a standard software protection solution, no network or real-time functions, then UniKey STD is the best choice for you.
If you only require a standard software protection solution, no network or real-time functions, then  
 
UniKey STD is the best choice for you.


<div style="clear:both;"></div>
<div style="clear:both;"></div>
[[File:UniKey PRO up.png|left|alt=UniKey PRO driverless software protection]]
[[File:UniKey PRO up.png|left|alt=UniKey PRO driverless software protection]]
====UniKey PRO====
====UniKey PRO====
If your application can work over a LAN, and you need to control a number of concurrent users, then you should select UniKey PRO. There is no limitation to the maximum number of concurrent remote clients.
If your application can work over a LAN, and you need to control a number of concurrent users, then  
 
you should select UniKey PRO. There is no limitation to the maximum number of concurrent remote  
 
clients.


<div style="clear:both;"></div>
<div style="clear:both;"></div>
Line 197: Line 275:


====UniKey Time====
====UniKey Time====
The UniKey Time is specially designed for software vendors who need to control and manage software rental and sales via subscription or maintenance, as it allows for a pay-per-use model. Because of this software vendors can completely control sales and usage by charging end users timely and/or periodically. This function is based on a real-time clock embedded inside the dongle indicating the specific time (hour, minute, and second) and date (day, month, and year). This clock is independent of the computer and thus tamper resistant, with approximately 3 years of battery life, after which the UniKey Time defaults into a UniKey Pro dongle.  
The UniKey Time is specially designed for software vendors who need to control and manage software  
 
rental and sales via subscription or maintenance, as it allows for a pay-per-use model. Because of  
 
this software vendors can completely control sales and usage by charging end users timely and/or  
 
periodically. This function is based on a real-time clock embedded inside the dongle indicating the  
 
specific time (hour, minute, and second) and date (day, month, and year). This clock is independent of  
 
the computer and thus tamper resistant, with approximately 3 years of battery life, after which the  
 
UniKey Time defaults into a UniKey Pro dongle.  


<div style="clear:both;"></div>
<div style="clear:both;"></div>
[[File:UniKey Drive up.png|left|alt=UniKey Drive driverless software protection]]
[[File:UniKey Drive up.png|left|alt=UniKey Drive driverless software protection]]
====UniKey Drive====
====UniKey Drive====
UniKey Drive is an innovative USB device that allows software vendors to protect, license and deliver their software applications, drivers and data to end users using a single USB key. As the first driverless dongle with mass storage and a smartcard built-in, UniKey Drive provides software vendors with flexibility to choose the level of protection, types of licensing, as well as providing 4 different types of drive emulation: a public, virtual CD-ROM, password protected, and hidden drive.
UniKey Drive is an innovative USB device that allows software vendors to protect, license and deliver  
 
their software applications, drivers and data to end users using a single USB key. As the first  
 
driverless dongle with mass storage and a smartcard built-in, UniKey Drive provides software vendors  
 
with flexibility to choose the level of protection, types of licensing, as well as providing 4  
 
different types of drive emulation: a public, virtual CD-ROM, password protected, and hidden drive.




Line 210: Line 308:


====UniKey Ultra Dual====
====UniKey Ultra Dual====
UniKey Ultra Dual combining the features of UniKey Pro and USB Type-C port is available for protecting software running in a network environment. It is a new product containing all the features of UniKey Pro. A key connected to any machine in the network allows up to 65535 concurrent users. We provide console tools to monitor and manage your software’s users, and manage White\Black lists.The UniKey Ultra Dual is a solution for USB Type-C port for Mac OSX. It is flexible both for normal USB Type-A and USB Type-C, it supports Mac OSX easily. It can be used on MacBook without any converter.
UniKey Ultra Dual combining the features of UniKey Pro and USB Type-C port is available for protecting  
 
software running in a network environment. It is a new product containing all the features of UniKey  
 
Pro. A key connected to any machine in the network allows up to 65535 concurrent users. We provide  
 
console tools to monitor and manage your software’s users, and manage White\Black lists.The UniKey  
 
Ultra Dual is a solution for USB Type-C port for Mac OSX. It is flexible both for normal USB Type-A  
 
and USB Type-C, it supports Mac OSX easily. It can be used on MacBook without any converter.


<div style="clear:both;"></div>
<div style="clear:both;"></div>


===What makes the UniKey system unique===
===What makes the UniKey system unique===
The UniKey dongles you order from SecuTech contain unique information that is specific to your company. This information is used by the UniKey system to differentiate your keys from those belonging to other software vendors.
The UniKey dongles you order from SecuTech contain unique information that is specific to your  
 
company. This information is used by the UniKey system to differentiate your keys from those belonging  
 
to other software vendors.


====Driverless====
====Driverless====
UniKey is the first driverless dongle in the world. There is no need to install anything to get it started, or have to mess around with any source code.
UniKey is the first driverless dongle in the world. There is no need to install anything to get it  
 
started, or have to mess around with any source code.
 
====Dual-port====
UniKey Ultra Dual is the first dual-port dongle in the world. It is flexible for PC with USB Type-A
 
and MacBook with USB Type-C.


====Unique Hardware ID====
====Unique Hardware ID====
Every UniKey device has a globally unique hardware ID (HID for short). The HID is generated and fixed during the manufacturing process and thus cannot be modified. Providing a global identifier of each UniKey dongle, SecuTech Solution Inc. keeps the HID as a tracking number during the production process.
Every UniKey device has a globally unique hardware ID (HID for short). The HID is generated and fixed  
 
during the manufacturing process and thus cannot be modified. Providing a global identifier of each  
 
UniKey dongle, SecuTech Solution Inc. keeps the HID as a tracking number during the production  
 
process.


====Protection====
====Protection====
UniKey offers the highest levels of security with the Enveloper and APIs to ensure proper safety of your software. You neednt worry about problems such as sales models and how to license the protected application. UniKey provides you with the ability to maximize profits by using strong software protection methods over all stages of sale.
UniKey offers the highest levels of security with the Enveloper and APIs to ensure proper safety of  
 
your software. You neednt worry about problems such as sales models and how to license the protected  
 
application. UniKey provides you with the ability to maximize profits by using strong software  
 
protection methods over all stages of sale.


====Licensing====
====Licensing====
Defining the sales models and licensing terms is an ongoing process that involves decisions on how the software is sold, licensed and distributed. This process is undertaken by product managers or sales and marketing managers, and does not influence or affect the process of protecting the software.
Defining the sales models and licensing terms is an ongoing process that involves decisions on how the  


With the UniKey system, product managers are completely independent of your development team. Whenever there is a need for a new license model, they can be defined and implemented without involving your development team. Product managers dont have to depend on the development team each time they need to introduce a new sales model. They can define how the application should be licensed by themselves, since SecuTech offers a range of licensing models according to current technologies and our own experience. Therefore, product managers have greater flexibility and freedom in defining new sales models and the ability to quickly respond to new business requirements.
software is sold, licensed and distributed. This process is undertaken by product managers or sales
 
and marketing managers, and does not influence or affect the process of protecting the software.
 
With the UniKey system, product managers are completely independent of your development team. Whenever  
 
there is a need for a new license model, they can be defined and implemented without involving your  
 
development team. Product managers dont have to depend on the development team each time they need to  
 
introduce a new sales model. They can define how the application should be licensed by themselves,  
 
since SecuTech offers a range of licensing models according to current technologies and our own  
 
experience. Therefore, product managers have greater flexibility and freedom in defining new sales  
 
models and the ability to quickly respond to new business requirements.


===How does UniKey work?===
===How does UniKey work?===
UniKey protected applications will search for, and communicate with the dongle connected to the USB port.
UniKey protected applications will search for, and communicate with the dongle connected to the USB  
* The protected application first determines whether or not the dongle connected to the USB port is the correct one.
* If the dongle proves to be correct, then the application will respond by showing whether the application or feature is authorized to run.


The authorization is based on the terms of the license for the features of the application. After the dongle has been confirmed, the application(s) will continue to communicate with the dongle to check how many features are allowed or in what way the application(s) can be used and if it is still plugged in.
port.
* The protected application first determines whether or not the dongle connected to the USB port is
 
the correct one.
* If the dongle proves to be correct, then the application will respond by showing whether the
 
application or feature is authorized to run.
 
The authorization is based on the terms of the license for the features of the application. After the  
 
dongle has been confirmed, the application(s) will continue to communicate with the dongle to check  
 
how many features are allowed or in what way the application(s) can be used and if it is still plugged  
 
in.


<b>Example 1: UniKey PRO managing concurrent remote network end users</b>
<b>Example 1: UniKey PRO managing concurrent remote network end users</b>


: You can set any number to be the maximum number of concurrent end users. When the application starts and the pre-set number of authorized users reaches 0, the relevant error is displayed. Suppose you set 30 to be the limit, this means that the 31st user will not be able to use the application unless one of the other 30 concurrent users logoff.
: You can set any number to be the maximum number of concurrent end users. When the application starts  
 
and the pre-set number of authorized users reaches 0, the relevant error is displayed. Suppose you set  
 
30 to be the limit, this means that the 31st user will not be able to use the application unless one  
 
of the other 30 concurrent users logoff.


<b>Example 2: UniKey Time managing expiration dates</b>
<b>Example 2: UniKey Time managing expiration dates</b>


: The expiration date listed within the keys memory is checked first and then compared to the UniKey Times real-time clock. If the expiration date has passed, then the feature or application will stop working and prompt the user with an error message.
: The expiration date listed within the keys memory is checked first and then compared to the UniKey  
 
Times real-time clock. If the expiration date has passed, then the feature or application will stop  
 
working and prompt the user with an error message.




===Recommended integration process===
===Recommended integration process===
It is recommended for new users of UniKey products to follow a testing phase before purchasing any UniKey dongles.
It is recommended for new users of UniKey products to follow a testing phase before purchasing any  
 
UniKey dongles.


====Try the UniKey SDK====
====Try the UniKey SDK====
Before making plans about whether a software vendor should use UniKey dongles, it is a good idea to try to before you buy. This can be done by taking out an evaluation kit, to help get a feel for how it works and see whether UniKey fits your requirements.
Before making plans about whether a software vendor should use UniKey dongles, it is a good idea to  
 
try to before you buy. This can be done by taking out an evaluation kit, to help get a feel for how it  
 
works and see whether UniKey fits your requirements.


====Design protection and license schemes====
====Design protection and license schemes====
Please test and implement the protection schemes you have created for your customers in the desired environment with a sample group of UniKey dongles. Ensuring a good degree of quality and allowing you to test the effectiveness of UniKeys solutions. By first creating your desired licensing and protection scheme, you can implement and test an updating system to provide a remote update service for your customers if they wish to renew/upgrade their purchase.
Please test and implement the protection schemes you have created for your customers in the desired  
 
environment with a sample group of UniKey dongles. Ensuring a good degree of quality and allowing you  
 
to test the effectiveness of UniKeys solutions. By first creating your desired licensing and  
 
protection scheme, you can implement and test an updating system to provide a remote update service  
 
for your customers if they wish to renew/upgrade their purchase.


====Purchase UniKey dongles====
====Purchase UniKey dongles====
Once you have set up an effective licensing scheme you can easily batch create UniKey dongles to have the same settings quickly and cleanly.
Once you have set up an effective licensing scheme you can easily batch create UniKey dongles to have  
 
the same settings quickly and cleanly.


====Distribute UniKey dongles====
====Distribute UniKey dongles====
With your designed and tested protection scheme, fully formatted UniKey dongles, and the ability to maintain updates for your clients, software vendors can distribute their products safely with the knowledge that they have used the most effective means of security.
With your designed and tested protection scheme, fully formatted UniKey dongles, and the ability to  
 
maintain updates for your clients, software vendors can distribute their products safely with the  
 
knowledge that they have used the most effective means of security.


==Protection strategies==
==Protection strategies==


===Comparison between models===
===Comparison between models===
We offer our customers a range of UniKey products with different functions to meet any unique requirement.
We offer our customers a range of UniKey products with different functions to meet any unique  
 
requirement.


====Compatibility====
====Compatibility====
All 3 models of UniKey(STD, PRO, Time) use the same library and tools. You can easily shift from one model to another, without changing any software details. They are all compatible with each other as well, so migrating from one model to another is a seamless operation.
All 4 models of UniKey(STD, PRO, Time, Ultra Dual) use the same library and tools. You can easily  
 
shift from one model to another, without changing any software details. They are all compatible with  
 
each other as well, so migrating from one model to another is a seamless operation.


====Features table====
====Features table====
Line 279: Line 474:
   <td style="background-color: red;"><b style="color: #fff;">Time</b></td>
   <td style="background-color: red;"><b style="color: #fff;">Time</b></td>
   <td style="background-color: red;"><b style="color: #fff;">PRO</b></td>
   <td style="background-color: red;"><b style="color: #fff;">PRO</b></td>
  <td style="background-color: red;"><b style="color: #fff;">Ultra Dual</b></td>
   <td style="background-color: red;"><b style="color: #fff;">STD</b></td>
   <td style="background-color: red;"><b style="color: #fff;">STD</b></td>
  </tr>
  </tr>
  <tr>
  <tr>
   <td colspan="5" align="center" style="background-color: red;"><b style="color: #fff;">Security</b></td>
   <td colspan="6" align="center" style="background-color: red;"><b style="color:  
 
#fff;">Security</b></td>
  </tr>
  </tr>
  <tr>
  <tr>
   <td><b>Unique ID</b></td>
   <td><b>Unique ID</b></td>
   <td colspan="4" align="center" align="center">32-bit</td>
   <td colspan="5" align="center" align="center">32-bit</td>
  </tr>
  </tr>
  <tr>
  <tr>
   <td><b>User-defined algorithms</b></td>
   <td><b>User-defined algorithms</b></td>
   <td colspan="4" align="center">128 instructions</td>
   <td colspan="5" align="center">128 instructions</td>
  </tr>
  </tr>
  <tr>
  <tr>
   <td><b>Hardware ID/SN</b></td>
   <td><b>Hardware ID/SN</b></td>
   <td colspan="4" align="center">Globally unique hardware ID</td>
   <td colspan="5" align="center">Globally unique hardware ID</td>
  </tr>
  </tr>
  <tr>
  <tr>
   <td><b>Password</b></td>
   <td><b>Password</b></td>
   <td colspan="4" align="center">Convenient password generation scheme</td>
   <td colspan="5" align="center">Convenient password generation scheme</td>
  </tr>
  </tr>
  <tr>
  <tr>
   <td><b>Software ID</b></td>
   <td><b>Software ID</b></td>
   <td colspan="4" align="center">User-defined</td>
   <td colspan="5" align="center">User-defined</td>
  </tr>
  </tr>
  <tr>
  <tr>
   <td><b>Update Tag</b></td>
   <td><b>Update Tag</b></td>
   <td colspan="4" align="center">32-bit tag for remote update</td>
   <td colspan="5" align="center">32-bit tag for remote update</td>
  </tr>
  </tr>
  <tr>
  <tr>
   <td><b>Network capability</b></td>
   <td><b>Network capability</b></td>
   <td colspan="3" align="center">Yes</td>
   <td colspan="4" align="center">Yes</td>
   <td align="center">No</td>
   <td align="center">No</td>
  </tr>
  </tr>
  <tr>
  <tr>
   <td><b>Protection</b></td>
   <td><b>Protection</b></td>
   <td colspan="4" align="center">Enveloper protection, API protection</td>
   <td colspan="5" align="center">Enveloper protection, API protection</td>
  </tr>
  </tr>
  <tr>
  <tr>
   <td><b>Utilities</b></td>
   <td><b>Utilities</b></td>
   <td colspan="4" align="center">Remote Update<br>Assist Tool<br>UniKey Burner<br>Console<br>Network Server<br>Enveloper</td>
   <td colspan="5" align="center">Remote Update<br>Assist Tool<br>UniKey Burner<br>Console<br>Network  
 
Server<br>Enveloper</td>
  </tr>
  </tr>
  <tr>
  <tr>
   <td><b>Number of supported license modules</b></td>
   <td><b>Number of supported license modules</b></td>
   <td align="center">256</td>
   <td align="center">256</td>
   <td colspan="3" align="center">64</td>
   <td colspan="4" align="center">64</td>
  </tr>
  </tr>
  <tr>
  <tr>
   <td><b>Perpetual</b></td>
   <td><b>Perpetual</b></td>
   <td colspan="4" align="center">Yes</td>
   <td colspan="5" align="center">Yes</td>
  </tr>
  </tr>
  <tr>
  <tr>
   <td><b>Feature-based</b></td>
   <td><b>Feature-based</b></td>
   <td colspan="4" align="center">Yes</td>
   <td colspan="5" align="center">Yes</td>
  </tr>
  </tr>
  <tr>
  <tr>
   <td><b>Pay-per-use</b></td>
   <td><b>Pay-per-use</b></td>
   <td colspan="4" align="center">Yes</td>
   <td colspan="5" align="center">Yes</td>
  </tr>
  </tr>
  <tr>
  <tr>
   <td><b>Custom</b></td>
   <td><b>Custom</b></td>
   <td colspan="4" align="center">Yes</td>
   <td colspan="5" align="center">Yes</td>
  </tr>
  </tr>
  <tr>
  <tr>
Line 346: Line 546:
   <td></td>
   <td></td>
   <td align="center">Yes</td>
   <td align="center">Yes</td>
  <td></td>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
Line 352: Line 553:
   <td><b>Secure flash memory</b></td>
   <td><b>Secure flash memory</b></td>
   <td align="center">2 ~ 32 GB</td>
   <td align="center">2 ~ 32 GB</td>
  <td></td>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
Line 359: Line 561:
   <td><b>Virtual CD-ROM with auto-run</b></td>
   <td><b>Virtual CD-ROM with auto-run</b></td>
   <td align="center">Yes</td>
   <td align="center">Yes</td>
  <td></td>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
Line 366: Line 569:
   <td><b>Public drive</b></td>
   <td><b>Public drive</b></td>
   <td align="center">Yes</td>
   <td align="center">Yes</td>
  <td></td>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
Line 373: Line 577:
   <td><b>Password protected drive</b></td>
   <td><b>Password protected drive</b></td>
   <td align="center">Yes</td>
   <td align="center">Yes</td>
  <td></td>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
Line 381: Line 586:
   <td align="center">Yes</td>
   <td align="center">Yes</td>
   <td></td>
   <td></td>
  <td></td>
  <td></td>
</tr>
<tr>
  <td><b>Multiple partitions</b></td>
  <td align="center">Yes</td>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
Line 392: Line 591:
  </tr>
  </tr>
  <tr>
  <tr>
  <td colspan="5" align="center" style="background-color: red;"><b style="color: #fff;">Supported Platforms (Software Vendor)</b></td>
    <td colspan="6" align="center" style="background-color: red;"><b style="color: #fff;">Supported  
 
Platforms (Software Vendor)</b></td>
  </tr>
  </tr>
  <tr>
  <tr>
   <td><b>Supported programming languages</b></td>
   <td><b>Supported programming languages</b></td>
   <td colspan="4" align="center">VB, VC, VFP, Delphi, BCB,<br>PowerBuilder, LabView, WinDEV, Java,<br>FileMaker, Clarion, Java, VS,<br>Net, Fortran, Visual DataFlex<br>and many more</td>
   <td colspan="5" align="center">VB, VC, VFP, Delphi, BCB,<br>PowerBuilder, LabView, WinDEV,  
 
Java,<br>FileMaker, Clarion, Java, VS,<br>Net, Fortran, Visual DataFlex<br>and many more</td>
  </tr>
  </tr>
  <tr>
  <tr>
   <td><b>Development platforms supported</b></td>
   <td><b>Development platforms supported</b></td>
   <td colspan="4" align="center">Server 2003, 2008 and 2012<br>Windows 2000, XP, Vista, 7, 8, 8.1 and 10<br>Linux 2.2 and 2.4<br>CentOS 7.0<br>Ubuntu 8.04, 10.04, 12.04 and 14.04<br>Mac OS X<br>Free BSD...</td>
   <td colspan="5" align="center">Server 2003, 2008 and 2012<br>Windows 2000, XP, Vista, 7, 8, 8.1 and  
 
10<br>Linux 2.2 and 2.4<br>CentOS 7.0<br>Ubuntu 8.04, 10.04, 12.04 and 14.04<br>Mac OS X<br>Free  
 
BSD...</td>
  </tr>
  </tr>
  <tr>
  <tr>
   <td colspan="5" align="center" style="background-color: red;"><b style="color: #fff;">Supported Platforms (End User)</b></td>
   <td colspan="6" align="center" style="background-color: red;"><b style="color: #fff;">Supported  
 
Platforms (End User)</b></td>
  </tr>
  </tr>
  <tr>
  <tr>
   <td><b>Operating Systems supported</b></td>
   <td><b>Operating Systems supported</b></td>
   <td colspan="4" align="center">Server 2003, 2008 and 2012<br>Windows 2000, XP, Vista, 7, 8, 8.1 and 10<br>Linux 2.2 and 2.4<br>CentOS 7.0<br>Ubuntu 8.04, 10.04, 12.04 and 14.04<br>Mac OS X<br>Free BSD...</td>
   <td colspan="5" align="center">Server 2003, 2008 and 2012<br>Windows 2000, XP, Vista, 7, 8, 8.1 and  
 
10<br>Linux 2.2 and 2.4<br>CentOS 7.0<br>Ubuntu 8.04, 10.04, 12.04 and 14.04<br>Mac OS X<br>Free  
 
BSD...</td>
  </tr>
  </tr>
  <tr>
  <tr>
   <td><b>Integrated memory</b></td>
   <td><b>Integrated memory</b></td>
   <td colspan="4" align="center">4k</td>
   <td colspan="5" align="center">4k</td>
  </tr>
  </tr>
  <tr>
  <tr>
   <td><b>Memory cell rewrites</b></td>
   <td><b>Memory cell rewrites</b></td>
   <td colspan="4" align="center">At least 1,000,000</td>
   <td colspan="5" align="center">At least 1,000,000</td>
  </tr>
  </tr>
  <tr>
  <tr>
   <td><b>Memory data retention</b></td>
   <td><b>Memory data retention</b></td>
   <td colspan="4" align="center">At least 30 years</td>
   <td colspan="5" align="center">At least 30 years</td>
  </tr>
  </tr>
  <tr>
  <tr>
   <td><b>Max number of features/<br>applications enabled per key</b></td>
   <td><b>Max number of features/<br>applications enabled per key</b></td>
   <td align="center">256</td>
   <td align="center">256</td>
   <td colspan="3" align="center">64</td>
   <td colspan="4" align="center">64</td>
  </tr>
  </tr>
  <tr>
  <tr>
   <td><b>Driver</b></td>
   <td><b>Driver</b></td>
   <td colspan="4" align="center">Driverless (HID device)</td>
   <td colspan="5" align="center">Driverless (HID device)</td>
  </tr>
  </tr>
</table>
</table>


===UniKey protection methods===
===UniKey protection methods===
Line 439: Line 653:


====UniKey Enveloper====
====UniKey Enveloper====
UniKey Enveloper is the fastest way to protect your executable files, by adding a protective shield around executable files such as .exe or .DLL. UniKey Enveloper is an automatic software protection solution, you do not need to edit source code or perform any additional coding. By simply using the mouse, you can implement different software protection schemes. At the same time, it provides a high level of protection, making it virtually impossible to debug or reverse engineer your protected software.
UniKey Enveloper is the fastest way to protect your executable files, by adding a protective shield  
 
around executable files such as .exe or .DLL. UniKey Enveloper is an automatic software protection  
 
solution, you do not need to edit source code or perform any additional coding. By simply using the  
 
mouse, you can implement different software protection schemes. At the same time, it provides a high  
 
level of protection, making it virtually impossible to debug or reverse engineer your protected  
 
software.


[[File:unikey enveloper.png|alt=UniKey Enveloper workflow diagram]]
[[File:unikey enveloper.png|alt=UniKey Enveloper workflow diagram]]


After protecting your application with the UniKey Enveloper, it cannot run without the correct UniKey dongle. You can protect applications either by a local UniKey or a remote UniKey on a network.
After protecting your application with the UniKey Enveloper, it cannot run without the correct UniKey  
 
dongle. You can protect applications either by a local UniKey or a remote UniKey on a network.


====UniKey Application Programming Interface (API)====
====UniKey Application Programming Interface (API)====
We provide abundant APIs to operate the UniKey dongle, all the APIs are implemented in a DLL/LIB/DCU/a/dylib file, and this library file can be linked dynamically or statically. In the SDK, you can find samples in various programming languages. Please refer to the relevant API reference guide for more details.
We provide abundant APIs to operate the UniKey dongle, all the APIs are implemented in a  
 
SDK/Libraries. In the SDK, you can find samples in various programming languages. Please refer to the  
 
relevant API reference guide in SDK/Documents/Manual for more details.




===UniKey Architecture===
===UniKey Architecture===
UniKey is a versatile dongle with an abundant set of features. There are several types of storages within each UniKey dongle, and each type is for a specific task.
UniKey is a versatile dongle with an abundant set of features. There are several types of storages  


[[File:unikey architecture.png|alt=UniKey architecture, on-board cryptography, user-defined algorithms, etc]]
within each UniKey dongle, and each type is for a specific task.
 
[[File:unikey architecture.png|alt=UniKey architecture, on-board cryptography, user-defined  
 
algorithms, etc]]


<table class="wikitable" align="right" style="width: 150px;">
<table class="wikitable" align="right" style="width: 150px;">
  <tr>
  <tr>
   <td align="center"><i>By default, UniKey (STD, PRO and Time) passwords are:
   <td align="center"><i>By default, UniKey (STD, PRO ,Time and Ultra Dual) passwords are:
* pw1 = 1234
* pw1 = 1234
* pw2 = 1234
* pw2 = 1234
Line 474: Line 708:


====Passwords====
====Passwords====
UniKey consists of 4 passwords, with each password being 2 bytes (16 bits) long. We define pw1 and pw2 as the basic-level (user) passwords and can be offered to end users. Conversely, pw3 and pw4 are advanced (vendor) passwords that should be kept for use at the software developer side, and not be made available to end users. All 4 passwords are needed to obtain full permissions and access to the UniKey dongle.
UniKey consists of 4 passwords, with each password being 2 bytes (16 bits) long. We define pw1 and pw2  
 
as the basic-level (user) passwords and can be offered to end users. Conversely, pw3 and pw4 are  
 
advanced (vendor) passwords that should be kept for use at the software developer side, and not be  
 
made available to end users. All 4 passwords are needed to obtain full permissions and access to the  
 
UniKey dongle.




<table class="wikitable">
<table class="wikitable">
  <tr>
  <tr>
   <td colspan="3" align="center" style="background-color: red;"><b style="color: #fff;">Password Permissions</b></td>
   <td colspan="3" align="center" style="background-color: red;"><b style="color: #fff;">Password  
 
Permissions</b></td>
  </tr>
  </tr>
  <tr>
  <tr>
   <td style="background-color: red;"></td>
   <td style="background-color: red;"></td>
   <td style="background-color: red;"><b style="color: #fff;">pw1 + pw2<br>(user mode)</b></td>
   <td style="background-color: red;"><b style="color: #fff;">pw1 + pw2<br>(user mode)</b></td>
   <td style="background-color: red;"><b style="color: #fff;">pw1 + pw2 + pw3 + pw4<br>(vendor mode)</b></td>
   <td style="background-color: red;"><b style="color: #fff;">pw1 + pw2 + pw3 + pw4<br>(vendor mode)
 
</b></td>
  </tr>
  </tr>
  <tr>
  <tr>
Line 663: Line 909:
</table>
</table>


===UniKey Drive===
UniKey Drive is a variation of the UniKey PRO model and has all the same functions, with the addition
of being the first driverless dongle with mass storage and high security, and supporting up to 32 end
users with different levels of permission.
UniKey Drive arms software vendors with the ability to easily deliver fully-licensed and
protectedsoftware; greatly reducing installation steps and woes for end users, with the licenses
stored inside the smartcard. UniKey Drive enables software publishers to grow their business through
software protection, IP protection and secure licensing.
With UniKey Drive, vendors can use partitioning software to provide mass storage for their end users.
This provides significant flexibility, allowing software vendors to partition the key in numerous


===UniKey Drive===
ways, designating space for the software (read-only memory) and mass storage for the end user, so they
UniKey Drive is a variation of the UniKey PRO model and has all the same functions, with the addition of being the first driverless dongle with mass storage and high security, and supporting up to 32 end users with different levels of permission.
 
can store their own application data files. Additionally, UniKey Drives auto-run software setup


UniKey Drive arms software vendors with the ability to easily deliver fully-licensed and protectedsoftware; greatly reducing installation steps and woes for end users, with the licenses stored inside the smartcard. UniKey Drive enables software publishers to grow their business through software protection, IP protection and secure licensing.
capabilities allow end users to run the protected application directly from the UniKey Drive,  


With UniKey Drive, vendors can use partitioning software to provide mass storage for their end users. This provides significant flexibility, allowing software vendors to partition the key in numerous ways, designating space for the software (read-only memory) and mass storage for the end user, so they can store their own application data files. Additionally, UniKey Drives auto-run software setup capabilities allow end users to run the protected application directly from the UniKey Drive, providing extra convenience for end users.
providing extra convenience for end users.


====License modules====
====License modules====
UniKey Drive has 256 license modules empowering software vendors with the flexibility to choose the licensing that best fits their business needs.
UniKey Drive has 256 license modules empowering software vendors with the flexibility to choose the  
 
licensing that best fits their business needs.


====High security====
====High security====
UniKey Drive has two more powerful encryption algorithms, onboard 3DES and RSA with support for 1024- and 2048-bit key lengths.
UniKey Drive has two more powerful encryption algorithms, onboard 3DES and RSA with support for 1024-  
 
and 2048-bit key lengths.


====Multiple partitions====
====Multiple partitions====
With UniKey Drive, vendors can use partitioning software to provide mass storage to end users. This provides significant flexibility, allowing software vendors to partition the key to their own requirements, designating space for the software (CD-ROM), and mass storage for the end user.  
With UniKey Drive, vendors can use partitioning software to provide mass storage to end users. This  
 
provides significant flexibility, allowing software vendors to partition the key to their own  
 
requirements, designating space for the software (CD-ROM), and mass storage for the end user.  


The UniKey Drive storage is divided into four partitions:
The UniKey Drive storage is divided into four partitions:
Line 688: Line 961:


===Virtual CD ROM===
===Virtual CD ROM===
This partition offers an ideal space for storing tools since the information in this partition is read-only and cant be modified. To store tools in this partition, users can save the prepared image files to this partition. An application DriverPWAgent.exe contained in the Virtual CD-ROM is used for logging on to the Password Protected Drive.
This partition offers an ideal space for storing tools since the information in this partition is  
 
read-only and cant be modified. To store tools in this partition, users can save the prepared image  
 
files to this partition. An application DriverPWAgent.exe contained in the Virtual CD-ROM is used for  
 
logging on to the Password Protected Drive.


====Public Drive====
====Public Drive====
Line 694: Line 973:


====Password Protected Drive====
====Password Protected Drive====
Without the correct password to log on, theres no way to perform any operation in the Password Protected Drive. After logging on to the partition by using DriverPWAgent.exe, the partition named Secu Drive will pop up on the computer. This partition allows users to store information of high importance and confidentiality.
Without the correct password to log on, theres no way to perform any operation in the Password  
 
Protected Drive. After logging on to the partition by using DriverPWAgent.exe, the partition named  
 
Secu Drive will pop up on the computer. This partition allows users to store information of high  
 
importance and confidentiality.


====Hidden Drive====
====Hidden Drive====
As the name suggests, users cannot see data stored on this partition, but there is storage space along with a file system. To ensure the safety of the data stored in the Hidden Drive, a password with high level security is implemented. In order to utilize the Hidden Drive, users have to obtain the correct password to log on and call a range of APIs that are provided to customers for creating, finding, reading and writing files, as well as tools for formatting and so on.
As the name suggests, users cannot see data stored on this partition, but there is storage space along  
 
with a file system. To ensure the safety of the data stored in the Hidden Drive, a password with high  
 
level security is implemented. In order to utilize the Hidden Drive, users have to obtain the correct  
 
password to log on and call a range of APIs that are provided to customers for creating, finding,  
 
reading and writing files, as well as tools for formatting and so on.




===Network Function===
===Network Function===
UniKey PRO, Time and Drive posses network functions and have no small limitation on the maximum number of concurrent remote clients. You can set any reasonable number necessary (the maximum value is 2<sup>16</sup>-1).
UniKey PRO, Time, Ultra Dual and Drive posses network functions and have no small limitation on the  
 
maximum number of concurrent remote clients. You can set any reasonable number necessary (the maximum  
 
value is 2<sup>16</sup>-1).


[[File:network function.jpeg|550px|alt=UniKey PRO, Time, Drive network functions]]
[[File:network function.jpeg|550px|alt=UniKey PRO, Time, Drive network functions]]


====Intelligent Library====
====Intelligent Library====
The UniKey Library (UniKey.dll) for UniKey is smart. If there is no set rule to follow, it will try to load a smart setting, and try to find a UniKey on the network. If the software vendor is not clear about the settings at the end user side, simply let the UniKey library follow its own intelligent rule. This smart search can be done without any configuration, allowing the UniKey to operate on the network.
The UniKey Library (UniKey.dll) for UniKey is smart. If there is no set rule to follow, it will try to  
 
load a smart setting, and try to find a UniKey on the network. If the software vendor is not clear  
 
about the settings at the end user side, simply let the UniKey library follow its own intelligent  
 
rule. This smart search can be done without any configuration, allowing the UniKey to operate on the  
 
network.


<table class="wikitable" align="right" style="width: 100px;">
<table class="wikitable" align="right" style="width: 100px;">
  <tr>
  <tr>
   <td align="center"><i>The default port for the UniKey network is 5680, this can be changed in the configuration file</i></td>
   <td align="center"><i>The default port for the UniKey network is 5680, this can be changed in the  
 
configuration file</i></td>
  </tr>
  </tr>
</table>
</table>


====Floating License Model====
====Floating License Model====


UniKey stores software licenses on itself. In some cases, you may want to store the license on a network server or local workstation. Because UniKey is intelligent, you can easily implement a floating license model, i.e. you can store the license info on UniKey and the client will try to find both licenses over the network. All these features will work without any configuration, and the client will find the license that is on the local network.
UniKey stores software licenses on itself. In some cases, you may want to store the license on a  
 
network server or local workstation. Because UniKey is intelligent, you can easily implement a  
 
floating license model, i.e. you can store the license info on UniKey and the client will try to find  
 
both licenses over the network. All these features will work without any configuration, and the client  


UniKey software copy protection system is a powerful solution, and it offers flexible software protection schemes.  UniKey PRO, Time and Drive can work on a network and they all support a floating license. The network can be an Intranet (LAN) or run over the Internet. Network functions can work crossing over different subnets.  Please add NetUniKey server to the exception/trusted list of your anti-virus software, otherwise it may block communication between the NetUniKey server and client.
will find the license that is on the local network.
 
UniKey software copy protection system is a powerful solution, and it offers flexible software  
 
protection schemes.  UniKey PRO, Time and Drive can work on a network and they all support a floating  
 
license. The network can be an Intranet (LAN) or run over the Internet. Network functions can work  
 
crossing over different subnets.  Please add NetUniKey server to the exception/trusted list of your  
 
anti-virus software, otherwise it may block communication between the NetUniKey server and client.


<div style="clear:both;"></div>
<div style="clear:both;"></div>
====Network features====
====Network features====
* No artificial limitation of concurrent users (no more than 65535-1024, which is the max number available from the socket).
* No artificial limitation of concurrent users (no more than 65535-1024, which is the max number  
 
available from the socket).
* Black and whitelist support. Blacklisted IPs will be unable to access the UniKey.
* Black and whitelist support. Blacklisted IPs will be unable to access the UniKey.
* Working mode set by developers. For example a developer can set it to search for a local key first and then search for a key on the network or vice versa. (This is called a floating license).
* Working mode set by developers. For example a developer can set it to search for a local key first  
 
and then search for a key on the network or vice versa. (This is called a floating license).
* Assign the server an IP address or let clients find the server automatically via broadcast.
* Assign the server an IP address or let clients find the server automatically via broadcast.
* UniKey can work with different networks, even over the Internet or through different subnets.
* UniKey can work with different networks, even over the Internet or through different subnets.
* UniKey automatically adds itself to the WinXP sp2 firewall for ease of use.  No change between all the APIs.
* UniKey automatically adds itself to the WinXP sp2 firewall for ease of use.  No change between all  
 
the APIs.
* The Network DLL can work with UniKey (the local/standard key).
* The Network DLL can work with UniKey (the local/standard key).
* When no configuration is necessary, just remove the .ini file and youre done.
* When no configuration is necessary, just remove the .ini file and youre done.
* Network key drivers arent necessary. UniKey is completely green software and keeps the same tradition as the driverless dongle. Just copy the .exe and run it.
* Network key drivers arent necessary. UniKey is completely green software and keeps the same  
 
tradition as the driverless dongle. Just copy the .exe and run it.




Line 736: Line 1,069:


===Console===
===Console===
The UniKey Console manual can be found in the <code>SDK/Utilities</code> folder located in the SDK, or can be read at: [[UniKey Console Tool]].
The UniKey Console manual can be found in the <code>SDK/Utilities</code> folder located in the SDK, or  
 
can be read at: [[UniKey Console Tool]].


===Enveloper===
===Enveloper===
The UniKey Enveloper manual can be found in the <code>SDK/Utilities folder</code> located in the SDK, or can be read at: [[UniKey Envelop Tool]].
The UniKey Enveloper manual can be found in the <code>SDK/Utilities folder</code> located in the SDK,  
 
or can be read at: [[UniKey Envelop Tool]].


===UniKey API===
===UniKey API===
UniKey API is easy, secure and portable. If a library is required for your development language, you can copy the appropriate library file(s) to the same directory as your sample source code. With the help of the UniKey APIs, you can easily achieve strong software protection and produce complete software protection schemes via various combinations of the UniKey APIs.
UniKey API is easy, secure and portable. If a library is required for your development language, you  
 
can copy the appropriate library file(s) to the same directory as your sample source code. With the  
 
help of the UniKey APIs, you can easily achieve strong software protection and produce complete  
 
software protection schemes via various combinations of the UniKey APIs.


====Libraries====
====Libraries====
Inside the <code>SDK/Libraries</code> folder are the UniKey API files used for development. Sample usage is provided in <code>SDK/Samples</code>
Inside the <code>SDK/Libraries</code> folder are the UniKey API files used for development. Sample  
 
usage is provided in <code>SDK/Samples</code>


====API Reference====
====API Reference====
Please refer to the API reference in <code>SDK/Documents/Manual/API Reference.pdf</code> for more details and usage guidelines, it can also be found [[:Category:UniKey API]].
Please refer to the API reference in <code>SDK/Documents/Manual/API Reference.pdf</code> for more  
 
details and usage guidelines, it can also be found [[:Category:UniKey API]].




===UniKey Drive Init===
===UniKey Drive Init===
The UniKey Drive Init manual can be found in the <code>Drive SDK/Utilities</code> folder located in the SDK, or at: [[UniKey Init Tool]].
The UniKey Drive Init manual can be found in the <code>Drive SDK/Utilities</code> folder located in  
 
the SDK, or at: [[UniKey Init Tool]].


===UniKey Drive Entry===
===UniKey Drive Entry===
The UniKey Drive Entry manual can be found in the <code>SDK/Utilities</code> folder located in the SDK, or at: [[UniKey Entry Tool]].
The UniKey Drive Entry manual can be found in the <code>SDK/Utilities</code> folder located in the  
 
SDK, or at: [[UniKey Entry Tool]].


===UniKey Assist===
===UniKey Assist===
The UniKey Assist manual can be found in the <code>SDK/Utilities</code> folder located in the SDK, or at: [[UniKey Assist Tool]].
The UniKey Assist manual can be found in the <code>SDK/Utilities</code> folder located in the SDK, or  
 
at: [[UniKey Assist Tool]].


===UniKey Burner===
===UniKey Burner===
The UniKey Burner manual can be found in the <code>SDK/Utilities</code> folder located in the SDK, or at: [[UniKey Burner Tool]].
The UniKey Burner manual can be found in the <code>SDK/Utilities</code> folder located in the SDK, or  
 
at: [[UniKey Burner Tool]].


===Remote Updater===
===Remote Updater===
The UniKey Remote Updater manual can be found in the <code>SDK/Utilities</code> folder located in the SDK, or at: [[UniKey Updater And Generator Tool]].
The UniKey Remote Updater manual can be found in the <code>SDK/Utilities</code> folder located in the  
 
SDK, or at: [[UniKey Updater And Generator Tool]].


===UniKey Generator===
===UniKey Generator===
The UniKey Generator manual can be found in the <code>SDK/Utilities</code> folder located in the SDK, or at: [[UniKey Updater And Generator Tool]].
The UniKey Generator manual can be found in the <code>SDK/Utilities</code> folder located in the SDK,  
 
or at: [[UniKey Updater And Generator Tool]].


===Network tools===
===Network tools===


====UniKey network service and console====
====UniKey network service and console====
The UniKey network service is an application that runs in the system background that enables users to connect to a UniKey dongle over the network. This works in conjunction with the UniKey Network Server Console to monitor client connections, set up servers, manage black and white IP lists and other useful functions.
The UniKey network service is an application that runs in the system background that enables users to  
 
connect to a UniKey dongle over the network. This works in conjunction with the UniKey Network Server  


Installation, usage and setup details are provided with the SDK in <code>SDK/Network/Quick Setup for UniKey Network Feature.pdf</code>
Console to monitor client connections, set up servers, manage black and white IP lists and other
 
useful functions.
 
Installation, usage and setup details are provided with the SDK in <code>SDK/Network/Quick Setup for  
 
UniKey Network Feature.pdf</code>


====Monitor====
====Monitor====


[[File:monitor.png|thumb|none|500px|alt=UniKey Network Server Console monitor tab|<b>The 2 red dots at the bottom show the status of the service/network respectively; if they are green then they are functioning.</b>]]
[[File:monitor.png|thumb|none|500px|alt=UniKey Network Server Console monitor tab|<b>The 2 red dots at  
 
the bottom show the status of the service/network respectively; if they are green then they are  
 
functioning.</b>]]
 
In the Monitor tab users can see the currently connected users to the UniKey network. They can sort
 
the list of connected users by IP address or by UniKey HID. Administrators can disconnect users by


In the Monitor tab users can see the currently connected users to the UniKey network. They can sort the list of connected users by IP address or by UniKey HID. Administrators can disconnect users by using the Kill and Kill All buttons.
using the Kill and Kill All buttons.


====Manage services====
====Manage services====


[[File:manage services.png|thumb|none|500px|alt=UniKey Network manage network services tab|<b>Port 5680 is the default network port for the UniKey network services.</b>]]
[[File:manage services.png|thumb|none|500px|alt=UniKey Network manage network services tab|<b>Port  
 
5680 is the default network port for the UniKey network services.</b>]]
 
By clicking on the Service Manage tab, you can check the servers status and configure the settings.
 
The service and network can be enabled/disabled by using the Start/Stop buttons and the network can be
 
configured. Time limit (seconds) defines the interval of time the client has to respond to a


By clicking on the Service Manage tab, you can check the servers status and configure the settings. The service and network can be enabled/disabled by using the Start/Stop buttons and the network can be configured. Time limit (seconds) defines the interval of time the client has to respond to a connection attempt. If the client does not respond in the set period, the server will close the connection. Auto Start sets the service to run whenever the server starts.
connection attempt. If the client does not respond in the set period, the server will close the  
 
connection. Auto Start sets the service to run whenever the server starts.


====Black and White IP list====
====Black and White IP list====


[[File:blacklist.png|thumb|none|500px|alt=UniKey blacklist and whitelist IP addresses|<b>The blacklist has priority over the whitelist, if an IP address conflict occurs between both lists, that IP address will be blocked.</b>]]
[[File:blacklist.png|thumb|none|500px|alt=UniKey blacklist and whitelist IP addresses|<b>The blacklist  
 
has priority over the whitelist, if an IP address conflict occurs between both lists, that IP address  
 
will be blocked.</b>]]


Enabling the black and/or white IP list blocks/allows IP addresses respectively. IP addresses are added in ranges, when a user clicks on Add the following window appears:
Enabling the black and/or white IP list blocks/allows IP addresses respectively. IP addresses are  
 
added in ranges, when a user clicks on Add the following window appears:


[[File:IP range.png|300px|alt=server start and end IP address]]
[[File:IP range.png|300px|alt=server start and end IP address]]


This allows administrators to input the range of desired IP addresses to block/allow to connect to the server.
This allows administrators to input the range of desired IP addresses to block/allow to connect to the  
 
server.


<b>More information can be found at [[UniKey Network Monitor Tool]]</b>
<b>More information can be found at [[UniKey Network Monitor Tool]]</b>
Line 804: Line 1,197:


====Resource Vault====
====Resource Vault====
The Resource vault provides software vendors and end users the ability to download the latest software, documents and tools as well as examples and other useful data such as cook books for using the UniKey API.
The Resource vault provides software vendors and end users the ability to download the latest  
 
software, documents and tools as well as examples and other useful data such as cook books for using  
 
the UniKey API.


====FAQ====
====FAQ====
Frequently asked questions about SecuTechs products can be found here. The user friendly navigation to filter through the multitude of different solutions and answers helps you to solve any issues you may be experiencing.
Frequently asked questions about SecuTechs products can be found here. The user friendly navigation to  
 
filter through the multitude of different solutions and answers helps you to solve any issues you may  
 
be experiencing.


====Ticketing service====
====Ticketing service====
The ticketing service is used to create support requests for any issues that you may have when using SecuTechs products, by using the ticketing service you can track the progress of your ticket and expect a response time of 24 hours. You will be notified of any responses by mail.
The ticketing service is used to create support requests for any issues that you may have when using  
 
SecuTechs products, by using the ticketing service you can track the progress of your ticket and  
 
expect a response time of 24 hours. You will be notified of any responses by mail.




Line 816: Line 1,221:


===How do licenses work===
===How do licenses work===
The UniKey protected applications will search and communicate with the dongle connected to the USB port or over the network.  The protected application first determines whether or not the dongle connected is correct. If the dongle proves to be correct, then the application will respond by showing us if the application or feature is authorized to run. The authorization is based on the terms of the license for the feature or application. Once the application has started, it will continue to communicate with the dongle to check what features or in what way the application can be used.
The UniKey protected applications will search and communicate with the dongle connected to the USB  
 
port or over the network.  The protected application first determines whether or not the dongle  
 
connected is correct. If the dongle proves to be correct, then the application will respond by showing  
 
us if the application or feature is authorized to run. The authorization is based on the terms of the  
 
license for the feature or application. Once the application has started, it will continue to  
 
communicate with the dongle to check what features or in what way the application can be used.


====Background Information====
====Background Information====
As more software is distributed electronically, license management is becoming an increasing concern for software developers. New marketing and licensing schemes are evolving to include the ability to try before you buy, pay by usage, software use for a limited period or to control what features can be used.
As more software is distributed electronically, license management is becoming an increasing concern  
 
for software developers. New marketing and licensing schemes are evolving to include the ability to  
 
try before you buy, pay by usage, software use for a limited period or to control what features can be  
 
used.


===How to choose a product===
===How to choose a product===
We advise you to choose the right UniKey model based on your technical requirements and budget:  If you only need a standard software protection solution and do not require network or real time functions, then UniKey STD will be the best choice.  If your application can work over a LAN, and you need to control the number of concurrent users, then you should select UniKey PRO.  Expiration, time-based leasing, and trial software should take advantage of UniKey Time.  If you need to have mass storage space with high security, UniKey Drive will best serve your needs.
We advise you to choose the right UniKey model based on your technical requirements and budget:  If  
 
you only need a standard software protection solution and do not require network or real time  
 
functions, then UniKey STD will be the best choice.  If your application can work over a LAN, and you  
 
need to control the number of concurrent users, then you should select UniKey PRO.  If you would like
 
to use MacBook or any other computers with USB Type-C port, then you should select UniKey Ultra Dual.
 
Expiration, time-based leasing, and trial software should take advantage of UniKey Time.  If you need  
 
to have mass storage space with high security, UniKey Drive will best serve your needs.


===Remote update system===
===Remote update system===
UniKey provides a flexible solution with software protection to meet the various requirements of software sales. It is a common need for end users to upgrade software if they purchase new functions, prolong the leasing period or remove limitations. UniKey provides a convenient remote update solution to minimize the cost of software upgrades. UniKeys Remote Update System allows end users to execute and load a UniKey remote update file, so updating UniKey becomes an automated process.
UniKey provides a flexible solution with software protection to meet the various requirements of  
 
software sales. It is a common need for end users to upgrade software if they purchase new functions,  
 
prolong the leasing period or remove limitations. UniKey provides a convenient remote update solution  
 
to minimize the cost of software upgrades. UniKeys Remote Update System allows end users to execute  
 
and load a UniKey remote update file, so updating UniKey becomes an automated process.


===Popular License types===
===Popular License types===
UniKey Security Keys support many different licensing models by giving you the power to ensure software license compliance, allowing you to choose how to grow your business:
UniKey Security Keys support many different licensing models by giving you the power to ensure  


* <b>Feature Based</b>: Enables or disables product features according to customer needs and charges only for the functionality they use.
software license compliance, allowing you to choose how to grow your business:
* <b>Rental</b>: Offers software rentals and charges periodically for software applications, modules or features.
 
* <b>Feature Based</b>: Enables or disables product features according to customer needs and charges  
 
only for the functionality they use.
* <b>Rental</b>: Offers software rentals and charges periodically for software applications, modules  
 
or features.
* <b>Subscription</b>: Charges for software upgrades and new versions.
* <b>Subscription</b>: Charges for software upgrades and new versions.
* <b>Floating</b>: Charges by the number of network connections that use the software simultaneously in network environments.
* <b>Floating</b>: Charges by the number of network connections that use the software simultaneously  
 
in network environments.
* <b>Floating/Time-Based</b>: Combines floating and rental/subscription pricing models.
* <b>Floating/Time-Based</b>: Combines floating and rental/subscription pricing models.
* <b>Try Before You Buy</b>: Offers limited trial versions free-of-charge.
* <b>Try Before You Buy</b>: Offers limited trial versions free-of-charge.
* <b>Pay Per Use</b>: Charges for the number of times software functionality is used over a period of time.
* <b>Pay Per Use</b>: Charges for the number of times software functionality is used over a period of  
* <b>Volume Licensing</b>: Offers volume pricing for multiple single-user copies operating in a network environment.
 
time.
* <b>Volume Licensing</b>: Offers volume pricing for multiple single-user copies operating in a  
 
network environment.


<table class="wikitable" align="right" style="width: 100px;">
<table class="wikitable" align="right" style="width: 100px;">
  <tr>
  <tr>
   <td align="center"><i>For example: if the software has functions A and B, but the customer only bought function A, the developer can attach a module to A=10 and a separate module to B=0</i></td>
   <td align="center"><i>For example: if the software has functions A and B, but the customer only  
 
bought function A, the developer can attach a module to A=10 and a separate module to B=0</i></td>
  </tr>
  </tr>
</table>
</table>


====Licensing Modules====
====Licensing Modules====
Each UniKey dongle has 64 license modules except the UniKey Drive dongle which has 256 license modules. These license modules are 2-bytes long in storage. Developers can write a license module by taking full permission of the UniKey dongle. If a license module is non-zero, it means the license module is valid; otherwise, the license module is invalid. The contents of a license module cannot be read out, but the developer may check the validity of the license module. The conditions on how long a module lasts can be determined in many ways, for example, the non-zero number assigned to a module can decrement every time the software is used until it reaches 0.
Each UniKey dongle has 64 license modules except the UniKey Drive dongle which has 256 license  
 
modules. These license modules are 2-bytes long in storage. Developers can write a license module by  
 
taking full permission of the UniKey dongle. If a license module is non-zero, it means the license  
 
module is valid; otherwise, the license module is invalid. The contents of a license module cannot be  
 
read out, but the developer may check the validity of the license module. The conditions on how long a  
 
module lasts can be determined in many ways, for example, the non-zero number assigned to a module can  
 
decrement every time the software is used until it reaches 0.


====Real-Time Function====
====Real-Time Function====
UniKey Time has a real-time clock inside each dongle. We can implement more flexible real time functions/protection along with UniKey Time. Since the real-time clock inside UniKey Time is independent of the host computers clock, the timing function with UniKey Time is more secure and accurate than its competitors. Software vendors can set their current time to the real-time clock inside the UniKey Time, and can check software execution time.
UniKey Time has a real-time clock inside each dongle. We can implement more flexible real time  
 
functions/protection along with UniKey Time. Since the real-time clock inside UniKey Time is  
 
independent of the host computers clock, the timing function with UniKey Time is more secure and  
 
accurate than its competitors. Software vendors can set their current time to the real-time clock  
 
inside the UniKey Time, and can check software execution time.


====How does the Real Time Function Work?====
====How does the Real Time Function Work?====
There are 16 real-time modules within each UniKey Time dongle. Real-time modules are only valid in a specific time period. Software vendors can set real-time modules to one of 2 types, i.e. static and duration.
There are 16 real-time modules within each UniKey Time dongle. Real-time modules are only valid in a  
 
specific time period. Software vendors can set real-time modules to one of 2 types, i.e. static and  
 
duration.


====Static Type====
====Static Type====
If a license module is set to static, then it is only valid (non-zero) between the start and end time. For example, if we set a real-time module #0 as static, and then set the start time as 2012.8.1, 10:00:00, the end time as 2012.8.30, 22:00:00, then this real-time module is only valid within this period. If we check this real-time module beyond the time period, this module will be regarded as invalid. The time used is the clocks time inside the dongle itself, not the host computers time.
If a license module is set to static, then it is only valid (non-zero) between the start and end time.  
 
For example, if we set a real-time module #0 as static, and then set the start time as 2012.8.1,  
 
10:00:00, the end time as 2012.8.30, 22:00:00, then this real-time module is only valid within this  
 
period. If we check this real-time module beyond the time period, this module will be regarded as  
 
invalid. The time used is the clocks time inside the dongle itself, not the host computers time.


====Duration Type====
====Duration Type====
Software vendors can set a real-time module as a duration type. This means the real-time module is only valid for a specific period after the real-time module has been started for the first time. For example, we can set the real time module #1 as duration, and the duration is 90 days and 12 hours. If we then start this module right now, it will be valid for 90 days and 12 hours. After that has passed, the real time module becomes invalid.
Software vendors can set a real-time module as a duration type. This means the real-time module is  
 
only valid for a specific period after the real-time module has been started for the first time. For  
 
example, we can set the real time module #1 as duration, and the duration is 90 days and 12 hours. If  
 
we then start this module right now, it will be valid for 90 days and 12 hours. After that has passed,  
 
the real time module becomes invalid.


====Demo Software====
====Demo Software====
In most cases, end users like to try a trial version of software before they buy the full version. For demo software, the functionality and execution count is limited. Software vendors can use a license module to limit the execution count, i.e. write 30 to module #0, and decrease this module each time the software is run, when it reaches 0 (invalid), the software cannot be run again.
In most cases, end users like to try a trial version of software before they buy the full version. For  
 
demo software, the functionality and execution count is limited. Software vendors can use a license  
 
module to limit the execution count, i.e. write 30 to module #0, and decrease this module each time  
 
the software is run, when it reaches 0 (invalid), the software cannot be run again.


====Selling Per Function Model====
====Selling Per Function Model====
A popular software sales model for end users is to only purchase one function of the software, i.e. the software has 5 functions, and an end-user may only want to purchase 3 of the 5 functions. With the UniKey dongle, the software vendor does not need to recompile the source code, and the function can be bound with the UniKey dongle.
A popular software sales model for end users is to only purchase one function of the software, i.e.  
 
the software has 5 functions, and an end-user may only want to purchase 3 of the 5 functions. With the  
 
UniKey dongle, the software vendor does not need to recompile the source code, and the function can be  
 
bound with the UniKey dongle.


====Software Leasing====
====Software Leasing====
It is common in software leasing to impose a date expiration limit. You can refer to the advanced usage portion of the UniKey APIs and the previous page about static and duration types.
It is common in software leasing to impose a date expiration limit. You can refer to the advanced  
 
usage portion of the UniKey APIs and the previous page about static and duration types.


====Distributing Software====
====Distributing Software====
In some cases, the software vendor may want to control the distribution of the software. You can use the UniKey dongle to control which channel/customer the software is for. The software ID or module number can identify the distribution channel or end user.
In some cases, the software vendor may want to control the distribution of the software. You can use  
 
the UniKey dongle to control which channel/customer the software is for. The software ID or module  
 
number can identify the distribution channel or end user.


====Bind with Hardware====
====Bind with Hardware====
A type of software licensing is to bind the software with hardware, such as a network card, machine hardware ID, etc. UniKey offers the software vendor the ability to bind software to specific UniKey hardware IDs.
A type of software licensing is to bind the software with hardware, such as a network card, machine  
 
hardware ID, etc. UniKey offers the software vendor the ability to bind software to specific UniKey  
 
hardware IDs.


====Serial Number/CD keys====
====Serial Number/CD keys====
Licensing software with a serial number is a widely used method, but if the computation is performed in memory, it can be easily cracked. We can move this computation into a UniKey dongle, taking advantage of User-Defined Algorithms and the MD5 hashing function. We suggest that serial numbers should work in addition to MD5 making cracking extremely difficult.
Licensing software with a serial number is a widely used method, but if the computation is performed  
 
in memory, it can be easily cracked. We can move this computation into a UniKey dongle, taking  
 
advantage of User-Defined Algorithms and the MD5 hashing function. We suggest that serial numbers  
 
should work in addition to MD5 making cracking extremely difficult.




Line 882: Line 1,405:


====Software Protection Scheme====
====Software Protection Scheme====
Making a good software protection scheme will extend the software protection lifecycle and software vendors can benefit more from their software sales. Although UniKey is a powerful dongle, a weak software protection scheme will lead to an unacceptable result. Finding and making a suitable software protection scheme plays an important role in software protection.
Making a good software protection scheme will extend the software protection lifecycle and software  
 
vendors can benefit more from their software sales. Although UniKey is a powerful dongle, a weak  
 
software protection scheme will lead to an unacceptable result. Finding and making a suitable software  
 
protection scheme plays an important role in software protection.


====Schedule====
====Schedule====
In general, software protection is the last step of software development, in order to achieve the best result, we should change this idea. The job of software protection should be started at least 1 month before the release of the software. The reason is simply that it needs time to be tested and verified to make sure that the software protection is strong enough and works as expected.  To derive the best software protection, software vendors should design their software protection schemes at the beginning of software development, and try to integrate the UniKey dongle with their software seamlessly.
In general, software protection is the last step of software development, in order to achieve the best  
 
result, we should change this idea. The job of software protection should be started at least 1 month  
 
before the release of the software. The reason is simply that it needs time to be tested and verified  
 
to make sure that the software protection is strong enough and works as expected.  To derive the best  
 
software protection, software vendors should design their software protection schemes at the beginning  
 
of software development, and try to integrate the UniKey dongle with their software seamlessly.


====Dongle Functions====
====Dongle Functions====
From a traditional viewpoint, the usage of a software protection dongle is to just check whether the dongle is attached and to read/write to the dongles memory. UniKey allows far more than just reading/writing memory. Taking advantage of various in-built functions of the UniKey can help to provide strong software protection. Integrate the UniKey functions together with the software; please do not only check if the UniKey dongle is attached, this form of protection is extremely easy to crack.  Save software credentials in the UniKey dongle, for example, store/encrypt the AES key in/with the UniKey dongle and try to minimize the time such a key is in memory. Please note, a computers memory is easy to copy, but it is almost impossible to copy the memory of a UniKey dongle.
From a traditional viewpoint, the usage of a software protection dongle is to just check whether the  
 
dongle is attached and to read/write to the dongles memory. UniKey allows far more than just  
 
reading/writing memory. Taking advantage of various in-built functions of the UniKey can help to  
 
provide strong software protection. Integrate the UniKey functions together with the software; please  
 
do not only check if the UniKey dongle is attached, this form of protection is extremely easy to  
 
crack.  Save software credentials in the UniKey dongle, for example, store/encrypt the AES key in/with  
 
the UniKey dongle and try to minimize the time such a key is in memory. Please note, a computers  
 
memory is easy to copy, but it is almost impossible to copy the memory of a UniKey dongle.


====People====
====People====
The individual who makes the software protection work is important and should be trusted. If the software protection source code is open to others or the public, the software protection is exposed and others can attempt to crack the protected software.  Another solution is to divide the software protection into several parts and have each developer take one part. Since they do not communicate or share source code with each other, the software protection as a whole is harder to leak.  We suggest that only trusted personnel have access to the code.
The individual who makes the software protection work is important and should be trusted. If the  
 
software protection source code is open to others or the public, the software protection is exposed  
 
and others can attempt to crack the protected software.  Another solution is to divide the software  
 
protection into several parts and have each developer take one part. Since they do not communicate or  
 
share source code with each other, the software protection as a whole is harder to leak.  We suggest  
 
that only trusted personnel have access to the code.


====Dongle Passwords====
====Dongle Passwords====
SecuTech Solution Inc. thinks from a customer point of view, by breaking the tradition of burning passwords at the dongle distributor side. Software vendors can burn their own passwords on their end and handle password storage by themselves, which is a far more secure solution. In order to burn a UniKey dongle password, you need to input a seed, and the password will be generated based on that seed.
SecuTech Solution Inc. thinks from a customer point of view, by breaking the tradition of burning  
 
passwords at the dongle distributor side. Software vendors can burn their own passwords on their end  
 
and handle password storage by themselves, which is a far more secure solution. In order to burn a  
 
UniKey dongle password, you need to input a seed, and the password will be generated based on that  
 
seed.
 
The password generation algorithm is irreversible, i.e. no one can generate the same password without
 
knowing your seed. When a new password is generated, a file containing the date, seed and newly
 
generated password will be created in the working directory. Please keep this file in a safe place.
 
Please note that each UniKey dongle can only generate a new password twice. If this fails or you want


The password generation algorithm is irreversible, i.e. no one can generate the same password without knowing your seed. When a new password is generated, a file containing the date, seed and newly generated password will be created in the working directory. Please keep this file in a safe place. Please note that each UniKey dongle can only generate a new password twice. If this fails or you want to change the password, you have to return the UniKey dongle to SecuTech Solution Inc.
to change the password, you have to return the UniKey dongle to SecuTech Solution Inc.


====Software Development====
====Software Development====
As discussed, the person who is developing the software protection code should be trusted. To avoid future problems, please refer to the source code in the UniKey SDK CD. In most cases, you do not need to compose a lot of code, you only need to modify the samples in the SDK, and then refactor that into your source code.
As discussed, the person who is developing the software protection code should be trusted. To avoid  
 
future problems, please refer to the source code in the UniKey SDK CD. In most cases, you do not need  
 
to compose a lot of code, you only need to modify the samples in the SDK, and then refactor that into  
 
your source code.


====Programming Languages====
====Programming Languages====
The choice of programming language is important in software protection. A compiled programming language is the best choice, such as C++ and Delphi. When using these types of programming languages, you do not need to worry too much about decompiling the source code, resulting in better software protection. An interpreted programming language such as FoxPro is somewhat weak, since it can be decompiled to obtain the source code or semi-source code. Only calling UniKey APIs is not strong enough to protect your software, here we offer 3 solutions:
The choice of programming language is important in software protection. A compiled programming  
 
language is the best choice, such as C++ and Delphi. When using these types of programming languages,  
 
you do not need to worry too much about decompiling the source code, resulting in better software  
 
protection. An interpreted programming language such as FoxPro is somewhat weak, since it can be  
 
decompiled to obtain the source code or semi-source code. Only calling UniKey APIs is not strong  
 
enough to protect your software, here we offer 3 solutions:
 
* <b>Save software credentials in the UniKey dongle</b>: Take advantage of the user-defined and seed
 
algorithms, this is totally separate to reading/writing and checking the dongle attachment. Involving
 
the UniKey dongle in computations will greatly strengthen your software protection.
* <b>Pack certain functions into a DLL file to enhance software protection</b>: A DLL file is compiled
 
and is difficult to decompile. We avoid the weaknesses of interpreted programming languages and take
 
advantage of compiled programming languages via a DLL.
* <b>Make a stub/packer for the interpreter</b>: The interpreter interprets high level code into
 
machine code. In general, a compiled programming language compiles an interpreter. Making a
 
stub/packer will add software protection codes into it and make the interpreter work with the UniKey


* <b>Save software credentials in the UniKey dongle</b>: Take advantage of the user-defined and seed algorithms, this is totally separate to reading/writing and checking the dongle attachment. Involving the UniKey dongle in computations will greatly strengthen your software protection.
dongles. This solution applies with Flash or e-Book etc.
* <b>Pack certain functions into a DLL file to enhance software protection</b>: A DLL file is compiled and is difficult to decompile. We avoid the weaknesses of interpreted programming languages and take advantage of compiled programming languages via a DLL.
* <b>Make a stub/packer for the interpreter</b>: The interpreter interprets high level code into machine code. In general, a compiled programming language compiles an interpreter. Making a stub/packer will add software protection codes into it and make the interpreter work with the UniKey dongles. This solution applies with Flash or e-Book etc.


====Obfuscation====
====Obfuscation====
Anti-piracy is the war between hackers and software vendors. To make piracy difficult, we need to use many different techniques. In general, hackers like to use debugging tools to see the assembly (ASM) code of the target software. Therefore, we use some tricks to make the decompiled ASM code more complicated.
Anti-piracy is the war between hackers and software vendors. To make piracy difficult, we need to use  
 
many different techniques. In general, hackers like to use debugging tools to see the assembly (ASM)  
 
code of the target software. Therefore, we use some tricks to make the decompiled ASM code more  
 
complicated.
 
* <b>Fake access to dongle</b>: For example, we use a random variable int Access. Such that, when we
 
access the dongle with the correct password, 3 other 'fake' passwords exist. this means that once we
 
have accessed the UniKey dongle 3 times, only 1/3 of the time it contains the correct password.
* <b>Save a random number in the UniKey dongle</b>: After a certain period, we read this number out of


* <b>Fake access to dongle</b>: For example, we use a random variable int Access. Such that, when we access the dongle with the correct password, 3 other 'fake' passwords exist. this means that once we have accessed the UniKey dongle 3 times, only 1/3 of the time it contains the correct password.
the UniKey dongle, and compare it with the number in memory. If they are the same, it means the dongle  
* <b>Save a random number in the UniKey dongle</b>: After a certain period, we read this number out of the UniKey dongle, and compare it with the number in memory. If they are the same, it means the dongle is attached, if not it means the dongle is not attached.
 
* <b>Save remember it into UniKey dongles</b>: It is common for applications to remember some variables and save them in the registry. We can save such variables in the UniKey dongle and load it from the UniKey dongle. Without attaching a correct dongle, applications cannot retrieve the proper variables.
is attached, if not it means the dongle is not attached.
* <b>Save remember it into UniKey dongles</b>: It is common for applications to remember some  
 
variables and save them in the registry. We can save such variables in the UniKey dongle and load it  
 
from the UniKey dongle. Without attaching a correct dongle, applications cannot retrieve the proper  
 
variables.


====Involving UniKey in Computation====
====Involving UniKey in Computation====
Only checking the attachment of a UniKey dongle is not strong enough. In order to increase the strength of protected software, we need to involve the UniKey dongle in a computation related to the software. Taking advantage of user-defined algorithms, you can create some simple computation to be run within the UniKey dongle; such computations should be critical to the software protection scheme. Since the input value of the user-defined algorithm is variable each time, it is difficult for a hacker to figure out the algorithms utilized in the UniKey dongle.
Only checking the attachment of a UniKey dongle is not strong enough. In order to increase the  
 
strength of protected software, we need to involve the UniKey dongle in a computation related to the  
 
software. Taking advantage of user-defined algorithms, you can create some simple computation to be  


Encrypting/Decrypting data via UniKey dongles will make cracking much more difficult. Since the UniKey has its own processor it can perform encryption/decryption inside the UniKey dongle, which provides the best security. The encryption/decryption key never leaves the UniKey dongle, and only users with full permission can generate a new key, so cracking the encryption of UniKey dongles becomes almost impossible.
run within the UniKey dongle; such computations should be critical to the software protection scheme.
 
Since the input value of the user-defined algorithm is variable each time, it is difficult for a
 
hacker to figure out the algorithms utilized in the UniKey dongle.
 
Encrypting/Decrypting data via UniKey dongles will make cracking much more difficult. Since the UniKey  
 
has its own processor it can perform encryption/decryption inside the UniKey dongle, which provides  
 
the best security. The encryption/decryption key never leaves the UniKey dongle, and only users with  
 
full permission can generate a new key, so cracking the encryption of UniKey dongles becomes almost  
 
impossible.


==Trouble shooting and FAQs==
==Trouble shooting and FAQs==
Line 926: Line 1,573:


<b>Q: Can others duplicate my UniKey dongle?</b>
<b>Q: Can others duplicate my UniKey dongle?</b>
: No. Please keep your seed for your passwords in a safe place. Without knowing the seed, no one can generate the same password.
: No. Please keep your seed for your passwords in a safe place. Without knowing the seed, no one can  
 
generate the same password.


<b>Q: What operating system does UniKey support?</b>
<b>Q: What operating system does UniKey support?</b>
: Windows 98SE, ME, 2000, XP, 2003 (32- and 64-bit), Server 2012, Vista, 7, 8, 8.1 and 10; Mac OS X; Linux (2.2 and above); CentOS 7; Ubuntu 8.04, 10.04, 12.04 and 14.04; VMware machine; EXSi 6.0
: Windows 98SE, ME, 2000, XP, 2003 (32- and 64-bit), Server 2012, Vista, 7, 8, 8.1 and 10; Mac OS X;  
 
Linux (2.2 and above); CentOS 7; Ubuntu 8.04, 10.04, 12.04 and 14.04; VMware machine; EXSi 6.0


<b>Q: What programming language does UniKey support?</b>
<b>Q: What programming language does UniKey support?</b>
: C, Visual C++, Visual Basic, Visual FoxPro, Delphi, Power Builder, Java, Access, Real Basic, Fortran, etc; any compiler that works with DLL/LIBs.
: C, Visual C++, Visual Basic, Visual FoxPro, Delphi, Power Builder, Java, Access, Real Basic,  
 
Fortran, etc; any compiler that works with DLL/LIBs.


<b>Q; How can learn about using a UniKey?</b>
<b>Q; How can learn about using a UniKey?</b>
: In the SDK, you can find a Quick Start file, which gives you a quick guide about how to use the UniKey.
: In the SDK, you can find a Quick Start file, which gives you a quick guide about how to use the  
 
UniKey.


<b>Q: What is driverless?</b>
<b>Q: What is driverless?</b>
: The UniKey software protection dongle is driverless, which means you do not need to install a driver on supported operating systems. The operating system embeds the driver and installs the driver automatically. Since the most frequent problems that occur at the end user side are driver installation, UniKey overcomes this problem perfectly. This feature is done via the HID protocol.
: The UniKey software protection dongle is driverless, which means you do not need to install a driver  
 
on supported operating systems. The operating system embeds the driver and installs the driver  
 
automatically. Since the most frequent problems that occur at the end user side are driver  
 
installation, UniKey overcomes this problem perfectly. This feature is done via the HID protocol.


<b>Q: Is the UniKey environmentally friendly?</b>
<b>Q: Is the UniKey environmentally friendly?</b>
: Yes, UniKey dongle is environmentally friendly. All parts and the production process are lead-free and ROHS-compatible.
: Yes, UniKey dongle is environmentally friendly. All parts and the production process are lead-free  
 
and ROHS-compatible.


<b>Q: What is the purpose of the light on the UniKey dongle?</b>
<b>Q: What is the purpose of the light on the UniKey dongle?</b>
: If the light is flashing, it means that either the UniKey dongle is not working or the system did not install the driver properly. You can update/replace the driver manually. If the light is constantly on, it means the UniKey dongle is ready to use.
: If the light is flashing, it means that either the UniKey dongle is not working or the system did  
 
not install the driver properly. You can update/replace the driver manually. If the light is  
 
constantly on, it means the UniKey dongle is ready to use.


<b>Q: Can I label the UniKey dongle with my logo?</b>
<b>Q: Can I label the UniKey dongle with my logo?</b>
: Yes, please contact SecuTech Solution Inc. ([mailto:sales@esecutech.com sales@esecutech.com]) or our distributor in your local area.
: Yes, please contact SecuTech Solution Inc. ([mailto:sales@esecutech.com sales@esecutech.com]) or our  
 
distributor in your local area.


<b>Q: Where can I get assistance when protecting my software?</b>
<b>Q: Where can I get assistance when protecting my software?</b>
: We are happy to provide high-quality service to our customers. If you have any questions, please feel free to contact us at [mailto:support@esecutech.com support@esecutech.com], our professional team will provide you instant help.
: We are happy to provide high-quality service to our customers. If you have any questions, please  
 
feel free to contact us at [mailto:support@esecutech.com support@esecutech.com], our professional team  
 
will provide you instant help.


<br><br>
<br><br>
If you have any questions, please feel free to contact us at: http://www.esecutech.com/support or [mailto:support@esecutech.com support@esecutech.com]
If you have any questions, please feel free to contact us at: http://www.esecutech.com/support or  
 
[mailto:support@esecutech.com support@esecutech.com]


<br>
<br>
Line 971: Line 1,646:
<b style="color: #CC0000; font-size: 125%;">About SecuTech</b>
<b style="color: #CC0000; font-size: 125%;">About SecuTech</b>


SecuTech Solution Inc. is a company specializing in data protection and strong authentication, providing total customer satisfaction in security systems &amp; services for banks, financial institutions &amp; other industries. Having extensive and in-depth experience within the information security market, SecuTech has drawn upon this experience to utilize today's cutting-edge technologies that are effective against increasingly sophisticated cyber attacks. Enabling enterprises, financial institutions, and government to safely adopt the economic benefits of mobile and cloud computing.
SecuTech Solution Inc. is a company specializing in data protection and strong authentication,  
 
providing total customer satisfaction in security systems &amp; services for banks, financial  
 
institutions &amp; other industries. Having extensive and in-depth experience within the information  
 
security market, SecuTech has drawn upon this experience to utilize today's cutting-edge technologies  
 
that are effective against increasingly sophisticated cyber attacks. Enabling enterprises, financial  
 
institutions, and government to safely adopt the economic benefits of mobile and cloud computing.


<b>http://www.esecutech.com<br>SecuTech Solution Inc.</b>
<b>http://www.esecutech.com<br>SecuTech Solution Inc.</b>
Line 1,008: Line 1,693:
|}
|}


<b>Copyright 2012 SecuTech Solution Inc. All rights reserved. Reproduction in whole or in part without written permission from SecuTech is prohibited. SecuTech UniMate and the SecuTech logo are trademarks of SecuTech Inc. Windows and all other trademarks are properties of their respective owners. Features and specifications are subject to change without notice.</b>
<b>Copyright 2012 SecuTech Solution Inc. All rights reserved. Reproduction in whole or in part without  
 
written permission from SecuTech is prohibited. SecuTech UniMate and the SecuTech logo are trademarks  
 
of SecuTech Inc. Windows and all other trademarks are properties of their respective owners. Features  
 
and specifications are subject to change without notice.</b>


[[File:SecuTech Logo.png]]
[[File:SecuTech Logo.png]]

Revision as of 17:23, 25 April 2017

UniKey Manual

Version 8.4

Version 1.0 1.1 1.2 1.3 2.0 2.1 2.2 3.0 4.0 5.0 6.0 7.0 7.1 7.3 8.0 8.1 8.2 8.3 8.4
Date 2006.1 2006.8 2006.10 2006.12 2007.2 2007.4 2007.8 2008.5 2008.8 2009.3 2010.4 2010.6 2010.8 2010.9 2012.3 2012.4 2016.5 2016.7 2017.4

The data and information contained in this document cannot be altered without the express written

permission of SecuTech Solution Inc. No part of this document can be reproduced or transmitted for any

purpose whatsoever, either by electronic or mechanical means.

The general terms of trade of SecuTech Solution Inc. apply. Diverging agreements must be made in

writing.

Copyright SecuTech Solution Inc. All rights reserved.

WINDOWS is a registered trademark of Microsoft Corporation.

The WINDOWS-logo is a registered trademark (TM) of Microsoft Corporation.

Software License

The software and the enclosed documentation are copyright-protected. By installing the software, you

agree to the conditions of the licensing agreement.

Licensing Agreement

SecuTech Solution Inc. (SecuTech for short) gives the buyer the simple, exclusive and non-transferable

licensing right to use the software on one individual computer or networked computer system (LAN).

Copying and any other form of reproduction of the software in full or in part as well as mixing and

linking it with others is prohibited. The buyer is authorized to make one single copy of the software

as backup. SecuTech reserves the right to change or improve the software without notice or to replace

it with a new development. SecuTech is not obliged to inform the buyer of changes, improvements or new

developments or to make these available to him. A legally binding promise of certain qualities is not

given. SecuTech is not responsible for damage unless it is the result of deliberate action or

negligence on the part of SecuTech or its aids and assistants. SecuTech accepts no responsibility of

any kind for indirect, accompanying or subsequent damage.

Contact Information

Web: http://www.esecutech.com

Email: sales@esecutech.com

Please Email any comments, suggestions or questions regarding this document or our products to us at:

sales@esecutech.com


CE Attestation of Conformity
UniMate is in conformity with the protection requirements of CE Directives 89/336/EEC Amending

Directive 92/31/EEC. UniMate satisfies the limits and verifying methods: EN55022/CISPR 22 Class B,

EN55024: 1998.


FCC Standard
This device is in conformance with Part 15 of the FCC Rules and Regulation for Information

Technology Equipment.

Operation of this product is subject to the following two conditions: (1) this device may not cause

harmful interference, and (2) this device must accept any interference received, including

interference that may cause undesired operation.


The equipment of UniMate is USBbased.




Conformity to ISO 9001:2000
The Quality System of SecuTech Solution Inc., including its implementation, meets the requirements

of the standard ISO 9001:2000


ROHS
All UniMate products are environmentally friendly with ROHS certificates.





About this guide

The UniKey manual is designed to help software publishers protect and license their software using the

UniKey system. This manual provides details on how to operate the UniKey system and how it can best

serve your protection and licensing requirements. This Manual is divided into these chapters:

Chapter 1 - Introduction

  • What UniKey is
  • Introduction to UniKey products
  • The benefits of choosing UniKey

Chapter 2 - Protection strategies

  • How to use UniKey
  • Comparison between UniKey products
  • Technical specifications

Chapter 3 - Utilities

  • What tools are needed to use UniKey
  • How to use these tools
  • What these tools can be used for

Chapter 4 - License Modes

  • How UniKey works
  • What license/product is suitable for you
  • Controlling how UniKey works.


Introduction

Introduction to the SDK

alt=UniKey software protection developer's kit
alt=UniKey software protection developer's kit

The UniKey Software Protection Developer's Kit proves to be a powerful tool when implementing

protection for all types of software. With this kit you receive a fully functional UniKey Hardware

Key, Protection Kit Software CD, a Quick Start guide, a Brochure and a Data Sheet. We recommend that

you get started with a UniKey Developer Kit before purchasing a sole UniKey hardware key.

buy UniKey driverless hardware key

UniKey Hardware Key

The UniKey Hardware Key enables you to efficiently protect your software.

protection kit software CD

Protection Kit Software CD

The Protection Kit Software CD contains the facilities and tools you need to apply UniKey protection

and licensing.

UniKey quick start guide

Quick Start

The Quick Start is designed to guide you through the set-up and use of a UniKey, within a few minutes.

More detailed information about UniKey is available in SDK This tutorial lays emphasis on

the process of installing UniKey and protecting an application.

[[File:SecuTech-Brochure-Software protection and licensing and two factor authentication one time

password token-001.jpg|130px|left|top|alt=UniKey brochure]]

Brochure

The Brochure is designed to familiarize you with basic information about UniKey products including the

concept of software protection, benefits to customers and UniKey License Models.

UniKey data sheet

Data Sheet

The Data Sheet is designed to give you a clear understanding of UniKey products, such as casing,

identification number, dimensions, weight and so on.


Files within the SDK and installation

You do not have to install a driver since UniKey is a driverless dongle.

Installation of UniKey Hardware

Plug the UniKey dongle into one of the USB ports. It will automatically be detected and installed (you

will not see the dongle icon).

Installation of UniKey Software

Copy the SDK onto a hard disk, open the SDK and the following files are displayed.

UniKey SDK file system

Introduction to UniKey models

There are four models in the UniKey family for customers to choose from. You can select the model that

best fits your budget and protection requirements.

UniKey STD driverless software protection

UniKey STD

If you only require a standard software protection solution, no network or real-time functions, then

UniKey STD is the best choice for you.

UniKey PRO driverless software protection

UniKey PRO

If your application can work over a LAN, and you need to control a number of concurrent users, then

you should select UniKey PRO. There is no limitation to the maximum number of concurrent remote

clients.

UniKey Time driverless software protection
The UniKey Time uses a battery that lasts for at least 3 years

UniKey Time

The UniKey Time is specially designed for software vendors who need to control and manage software

rental and sales via subscription or maintenance, as it allows for a pay-per-use model. Because of

this software vendors can completely control sales and usage by charging end users timely and/or

periodically. This function is based on a real-time clock embedded inside the dongle indicating the

specific time (hour, minute, and second) and date (day, month, and year). This clock is independent of

the computer and thus tamper resistant, with approximately 3 years of battery life, after which the

UniKey Time defaults into a UniKey Pro dongle.

UniKey Drive driverless software protection

UniKey Drive

UniKey Drive is an innovative USB device that allows software vendors to protect, license and deliver

their software applications, drivers and data to end users using a single USB key. As the first

driverless dongle with mass storage and a smartcard built-in, UniKey Drive provides software vendors

with flexibility to choose the level of protection, types of licensing, as well as providing 4

different types of drive emulation: a public, virtual CD-ROM, password protected, and hidden drive.


UniKey Ultra driverless software protection

UniKey Ultra Dual

UniKey Ultra Dual combining the features of UniKey Pro and USB Type-C port is available for protecting

software running in a network environment. It is a new product containing all the features of UniKey

Pro. A key connected to any machine in the network allows up to 65535 concurrent users. We provide

console tools to monitor and manage your software’s users, and manage White\Black lists.The UniKey

Ultra Dual is a solution for USB Type-C port for Mac OSX. It is flexible both for normal USB Type-A

and USB Type-C, it supports Mac OSX easily. It can be used on MacBook without any converter.

What makes the UniKey system unique

The UniKey dongles you order from SecuTech contain unique information that is specific to your

company. This information is used by the UniKey system to differentiate your keys from those belonging

to other software vendors.

Driverless

UniKey is the first driverless dongle in the world. There is no need to install anything to get it

started, or have to mess around with any source code.

Dual-port

UniKey Ultra Dual is the first dual-port dongle in the world. It is flexible for PC with USB Type-A

and MacBook with USB Type-C.

Unique Hardware ID

Every UniKey device has a globally unique hardware ID (HID for short). The HID is generated and fixed

during the manufacturing process and thus cannot be modified. Providing a global identifier of each

UniKey dongle, SecuTech Solution Inc. keeps the HID as a tracking number during the production

process.

Protection

UniKey offers the highest levels of security with the Enveloper and APIs to ensure proper safety of

your software. You neednt worry about problems such as sales models and how to license the protected

application. UniKey provides you with the ability to maximize profits by using strong software

protection methods over all stages of sale.

Licensing

Defining the sales models and licensing terms is an ongoing process that involves decisions on how the

software is sold, licensed and distributed. This process is undertaken by product managers or sales

and marketing managers, and does not influence or affect the process of protecting the software.

With the UniKey system, product managers are completely independent of your development team. Whenever

there is a need for a new license model, they can be defined and implemented without involving your

development team. Product managers dont have to depend on the development team each time they need to

introduce a new sales model. They can define how the application should be licensed by themselves,

since SecuTech offers a range of licensing models according to current technologies and our own

experience. Therefore, product managers have greater flexibility and freedom in defining new sales

models and the ability to quickly respond to new business requirements.

How does UniKey work?

UniKey protected applications will search for, and communicate with the dongle connected to the USB

port.

  • The protected application first determines whether or not the dongle connected to the USB port is

the correct one.

  • If the dongle proves to be correct, then the application will respond by showing whether the

application or feature is authorized to run.

The authorization is based on the terms of the license for the features of the application. After the

dongle has been confirmed, the application(s) will continue to communicate with the dongle to check

how many features are allowed or in what way the application(s) can be used and if it is still plugged

in.

Example 1: UniKey PRO managing concurrent remote network end users

You can set any number to be the maximum number of concurrent end users. When the application starts

and the pre-set number of authorized users reaches 0, the relevant error is displayed. Suppose you set

30 to be the limit, this means that the 31st user will not be able to use the application unless one

of the other 30 concurrent users logoff.

Example 2: UniKey Time managing expiration dates

The expiration date listed within the keys memory is checked first and then compared to the UniKey

Times real-time clock. If the expiration date has passed, then the feature or application will stop

working and prompt the user with an error message.


It is recommended for new users of UniKey products to follow a testing phase before purchasing any

UniKey dongles.

Try the UniKey SDK

Before making plans about whether a software vendor should use UniKey dongles, it is a good idea to

try to before you buy. This can be done by taking out an evaluation kit, to help get a feel for how it

works and see whether UniKey fits your requirements.

Design protection and license schemes

Please test and implement the protection schemes you have created for your customers in the desired

environment with a sample group of UniKey dongles. Ensuring a good degree of quality and allowing you

to test the effectiveness of UniKeys solutions. By first creating your desired licensing and

protection scheme, you can implement and test an updating system to provide a remote update service

for your customers if they wish to renew/upgrade their purchase.

Purchase UniKey dongles

Once you have set up an effective licensing scheme you can easily batch create UniKey dongles to have

the same settings quickly and cleanly.

Distribute UniKey dongles

With your designed and tested protection scheme, fully formatted UniKey dongles, and the ability to

maintain updates for your clients, software vendors can distribute their products safely with the

knowledge that they have used the most effective means of security.

Protection strategies

Comparison between models

We offer our customers a range of UniKey products with different functions to meet any unique

requirement.

Compatibility

All 4 models of UniKey(STD, PRO, Time, Ultra Dual) use the same library and tools. You can easily

shift from one model to another, without changing any software details. They are all compatible with

each other as well, so migrating from one model to another is a seamless operation.

Features table

Below is a table of features for the different UniKey models.

UniKey Security Keys Drive Time PRO Ultra Dual STD
Security
Unique ID 32-bit
User-defined algorithms 128 instructions
Hardware ID/SN Globally unique hardware ID
Password Convenient password generation scheme
Software ID User-defined
Update Tag 32-bit tag for remote update
Network capability Yes No
Protection Enveloper protection, API protection
Utilities Remote Update
Assist Tool
UniKey Burner
Console
Network Server
Enveloper
Number of supported license modules 256 64
Perpetual Yes
Feature-based Yes
Pay-per-use Yes
Custom Yes
Real-time clock Yes
Secure flash memory 2 ~ 32 GB
Virtual CD-ROM with auto-run Yes
Public drive Yes
Password protected drive Yes
Encrypted and hidden drive Yes
Supported Platforms (Software Vendor)
Supported programming languages VB, VC, VFP, Delphi, BCB,
PowerBuilder, LabView, WinDEV, Java,
FileMaker, Clarion, Java, VS,
Net, Fortran, Visual DataFlex
and many more
Development platforms supported Server 2003, 2008 and 2012
Windows 2000, XP, Vista, 7, 8, 8.1 and

10
Linux 2.2 and 2.4
CentOS 7.0
Ubuntu 8.04, 10.04, 12.04 and 14.04
Mac OS X
Free

BSD...
Supported Platforms (End User)
Operating Systems supported Server 2003, 2008 and 2012
Windows 2000, XP, Vista, 7, 8, 8.1 and

10
Linux 2.2 and 2.4
CentOS 7.0
Ubuntu 8.04, 10.04, 12.04 and 14.04
Mac OS X
Free

BSD...
Integrated memory 4k
Memory cell rewrites At least 1,000,000
Memory data retention At least 30 years
Max number of features/
applications enabled per key
256 64
Driver Driverless (HID device)


UniKey protection methods

UniKey offers two different protection methods:

  1. The UniKey Enveloper
  2. The UniKey Application Programming Interface (API)

UniKey Enveloper

UniKey Enveloper is the fastest way to protect your executable files, by adding a protective shield

around executable files such as .exe or .DLL. UniKey Enveloper is an automatic software protection

solution, you do not need to edit source code or perform any additional coding. By simply using the

mouse, you can implement different software protection schemes. At the same time, it provides a high

level of protection, making it virtually impossible to debug or reverse engineer your protected

software.

UniKey Enveloper workflow diagram

After protecting your application with the UniKey Enveloper, it cannot run without the correct UniKey

dongle. You can protect applications either by a local UniKey or a remote UniKey on a network.

UniKey Application Programming Interface (API)

We provide abundant APIs to operate the UniKey dongle, all the APIs are implemented in a

SDK/Libraries. In the SDK, you can find samples in various programming languages. Please refer to the

relevant API reference guide in SDK/Documents/Manual for more details.


UniKey Architecture

UniKey is a versatile dongle with an abundant set of features. There are several types of storages

within each UniKey dongle, and each type is for a specific task.

alt=UniKey architecture, on-board cryptography, user-defined algorithms, etc

By default, UniKey (STD, PRO ,Time and Ultra Dual) passwords are:
  • pw1 = 1234
  • pw2 = 1234
  • pw3 = 1234
  • pw4 = 1234
UniKey Drive passwords are:
  • pw1 = 12345678
  • pw2 = 12345678
  • pw3 = 12345678
  • pw4 = 12345678

Passwords

UniKey consists of 4 passwords, with each password being 2 bytes (16 bits) long. We define pw1 and pw2

as the basic-level (user) passwords and can be offered to end users. Conversely, pw3 and pw4 are

advanced (vendor) passwords that should be kept for use at the software developer side, and not be

made available to end users. All 4 passwords are needed to obtain full permissions and access to the

UniKey dongle.


Password Permissions
pw1 + pw2
(user mode)
pw1 + pw2 + pw3 + pw4
(vendor mode)
UniKey_Read_Memory(4K) ✔ ✔
UniKey_Write_Memory(2K) ✔ ✔
UniKey_Write_Memory(4K) ✔
UniKey_Random ✔ ✔
UniKey_Seed ✔ ✔
UniKey_Read_SoftID ✔ ✔
UniKey_Write_SoftID ✔
UniKey_Get_Module ✔ ✔
UniKey_Check_Module ✔ ✔
UniKey_Module_Decrease ✔ ✔
UniKey_Calculate1 ✔ ✔
UniKey_Calculate2 ✔ ✔
UniKey_Calculate3 ✔ ✔
UniKey_Encrypt ✔ ✔
UniKey_Decrypt ✔ ✔
UniKey_Read_UpdateTag ✔ ✔
UniKey_RSA_Generate_KeyPair ✔ ✔
UniKey_RSA_Export_Public_Key ✔ ✔
UniKey_RSA_Sign ✔ ✔
UniKey_RSA_HashEncrypt ✔ ✔
UniKey_RSA_DecryptSignedValue ✔ ✔
UniKey_RSA_Verify ✔ ✔
UniKey_RSA_Delete_KeyPair ✔ ✔
UniKey_RSA_Generate_Key ✔ ✔
UniKey_RSA_Encrypt ✔ ✔
UniKey_RSA_Decrypt ✔ ✔
UniKey_Set_Module ✔
UniKey_Write_Arithmetic ✔
UniKey_Generate_New_Password ✔
UniKey_Generate_Key ✔
UniKey_Generate_Key_Via_Seed ✔
UniKey_Write_UpdateTag ✔
UniKey_Set_Com_Size ✔
UniKey_RSA_Import_Public_Key ✔
UniKey_Write_CD_ROM ✔

UniKey Drive

UniKey Drive is a variation of the UniKey PRO model and has all the same functions, with the addition

of being the first driverless dongle with mass storage and high security, and supporting up to 32 end

users with different levels of permission.

UniKey Drive arms software vendors with the ability to easily deliver fully-licensed and

protectedsoftware; greatly reducing installation steps and woes for end users, with the licenses

stored inside the smartcard. UniKey Drive enables software publishers to grow their business through

software protection, IP protection and secure licensing.

With UniKey Drive, vendors can use partitioning software to provide mass storage for their end users.

This provides significant flexibility, allowing software vendors to partition the key in numerous

ways, designating space for the software (read-only memory) and mass storage for the end user, so they

can store their own application data files. Additionally, UniKey Drives auto-run software setup

capabilities allow end users to run the protected application directly from the UniKey Drive,

providing extra convenience for end users.

License modules

UniKey Drive has 256 license modules empowering software vendors with the flexibility to choose the

licensing that best fits their business needs.

High security

UniKey Drive has two more powerful encryption algorithms, onboard 3DES and RSA with support for 1024-

and 2048-bit key lengths.

Multiple partitions

With UniKey Drive, vendors can use partitioning software to provide mass storage to end users. This

provides significant flexibility, allowing software vendors to partition the key to their own

requirements, designating space for the software (CD-ROM), and mass storage for the end user.

The UniKey Drive storage is divided into four partitions:

  • Virtual CD
  • Public Drive
  • Password Protected Drive
  • Hidden Drive


Virtual CD ROM

This partition offers an ideal space for storing tools since the information in this partition is

read-only and cant be modified. To store tools in this partition, users can save the prepared image

files to this partition. An application DriverPWAgent.exe contained in the Virtual CD-ROM is used for

logging on to the Password Protected Drive.

Public Drive

This partition enables you to store all sorts of documents, files, etc.

Password Protected Drive

Without the correct password to log on, theres no way to perform any operation in the Password

Protected Drive. After logging on to the partition by using DriverPWAgent.exe, the partition named

Secu Drive will pop up on the computer. This partition allows users to store information of high

importance and confidentiality.

Hidden Drive

As the name suggests, users cannot see data stored on this partition, but there is storage space along

with a file system. To ensure the safety of the data stored in the Hidden Drive, a password with high

level security is implemented. In order to utilize the Hidden Drive, users have to obtain the correct

password to log on and call a range of APIs that are provided to customers for creating, finding,

reading and writing files, as well as tools for formatting and so on.


Network Function

UniKey PRO, Time, Ultra Dual and Drive posses network functions and have no small limitation on the

maximum number of concurrent remote clients. You can set any reasonable number necessary (the maximum

value is 216-1).

UniKey PRO, Time, Drive network functions

Intelligent Library

The UniKey Library (UniKey.dll) for UniKey is smart. If there is no set rule to follow, it will try to

load a smart setting, and try to find a UniKey on the network. If the software vendor is not clear

about the settings at the end user side, simply let the UniKey library follow its own intelligent

rule. This smart search can be done without any configuration, allowing the UniKey to operate on the

network.

The default port for the UniKey network is 5680, this can be changed in the configuration file


Floating License Model

UniKey stores software licenses on itself. In some cases, you may want to store the license on a

network server or local workstation. Because UniKey is intelligent, you can easily implement a

floating license model, i.e. you can store the license info on UniKey and the client will try to find

both licenses over the network. All these features will work without any configuration, and the client

will find the license that is on the local network.

UniKey software copy protection system is a powerful solution, and it offers flexible software

protection schemes. UniKey PRO, Time and Drive can work on a network and they all support a floating

license. The network can be an Intranet (LAN) or run over the Internet. Network functions can work

crossing over different subnets. Please add NetUniKey server to the exception/trusted list of your

anti-virus software, otherwise it may block communication between the NetUniKey server and client.

Network features

  • No artificial limitation of concurrent users (no more than 65535-1024, which is the max number

available from the socket).

  • Black and whitelist support. Blacklisted IPs will be unable to access the UniKey.
  • Working mode set by developers. For example a developer can set it to search for a local key first

and then search for a key on the network or vice versa. (This is called a floating license).

  • Assign the server an IP address or let clients find the server automatically via broadcast.
  • UniKey can work with different networks, even over the Internet or through different subnets.
  • UniKey automatically adds itself to the WinXP sp2 firewall for ease of use. No change between all

the APIs.

  • The Network DLL can work with UniKey (the local/standard key).
  • When no configuration is necessary, just remove the .ini file and youre done.
  • Network key drivers arent necessary. UniKey is completely green software and keeps the same

tradition as the driverless dongle. Just copy the .exe and run it.


Utilities

Console

The UniKey Console manual can be found in the SDK/Utilities folder located in the SDK, or

can be read at: UniKey Console Tool.

Enveloper

The UniKey Enveloper manual can be found in the SDK/Utilities folder located in the SDK,

or can be read at: UniKey Envelop Tool.

UniKey API

UniKey API is easy, secure and portable. If a library is required for your development language, you

can copy the appropriate library file(s) to the same directory as your sample source code. With the

help of the UniKey APIs, you can easily achieve strong software protection and produce complete

software protection schemes via various combinations of the UniKey APIs.

Libraries

Inside the SDK/Libraries folder are the UniKey API files used for development. Sample

usage is provided in SDK/Samples

API Reference

Please refer to the API reference in SDK/Documents/Manual/API Reference.pdf for more

details and usage guidelines, it can also be found Category:UniKey API.


UniKey Drive Init

The UniKey Drive Init manual can be found in the Drive SDK/Utilities folder located in

the SDK, or at: UniKey Init Tool.

UniKey Drive Entry

The UniKey Drive Entry manual can be found in the SDK/Utilities folder located in the

SDK, or at: UniKey Entry Tool.

UniKey Assist

The UniKey Assist manual can be found in the SDK/Utilities folder located in the SDK, or

at: UniKey Assist Tool.

UniKey Burner

The UniKey Burner manual can be found in the SDK/Utilities folder located in the SDK, or

at: UniKey Burner Tool.

Remote Updater

The UniKey Remote Updater manual can be found in the SDK/Utilities folder located in the

SDK, or at: UniKey Updater And Generator Tool.

UniKey Generator

The UniKey Generator manual can be found in the SDK/Utilities folder located in the SDK,

or at: UniKey Updater And Generator Tool.

Network tools

UniKey network service and console

The UniKey network service is an application that runs in the system background that enables users to

connect to a UniKey dongle over the network. This works in conjunction with the UniKey Network Server

Console to monitor client connections, set up servers, manage black and white IP lists and other

useful functions.

Installation, usage and setup details are provided with the SDK in SDK/Network/Quick Setup for

UniKey Network Feature.pdf

Monitor

UniKey Network Server Console monitor tab
The 2 red dots at the bottom show the status of the service/network respectively; if they are green then they are functioning.

In the Monitor tab users can see the currently connected users to the UniKey network. They can sort

the list of connected users by IP address or by UniKey HID. Administrators can disconnect users by

using the Kill and Kill All buttons.

Manage services

UniKey Network manage network services tab
Port 5680 is the default network port for the UniKey network services.

By clicking on the Service Manage tab, you can check the servers status and configure the settings.

The service and network can be enabled/disabled by using the Start/Stop buttons and the network can be

configured. Time limit (seconds) defines the interval of time the client has to respond to a

connection attempt. If the client does not respond in the set period, the server will close the

connection. Auto Start sets the service to run whenever the server starts.

Black and White IP list

UniKey blacklist and whitelist IP addresses
The blacklist has priority over the whitelist, if an IP address conflict occurs between both lists, that IP address will be blocked.

Enabling the black and/or white IP list blocks/allows IP addresses respectively. IP addresses are

added in ranges, when a user clicks on Add the following window appears:

server start and end IP address

This allows administrators to input the range of desired IP addresses to block/allow to connect to the

server.

More information can be found at UniKey Network Monitor Tool

Technical Support

SecuTech offers 24/7 technical support on the website: https://www.esecutech.com/support

Resource Vault

The Resource vault provides software vendors and end users the ability to download the latest

software, documents and tools as well as examples and other useful data such as cook books for using

the UniKey API.

FAQ

Frequently asked questions about SecuTechs products can be found here. The user friendly navigation to

filter through the multitude of different solutions and answers helps you to solve any issues you may

be experiencing.

Ticketing service

The ticketing service is used to create support requests for any issues that you may have when using

SecuTechs products, by using the ticketing service you can track the progress of your ticket and

expect a response time of 24 hours. You will be notified of any responses by mail.


License modes

How do licenses work

The UniKey protected applications will search and communicate with the dongle connected to the USB

port or over the network. The protected application first determines whether or not the dongle

connected is correct. If the dongle proves to be correct, then the application will respond by showing

us if the application or feature is authorized to run. The authorization is based on the terms of the

license for the feature or application. Once the application has started, it will continue to

communicate with the dongle to check what features or in what way the application can be used.

Background Information

As more software is distributed electronically, license management is becoming an increasing concern

for software developers. New marketing and licensing schemes are evolving to include the ability to

try before you buy, pay by usage, software use for a limited period or to control what features can be

used.

How to choose a product

We advise you to choose the right UniKey model based on your technical requirements and budget: If

you only need a standard software protection solution and do not require network or real time

functions, then UniKey STD will be the best choice. If your application can work over a LAN, and you

need to control the number of concurrent users, then you should select UniKey PRO. If you would like

to use MacBook or any other computers with USB Type-C port, then you should select UniKey Ultra Dual.

Expiration, time-based leasing, and trial software should take advantage of UniKey Time. If you need

to have mass storage space with high security, UniKey Drive will best serve your needs.

Remote update system

UniKey provides a flexible solution with software protection to meet the various requirements of

software sales. It is a common need for end users to upgrade software if they purchase new functions,

prolong the leasing period or remove limitations. UniKey provides a convenient remote update solution

to minimize the cost of software upgrades. UniKeys Remote Update System allows end users to execute

and load a UniKey remote update file, so updating UniKey becomes an automated process.

UniKey Security Keys support many different licensing models by giving you the power to ensure

software license compliance, allowing you to choose how to grow your business:

  • Feature Based: Enables or disables product features according to customer needs and charges

only for the functionality they use.

  • Rental: Offers software rentals and charges periodically for software applications, modules

or features.

  • Subscription: Charges for software upgrades and new versions.
  • Floating: Charges by the number of network connections that use the software simultaneously

in network environments.

  • Floating/Time-Based: Combines floating and rental/subscription pricing models.
  • Try Before You Buy: Offers limited trial versions free-of-charge.
  • Pay Per Use: Charges for the number of times software functionality is used over a period of

time.

  • Volume Licensing: Offers volume pricing for multiple single-user copies operating in a

network environment.

For example: if the software has functions A and B, but the customer only bought function A, the developer can attach a module to A=10 and a separate module to B=0

Licensing Modules

Each UniKey dongle has 64 license modules except the UniKey Drive dongle which has 256 license

modules. These license modules are 2-bytes long in storage. Developers can write a license module by

taking full permission of the UniKey dongle. If a license module is non-zero, it means the license

module is valid; otherwise, the license module is invalid. The contents of a license module cannot be

read out, but the developer may check the validity of the license module. The conditions on how long a

module lasts can be determined in many ways, for example, the non-zero number assigned to a module can

decrement every time the software is used until it reaches 0.

Real-Time Function

UniKey Time has a real-time clock inside each dongle. We can implement more flexible real time

functions/protection along with UniKey Time. Since the real-time clock inside UniKey Time is

independent of the host computers clock, the timing function with UniKey Time is more secure and

accurate than its competitors. Software vendors can set their current time to the real-time clock

inside the UniKey Time, and can check software execution time.

How does the Real Time Function Work?

There are 16 real-time modules within each UniKey Time dongle. Real-time modules are only valid in a

specific time period. Software vendors can set real-time modules to one of 2 types, i.e. static and

duration.

Static Type

If a license module is set to static, then it is only valid (non-zero) between the start and end time.

For example, if we set a real-time module #0 as static, and then set the start time as 2012.8.1,

10:00:00, the end time as 2012.8.30, 22:00:00, then this real-time module is only valid within this

period. If we check this real-time module beyond the time period, this module will be regarded as

invalid. The time used is the clocks time inside the dongle itself, not the host computers time.

Duration Type

Software vendors can set a real-time module as a duration type. This means the real-time module is

only valid for a specific period after the real-time module has been started for the first time. For

example, we can set the real time module #1 as duration, and the duration is 90 days and 12 hours. If

we then start this module right now, it will be valid for 90 days and 12 hours. After that has passed,

the real time module becomes invalid.

Demo Software

In most cases, end users like to try a trial version of software before they buy the full version. For

demo software, the functionality and execution count is limited. Software vendors can use a license

module to limit the execution count, i.e. write 30 to module #0, and decrease this module each time

the software is run, when it reaches 0 (invalid), the software cannot be run again.

Selling Per Function Model

A popular software sales model for end users is to only purchase one function of the software, i.e.

the software has 5 functions, and an end-user may only want to purchase 3 of the 5 functions. With the

UniKey dongle, the software vendor does not need to recompile the source code, and the function can be

bound with the UniKey dongle.

Software Leasing

It is common in software leasing to impose a date expiration limit. You can refer to the advanced

usage portion of the UniKey APIs and the previous page about static and duration types.

Distributing Software

In some cases, the software vendor may want to control the distribution of the software. You can use

the UniKey dongle to control which channel/customer the software is for. The software ID or module

number can identify the distribution channel or end user.

Bind with Hardware

A type of software licensing is to bind the software with hardware, such as a network card, machine

hardware ID, etc. UniKey offers the software vendor the ability to bind software to specific UniKey

hardware IDs.

Serial Number/CD keys

Licensing software with a serial number is a widely used method, but if the computation is performed

in memory, it can be easily cracked. We can move this computation into a UniKey dongle, taking

advantage of User-Defined Algorithms and the MD5 hashing function. We suggest that serial numbers

should work in addition to MD5 making cracking extremely difficult.


Distributing and protecting software

Software Protection Scheme

Making a good software protection scheme will extend the software protection lifecycle and software

vendors can benefit more from their software sales. Although UniKey is a powerful dongle, a weak

software protection scheme will lead to an unacceptable result. Finding and making a suitable software

protection scheme plays an important role in software protection.

Schedule

In general, software protection is the last step of software development, in order to achieve the best

result, we should change this idea. The job of software protection should be started at least 1 month

before the release of the software. The reason is simply that it needs time to be tested and verified

to make sure that the software protection is strong enough and works as expected. To derive the best

software protection, software vendors should design their software protection schemes at the beginning

of software development, and try to integrate the UniKey dongle with their software seamlessly.

Dongle Functions

From a traditional viewpoint, the usage of a software protection dongle is to just check whether the

dongle is attached and to read/write to the dongles memory. UniKey allows far more than just

reading/writing memory. Taking advantage of various in-built functions of the UniKey can help to

provide strong software protection. Integrate the UniKey functions together with the software; please

do not only check if the UniKey dongle is attached, this form of protection is extremely easy to

crack. Save software credentials in the UniKey dongle, for example, store/encrypt the AES key in/with

the UniKey dongle and try to minimize the time such a key is in memory. Please note, a computers

memory is easy to copy, but it is almost impossible to copy the memory of a UniKey dongle.

People

The individual who makes the software protection work is important and should be trusted. If the

software protection source code is open to others or the public, the software protection is exposed

and others can attempt to crack the protected software. Another solution is to divide the software

protection into several parts and have each developer take one part. Since they do not communicate or

share source code with each other, the software protection as a whole is harder to leak. We suggest

that only trusted personnel have access to the code.

Dongle Passwords

SecuTech Solution Inc. thinks from a customer point of view, by breaking the tradition of burning

passwords at the dongle distributor side. Software vendors can burn their own passwords on their end

and handle password storage by themselves, which is a far more secure solution. In order to burn a

UniKey dongle password, you need to input a seed, and the password will be generated based on that

seed.

The password generation algorithm is irreversible, i.e. no one can generate the same password without

knowing your seed. When a new password is generated, a file containing the date, seed and newly

generated password will be created in the working directory. Please keep this file in a safe place.

Please note that each UniKey dongle can only generate a new password twice. If this fails or you want

to change the password, you have to return the UniKey dongle to SecuTech Solution Inc.

Software Development

As discussed, the person who is developing the software protection code should be trusted. To avoid

future problems, please refer to the source code in the UniKey SDK CD. In most cases, you do not need

to compose a lot of code, you only need to modify the samples in the SDK, and then refactor that into

your source code.

Programming Languages

The choice of programming language is important in software protection. A compiled programming

language is the best choice, such as C++ and Delphi. When using these types of programming languages,

you do not need to worry too much about decompiling the source code, resulting in better software

protection. An interpreted programming language such as FoxPro is somewhat weak, since it can be

decompiled to obtain the source code or semi-source code. Only calling UniKey APIs is not strong

enough to protect your software, here we offer 3 solutions:

  • Save software credentials in the UniKey dongle: Take advantage of the user-defined and seed

algorithms, this is totally separate to reading/writing and checking the dongle attachment. Involving

the UniKey dongle in computations will greatly strengthen your software protection.

  • Pack certain functions into a DLL file to enhance software protection: A DLL file is compiled

and is difficult to decompile. We avoid the weaknesses of interpreted programming languages and take

advantage of compiled programming languages via a DLL.

  • Make a stub/packer for the interpreter: The interpreter interprets high level code into

machine code. In general, a compiled programming language compiles an interpreter. Making a

stub/packer will add software protection codes into it and make the interpreter work with the UniKey

dongles. This solution applies with Flash or e-Book etc.

Obfuscation

Anti-piracy is the war between hackers and software vendors. To make piracy difficult, we need to use

many different techniques. In general, hackers like to use debugging tools to see the assembly (ASM)

code of the target software. Therefore, we use some tricks to make the decompiled ASM code more

complicated.

  • Fake access to dongle: For example, we use a random variable int Access. Such that, when we

access the dongle with the correct password, 3 other 'fake' passwords exist. this means that once we

have accessed the UniKey dongle 3 times, only 1/3 of the time it contains the correct password.

  • Save a random number in the UniKey dongle: After a certain period, we read this number out of

the UniKey dongle, and compare it with the number in memory. If they are the same, it means the dongle

is attached, if not it means the dongle is not attached.

  • Save remember it into UniKey dongles: It is common for applications to remember some

variables and save them in the registry. We can save such variables in the UniKey dongle and load it

from the UniKey dongle. Without attaching a correct dongle, applications cannot retrieve the proper

variables.

Involving UniKey in Computation

Only checking the attachment of a UniKey dongle is not strong enough. In order to increase the

strength of protected software, we need to involve the UniKey dongle in a computation related to the

software. Taking advantage of user-defined algorithms, you can create some simple computation to be

run within the UniKey dongle; such computations should be critical to the software protection scheme.

Since the input value of the user-defined algorithm is variable each time, it is difficult for a

hacker to figure out the algorithms utilized in the UniKey dongle.

Encrypting/Decrypting data via UniKey dongles will make cracking much more difficult. Since the UniKey

has its own processor it can perform encryption/decryption inside the UniKey dongle, which provides

the best security. The encryption/decryption key never leaves the UniKey dongle, and only users with

full permission can generate a new key, so cracking the encryption of UniKey dongles becomes almost

impossible.

Trouble shooting and FAQs

Q: Can I modify the password of a UniKey dongle?

Yes. Each UniKey dongle can only generate a new password TWICE.

Q: Can others duplicate my UniKey dongle?

No. Please keep your seed for your passwords in a safe place. Without knowing the seed, no one can

generate the same password.

Q: What operating system does UniKey support?

Windows 98SE, ME, 2000, XP, 2003 (32- and 64-bit), Server 2012, Vista, 7, 8, 8.1 and 10; Mac OS X;

Linux (2.2 and above); CentOS 7; Ubuntu 8.04, 10.04, 12.04 and 14.04; VMware machine; EXSi 6.0

Q: What programming language does UniKey support?

C, Visual C++, Visual Basic, Visual FoxPro, Delphi, Power Builder, Java, Access, Real Basic,

Fortran, etc; any compiler that works with DLL/LIBs.

Q; How can learn about using a UniKey?

In the SDK, you can find a Quick Start file, which gives you a quick guide about how to use the

UniKey.

Q: What is driverless?

The UniKey software protection dongle is driverless, which means you do not need to install a driver

on supported operating systems. The operating system embeds the driver and installs the driver

automatically. Since the most frequent problems that occur at the end user side are driver

installation, UniKey overcomes this problem perfectly. This feature is done via the HID protocol.

Q: Is the UniKey environmentally friendly?

Yes, UniKey dongle is environmentally friendly. All parts and the production process are lead-free

and ROHS-compatible.

Q: What is the purpose of the light on the UniKey dongle?

If the light is flashing, it means that either the UniKey dongle is not working or the system did

not install the driver properly. You can update/replace the driver manually. If the light is

constantly on, it means the UniKey dongle is ready to use.

Q: Can I label the UniKey dongle with my logo?

Yes, please contact SecuTech Solution Inc. (sales@esecutech.com) or our

distributor in your local area.

Q: Where can I get assistance when protecting my software?

We are happy to provide high-quality service to our customers. If you have any questions, please

feel free to contact us at support@esecutech.com, our professional team

will provide you instant help.



If you have any questions, please feel free to contact us at: http://www.esecutech.com/support or

support@esecutech.com







About SecuTech

SecuTech Solution Inc. is a company specializing in data protection and strong authentication,

providing total customer satisfaction in security systems & services for banks, financial

institutions & other industries. Having extensive and in-depth experience within the information

security market, SecuTech has drawn upon this experience to utilize today's cutting-edge technologies

that are effective against increasingly sophisticated cyber attacks. Enabling enterprises, financial

institutions, and government to safely adopt the economic benefits of mobile and cloud computing.

http://www.esecutech.com
SecuTech Solution Inc.

Contact Us:
North America China Asia-Pacific EMEA
Address 1250 Boulevard Ren-Lvesque Ouest, #2200, Montreal, QC, H3B 4W8, Canada Level 12, #67 Bei Si Huan Xi Lu, Beijing, China, 100080 Suite 5.14, 32 Delhi Rd, North Ryde, NSW, 2113, Australia 4 Cours Bayard 69002 Lyon, France
Phone +1 -888-259-5825 +8610-8288 8834 00612-9888 6185 +33-042-600-2810
Fax +1 -888-259-5825 ext.0 +8610-8288 8834 00612-9888 6185 +33-042-600-2810
Email info@esecutech.com cn@esecutech.com aus@esecutech.com europe@esecutech.com

Copyright 2012 SecuTech Solution Inc. All rights reserved. Reproduction in whole or in part without

written permission from SecuTech is prohibited. SecuTech UniMate and the SecuTech logo are trademarks

of SecuTech Inc. Windows and all other trademarks are properties of their respective owners. Features

and specifications are subject to change without notice.



TOP