Dear Mr Gates,
Posted 20 Oct 2001 at 12:09 UTC by lkcl 
we're looking at your technology in Windows NT and, as you probably
know, i am so impressed by it that i would like to interoperate with
it. i was wondering, therefore, if you could send me all IDL
files and other technical information sufficient to implement
programs such as exchange server and the MAPI API, SQL, NT domains
version 4 and 5, Active Directory.
everything, really.
i have asked this question before, and i did get a response back
of "no". however, that _was_ over a year ago, and i was wondering
if you'd changed your mind at all.
also, i do have to apologise in advance because, i have to make
this message publicly. the reason for that is that if you still
say no, then under European Law, Council Directive 91/250/EEC,
i would be allowed to do a considerable amount of work - far
more than is sensible - to perform "interoperability" analysis.
what would _you_ get out of this? well, ask the team at
secure@microsoft.com. whilst i was working on samba, from
1996 to 1999, you received numerous really rather important
and obscure security reports. one of these resulted in the
deployment of the Netlogon "Schannel" (don't know its real name)
in NT Service Pack 4. this was a critical first step to ensuring
that the entire SAM database would not be decoded by a hostile
party who had access to BDC - PDC SAM Sync, for example!
so you would get a full, comprehensive analysis and independent
testing of all your core-level products. and that's utterly
priceless. and price-tag-free, too.
now, _why_ should you give us access to technical specifications?
well, reasons i can think of off the top of my head are:
- it would generate an incredibly large amount of good-will
- some of this technology is old enough (DCE/RPC) such that
it's been in use in Microsoft for so long that the people
who implemented it originally are retiring, and the "new crowd"
don't understand it, don't get it, and are implementing ".net"
instead.
therefore, it really shouldn't matter: it's nearing the
end of its life-cycle. SOAP is All The Rage. dot net is
All The Rage. passport dot com is All The Rage.
- you've _had_ ten years head-start on this, surely that's
more than enough to ensure market leadership, can we join in,
now? pleeease?
- releasing some of this info may help reduce market share to
below a level where the U.S. Dept of Justice will not bother you
again.
anyway, i hope to hear from you soon, but if i don't,
that's okay too.
many thanks,
luke
90/EC/250, posted 20 Oct 2001 at 15:41 UTC by lkcl »
(Master)
well, i'm hoping to get a reply, but if not, it doesn't matter, because
of these
"Whereas" clauses, which are like "exceptions" to the Directives at the
end of the document [use google, search for the above-subject]:
Whereas the Community is fully committed to the promotion of
international standardization;
cool! international standards are protected.
Whereas the function of a computer program is to
communicate and work together with other components of a computer system
and with users and, for this purpose, a
logical and, where appropriate, physical interconnection
and interaction is required to permit all elements of software and
hardware to work with other software and
hardware and with users in all the ways in which they are
intended to function;
okay. soo... let's take Exchange as an example. you purchase Exchange,
and find that it doesn't work unless you also purchase Windows 2000
Server _plus_ licenses which costs you five times more than Exchange
does.
because Exchange interacts with Windows 2000 over a network, you have
the right to work out the communications, and the the right to
reverse-engineer all parts of it that are necessary to get your legally
purchased copy of Exchange to work.
_in all the ways in which the software is intended to function_.
that's so cool!
Whereas the parts of the program which provide for such
interconnection and interaction between elements of software and
hardware are generally known as
'interfaces`;
okay, so unlike above, which is network-user-hardware-software
components, this is hardware-software, hardware-hardware,
software-software.
so, a biometrics reader, smart-card, Crypto Card, Television Card or any
other peripheral, you're allowed by law to go after the API to be able
to use the hardware in another Operating System.
cool!
Whereas this functional interconnection and interaction
is generally known as 'interoperability`; whereas such interoperability
can be defined as the ability to
exchange information and mutually to use the information
which has been exchanged;
so not only is it legal to perform interoperability reverse-engineering
but it is also specifically allowed for users to _use_ the software
reverse-engineered, which is really quite important.
*grin*
Whereas, for the avoidance of doubt, it has to be made
clear that only the expression of a computer program is protected and
that ideas and principles which underlie
any element of a program, including those which underlie
its interfaces, are not protected by copyright under this Directive;
urr.... okay... sooo.... i think that means that the *actual code* -
the binary program, the DLLs, etc. are protected by Copyright law, but
if you examine the program, produce a document explaining how it works,
then that is ALLOWED.
coool.
in other words, the people who wrote the program may have some really
super-duper "fast" algorithm implemented, or they may have access to
better Compiler technology than you do: you are NOT allowed to cut/paste
parts of the binary executable into YOUR program, that is violating
copyright and You WIll Get Seriously Beaten Up In Court.
Whereas, in accordance with this principle of copyright,
to the extent that logic, algorithms and programming languages comprise
ideas and principles, those ideas and
principles are not protected under this Directive;
logic. algorithms. programming languages. all these things you are
allowed... errrr.... my brain hurts. i can't interpret this one.
Whereas, in accordance with the legislation and
jurisprudence of the Member States and the international copyright
conventions, the expression of those ideas and
principles is to be protected by copyright;
error. brain does not compute. [out of cheese error. redo from
start.]. i think this is the same as the "Whereas" two above from here,
except as applied to logic, programming languages and algorithms, rather
than somebody's program.
i.e. you can't cut/paste parts of someone's compiler, but you can do an
analysis _of_ the compiler to find out what makes it tick, and publish
that.
anyway. i wonder how the EEC are getting on, given that this
analysis of the DMCA declares it to be "unconstitutional".
i always hated that stupid law, and i'm glad to see that some professors
have analysed it and found it to be illegal.
i mean, there's a clear and immediate conflict between these "Whereas"
clauses and the DMCA provisions, which do things like make it illegal to
even have the _tools_ to analyse programs, such as a debugger like gdb,
just in case someone
_might_ use them to work out some pathetic little anti-competitive
hardware device?
pffh.
marketing, posted 20 Oct 2001 at 22:43 UTC by Malx »
(Journeyer)
There is one thing I dislike in MS:
On their marketing seminars they talking about "Win vs Unix
integration" and use Samba package as argument. :-(
Still they do nothing for this to happen.
it was quite funny to hear stories about how, when people upgraded their
version of windows, they get on the phone to _microsoft_ support who
tell them they can't help because their third party software (samba)
doesn't work any more.
if samba does its job properly, it saves _microsoft_ money in not having
to take those calls.
i wonder how they're going to get on with Windows XP now that they've
enabled "SChannel = Required"? this terminates any possibility of samba
being a DC for Windows XP until full details of the NETLOGON "Schannel"
are available.
the samba archives are currently full of reports of Windows XP not
working: it's the "EnablePlainTextPasswords" registry modification Saga
all over again...
... and with good reason, because NETLOGON _without_ the Schannel is
badly insecure.
Whereas, in accordance with this principle of copyright, to
the
extent that logic, algorithms and programming languages comprise ideas
and principles, those ideas and principles are not protected under this
Directive;
logic. algorithms. programming languages. all these things you are
allowed... errrr.... my brain hurts. i can't interpret this one.
Whereas, in accordance with the legislation and
jurisprudence of
the Member States and the international copyright conventions, the
expression of those ideas and principles is to be protected by
copyright;
error. brain does not compute. [out of cheese error. redo from start.].
i think this is the same as the "Whereas" two above from here, except as
applied to logic, programming languages and algorithms, rather than
somebody's program.
Well, what I interpret that they are saying is the basics of copyright
law,
the ideas (algorithms, interfaces, protocols)
are not protected but their expression (source and binary code) is.
Computer programs are a bit different som other forms of copyrighted
materials, but the basic protection of form, not ideas is still there.
According to a thesis written by a law student around here article 5.3
in that directive (right to observation) also includes to use tools,
like debuggers, memory dumps and so on. But this isn't totally clear.
The right to decompile a program is much more limited (article 6), but
it
is allowed under some circumstances. But only if you can't obtain the
interface specifications some other way (like the vendor providing
them).
Remember that you have to have legal copies of the software you want
to reverse-engineer, and that the purpose is interoperability.
thanks, posted 21 Oct 2001 at 18:35 UTC by lkcl »
(Master)
thanks for that explanation, maswan: my head was beginning to hurt, late
at night, from having to negate those whereas clauses :)
A nice fellow wrote me tonight to tell me about ReactOS, which aims to be a high-quality
compatible replacement for Windows NT. It uses the GNU GPL.
Whereas Linux (before the development of emulators for other Unixen) is source code compatible with Unix, and Linux drivers are their
own world, pretty much independent of Unix drivers, ReactOS aims to be binary-compatible for both drivers and applications - at least for
x86 and Alpha boxes; interestingly it opens up the possibility of the NT API being brought to other processors that Microsoft has never
supported.
There doesn't seem to be an Advogato project for it, and I'd never heard of it before tonight. I just joined a couple of their mailing lists, I'll
see if any of them are on Advogato.
According to microsoft's own public documentation they compile the IDL
into the end of the relevant DLL's in order to avoid huge parsers
written in C. So I suspect all you have to do is figure out how to find
and dump the tables.