Microsoft SLP Services Getting Started User Guide
Microsoft SLP Services Getting Started User Guide
This white paper is for informational purposes only. MICROSOFT MAKES NO WARRANTIES,
EXPRESS OR IMPLIED, IN THIS DOCUMENT.
Complying with all applicable copyright laws is the responsibility of the user. Without limiting the
rights under copyright, no part of this document may be reproduced, stored in or introduced into a
retrieval system, or transmitted in any form or by any means (electronic, mechanical,
photocopying, recording, or otherwise), or for any purpose, without the express written permission
of Microsoft Corporation.
Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual
property rights covering subject matter in this document. Except as expressly provided in any
written license agreement from Microsoft, the furnishing of this document does not give you any
license to these patents, trademarks, copyrights, or other intellectual property.
© 2008 Microsoft Corporation. All rights reserved. Microsoft, Visual Studio,MSDN, and Windows
are either registered trademarks or trademarks of Microsoft Corporation in the United States
and/or other countries.
The names of actual companies and products mentioned herein may be the trademarks of their
respective owners. Microsoft Corporation • One Microsoft Way • Redmond, WA 98052-6399 •
USA
1
Microsoft® SLP Services Getting Started Guide
Overview: Licensing and Protecting your .NET Assembly
Congratulations on purchasing Microsoft® Software and Licensing Protection Services. This service
enables you to help protect your .NET applications, making reverse-engineering to access the source
code difficult.
The following block diagram illustrates the workflow for licensing and protecting your software
application.
Using your login credentials you log on the SLP Online Service and setup your account. Next, based on
your intended licensing model, you create the required number of private permutations.
The next functional block describes creating a SKU definition. This task is performed on the SLP Online
Service. It is composed of three distinct operations:
a) Creating a product
2
Microsoft® SLP Services Getting Started Guide
b) Creating features
c) Creating a feature set associated with the features
Once you have created a SKU definition, you can associate the features with a license you may issue for
that product. Features have attributes such as Total Usage Limit and Expiration Days. Similarly, it is
possible to select the license attributes that apply to the entire application. The attributes that apply to
the entire application may be set independent of the attributes for the features associated with the
license. Once the license attributes are set, you can issue the product license(s). An activation key is
created for each issued license. When a license is issued as part of an operation of this functional block,
it is not yet created. A template of the actual license is created along with an activation key. The actual
license gets created by the SLP Online Service when the application user initiates activation using this
key. The detailed operations for Setup, SKU Definition, and License Issue (refer to diagram above) are
covered in the document SLP Online Service User Guide.
The last functional block refers to the operation of applying protection on the assembly through the
Code Protector, using the features associated with the license. The Code Protector application typically
resides on a developer build machine. When the Code Protector application starts, it downloads all
product-related information (entered as part of the SKU Definition functional block operations) from the
SLP Online Service Server. At any time, you can synchronize Code Protector with the SLP Online Service
so that it fetches and displays the most recent product information. The Code Protector User Guide
describes these operations.
As a vendor for protected or protected and licensed assemblies, you need to distribute the activation
key(s) to your end-users. In order for end-users to run the protected methods of an assembly, they need
to activate the protected application. When the end-user runs the protected assembly for the first time,
he/she will be presented with a UI prompting them to enter the activation key.
The user enters the activation key and a request is then sent to the SLP activation service where the
activation key is examined. If the key is found to be valid, a license is created and returned. The license is
stored on the end-user license store; which could be a computer, a website, or any other supported
license store. The protected application can now be run in accordance to the terms of the license.
3
Microsoft® SLP Services Getting Started Guide
As part of your account package, you should have received:
a) A Product key (or keys, depending on the terms of your account).
b) A link to SLP Online Service. You will log on to SLP Online Service to complete account
information and order private permutations.
c) A link to download the Code Protector application.
NOTE: If your account is a SLP Online Service account, you will manage your products and licenses from
Microsoft SLP Online Service portal.
Licensing Models
As described earlier, before you use the SLP Online Service and/or Code Protector, you need to develop
a licensing and/or protection model based on your product commercialization strategy. Some of typical
licensing scenarios are listed below.
a. Trial/Evaluation license
- Trial (Unmanaged) – Activate “once use” features for a limited time. Feature should not
launch after first use.
- Trial (managed) – No initial activation required. The license is time limited, and at end of
trial period, the user is prompted for activating the license.
b. Perpetual license - Activate license once on launch and run forever on that machine.
c. Subscription license - Activate, and at end of subscription period accept automatic renewal.
d. Feature-based license – Launch application, and use the feature that requires activation. After
activation, feature is fully usable.
The SLP Online Service User Guide describes how to issue licenses based on these scenarios.
License Management
As described earlier, you can manage your product licenses using SLP Online Service. The SLP Online
Service is hosted by Microsoft. Microsoft has made a significant investment in providing the
4
Microsoft® SLP Services Getting Started Guide
infrastructure needed to ensure that licenses can be reliably managed and administered. Most
importantly, the Microsoft-hosted SLP Online Service provides a robust activation platform that ensures
end-users can activate their licenses when they present a legitimate activation key to the service.
There is another platform that provides the license management functionality – the SLP Server.
Managing licenses using the SLP Server is essentially quite similar to how licenses are created and issued
on SLP Online Service. The difference lies in that permutations have to be manually installed on the SLP
Server.
Hosting the SLP Server may require a significant investment in terms of infrastructure and operational
expenses. This is especially true if your business requires uptimes that approach 99.999%. If you are
opting to use the SLP Server, refer to the SLP Server Installation User Guide and SLP Online Service User
Guide documents to install the SLP Server application and issue licenses for your products. If you are
using Microsoft-hosted SLP Online Service, the SLP Online Service User Guide document explains the
license management functions and tasks relevant to your product.
Accompanying Documentation
Depending upon your product marketing strategy, you may fall into one of the following categories:
Additionally, if you are intending to license your product, you may either be using the Microsoft-hosted
SLP Online Service or the SLP Server product hosted by someone other than Microsoft.
5
Microsoft® SLP Services Getting Started Guide
You will need the following accompanying documents to achieve the tasks described in section Overview:
Licensing and Protecting Your .NET Assembly.
SLP Online Service User Guide (if you are licensing your product using either Microsoft-hosted
SLP Online Service, or the SLP Server)
Code Protector Installation Guide and Code Protector User Guide (if you are protecting your
product)
SLP Server Installation Guide (if you are licensing your product, and not using the SLP Online
Service)
SLP Runtime API documentation (.CHM file)
SLP Server API documentation (.CHM file)
6
Microsoft® SLP Services Getting Started Guide
Glossary
Activation (2) A method of delivering Runtime License to end user machine. Activation involves
sending the activation key together with binding parameters to SLP Server,
verification of the provided activation key, generation of Runtime License
according to the binding parameters, and installation of the license on the end
user machine.
License Key
Backend Logic and data layers of SLP Server. Contains the License Issue System.
Server
Binding (1) Associating a given set of entitlements with a specific, unique entity. Typically
entitlements are bound to machines, but they could be bound to other hardware, a user,
or other entity that can be accessed from the client system.
Binding (2) Connecting a Runtime License to specific instance of License Store. For example: binding
Runtime License to specific machine.
7
Microsoft® SLP Services Getting Started Guide
Code Protector GUI Code Protector that runs as Windows form application.
Customer Portal Web portal used by Users to monitor their license usage.
Developer A software developer that performs integration of Vendor’s software and SLP Services.
Feature (1) The smallest definable unit of capability. In an image processing application, one feature
may be “sharpen” another might be “adjust brightness” and a third might be “remove
red-eye.”
Feature Sets A collection of one or more features. Feature Sets pre-populate feature lists during the
(1) license creation activity. Features can be added or removed from the feature lists
8
Microsoft® SLP Services Getting Started Guide
associated with licenses at the time of license issuance.
Frontend Presentation layer components of SLP Server. Contains Vendor Portal, Customer Portal
Server and Partner portal.
IID Installation ID, proof of purchase, binding and vendor information submitted to the Activation
server as a request for entitlements. Used only in phone activation.
License (1) Defines the terms of use for a given Feature/Feature Set/Product combination. Licenses
can be limited by usage or time and can be bound to unique entities.
License (2) Software license information on SLP Server can be identified by License Key.
Licenses may be based on: the number of machines on which the licensed program can
run; the number of users permitted to use the program; an application enabled to run
on only one machine; an application enabled to run on different computers as long as its
copies are not running simultaneously; an application enabled to run simultaneously on
a specific number of copies.
License An application that can be redistributed with licensed Vendor application. It enables
Administrator managing (install/uninstall) licenses on the end user machine, and configuring Network
License Server connection.
9
Microsoft® SLP Services Getting Started Guide
License Issue Web Services related to License Management.
System
License A process of updating an existing license with new set of restrictions and terms, or
Reissuing replacing the license with a new one.
License Information collected from end user machine that enable generation of a Runtime
Request License. It contains description of license stores that are available on the machine, and
can optionally contain usage counters status information.
License Store A device that can store Runtime License information, and allow binding of Runtime
Licenses. Examples: Machine, USB flash dongle…
Limitations A set of restriction that vendor can apply for a specific license. For example: number of
concurrent usage limit, expiration period…
Load A device that distributes processing and communications activity evenly across a
Balancer computer network so that no single device is overwhelmed.
Manual Activation An activation process where the data exchange is done manually, for example,
using e-mail.
Network License Managed by Network License Server. This license is not installed on the
client machine locally, but can be accessed by client machine from the
server on demand.
10
Microsoft® SLP Services Getting Started Guide
O
Online An activation process where the data exchange is done using direct Internet
Activation connection.
Partner Portal Web portal used by Partners to issue and reissue licenses.
Permutation A web service that generates permutation packages containing Permutation and
Generator Vendor information.
Product A collection of one or more feature sets. The product is the entity that relates
features to licenses via feature sets. Using the example above you could have a
product for each feature or combine all three into a product “enhance image”.
11
Microsoft® SLP Services Getting Started Guide
R
Resident A license that can be delivered with the product for evaluation or other purposes.
License
Runtime A tamper proof representation of a License that can be used by SLP Runtime for
License software license terms enforcement.
SLP Code protector An application that allows seamless integration with licensing. It applies
transformation on .NET code for anti -tampering protection. Code protector
application has two parts: Code Protector GUI and Code Protector CMD .
SLP Master An administrative account that allows adding a new vendor, deleting a vendor and
perform other admin level actions.
SLP Online Service Software Licensing and Protection hosted subscription. Classified as Starter, Basic,
and Standard.
SLP Runtime Set of components that are distributed with an application protected by SLP. The
components contain client-side License Management and Code Protection
functionality.
SLP Server The server which provides license issue and management services. It provides a
direct interface to client machines through web services. Classified as Standard
and Enterprise.
SLP Suite Represents the Server and Service (includes Front-end and Back-end components).
12
Microsoft® SLP Services Getting Started Guide
SLP System All software components used in the implementation of SLP Services.
SVM Secure Virtual Machine. Secure Virtual Machine. Represents the virtual machine
which executes protected assemblies, performing decryption and decoding when
required.
Template A license that can be used to issue other licenses. The derived licenses will have the
License same definitions as the template license, but a different license key.
Vendor A software vendor that uses SLP Services for software licensing or protection.
Vendor Portal (1) Web portal used by Marketing/Sales/Dev/Support to configure and issue licenses.
Vendor Portal (2) A portal that allows vendors to manage product definitions and licenses.
License
Management
Suite
13
Microsoft® SLP Services Getting Started Guide