A R G A N T E
concept
status
documentation
download
contribute
legal notice
Concept...  
 

Like the story of Genesis, there are two versions of the Reason for Argante.

The first is one people with any feel for computer security will understand. Every month, hundreds of programs are discovered with bugs in them which allow hackers to do what they will with your computer. But each bug is almost exactly the same - a buffer overflow, a format string, a signed offset into an array, a XSS bug...

Why are completely unrelated programs written by completely different programmers all making the same mistakes?

The reason is that the environments they work in encourage bad coding, making secure code hard to write, difficult to check, and unportable.

This is what Argante sets out to break. It constructs a virtual environment under Unix and Windows platforms, which contains enforced restrictions on memory access, system interactions, read-only code, and has error handling provisions on the assembly level.

This makes many people think about Java, but the two concepts are mirror images: Java implements security using a restrictive, object-oriented language. Java's sandbox has been bypassed by people who bypassed the Java language, and the speed impediments of a garbage-collected language with too many levels of abstraction to count are significant.

The Argante model is: you can code how you like, in any language you like. But your code can never do something you didn't predict, thanks to ACL-controlled system interactions, memory bounds checks, and read-only code. In addition, the functions you can use are harder to use insecurely than not.

Our motto is "compromise is not the answer" - we haven't traded security for speed, or achieved simplicity of our code by adding complexity to yours. (Nor can we sacrifice future developments by preferring backward compatibility - this is the reason A1 had to be discontinued.)

SourceForge Logo