[comp.software-eng] Should software ideas be protected?

hes@ccvr1.ncsu.edu (Henry E. Schaffer) (04/08/90)

In article <14867@s.ms.uky.edu> sean@ms.uky.edu (Sean Casey) writes:
>dennis@goofy.UUCP (Dennis Godfrey) writes:
>
>[saying this is a Bad Thing]
>
>|2.	Any type of reverse engineering of someone else's object code
>|	will only be permitted if you get a specific written license
>|	from the someone else.  Reverse engineering in this context
>|	means such things as using a disassembler to try and figure out
>|	what their object code does, taking memory dumps, single
>|	stepping through code, monitoring comms. lines and so on.
>
>Why is this a Bad Thing? Wouldn't this be the same thing as publishing
                                               ^^^^^^^^^^^^^^^^^^^^^^^^
  It seems to be prohibiting reverse engineering per se (e.g., even
without publishing.)  

>derivative works, which is already a no-no? Or does this imply that one
>can't even disassemble for personal use?

  A simple reading of "Any type of reverse engineering ..." would
indicate that intent, such as personal use, is irrelevant.

  This whole thing bothers me very much.  It is giving software ownership
priveleges which other owners of intellectual property do not have.
If I buy a patented machine, I am certainly allowed to take it apart,
to observe how it works, and to learn from it.  If I buy a copyrighted
book, or map, or design, I am certainly allowed to look at it, to
study it and observe how it "works", and to learn from it.  In these
cases I am allowed to alter the item I bought to make it more suitable
for my own use.

  However, what if I buy some copyrighted software?  Am I allowed
to study its innards and learn from it?  Well, doing this would be
called "reverse engineering", and all of a sudden this has become
a pejorative term.  Copyright does *not* make it illegal to learn
an idea from the copyrighted item and then to reuse the idea - it
is the expression of the idea which is protected.

  So it seems to me that some software owners want legal protection
far beyond what the copyright provides and are entering into the
political arena to get legal protection against even looking at
the innards - and calling it "reverse engineering" because that
sounds ominous.  (Next thing, you'll hear of bans of ownership
of semi-automatic disassemblers!  :-)

--henry schaffer
>-- 
>***  Sean Casey          sean@ms.uky.edu, sean@ukma.bitnet, ukma!sean

warren@eecs.cs.pdx.edu (Warren Harrison) (04/08/90)

In article <1990Apr8.003410.9841@ncsuvx.ncsu.edu> hes@ccvr1.ncsu.edu (Henry E. Schaffer) writes:
>In article <14867@s.ms.uky.edu> sean@ms.uky.edu (Sean Casey) writes:
>
>  This whole thing bothers me very much.  It is giving software ownership
>priveleges which other owners of intellectual property do not have.
>If I buy a patented machine, I am certainly allowed to take it apart,
>to observe how it works, and to learn from it.
But you can't go any further than that, ie, make your own version
of the item, that's what patents are all about. I imagine this is
the protection the software companies desire - being able to keep
a user from copying the algorithm and using it in their own product.
Except for uses that clearly violate the spirit of the transaction
(eg, changing a size limit to a demo version of the software), I 
imagine most companies could care less about a customer using one
of their algorithms for purely personal use. However, say the customer
does use the algorithm (for purely personal use) but that they give
the resulting program source to a friend who sees the algorithm and
(without knowing the source of the algorithm) distributes it to others.
Now the company has problems. It is this chink in the current copyright
laws that are forcing companies to go the patent route. With a patent,
it is more than simply the expression that is protected, but the
actual algorithm itself (consider Quarterdeck's patent on running
text applications in windows).

The advantage of the copyright expansion is that now small developers
can afford the protection the big guys are getting anyway through
patents. This means that if *you* come up with a novel way to do
something (let's say predict exactly how long it will take to write a
system given the average weight of the programmers who will be working
on it:-), you just have to paste a copyright joe blow, 1990 on it and
your formula/algorithm is protected. The way the situation is now, it
would be (at least given the opinions expressed on the net) quite easy
to reverse engineer the code, find out the algorithm (which probably took
you years of experimentation to develop) and have a competing product
out in 6 months that sells for half what your product sells for.

A large company would file for a patent right away, and financially
break the fingers of anyone who tried to copy the formula. You'd be
reluctant to part with the $5-10K needed to do a patent search, file
for a patent (properly), etc. since you're not in the business to
start with and aren't sure how the program will sell, so you'd
probably settle for free copyright protection and hope no one steals
your idea until you can get the capital together to protect it better.

Another problem with patents is that even if you came up with the
formula independently, the big company could "break your fingers",
with a copyright they'd have to prove you got it from reverse engineering
the code.

Me, I'm for anything that A) makes small guys competitive with the
big companies and B) reduces the incentive for companies to patent
things since then it nails you if you come up with the algorithms,
etc, independently.
>
>--henry schaffer
==========================================================================
Warren Harrison                                          warren@cs.pdx.edu
Department of Computer Science                                503/725-3108
Portland State University   

jbeard@quintus.UUCP (Jeff Beard) (04/09/90)

> However, what if I buy some copyrighted software?  Am I allowed
> to study its innards and learn from it?  Well, doing this would be
> called "reverse engineering",

engineering typically takes parts,components and creates product(s).

a literal reading of "reverse engineering" then would be to
disassemble product(s) into the constituent parts,components.

As most parts and components are 'off-the-shelf', this is almost valueless
in and of it self.

We should be aware that IDEAS per se can not be trademarked nor copyrighted.
These protections are placed upon the product, and/or the means to produce
products.

Thus software "reverse engineering" that IS being restricted is the
repackaging of parts and components obtained from disassembling someone
elses product and not only presenting it as your own (ie: plagiarism ),
but also profiting from their original work.

A copyrighted publication may be copied, say at your local library, 
FOR YOUR PERSONAL USE, but not for redistribution.  

An expensive automobile may be stripped to its base parts and components,
but not remanufactured AND distributed.

A software product, assuming valid access such as purchasing the first copy,
may be ""reverse engineered" for YOUR OWN enjoyment BUT NOT redistributed.


-- 
======
Opinions are the possession of the speaker and to assert otherwise is plagiarism.
Jeff Beard, Quintus Computer Systems, Inc.
e-mail ...!amdahl!sun!quintus!jbeard 		phone  (415) 965-7700

cox@stpstn.UUCP (Brad Cox) (04/09/90)

In article <1990Apr8.003410.9841@ncsuvx.ncsu.edu> hes@ccvr1.ncsu.edu (Henry E. Schaffer) writes:
>  This whole thing bothers me very much.  It is giving software ownership
>priveleges which other owners of intellectual property do not have.
>If I buy a patented machine, I am certainly allowed to take it apart,
>to observe how it works, and to learn from it.  If I buy a copyrighted
>book, or map, or design, I am certainly allowed to look at it, to
>study it and observe how it "works", and to learn from it.  In these
>cases I am allowed to alter the item I bought to make it more suitable
>for my own use.

Software Engineers says software is a thing, like other entities of the
external domain of tangible experience (bridges, plumbing systems, space
shuttles, etc). Computer Scientists say software is information, like other
entities of the internal domain of intangible thought (mathematics, logic,
etc). 

But software is neither land nor sea, but *swamp*, a hybrid of land and sea
that is simultaneously too thick to drink and too thin to plow.

To me, what is behind the rush to object-oriented programming languages,
direct manipulation user interfaces, etc, is a wide-based awareness that
programming (in the large) is an organizational phenomenon more than
an individual phenomenon. It is a 'drain the swamp' movement; do whatever
we can to make software more tangible and more concrete, rather than
more intangible and abstract.

Competing 'flood the swamp' movements are also prominent in computer
science circles, notably in the rash of ACM articles and rebuttals this fall.

Although I am generally associated with the drain the swamp movement, what
I really believe is that we need to get army (software engineering) and
navy (computer science) together and weld the best that the two sides
have to offer into a hybrid solution to a hybrid problem; something 
like the marines.

ned@pebbles.cad.mcc.com (Ned Nowotny) (04/10/90)

In article <2634@psueea.UUCP> warren@eecs.UUCP (Warren Harrison) writes:
=>In article <1990Apr8.003410.9841@ncsuvx.ncsu.edu> hes@ccvr1.ncsu.edu (Henry E. Schaffer) writes:
=>>In article <14867@s.ms.uky.edu> sean@ms.uky.edu (Sean Casey) writes:
=>>
=>>  This whole thing bothers me very much.  It is giving software ownership
=>>priveleges which other owners of intellectual property do not have.
=>>If I buy a patented machine, I am certainly allowed to take it apart,
=>>to observe how it works, and to learn from it.
=>But you can't go any further than that, ie, make your own version
=>of the item, that's what patents are all about. I imagine this is
=>the protection the software companies desire - being able to keep
=>a user from copying the algorithm and using it in their own product.
=>

Copyright no more covers algorithms in software publishing than it does
plots in book publishing.  Copyright only pertains to the expression of
an idea, not the idea itself.

=>Me, I'm for anything that A) makes small guys competitive with the
=>big companies and B) reduces the incentive for companies to patent
=>things since then it nails you if you come up with the algorithms,
=>etc, independently.

Despite the common perception, copyright and patent law generally benefits
most the person or organization with the best lawyers and the deepest
pockets for litigation.  Big corporations are not lobbying Congress for
expanded copyright and patent protection because of an altruistic desire to
help the "little guy."  Instead, they see it as an effective weapon for
stifling competition with the full blessing of the government.

Ned Nowotny, MCC CAD Program, Box 200195, Austin, TX  78720  Ph: (512) 338-3715
ARPA: ned@mcc.com                   UUCP: ...!cs.utexas.edu!milano!cadillac!ned
-------------------------------------------------------------------------------
"We have ways to make you scream." - Intel advertisement in the June 1989 DDJ.

bruce_weide@elephant.cis.ohio-state.edu (04/10/90)

A couple quick thoughts on legal protection for software...  It seems
it would be helpful if we could talk about the legal or ethical
question of whether reverse engineering (or whatever you want to call
it) is PERMISSIBLE, separately from the technical question of whether
it is POSSIBLE.  I have missed some of this discussion, so if this is
a repeat of someone else's comments I apologize.

There is such a thing as a trade secret, which I gather is weaker than
a patent but still legal protection.  (I'm not a lawyer so I don't
really know much about this.)  Anyway, I would hope that--for reasons
made clear by Warren Harrison in a recent article to this
comp.software-eng--software developers/publishers would have SOME
legal protection against people dismantling their object code in order
in order to ascertain trade secrets.  Of course one can at present (I
didn't say "may" because that's a different issue, one that seems to
be in question) disassemble object code and determine its constituent
parts.  But one can also determine how those parts are put together,
which is often a trade secret, and therein lies the problem.  IMHO, if
one is reverse engineeering object code for the purpose of exposing a
trade secret in this way one should, at the very least, be prohibited
from profiting from it or disclosing it to others.

Would it help to think that object code might be more like a chemical
compound than a bridge or a car engine?  What I mean is that it might
be interesting if object code could NOT be disassembled so easily; if
one really had to WORK at it to steal someone else's trade secrets...
Sort of like figuring out how to make a chemical compound with given
properties: you don't just throw together the elements in the proper
proportions, even if the chemical formula of the desired compound is
known.  How could we get to this state?  Well, if some hardware
manufacturer put some sort of encryption mechanism on-board the
processor chip and object code for that machine were always kept in
encrypted form when externally stored and visible to a human, the
question of whether reverse engineering is POSSIBLE (or at least
economical) might have a different answer.  I don't know, maybe
someone has already done this...

How would this affect people's views of the legal or ethical question
of whether it ought to be PERMISSIBLE?  Especially if it were provably
uneconomical to try to "break into" the trade secret vault, I'd be
inclined to think of those who did it as (perjorative term here)
hackers who are not much better than people who create virus programs.

I would conclude, therefore, that even though it is presently FEASIBLE
to reverse engineer someone else's software for purposes of stealing
their trade secrets, it is not ETHICAL.  Part of the reason is that
the feasibility is not something inherent in nature of object code; it
is merely a characteristic of our current way of executing programs,
and likely to be a transient one at that if people continue to use
reverse engineering for this purpose.  (And what other purpose is
there?)

Expecting some flames,

	-Bruce

------

Prof. Bruce W. Weide
Dept. of Computer and Information Science
The Ohio State University
2036 Neil Ave. Mall
Columbus, Ohio  43210-1277
USA

Phone:   614-292-1517
E-mail:  weide@cis.ohio-state.edu

gbeary@uswat.uswest.com ( Greg Beary ) (04/11/90)

There was a good article on the legality of reverse engineering 
software in the December (I think) issue of IEEE Software. I 
may be foggy in my recollections, but here goes. The author 
was a professor at CMU and specialized in the area of Intellectual
Property Rights. She seemed to indicate that reverse engineering 
by dis-assembly etc, is perfectly legal. You are attempting to 
gather the specifications for a product by inspecting it. 
She also (I beleive it was a she) mentioned that if software	
was delivered in source form, the way a book is, the issues may
be different. I came away with the impression that as long as 
you did not plagerize, ie. copy the executable exactly, anything
that you were doing was legal. 

It's been a while since I read the article, and I couldn't find
it to quote it exactly. It made for very interesting reading 
and really clarified what the issues were. By the way, this 
pertained to software practices IN AMERICA. I beleive the 
original poster mentioned the EEC. There I'm sure you'll find
very different rules, issues, and practices based upon local
established customs and tradition. 

--
Greg Beary                                                     

sampson@cod.NOSC.MIL (Charles H. Sampson) (04/13/90)

In article <7510@cadillac.CAD.MCC.COM> ned%cad@MCC.COM (Ned Nowotny) writes:

>Copyright no more covers algorithms in software publishing than it does
>plots in book publishing.  Copyright only pertains to the expression of
>an idea, not the idea itself.

True, but many (most?) algorithms are expressions, not ideas, or at least could
be looked at that way.  For example, sorting is an idea, while quicksort and
heapsort are two ways of expressing that idea in a computer program.

Charlie

brnstnd@stealth.acf.nyu.edu (04/15/90)

In article <1870@cod.NOSC.MIL> sampson@cod.nosc.mil.UUCP (Charles H. Sampson) writes:
> For example, sorting is an idea, while quicksort and
> heapsort are two ways of expressing that idea in a computer program.

Ummm, no. Quicksort is a method of sorting; but it's neither tangible,
nor an expression of the idea of sorting, nor of a particular fixed form,
nor patentable, nor copyrightable. Thank God.

---Dan