Skip to content

Another Important Issue With Texture UUID Encryption #37

@SundanceHaiku

Description

@SundanceHaiku

Fred (and licensing experts), I need your advice. Let me tell you where I’m at in the process.

Thanks to Fred's suggestion on Me-We, I have found a work-around with the bug in the llBase64ToString function. That's squared away. I also have completed adding the XTEA encryption code to all Ruth parts that expose texture UUID’s. These include the following:

  1. Skin HUD – Sender Script

  2. Alpha HUD – Sender Script (this wasn’t absolutely necessary but it would have required extra coding to by-pass it. )

  3. Body Receiver Script. (I re-worked the body receiver script so that it is backward compatible. In other words, if someone uses one of the older HUD’s which is not encryption enabled, the Body will still process the commands.)

  4. Shin’s Injector. The Injector is a clever idea which keeps full perm textures in OS from being exposed. Unfortunately, I found that one could obtain the UUID when the Injector transferred the texture to the body. I have found a way to plug that hole by adding an encryption routine.

  5. New Creator’s Skin/Texture HUD. Shin’s Injector does not work in Second Life, and something was needed in that platform to help protect creators. Consequently, I built a new HUD for creators that stores encrypted UUID’s. The customer can then transfer the UUID’s to the body. It uses the same Body Receiver Script used by the other HUD’s. I believe that this will also work in other closed grids.

At this point, I have about 40 hours of work into this. Fortunately, I had some extra time the last couple weeks to work on it.

Now that I’m nearly finished, here’s what I ran into . . .

In order to keep the contents of the notecard hidden, one has to set the permission of the notecard to “No Copy.” Unfortunately, “No Modify” does not do the job. If the notecard is "No Modify," it can be dragged out of the object and into your inventory where it can be read. You can test this by creating an object with a notecard, setting the notecard to "No Modify," and giving it to an alt. The alt, using this method, can read the notecard.

That got me wondering how exactly one can protect the contents of a notecard. To find that out, I ran a series of tests with an alt. The results are summarized on a spreadsheet found here:
NotecardPermTest.pdf

You’ll see from the spreadsheet that the only way to prevent the notecard from being opened is to use “No Copy.”

But this creates a problem. Once the notecard is set to “No Copy,” the Ruth Body, itself, will become “No Copy.” That will cause all sorts of complications for creators and individual users of Ruth. I won’t go into detail, but I’m sure you know what I mean.

Possible solution . . . Fred, I'd like to direct this question to you. What I’d like do is to include the license key with your code in the XTEA script. A "No Modify" script is very safe, and that way we don’t have to use a notecard. I was thinking that this might be possible, since you had included the following comment in your code: “The following code is licensed by Fred Beckhusen as CC-0. You do not have to publish this code under AGPL. You do not want this code to be set to modify in your product.”

If you have licensed the code as CC-0, wouldn’t that allow for making a modification and setting the script “No Modify?” The XTEA code in GitHub would still be public. The only thing that would be changed would be the license key. By doing so, we are able to provide some security for creators without resorting to making Ruth no copy. We are able to keep the communication channel public. And, most importantly from my perspective, all the work I’ve done won’t be for naught.

Fred, what is your read on this?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions