0% found this document useful (0 votes)
53 views15 pages

Microsoft SLP Services Getting Started User Guide

Uploaded by

Loi Doan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
53 views15 pages

Microsoft SLP Services Getting Started User Guide

Uploaded by

Loi Doan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 15

Microsoft Software Licensing and

Protection (SLP) Services


Getting Started User Guide
Table of Contents
Overview: Licensing and Protecting your .NET Assembly ......................................................................... 2
SKU Definition and License Issues ........................................................................................................ 2
Licensing Models ..................................................................................................................................... 4
License Management .............................................................................................................................. 4
Accompanying Documentation ................................................................................................................ 5
Glossary .................................................................................................................................................. 7
The information contained in this document represents the current view of Microsoft Corporation
on the issues discussed as of the date of publication. Because Microsoft must respond to changing
market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and
Microsoft cannot guarantee the accuracy of any information presented after the date of
publication.

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.

SKU Definition and License Issues


The first step is to develop a licensing model for your product. This may include defining various tiers of
services. For example, you may offer basic service for the lowest price and functionality, and advanced
service for customers paying a higher amount. For a different product, you may want unlimited
customers who could use your product for a limited duration, after which the product is no longer
available unless they purchase a commercial license. Once your licensing model is designed and ready,
you are ready to use the SLP Online Service.

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.

e. Usage-limited application license – Launch application N times, where N is a limit. On N+1


launch, application informs user that license is unavailable, and quits.

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:

Customer with a licensed and protected product (.NET assembly)


Customer with a protected product

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)

These documents can be accessed from the following locations.

Code Protector Installation Guide – Online (http://go.microsoft.com/fwlink/?LinkId=98422)


Code Protector User Guide – Code Protector Installation Package
SLP Runtime API documentation – Code Protector Installation Package
SLP Server Installation Guide – Online (http://go.microsoft.com/fwlink/?LinkId=98422)
SLP Online Service (and SLP Server) User Guide – SLP Server Installation Package
SLP Server API documentation – Code Protector Installation Package

6
Microsoft® SLP Services Getting Started Guide
Glossary

Activation (1) Process of acquiring license entitlements by providing proof of purchase.

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.

Activation Key A string that uniquely identifies a License.

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.

CID Confirmation ID, encoded package of entitlement information sent from


Activation server to end-user. Used only in phone activation.

7
Microsoft® SLP Services Getting Started Guide
Code Protector GUI Code Protector that runs as Windows form application.

Code Protector CMD Code Protector that runs in command line.

Code Protection A transformation applied to software code to make unauthorized modification


and reverse engineering more complex.

ComputerID An algorithm that creates a unique identification of the machine according to


various hardware and software parameters.

Customer (Vendor’s A person or organization that a License can be issued for.


customer)

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.

End User A person that uses software protected by SLP.

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 (2) A logical group of product functionality.

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.

Feature Set A group of product Features associated with a License.


(2)

Frontend Presentation layer components of SLP Server. Contains Vendor Portal, Customer Portal
Server and Partner portal.

Generic Permutation A permutation provided to customers for trial purposes.

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 creating a new license.


Issuing

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

Obfuscation A process of changing meaningful symbolic information into meaningless information,


making human reverse engineering complicated.

Online An activation process where the data exchange is done using direct Internet
Activation connection.

Partner System integrator or distributor that resells an ISV's software.

Partner Portal Web portal used by Partners to issue and reissue licenses.

Permutation (1) A unique instance of a Secure Virtual Machine.

Permutation (2) A custom vendor-specific version of Secure Virtual Machine.

Permutation A web service that generates permutation packages containing Permutation and
Generator Vendor information.

Permutation A file that contains Permutation and Vendor information.


Package
It enables a vendor to issue licenses and apply code protection to software.

Portals Any web portal that is a part of SLP System.

Examples: Vendor Portal; Customer Portal…

Private Permutation A permutation generated specifically for a vendor.

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 Enterprise SLP server installed by a vendor.


Server

SLP Hosted Server SLP server hosted on a server farm.

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 Services Software Licensing and Protection Services.

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

You might also like