11

The clean room technique is :

First, a team of engineers study the software and describe everything it does as completely as possible without using or referencing any actual code.

Then, a second team of programmers who had no prior knowledge of the software and had never seen its code, work only from the first team's functional specifications, and write a new software that operated as specified.

This technique bypasses the the fact in that the programmers do not directly reverse engineer the code at any point. So, if a commercial software is worked on in this manner, then can the new version created be sold legally ?


I am looking for an overview of global laws and am referring to reverse engineering proprietary drivers.

  • 1
    First off, I have no legal expertise. The law varies greatly depending on where the software is being developed/sold. Where are you, or are you looking for a summary of global laws? Also, I'm under the impression clean-room techniques are usually used for interoperability. If you were writing a Linux driver using information from a closed-source Windows driver, for instance. Is this what you're referring to, or is your question also concerned with reverse engineering and using algorithms? – Dougall Apr 4 '13 at 11:38
  • It is worth noting that this kind of thing isn't protected by patent (since it's software) in India (which is where AshRj is located if I remember correctly). However, on a global basis, other restrictions may apply. – JMcAfreak Apr 4 '13 at 14:13
  • I'm not sure "Clean Room Engineering" is the proper term for it. I've only heard that used for defect-prevention purposes in software development. – JMcAfreak Apr 4 '13 at 20:42
  • You might be interested in this Law Stack Exchange proposal which is now in commitment phase. – Franck Dernoncourt Nov 30 '14 at 18:31
22

Well, in this case I'll quote Mikko Hypponen from F-Secure:

"Remember, the legal advice you get from unknown strangers on internet forums is worth every penny you paid for it."

Source*

So, basically, You SHOULD consult Your local lawyer.

  • 1
    I think this is the best answer here, even though I added my own answer. Sure, my answer provides a good place to start with research, but the best way is to consult a lawyer. – JMcAfreak Apr 5 '13 at 16:21
12

First off, a disclaimer: This information is worth exactly what you paid for it - nothing. If you want the best answer, see the answer about consulting a lawyer. If you want to do your own research, here's a really good place to start. After research, still consult a lawyer. I mean it. Not all my information may be correct or accurate, so take it at face value.

Globally, there is no easy way to define the laws and regulations surrounding your question. The answer is found in patent laws, since copyright has only so much power over that area.

The fact that the software is not directly reverse engineered bypasses most of Copyright laws as far as I'm aware based on all the research I've done; you will DEFINITELY want to make sure I'm right on this one - it holds true in India, and I think similar concepts apply in the U.S. and other places. That leaves us with the oh-so-nebulous world of patents!

Software patents are a very big gray area. I hope you're ready to do some reading. I'm going to share the most relevant ones. You're on your own for anything else.

United States

In the United States, patent law excludes abstract ideas, which has led to some software not being patentable. At the same time, there has been a trend of growth in the number of software patents granted in the United States, so there can be major problems if your software, which has the same functionality as the patent-holder's software, is based on the same design specs. While reverse engineering the software for interoperability would be protected, creating a clone of it with different code would be illegal under patent law.

There are also the legal factors of Copyright and Trademark. The Digital Millenium Copyright Act (DMCA) provides further clarification on copyright (Wikipedia also does a good job summarizing it). Trademark law is handled similarly to patents, but there are other restrictions. However, for the purposes of length, I'll let you discover that (Google is your friend here).

Further Reading and resources:

UK and European Union

Substantive law in the United Kingdom generally excludes computer software from being patentable, as stated in The Patents Act of 1977. In the European Union, the European Patent Convention (EPC) specifies what an invention is, and software does not fall under that category (see also European Patent Office's (EPO's) Patents for Software?). UK courts have taken the view that the differences between the text of Section 1 of the Patents Act and Article 52 of the EPC should be ignored since Section 1 was to transpose Article 52 of the EPC into UK law; therefore, the EPC was the definitive text.

Case law in the UK has a very sporadic history of whether software is patentable. Currently, the UK Intellectual Property Office (UKIPO) and the EPO have diverged significantly in practice. There has been a rise in the number of patents granted. There have been more Patent office decisions than there have been Court decisions on the matter.

Further Reading and resources:

India

Most of the stuff for India is covered in your other question, especially the sources cited in my answer there (especially the paper Software Patent and Copyright Laws in India, which argues why software should be patentable). Unless the laws have changed significantly, you'd be safer here.

Finally...

You probably wouldn't be safe selling the software on a global market, since the majority of the market is seeing a growth in the number of software patents granted. There are also so many other legal factors that you'd be at great risk.

There are some exceptions, of course, which is how OpenOffice exists (for example); however, it has different functionality from Microsoft Office, which makes it an exception, even if the base functionality is exactly the same.

You're kind of on your own for the rest of the research (I've given you and anyone else a good starting point).

4

[Below applies to U.S. only]

I'm not sure how well it would work now, but it did work back in the 80s and 90s. For example, Phoenix used this approach to make a clone of IBM's ROM BIOS. From Wikipedia:

Due to the nature of low-level programming two well-written pieces of code that perform the same function there will inevitably be some degree of similarity. As such it would be impossible for Phoenix to defend itself on the grounds that no part of its BIOS matched IBM's. Phoenix developed a "clean room" technique that isolated the engineers who had been contaminated by reading the IBM source listings in the IBM Technical Reference Manuals. The contaminated engineers wrote specifications for the BIOS APIs and provided the specifications to "clean" engineers who had not been exposed to IBM BIOS source code. Those "clean" engineers developed code from scratch to mimic the BIOS APIs. This technique provided Phoenix with a defensibly non-infringing IBM PC-compatible ROM BIOS. Because the programmers who wrote the Phoenix code had never read IBM's reference manuals, nothing they wrote could have been copied from IBM's code, no matter how closely the two matched.

Phoenix did sell their BIOS commercially, so it seems to fit your question.

So, that one was helped by IBM's publishing the ROM listings in the programming manual, but it seems to be a defensible approach even if you have to disassemble the binary code, as happened in Sony Computer Entertainment, Inc. v. Connectix Corporation:

Connectix's successful appeal maintained that the direct disassembly and observation of proprietary code was necessary because there was no other way to determine its behavior. From the ruling:

Some works are closer to the core of intended copyright protection than others. Sony's BIOS lay at a distance from the core because it contains unprotected aspects that cannot be examined without copying. The court of appeal therefore accorded it a lower degree of protection than more traditional literary works.

Still, it's not a protection against being sued as you can see. Connectix has won the appeal, but they eventually sold the product to Sony (who immediately discontinued it) and the company closed down three years later.

2

Even though you may not be breaking copyright, you may still be breaking software patents. In fact I think you may even break a software patent without having looked at the other party's software...

  • 1
    To be fair, we are all probably breaking a software patent by just thinking and talking about it ;) – Mick Apr 4 '13 at 13:58
  • I might add that software isn't protected under patent in India, which is where the asker is located (I did some research for a different question he asked, and found this fact in addition to the facts I needed). However, on a global basis, things are bound to differ greatly. – JMcAfreak Apr 4 '13 at 14:16
  • 1
    @JMcAfreak: which will not indemnify you from getting sued to oblivion in the US. Happy holidays in the US in such case. Any lawyer will argue that selling the product outside of India in some way might break the local law of their own country. The Internet is a global marketplace, ergo suing them in your country is fine ... etc etc. Also, if this is only about India I'd consider it too localized a question. – 0xC0000022L Apr 4 '13 at 17:19
  • 1
    @0xC0000022L If its were only about India, then why would it be too localized ? Questions about law will many a time deal with regional laws and thus can best be answered only if it asks for a specific country. – asheeshr Apr 5 '13 at 3:30
  • 1
    Trying to show that you have not infringed the copyright of a creator can be essentially impossible with the state of existing US copyright law. See US Register of Copyrights Maria Pallante's congressional testimony last month for details. In part she wrote, "...if one needs an army of lawyers to understand the basic precepts of the law, then it is time for a new law." – Osteoboon Apr 19 '13 at 20:07
1

An interesting and obvious question pertains to either the 1/2 or full automation of the clean room design process -- as an application of Artificial Intelligence (particularly, the AI fields of program synthesis/analysis and natural language processing).

This is not just an idle or academic question: I am rushing headlong into the creation and deployment of such a framework.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.