iCommerce.com Corporation
eCommerce


Search our
entire site

Enter your search
terms below, or visit
our
search page



Search case
studies only

Enter your search
terms below:




For the table
of contents and
hyperlinks to
general topics
proceed to
toc



























A primer on computer security

Computer security systems falls into two basic categories:

1 - Protection against intrusion and attack
2 - Protection and authentication of data

The first is the stuff that logins, passwords and file attributes were invented for. With time crackers have become more sophisticated as have the options available for attacking a system.

This kind of problem is directed at breaking in and either stealing your data or simply destroying it, and it is the most common security problem.

Most problems in this area are organizational. Any break in is detectable if the appropriate procedures are in place. No serious corporation or governmental organization has any problems in this area (well-advertised break-ins in databses of government agencies testimony to the incompetence of those agencies).

The low end of this area is represented by operating system security, and the high end by firewalls.

Java has its own well defined mechanisms for dealing with this kind of security issue. If you're a hardcore Microsoft fan who is using ActiveX, on the other hand, you're on your own (a start-up named Finjian is addressing the problem).

The second category is the interesting stuff. It is not about breaking in, but about discretely tapping your communications (or eavesdropping). As a matter of fact it's undetectable when carried out by a professional since you can just place a magneto-sensitive device next to a communications line and pick up all its traffic!

Even though this constitutes a very small percentage of the security problem, it is done only by professionals who are really after stealing industrial and commercial secrets.

The most interesting form, and probaly the most profitable, is to listen to the transactions of a bank and alter them. We will never know how many banks ran into this problem because they have no interest in advertising that they were victims of it.

Encryption should ensure that it's unfeasible in useful time to access whatever is being eavesdroped in. No encryption scheme is unbreakable, but it becomes pretty safe if it takes several million years using all the currently available computing power in the world for somebody to break it.

Digital authentication takes matters a step further. It uniquely identifies data. This helps when the cracker is not be able to make any sense of the information, but decides to be simply destructive and alter, say, a bit here and a bit there. Authentication is used to detect this. Furthermore, since only you could have generated that signature for that data, it also provides a guarantee of the origin as well as validation the content.

This is a real need, that is not addressed by any operating system or programming language. A security system that provides digital authentication ensures the protection of your privacy in everyday situations. It can, for example, be used to encrypt your telephone conversation over a digital system, or your video conference, so that even if someone is listening in on it they can't understand anything. It provides the guarantee that whatever is going back and forth is the original and that the person who claims to have sent it is the person who actually did send it.

You can forge a written signature and/or the content of the signed document quite easily, but you can't forge either one in a digital document that is signed. Furthermore, encryption makes sure that its not readable by anyone that it's not intended for.

Innovative security applications

Innovative security applications to address some of these concerns include:

  • A product that would work as a file system filter, so that all data would be transparently encrypted and decrypted at execution time. Even if someone broke in a system and stole everything it would be completly useless to him. One would not be able to decrypt binaries and execute them, so it would also be impossible to run any malicious code.
  • Digitally sign all software. The publisher makes his signature public, and the user can check if the signature matches the published one before installing it. If it doesn't, then it has been tampered with and is probably virus-infected, and the user should not install it.
  • Digitally sign your file system. Any unauthorized changes to your files would be detected and would indicate a malicious intrusion.

Security systems should be written in Java

Current systems are written in Asssembler, C/C++. A secure transaction of any kind between two parties requires both parties to have the same software. That is not a problem within a corporate network where you can buy a corporate license and make everybody install it. On the internet, and in multinationals whose subsidiaries are reasonably autonomous, you have no way of imposing a specific product across the board.

If the security system is written in Java, then whatever is needed is uploaded at run time and everybody is guaranteed to be running the same software and have the same encryption and authentication technology available.

How strong is a 40 bit secret key?

Netscape Communications peg the computation effort to exhaustively search a 40 bit key at approximately 64 MIPS-years (MIPS = millions of instructions per second). This means that it would take a 1 MIPS computer 64 years to find a 40 bit key value. A 64 MIPS computer would take one year to do the same task. Two such computers would need 6 months of computation. And so on.

Digital Equipment Corporation announced in July 1996 a version of its 64-bit Alpha 21164 RISC chip that is capable of 2000 MIPS. Hook together, say, four CPUs of this power, and you have a machine that can exhaustively search a 40-bit key space in (64 * 365) / (2000 * 4) = 2.92 days. On average, a key search will reach its goal in half the maximum search time, i.e. 1.46 days. This is a crude example. The inescapable conclusion is that large corporations, governments, and intelligence agencies already have the ability to break 40-bit keys in real-time. The encryption is transparent - like using glass windows against a peeping tom.

Similar deficiencies can be seen in the 56-bit DES algorithm. DES is roughly twenty years old. At the time it was designed and published it was regarded as being sufficiently strong, given the computing power that was available in the 1970s. Since then the algorithm has remained unchanged, and our technology has made quantum leaps several times over. You can draw your own conclusions...

In a recent article "Mimimal Key Lengths for Symmetric Ciphers to Provide Adequate Commercial Security", several of the world's leading cryptographers "strongly recommend a minimum key-length of 90 bits for symmetric cryptosystems (unquote)". [Ref: here ]. 90-bit keys would appear to be acceptably strong in 1997. 128-bit keys are therefore what the world should be using.

Are there any successful attacks on 40 and 56 bit keys?

Yes. Several times. One of the first public attacks on a 40-bit key was carried out in August 1995, as part of Hal's Challenge. The challenge was ultimately solved independently by two parties. The first party to find the key was David Byers and Eric Young, using approx 50 PCs, 15 workstations and a MasPar MP-1 for the search. The second person to find the key was Damien Doliegez (France), who used approx 20 workstations and two supercomputers for 8 days to conduct the search.

A group known as the Cypherpunks have banded together to co-operatively conduct exhaustive key searches in record times using run-of-the-mill computing resources. Their fastest time for a 40-bit key search currently stands at 31 hours 47 minutes, which was the time taken to break Hal's Second Challenge, also in Aug 1995.

In January and February of 1997, two more cryptography challenges were broken. The first was a 40-bit cipher key that was broken in a mere 3.5 hours by Mr. Ian Goldberg at the University of California, Berkeley, using a network of approx 250 PCs and workstations. The second was a 48-bit cipher key that was broken in approx 13 days by a collaborative group of approx 5000 computers operating across the Internet.

56-bit DES has also been "broken", in two separate DES challenges. The Deschall group, headed by Mr. Rocke Verser, announced the winning key to the RSA's first DES challenge in June 1997. Deschall was, once again, an Internet-based collaborative effort. The group used the spare CPU cycles from "tens of thousands" of standard computers, over a period of roughly four months, to perform the key search.

The second DES challenge was completed in February 1998, by a collaborative group known as distributed.net in 39 days - one third of the time taken to solve the first DES challenge.

These and other challenges were published by RSA Inc. on Jan 28th, 1997 as part of a research exercise into the security of export grade ciphers.

Can Americans have true security?

There are several issues.

Most commercially available products are made in the US and any product made in the US is crippled for export from the US. It is the law. In other words, even Bank of America is limited to using the crippled version for anything that goes outside the US. Even if their systems in the US have strong encryption, they will fall back to weak encryption when dealing with systems where weak encryption is the best. Law of least common denominator.

Current products only support one algorithm, at whatever level the implementer has decided, period. The user has no saying in deciding his own security. This compounds the crippling of encryption with the fact that you know what algorithm is being used, by knowing what product is being used. Hackers will soon start writing and selling packages to crack export-grade encryption. Knowing the algorithm I'm dealing with, it's a piece of cake.

What we need is security systems which allow full control of security by the user. In other words, the user must be left free to implement security at the communications level and at the application level as he wishes. Furthermore, the user must be offered a choice from a wide array of ciphers, and be able to even mix them if he pleases, and to swap them on-the-fly.

Everything we discussed that applies to encryption also applies to digital signing/authentication.

Can anybody have true security?

We'll teach you how to build a poor man's cracker of SSL.

Make a neat little program and distribute it for free. In this program you embed the cracking engine, which is launched as an idependent thread of execution, making it basically invisible. The cracking engine then goes in a loop which requests a piece of the key space to search from a controling server on the internet. It receives it, and goes about its job. When it's finished it reports its results and if it was not successful gets another piece of the search space.

A machine somewhere eventually cracks the encryption and reports its success to the server. There it is cracked. Once you've cracked an SSL key you can use it to decrypt all traffic to that SSL server. The controlling server is then ready to crack the next key/server. Simple, cheap and makes huge amounts of power available for cracking. We would never dream of distributing a program like that... but the point is if we can do it, anybody can do it...


TABLE OF CONTENTS


Security
Home
Certificates
Checkpoint
Cybercop
Digital Certs.
ICVerify
ISS
IPSEC
Kerberos
Network Security
PKI
SafeSuite
Securify
Security CCI
Security Primer
Slideshows
Tivoli
Validating Users
VPI and CA
Creating VPI
VeriSign