A technique for imparting substantial break-once-run-everywhere resistance to
software
objects, and for controlling access and use of resulting protected objects by a
client computer. Specifically, a relatively large number of identical watermarks
are embedded throughout a software object to form a protected object. Once a user
has downloaded a protected object through a client computer, the user transacts
with a publishers web server to obtain an electronic license, cryptographically
signed by the publisher to an enforcer located in the client computer which specifies
rights for accessing and using this object, to this computer and an expected value
of a parameter contained in the watermarks. Whenever the client computer attempts
to access a file containing the protected object, the enforcer examines the object
using its watermark key. If the object contains a watermark at a location specified
by the watermark key, a digital rights management system executing in the client
operating system accesses a license database to determine if the access is permitted
by the license.