クリーンルーム設計(別名:チャイニーズウォール技術)とは、リバースエンジニアリングによって設計を複製し、元の設計に関連する著作権を侵害することなくそれを再現する手法です。クリーンルーム設計は、独立した創作に基づいているため、著作権侵害に対する防御手段として有効です。しかし、独立した発明は特許に対する防御手段とはならないため、クリーンルーム設計は通常、特許制限を回避するために使用することはできません。
この用語は、設計チームが「クリーン」な環境、つまり競合他社が使用する独自の技術に関する知識によって明らかに汚染されていない環境で作業していることを示唆している。
通常、クリーンルーム設計は、再実装するシステムを調査した担当者が仕様書を作成することで行われます。この仕様書は、著作権で保護された素材が含まれていないことを確認するために弁護士によってレビューされます。その後、元の調査担当者とは一切関係のないチームが仕様書に基づいてシステムを実装します。
Phoenix TechnologiesとAmerican Megatrendsは、IBM互換BIOSのクリーンルーム実装をさまざまなPCクローンメーカーに販売した。[ 1 ] [ 2 ]
Corona Data Systems、Eagle Computer、Handwell Corporationなど、他のいくつかのPCクローン企業は、 IBMから著作権侵害で訴訟を起こされ、IBMの著作権を侵害しない方法でBIOSを再実装することを余儀なくされた。 [ 3 ] [ 4 ]しかし、ファームウェアが著作権で保護されるという法的先例は、 Apple Computer, Inc. v. Franklin Computer Corp.、714 F.2d 1240 (第3巡回区控訴裁判所、1983年)まで確立されていなかった。IBMによる3件の和解、およびCompaqとColumbia Data Productsの合法的なクリーンルームPC BIOS設計は、Phoenixが1984年7月に自社のBIOSコードのライセンス供与を発表する前に起こった。Phoenixは、BIOSコードが、Intelマイクロプロセッサに以前触れたことすらないプログラマによってクリーンルームプロセスで書かれたことを明確に強調した。そのプログラマ自身は、以前はTMS9900プログラマだった。[ 5 ] 1990年代初頭になっても、IBMは松下電器産業/パナソニック(1987年)[ 6 ]や京セラ(1993~1994年)などの他のPCクローンメーカーに対するBIOS著作権侵害訴訟の和解で数百万ドルを獲得していたが、後者の訴訟は1985年から1990年までの侵害に関するものであった。[ 7 ] [ 8 ]
クリーンルーム設計のもう 1 つの例は、Apple II 互換機の数十機種の中で、Apple Computerが起こした訴訟を生き延びた唯一のコンピュータ モデルであるLaser 128用のApple II ROMのVTechによるクローンの成功です。「Laser 128 の話」は、1983 年のApple Computer, Inc. v. Franklin Computer Corporation の判決で敗訴した Franklin Ace 1000 とは対照的です。以前の PC 「クローン」の例は、ファームウェアの著作権に関する法的先例が作られる前でさえ、IBM と法廷で争う勇気がなかったことで注目に値します。[ 9 ] [ 10 ] [ 11 ] [ 12 ]
その他の例としては、Windowsのクリーンルームでリバースエンジニアリングされたコンポーネントから作られたオープンソースのオペレーティングシステムであるReactOS [ 13 ]や、バージョン7 Unixのクリーンルームでの再実装であるCoherentオペレーティングシステム[ 14 ]などがある。Coherentの開発元である Mark Williams Company は、MWC が AT&T Unix の権利を侵害していないかを確認するために AT&T の代表団の訪問を受けた[ 15 ] 。Coherentはオープンソースとして公開されている[ 14 ]。
クリーンルーム設計は通常、ベストプラクティスとして採用されますが、法律で厳密に義務付けられているわけではありません。NEC対インテル社の訴訟(1990年)では、NECは、NECのエンジニアがNEC V20クローンで8086プロセッサのマイクロコードを単にコピーしたというインテルの主張に対し、確認判決を求めました。米国の裁判官は、NECのマイクロコードの初期の内部改訂は確かに著作権侵害であったものの、実際にNEC製品に組み込まれた後の改訂は、前者から派生したものではあるものの、インテルのマイクロコードとは十分に異なっていたため、著作権侵害とはみなされないと判断しました。NEC自身はクローンのマイクロコードの開発において厳密なクリーンルーム方式を採用していませんでしたが、裁判中、仕様書のみへのアクセスを許可された独立請負業者を雇い、その請負業者は最終的にNECとインテルのコードの両方に類似したコードを作成しました。この証拠から、裁判官は、特定のルーチンの類似性は互換性要件から生じる機能的制約の問題であり、したがって創造的な要素は含まれていない可能性が高いと結論付けました。[ 16 ]クリーンルーム方式は、以前から訴訟の可能性を考慮した予防措置として用いられてきたが(例えば、Phoenix BIOS事件など)、NEC対Intel事件は、米国裁判所でクリーンルームの主張が認められた最初の事例である。ここで言及する価値のある関連事項として、NECはIntelの8086プロセッサに関する特許のライセンスを保有していたことが挙げられる。[ 17 ]
ソニー・コンピュータエンタテインメント対コネクティックス社は、リバースエンジニアリングに関する重要な判例を確立した1999年の訴訟である。 [ 18 ] [ 19 ]ソニーは、コネクティックスの仮想ゲームステーションエミュレータに対する著作権侵害で損害賠償を求め、自社のBIOSコードが許可なくコネクティックスの製品にコピーされたと主張した。ソニーは最初の判決で勝訴したが、控訴審で判決は覆された。ソニーは最終的に仮想ゲームステーションの権利を購入し、それ以上の販売と開発を阻止した。これにより、商業的なリバースエンジニアリングの取り組みの法的影響に対処する判例が確立された。
製造過程において、Connectix社はBIOSのリバースエンジニアリングにチャイニーズウォール方式を試みましたが失敗に終わり、エンジニアはオブジェクトコードを直接逆アセンブルしました。Connectix社は、独自のコードを直接逆アセンブルして観察することが、その動作を判断する他の方法がないために必要であったと主張し、控訴審で勝訴しました。判決文より抜粋:
著作権保護の対象となる作品の中には、その核心に近いものとそうでないものがある。ソニーのBIOSは、複製なしには検証できない保護対象外の部分を含んでいるため、核心から離れた位置にあった。そのため、控訴裁判所は、より伝統的な文学作品よりも低い保護レベルを認めた。
IBM の BIOS を単に (違法に) コピーしたという非難から身を守るため、Phoenix は「クリーンルーム」または「チャイニーズウォール」と呼ばれる手法を使用してリバースエンジニアリングを行った。まず、エンジニアのチームが IBM BIOS (約 8KB のコード) を研究し、実際のコードを使用したり参照したりすることなく、そのすべての動作を可能な限り完全に記述した。次に、Phoenix は IBM BIOS に関する事前の知識がなく、そのコードを見たこともないプログラマーの第 2 チームを招集した。第 1 チームの機能仕様のみに基づいて、第 2 チームは仕様どおりに動作する新しい BIOS を作成した。