Managing licenses in Gnutella

Arne Babenhauserheide <[email protected]>
Newsgroups gmane.network.gnutella.devel
Message-ID <[email protected]>
Philippe Verdy posted about manageing licenses in another thread, and I 
criticised him harshly, because he proposed trying to solve a problem 
(license management) with a worse problem (DRM). 

That said, I think that managing licenses is a good thing. It just must not be 
done with DRM. 

So this post is about two things: 
- 1: How licenses can be managed without DRM, and 
- 2: Why DRM must not be used, if you have your users in mind. 


=On license management=

- This is a draft. Constructive comments are very welcome. -

To manage and verify licenses, you can just use signed license files (a task 
which can already be accomplished by GnuPG quite easily. I use GnuPG as an 
example, because it already works very well, is GPL and is well tested and 
secure). 

GnuPG: http://gnupg.org

==General==

If you buy a file, you also get a license, which includes a file-ID (for 
example a hash over the content, id3 tags stripped), your ID and/or name and 
your public key. 
It gets signed by the previous owner of that file. 

==Selling files==

If you sell the files, you pass on your license and add to it the file-ID, the 
buyers ID and the buyers public key and sign the whole license again. 

This results in a tree, which lists all previous owners of the files, so you 
can track it back to the origin and check if it really was acquired legally. 

If you are the first seller of a file, you can get your public key signed by a 
trusted authority. 


==Buying files==

When you buy a file, you ask for the license to prove that the owner may sell 
it to you. Then you check the signature, if it is valid and if it comes from 
a trusted seller (there needs to be a trusted authority where sellers can 
register). 

After that you check the signatures of all subsequent sellers, by testing the 
license against the public-key included in the part which lists their public 
key (if you buy a file, your public key gets written into the license and 
signed by the seller). 

If all conditions are met, you know that it is safe to give the seller money 
for the rights for that file.  

This way, you can trace the way of files back to the origin and verify every 
step on the way without even needing access to any outside resources safe the 
keys of the first trusted seller, and those can reside in a public ID signed 
by a trusted authority. 


==Trusted authorities==

Verifiying your public key is quite simple, and even I can play that part. To 
verify you, I can use two ways: 

- 1: You send me a mail with your Public Key and your contact details. I then 
send you a snail-mail letter with a verification code. If you send it back by 
mail and pay a small fee (for the snail mail, and also as second 
verification), I sign your key and send you 
an ID file signed by me (this is how email-providers make sure that they get 
no fake addresses). 
For this I take a small fee, so I can afford the snail mail. 

- 2: You put your public key online on your own domain. I check the details 
you post against the entries in the whois database, and if it fits (and you 
pay a small fee for the work and as second verification), I sign your key and 
send you an ID file signed by me. The domains registering agencies already 
check you. 

If people buy from you, you can show them your signed ID-file, so they know 
for sure who they are dealing with. 

The main trusted authorities need self-signed ID-files, which they add to 
the ID files they sign and which get signed by other main trusted authorities. 

For LimeWire: If you want every user of your software to be able to sell their 
own files, you can just use their buyers-ID to verify their identity and give 
them a public key and an ID-file which you sign yourself. You in turn let your 
ID-file be signed by other trusted authorities. 
They can then claim songs, and if they claimed wrongly, their claim can easily 
be traced back to them. 

That way, many groups can cooperate on common grounds without having to know 
everyone yourself. 


I hereby make the offer to play the part as one of the main trusted 
authorities, if this scheme gets used. 
My Public key can be found at http://draketo.de/inhalt/ich/pubkey.txt
Key: FE96C404
E-Mail: <[email protected]>
Fingerprint: 6B05 41F0 94FF 2163 6FBA  2433 3307 469B FE96 C404

At a later stage one could and should implement a real web of trust, as it is 
already done in GnuPG. That web of trust also knows trust ratings (unlimited, 
completely, partly, none), which show how much you trust the owner of the 
signed key to carefully check the identities of the keys he/she signs. 


Done. A decentral license management protocol which doesn't invade your 
privacy and is secure. 

To implement it, we need a format for the ID-files and for the license files. 

The only external resource we need is GnuPG which is GPL, well tested and 
already in use by other applications for years (for example by my mail 
program to sign this very message). 
http://gnupg.org

It is even supported by the german agency for security in information 
technology (BSI) through the project aegypten: 
http://www.gnupg.org/aegypten/


=On DRM=

Now to the second argument in this post: Why DRM must never be used if you 
care about your users. 

DRM means: Some technology which denies or allows you certain useages of your 
computer based on a list of rights and restritcions you have been assigned. 
A license is a receipt. DRM means to take away your goods, if you loose your 
receipt. 

This one is short, because the weakness of DRM is pretty obvious if you 
look at it from the correct angle. 

DRM is either a farce, or it is a danger to the privacy and security of its 
users, because it takes over control of the whole computer. 

Most DRM is a farce, because it can be cracked easily by ripping the content 
in some way which isn't controlled by it (for example digital audio output of 
the computer). You can esily see this from the fact, there isn't any 
significant DRM scheme which wasn't circumvented and even cracked quickly. 

This means that DRM which isn't a farce needs to control the whole computer 
and every peripheral, and so it takes away control of the computer from its 
user and gives it to someone else. 

And this is completely incompatible with free software and free operating 
systems, because it relies on controlling all connections between the DRM 
crippled software and other software or hardware. 

Since you can change free software any way you like, no part of that chain may 
be free software. 


In effect, that kind of DRM is equivalent to imprisoning you in your own house 
and then gracefully allowing you to use certain parts of your house for which 
you get the allowance. 

And that means: If you have any kind of efficient DRM on your computer, you no 
longer own your computer. 

For more indepth information, please visit 
http://www.defectivebydesign.org/


For a license management Scheme you don't need DRM, since you only need to be 
able to tell the user "this license is valid" or "this license is invalid" and 
let the user decide how to act (because he could just have other ways to get 
permissions which can't be tracked, like knowing the original author and just 
asking him/her by phone or even snail mail)


Best wishes, 
- Arne  (http://gnufu.net - Gnutella For Users)
PS: Please make sure that you change the subject of your messages if you 
switch the topic. 
PPS: Show me a weakness in the license management scheme and I'll fix it. 
PPPS: An ID-file can be identified by its file-hash and its name so it can be 
found on Gnutella. It must contain the public key.


[Non-text portions of this message have been removed]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.