views:

448

answers:

4

Hi,

I am member of WebsiteSpark and was member of DreamSpark. Both programs enable to download software and provide serial keys to use.

Some software like Windows Server has an ISO file to download and a serial number displayed on the website which I must enter during installation.

Some other software does not have any serial key. For example, when I downloaded Visual Studio 2010, there was just a link to an ISO file. During installation, there was no such a field as serial number (whereas Visual Studio 2008 had this field at the beginning of installation process).

There is the same thing with SQL Server 2008 and Microsoft Expression Studio 3. Even when I've downloaded the public trial RTM version of Windows Seven Enterprise, there were no serial number to enter.

I don't think that such expensive products as SQL Server 2008 Enterprise are delivered without serials and online validation, so I suppose that the serial is embedded into the product itself, either in installation binaries or in a separate config file, so is already in the ISO I download so I do not have to enter it.

So my question is, how it is done technically? Is each 2 GBs ISO generated on-demand on the server to embed a serial each time this ISO is requested? I suppose that if it is done, it has a huge impact on servers performance (no caching, no streaming...), so what may be the techniques used behind?

I want to implement the same feature in a product I intend to ship (to simplify installation by avoiding to ask to enter serial number), but I really don't see how to do it with low impact on server performance.

A: 

What makes you think that there is a unique serial or that there is any kind of actual enforcement done?

Joe
It seems strange for me to see a company to ship a product like 30 000$s SQL Server without any serial/activation procedure. But, well, I don't have a clear image of how does the whole system work, so maybe there is no unique S/N. By the way, the whole system is quite weird. For example, Windows Server 2008 or Windows Seven or Office 2007 require activation by internet or by phone, whereas Visual Studio 2008/2010 have never asked any activation.
MainMa
A: 

The server impact is not necessarily large. After all the data is serialised to you. All the sender has to do it transfer a few bytes that are different while the remaining are the same.

Preet Sangha
The sender has to find what data is different. So either is builds an ISO file on the fly, which costs CPU, either it knows exactly what bytes of data to replace in an already built ISO. The last thing is quite fast, but is probably not a solution when there are hundreds of different software products available.
MainMa
+2  A: 

I assume because Visual Studio Express is free that Microsoft considers the kind of "casual" pirating that happens with other kinds of software is not going to be happen for Visual Studio. That is, the people who would otherwise pirate older versions of Visual Studio are instead going to pick up the (legitimate) Visual Studio Express for free.

The sort of people who purchase Visual Studio (i.e. corporations) are going to pay for it anyway (because they obviously don't want the legal hassle in case they get caught!).

So all of this conspires to make it rather pointless to actually require you to enter license keys and so on. If you're a legitimate business buying Visual Studio, then you're going to purchase the correct number of licenses anyway. If you're a small shop or hobbyist, then you're going to download the (already free) Express (or maybe BizSpark/DreamSpark/etc versions).

Windows 7 and other products that are not free for general consumers still require online activation. Because pirating is an issue for those products.

Dean Harding
(The above is just speculation on my part, but I think it makes sense :p)
Dean Harding
In fact, it makes sense. In the same way, a big company with hundreds of servers which acquires SQL Server 2008 Enterprise will probably avoid taking risk to install a pirate copy on their machines, whereas a person who just want to host a personal website on his own machine will rather download SQL Server Express.
MainMa
+1  A: 

As Preet Sangha suggested, I think it's something like this (you want to use it inside a product management so I'll write a direct approach, PHP)

imagine that (on the server, the ISO is split in 2 parts, because in the middle of these parts we will have a couple of bytes which are serial code.

some stupid thing

header("Title: VS iso");
header('Content-type: something/iso');
header('Content-Disposition: filename="VS.iso"');

readfile('iso_part_1');
/*...write your bytes... (I don't know if echo can work in this case, maybe yes but
there is obviusly a function to do this*/
readfile('iso_part_2');

I don't know if caching can be used in this case but actually the page is all the same except for those bytes... So I think yes.

Hope the idea will be helpful

Fire-Dragon-DoL