|
|
|
[
Permlink
| « Hide
]
miss hera added a comment - 27/Feb/08 04:58 PM
good idea.
This would be better than
It would, by the way, not provide any meaningful protection against copying, since anything that can be read by a script can be read by libsl, but I supose it would make reverse-engineering of some scripted content harder. It would be better to avoid passing secrets unencrypted in the first place, though. That is quite understandable. With Secondlife out in the open, anyone can be free to use its libraries for malicious purposes.
As for the later comment about script security, not many scripters are savvy enough to protect sensitive data. Besides, the current implementation of encryption functions are a joke. Also, lets not forget about implementing authentication. If done properly, an effective user-made encrypted/authenticated communication system between scripts will outweigh its positives through its use of system resources. Even when lsl reaches the mono platform, I have a feeling that its functionality will not change. And as of now, I fail to find a proper authentication system for linked messages besides simple encryption. If implemented, this feature could help save resources while protecting the ip of scripters. (it's just geometry that can be intercepted by libsl right? scripts don't go to the SL client anymore?) While it can't stop copying geometry altogether, this can stop one means of copying. The reason I placed this on a normal priority instead of critical and above is because this is in a way already implemented through the no-modify property. However, that would mean that the end product is not user configurable. I among other users would like to customize the things that they buy. It would be great to see this property added among scriptable objects sometime in the future. For now though, its just my suggestion and is pretty much optional to have this feature added in later releases. The real solution for script security is to not pass secrets between scripts at all. If you need to store multiple texture keys such as texture IDs, keep them in the scripts and just pass commands to switch to "texture #n"... that is, use a code rather than a cipher.
I prefer to do that and actually document the link message API. Many of my scripts are open source or have open source control scripts so that people can customize the behavior of the products without needing access to textures and the like. I have 2 words why this is a bad idea... fair use, unless you want me to define fair use I think that is enough to be very wary of this idea.
Second Life's permission system does not have support for "fair use" exceptions to begin with, so while I am definitely in sympathy I do not believe that's enough by itself to oppose this proposal. I think you need to go into more detail.
I'm not really comfortable with having this implemented. My concern is the damage it does to Fair Use.
There are two main arguments for this feature suggestion 1) As previously pointed out stopping script based cloning won't stop cloning. Script cloning is inexact and not fully featured, people rarely properly serialize their floats, vectors & rotation and llGetPrimitiveParams cannot cope with prim torture. Anyone looking to do cloning will just use the latest CopyBot produced by PN. Of the types of cloning, the easiest to detect is script cloning, regardless of what we do people will always try and clone objects, we should thus be encouraging people to use the type that can be most easily detected. The lesson we can take away from Orwell's 1984 is that if you want to stay in power, run the resistance, make it easy to detect cloning. Cloning isn't the big problem, it's the transference of clones that is the problem; it's the sale of clones. 2) There aren't many applications for scripted modifiable objects where you care about the integrity of the scripts. The rare exceptions are AOs which almost all use GPL code and distribution of those as no-mod is pretty much a violation of the GPL. Other scripts of interest are those clickable sex attachments (who's name alludes me at the moment), the designers of them are very disinterested in open interoperability. Which brings us to the issue of interoperability. When it comes to script interop, people either don't want it, or they don't want interference. Interference falls into two classes, inappropriate access of private features and indecipherable/corrupt communications. The first is can be avoided by ensuring that all requests to private features are properly signed. The second is harder to script around but if you publish your comm specifications then the third party scripter will know how to write valid requests and how to add their own comms that won't interfere. Not wanting any interop can also be solved with message signing. Message signing isn't complicated and doesn't have to be all that slow. There are even fewer applications where you have a mod object that needs encrypted communications between scripts; I just don't see there being enough demand for such a feature when there are workarounds in place. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||