Storage Technology Corp. (Doing Business as Storagetek) v. Custom Hardware Engineering & ConsultingStorage Technology Corp. (Doing Business as Storagetek) v. Custom Hardware Engineering & Consulting
Case Information
*2 Before RADER, SCHALL, and BRYSON, Circuit Judges.
Opinion for the court filed by Circuit Judge BRYSON. Dissenting opinion filed by Circuit Judge RADER.
BRYSON, Circuit Judge.
Storage Technology Corporation (“StorageTek”) manufactures automated tape cartridge libraries that can store massive amounts of computer data. The cartridge libraries consist of Library Storage Modules, or “silos,” that contain numerous tape cartridges, tape drives for reading the cartridges, and a robot arm for moving the cartridges. Connected to each silo is a Library Control Unit that controls the robotic *3 mechanisms in the silo and monitors their progress. The individual silos and Control Units are connected via a local area network to a Library Management Unit, which is a computer that can direct and control several silos. To access data from the library, a user sends a request for the data to the Management Unit. The Management Unit then transmits commands to the appropriate Control Unit to find and read the tape cartridge containing the requested data. The Control Unit then sends the data over the network back to the Management Unit.
A central element of this case concerns what occurs when the entire tape library is first turned on. Upon startup, the Management Unit loads executable code, called the “9330 code,” from its hard drive into its random access memory (“RAM”). When the Control Unit is powered up, the Management Unit sends other code, called the “9311 code,” across the network to the Control Unit, where it is loaded into the Control Unit’s memory. Both processes happen automatically, without any action by the library user.
StorageTek’s claims in this case stem from the fact that the 9330 and 9311 computer code is copyrighted. StorageTek describes both the 9330 and 9311 code as consisting of two intertwined, but distinct, groups: functional code and maintenance code. While StorageTek never specifies which portions of its copyrighted code fall into each group, it states that the functional code consists of the portions of the computer program that cause the Management Unit and Control Unit to run, while the maintenance code consists of the portions of the program that diagnose malfunctions and maintain the performance of the Management Unit and Control Unit. When StorageTek sells its tape libraries to customers, the company does not sell the software that runs the library. Rather, it only licenses the programs to its customers. The license *4 covers only the functional code portions of the software, and it specifically excludes the maintenance code. However, StorageTek provides the entire code to the customer. Both the functional and maintenance code are automatically loaded into the RAM of the Control Unit and Management Unit upon startup, and copying the entire code is necessary to activate and run the library.
Custom Hardware Engineering & Consulting, Inc., (“CHE”) is an independent business that repairs data libraries manufactured by StorageTek. In order to diagnose problems with the libraries, CHE intercepts and interprets error messages produced by the maintenance code. The error messages are known as fault symptom codes. The fault symptom codes are generated by the Control Unit and are transmitted to the Management Unit over the network within a package of information, called an Event Message. To ensure that the Control Unit is configured to send the fault symptom codes, CHE needs to override a password protection scheme, called GetKey, which was written by StorageTek to disallow certain unauthorized reconfigurations of the maintenance code on the Control Unit. CHE has used two devices to circumvent GetKey. The original device, called a Library Event Manager (“LEM”), was connected to the network between the Control Unit and the Management Unit. The LEM worked by trying different passwords to “crack” GetKey. The LEM then allowed CHE to force the Control Unit to send fault symptom codes over the network after rebooting the Management Unit and Control Unit. CHE has ceased using the LEM in favor of a different device, the Enhanced Library Event Manager (“ELEM”). The ELEM also is attached to the network between the Control Unit and Management Unit. Rather than “cracking” the GetKey password, the ELEM mimics a signal from the Management Unit *5 to the Control Unit upon rebooting the Control Unit, which causes the maintenance code on the Control Unit to be configured to send the fault symptom codes. CHE then intercepts the Event Messages and interprets the fault symptom codes. Based on the information in those error codes, CHE is able to diagnose and repair the data libraries.
StorageTek brought an action in the United States District Court for the District of
Massachusetts against CHE and its president, David York. StorageTek alleged that
CHE committed copyright infringement when CHE rebooted and reconfigured its
customers’ Control Units and Management Units. Storage Tech. Corp. v. Custom
Hardware Eng’g & Consulting, Inc., No. 02-12102-RWZ (D. Mass.). Additionally,
StorageTek alleged that CHE violated the anticircumvention provision of the Digital
Millennium Copyright Act (“DMCA”),
Upon bringing suit, StorageTek asked the district court to issue a preliminary
injunction against CHE. After a hearing on the motion, the district court agreed that
StorageTek had shown a substantial likelihood of success on the copyright, DMCA, and
trade secret claims. Additionally, the court found that the potential losses to
StorageTek’s business due to CHE’s activities were sufficiently great that the balance of
hardships favored issuing a preliminary injunction. Finally, the trial court held that
*6
CHE’s antitrust counterclaims would likely fail and in any event could not shield CHE
from an injunction. The court therefore enjoined CHE from circumventing the GetKey
system, intercepting and displaying Event Messages, or causing the copying of the
maintenance code on its customers’ systems. CHE appeals. Because the issues on
appeal are not within our exclusive jurisdiction, we follow the law of the circuit from
which this appeal is taken. Glaxo, Inc. v. Novopharm, Ltd.,
Cir. 1997).
I
CHE does not deny that the copyrighted maintenance code is copied into the
Control Unit’s or Management Unit’s RAM when the company reboots its customers’
systems. See MAI Sys. Corp. v. Peak Computer, Inc.,
A
CHE first asserts that
it is not an infringement for the owner or lessee of a machine to make or authorize the making of a copy of a computer program if such copy is made solely by virtue of activation of a machine that lawfully contains an authorized copy of the computer program, for purpose only of maintenance or repair of that machine, if --
(1) such new copy is used in no other manner and is destroyed immediately after the maintenance or repair is completed; and (2) with respect to any computer program or part thereof that is not necessary for the machine to be activated, such program or part thereof is not accessed or used other than to make such new copy by virtue of the activation of the machine.
CHE’s position is that its actions are protected by
StorageTek contends that CHE’s activities fail to meet the requirements of
The requirement in
meant to encompass monitoring systems for problems, not simply fixing a single, isolated malfunction.
This interpretation of the term “maintenance” comports with the general policy
underlying the enactment of
In its analysis of
In the alternative, StorageTek contends that CHE cannot avail itself of
Unfortunately, determining whether a particular piece of software is “necessary
for the machine to be activated” is not as simple as it might appear. On the one hand,
not all code that resides in a machine’s RAM after the completion of the startup routine
qualifies as “necessary for the machine to be activated,” even though that code is put
into RAM as part of the activation process. If that were so, the requirement of
In enacting
Congress’s clearest indication of what it considered to be “necessary for the
machine to be activated,” however, is found not in
In some instances, it may be difficult to determine whether particular software is necessary to make the computer function and to ascertain whether the computer is working properly. In this case, however, both parties agree that the maintenance code is so entangled with the functional code that the entire code must be loaded into RAM for the machine to function at all. That is, loading the maintenance code into RAM is *13 necessary for the Management or Control Unit “to be turned on.” Contrary to the dissent’s position, the fact that the maintenance code has other functions, such as diagnosing malfunctions in the equipment, is irrelevant. Moreover, the possibility that StorageTek could have written the maintenance code as a separate, “freestanding” program that would not have been needed to start the machine does not affect the statutory analysis of the system that StorageTek in fact created. Finally, although the maintenance code can be reconfigured to perform fewer functions, as the dissent points out, what StorageTek can do with the maintenance code after the system boots up is irrelevant. As the statutory text and legislative history make clear, the phrase “necessary for the machine to be activated” refers to the portion of code that must be copied in order for the machine “to be turned on.” In this case, copying the maintenance code into RAM is indispensable for the machine to be turned on or activated; its functionality (or lack thereof) after bootup is moot.
Finally, StorageTek contends that
B
CHE argues in the alternative that even if the
StorageTek argues that CHE’s use of the maintenance code must constitute infringement because the license agreement specifically excludes the use of the maintenance code. Because CHE’s customers are not allowed to access the maintenance code, StorageTek asserts that when CHE does so, it must be infringing StorageTek’s copyright. There are two flaws in that line of reasoning. First, CHE’s customers are given the right to copy the maintenance code into the RAM of their machines. The license specifically authorizes the customers to use the code to “enabl[e] the specific unit of Equipment.” The parties are in agreement that both the maintenance code and functional code portions of the 9330 or 9331 code must be loaded into RAM in order to activate the Control and Management Units. In order to activate the Control and Maintenance Units, the maintenance code must be copied. The license thus authorizes the copying of that code.
Second, StorageTek’s argument conflates a claim based on copyright
infringement and an action based on breach of contract. To succeed in a copyright
action, “the copying must be beyond the scope of a license possessed by the
defendant,” Stenograph, 144 F.3d at 99, and the source of the copyright owner’s
complaint must be grounded in a right protected by the Copyright Act, such as unlawful
reproduction or distribution. See
Although there is language in some cases that can be read to suggest that
copyright protection extends to all conduct that would violate the user’s license, the
decisions in those cases are not that broad. For example, in S.O.S., Inc. v. Payday,
Inc., the Ninth Circuit stated that a “licensee infringes the owner’s copyright if its use
exceeds the scope of its license.”
StorageTek maintains that regardless of the scope of its licenses vis-à-vis the
equipment owners, the licenses do not extend rights to third parties. In particular,
StorageTek points to the language of its standard license agreement, which states that
the equipment owner may not “sublicense, assign, lease or permit another person to
use Internal Code (except as provided . . . below).” The company argues that this
provision forbids CHE from copying StorageTek’s code into RAM by starting up the
Control and Management Units. That argument, however, ignores the rest of the
license agreement. The prohibition on third-party use of the code is modified by a later
provision stating that equipment owners “may transfer possession of Internal Code only
with the transfer of the Equipment on which its use is authorized.” Additionally, the
license grants the customer the use of the code for “the sole purpose of enabling the
specific unit of Equipment for which the Internal Code was provided . . . .” The clear
implication of those sections is that the license is tied to the piece of equipment on
which the software resides. Thus, the authorized use is tied to a particular machine,
rather than a particular person. In fact, one version of StorageTek’s license agreement
expressly contemplates third-party use of the equipment, noting that “misuse of the
Equipment or negligence by Customer or a third party” is not included within the
*18
maintenance provision of the license. Thus, the prohibition against assigning or
permitting another to use the code is clearly a restriction on giving a third party a copy of
the code that is divorced from the machine “on which its use is authorized.” In this
case, CHE is merely turning on the machine on which the use of the code is authorized.
See Green Book Int’l Corp. v. Inunity Corp.,
Other cases involving software license agreements support that reading of
StorageTek’s agreement, albeit indirectly. For example, in MAI Systems, the Ninth
Circuit held that a third party was not authorized to copy licensed software into RAM by
activating a computer. However, the court held that the license did not cover such
copying because the license prohibited third parties from copying the software. 991
F.2d at 517. The license in MAI Systems was so restrictive that only three employees
of the licensee were allowed to use and copy portions of the software. Id. at 517 n.3. It
was only because the license contained such severe, explicit restrictions that the court
held that third parties were prohibited from copying the software by activating the
machine. The court in MAI Systems would not have had to rest its decision on those
restrictive license terms if third parties were disallowed from copying the software even
*19
in the absence of such restrictive language in the license. See also SMC Promotions,
Inc. v. SMC Promotions,
StorageTek, of course, could have drafted the license agreement to explicitly disallow copying by third parties through activation of the equipment owners’ machines. In the absence of such language, however, CHE’s copying appears to be protected as long as CHE is acting as an agent of the equipment owners.
C
In conclusion, the district court erred in finding that CHE was unlikely to prevail
on its defense to copyright infringement. CHE’s conduct appears to fall within the safe
harbor of
II
The DMCA claim is based on CHE’s circumvention of the GetKey protocol.
Specifically, StorageTek maintains that the use of the ELEM and LEM devices violates
In this case, the LEM and ELEM devices allow CHE to bypass GetKey and gain access to the maintenance code. Furthermore, the manner in which the ELEM and LEM function requires that the Control or Management Units be rebooted, causing the protected software to be copied into RAM. Nonetheless, simply because the ELEM or LEM allows access to the copyrighted work concurrently with the copying does not mean that the ELEM or LEM “facilitates” copyright infringement. Consequently, the district court erred by failing to consider whether or not such facilitation occurred.
We held above that it is unlikely StorageTek will succeed on the merits of its
copyright claim. To the extent that CHE’s activities do not constitute copyright
infringement or facilitate copyright infringement, StorageTek is foreclosed from
maintaining an action under the DMCA. See Chamberlain, 381 F.3d at 1202. That
*21
result follows because the DMCA must be read in the context of the Copyright Act,
which balances the rights of the copyright owner against the public’s interest in having
appropriate access to the work. See id. at 1199 (“the severance of access from
[copyright] protection . . . would also introduce a number of irreconcilable problems in
statutory construction”);
Even if StorageTek were able to prove that the automatic copying of the software
into RAM constituted copyright infringement, however, it would still have to show that
the LEM or ELEM facilitated that infringement. See Chamberlain,
The problem in this case is that the copying of the software into RAM when the Control or Management Units are rebooted takes place regardless of whether the LEM or ELEM is used. Hence, there is no nexus between any possible infringement and the use of the circumvention devices. Rather, CHE’s circumvention of GetKey only allows CHE to use portions of the copyrighted software that StorageTek wishes to restrict technologically. The activation of the maintenance code may violate StorageTek’s contractual rights vis-à-vis its customers, but those rights are not the rights protected by copyright law. There is simply not a sufficient nexus between the rights protected by copyright law and the circumvention of the GetKey system.
A court must look at the threat that the unauthorized circumvention potentially
poses in each case to determine if there is a connection between the circumvention and
a right protected by the Copyright Act. See Lexmark Int’l, Inc. v. Static Control
Components, Inc., 387 F.3d 522, 549-50 (6th Cir. 2004); Chamberlain, 381 F.3d at
1204. In this case, the threat from CHE’s circumvention of GetKey is distinct from the
dangers that StorageTek’s copyright protects against. See
In sum, the district court failed to consider whether the circumvention of the
GetKey system either infringes or facilitates infringing a right protected by the Copyright
Act. We conclude that it is unlikely that StorageTek will prevail on its claim under
III
StorageTek asserts that the information contained in the Event Messages constitutes a trade secret. Accordingly, StorageTek contends that by breaking GetKey *23 and reconfiguring the Control Units to send the Event Messages, CHE has misappropriated the secret information contained in the Event Messages. StorageTek’s argument is undermined, however, by the fact that the pertinent information in the Event Messages used to be publicly available.
Trade secret protection is unavailable for information that is not actually secret.
See Jet Spray Cooler, Inc. v. Crampton,
CHE maintains that the vital information in the Event Messages—the meaning of the fault symptom codes—was public knowledge before StorageTek created GetKey. There appears to be overwhelming evidence that the fault symptom codes were freely transmitted by the library components, with no effort to keep their meaning secret. StorageTek’s senior customer service engineer testified that the fault system codes were not confidential. That fact was confirmed by CHE’s expert. There was even evidence that early versions of StorageTek’s software would cause the error codes to be shown on the Control Unit’s display panel whenever there was an error. In fact, technicians first learned the meaning of the error messages by recording the error message that was revealed on the display panel for each type of machine malfunction. *24 There was also evidence that the entire Event Message was openly transmitted before the GetKey system was put in place. Mr. Billington, StorageTek’s expert, testified that from 1987 until 1992 the data packets were “freely available.”
StorageTek makes two arguments in support of its contention that the Event
Messages were never freely available. First, it maintains that in 1992, before GetKey
was implemented, StorageTek attempted to keep the error codes secret by disabling
the maintenance code, which sends the Event Messages, on customers’ machines.
Those actions are irrelevant, however, because the error messages had already been
freely transmitted between 1988 and 1992. See J.T. Healy & Son, Inc. v. James A.
Murphy & Son, Inc.,
The dissent maintains that “the information detailing precisely which aspect of the
system is broken and how to fix it” is protected as a trade secret. However, as we have
noted, the meanings of the codes and the malfunction itself are public information.
Additionally, there is no indication that the Event Messages provide a prescription of
how to fix the machine rather than simply a diagnosis of what is wrong. The dissent
further claims that trade secrets “remain trade secrets unless and until a third party
discovers the information on its own.” That analysis fails for two reasons. First, the
owner of the trade secret bears the burden of taking reasonable steps to preserve the
secrecy of the trade secret. See USM Corp. v. Marson Fastener Corp., 393 N.E.2d
895, 899-900 (Mass. 1979). The dissent’s position apparently shifts the burden onto
others to discover the trade secret information independently. Second, to show
misappropriation of a trade secret under Massachusetts law, StorageTek must show
that CHE “used improper means, in breach of a confidential relationship, to acquire and
use the trade secret.” Data Gen., 36 F.3d at 1165. CHE uses publicly available
information about what the fault symptom codes mean, and it developed the LEM and
ELEM devices independently to diagnose problems in the silos. There has been no
showing that either of those activities breached a confidential relationship. Therefore,
the diagnostic information obtained through those methods, i.e. determining what is
*26
physically wrong with the silo, cannot be a misappropriation of a trade secret, any more
than if CHE had reverse engineered the silo in any other manner. Bonito Boats, Inc. v.
Thunder Craft Boats, Inc.,
For these reasons, we agree with the appellants that the district court erred in failing to consider whether the information contained in the error messages is secret. Because it appears that the information for which StorageTek asserts trade secret protection was previously in the public domain, we conclude that StorageTek is unlikely to prevail on the merits of its trade secret claim.
IV
Because the district court committed errors of law in its consideration of StorageTek’s copyright claim and because the district court overlooked material factors in its analysis of the DMCA and trade secret claims, we find the court abused its discretion in granting the preliminary injunction. See Bl(a)ck Tea Soc’y v. City of Boston, 378 F.3d 8, 11 (1st Cir. 2004). Therefore, we vacate the grant of the preliminary injunction and remand for further proceedings.
VACATED and REMANDED.
*27 United States Court of Appeals for the Federal Circuit
04-1462 STORAGE TECHNOLOGY CORPORATION (doing business as Storagetek), Plaintiff-Appellee, v.
CUSTOM HARDWARE ENGINEERING & CONSULTING, INC.,
Defendant-Appellant, and
DAVID YORK,
Defendant-Appellant.
RADER, Circuit Judge, dissenting.
This court’s opinion today destroys copyright protection for software that continually monitors computing machine behavior. The opinion also conflates methods used to protect trade secret information with the actual information constituting the trade secret. Because these holdings are contrary to the underlying law, I respectfully dissent.
The safe harbor created by
This court’s opinion holds that CHE’s copying and use of Storage Tek’s
diagnostic “maintenance code” software falls within the protection of
When using Storage Tek’s maintenance code, which is not code “necessary for
the machine to be activated,” CHE does not reboot the storage silos of its clients for the
sole purpose of making a new copy “by virtue of the activation of the machine.” If it did,
CHE would be within the safe harbor of
Alternatively, even if Storage Tek’s maintenance code were so written as to be
“necessary for the machine to be activated,” when CHE reboots the silos with that code,
it once again repairs nothing, adjusts nothing, and checks nothing. Because CHE does
2
*29
not perform any “maintenance” or “repair” when it reboots the system to manipulate the
maintenance code, this copying of the maintenance code does not fall within the
protection of
As this court’s opinion states, the policy of
This court also holds that the diagnostic information contained in the data packets created and sent by the maintenance code cannot be a trade secret because “the reason the machine is malfunctioning [ ] cannot possibly be considered a trade secret.” But it is the data packets themselves, not the physical operation (or mis- operation) that they describe, that is the trade secret. A malfunction may be independently discoverable, but that does not preclude the information which describes it from being a trade secret. In my eyes, this court’s analogy to a special “buy price” is flawed. As I see it, the message that the arm of a storage silo is “broken” is analogous to the “buy price” that this court states “cannot possibly be considered a trade secret.” The diagnostic information contained in the data packets, i.e., the information detailing precisely which aspect of the system is broken and how to fix it, is analogous to the information detailing why the “buy price” makes a good buy. That a third party may 4 *31 perform its own diagnostics on the broken system and discover the cause of the malfunction does not remove the proprietary nature of the information until the third party actually performs the diagnostics and discovers the malfunction. Trade secrets remain trade secrets unless and until another party discovers the information on its own, at which point the information enters the public domain and is no longer protected. The point is that the other party must perform the work to discover the information on its own instead of stealing the information from its competitor.
Finally, this court’s suggestion that the meaning of the fault symptom codes themselves may have been a trade secret if they had not been introduced into the public domain misses the point. The proprietary fault symptom codes are the language used to express the faults, so it is the correlation of fault and code that forms the lexicon by which the trade secret can be deciphered.
For the foregoing reasons, I respectfully dissent. 5