CHAOS (operating system)
This article contains content that is written like an advertisement. (January 2009)
This article may be too technical for most readers to understand.(January 2020)
|Developer||Midnight Code / Ian Latter|
|Source model||Open source|
|Latest release||1.6 / April 2005|
|Kernel type||Monolithic kernel|
|Default user interface||text (bash)|
The operating system described here is not related to the Clairemont High School Advanced Operating System (also called CHAOS) which ran on a MITS Altair 8800 modified using a custom bank-switched memory controller to allow time sharing.
CHAOS creates a basic node in an OpenMosix cluster and is typically not deployed on its own; cluster builders will use feature-rich Linux distributions (such as Quantian or ClusterKnoppix) as a "head node" in a cluster to provide their application software, while the CHAOS distribution runs on "drone nodes" to provide "dumb power" to the cluster.
While this deployment model suits the typical cluster builder, OpenMosix is a peer-based cluster, consisting of only one type of node. All OpenMosix nodes are inherently equal and each can be, simultaneously, parent and child.
As each new node is booted it will locate one cluster node, then negotiate its entry into the cluster. If the IP address of a node is not supplied to the booting node, it will multicast for one. The first responding node will be used as the point of negotiation. The local CHAOS node initiates an IPsec tunnel to the elected negotiation node using a pre-shared key. If the tunnel fails to establish, the new node is unable to join the cluster. With the tunnel established the new node requests a copy of the OpenMosix cluster map from the negotiating cluster node. The new node then repeats this process with every node in the cluster map; establishing an IPsec tunnel, validating the cluster map, then moving on. In this way, every node is interconnected with every other node by "n-1" IPsec tunnel connections. All OpenMosix cluster communications are then said to be authenticated and encrypted via the CHAOS platform.
Once an OpenMosix cluster is established on the CHAOS platform, OpenMosix can operate as if it were on any Linux platform. Any node can launch a process and have that process migrate to the node with the best performance characteristics for executing that particular process. The OpenMosix environment has the "mosmon" utility to display the performance of the entire cluster, from any node. The image series on the right shows a six node OpenMosix cluster running on the CHAOS platform.
CHAOS was developed to utilise idle desktop computer resources to perform pro-active brute-force cryptanalysis against given password hashes. A brute-force attack, as its name suggests, requires an adversary to employ a large amount of effort into the resolution of a cryptographic problem. Typically, this is an exhaustive search of a particular key space. For example, resolving the password for three upper-case alpha characters would require exploring the key-space for: AAA, AAB, AAC ... ZZX, ZZY, ZZZ.
In order to reduce the time required to search the key-space, portions of the work effort can be farmed out idle resources. As opposed to rainbow tables, this technique allows for brute-force attacks to be performed against irregular or salted algorithms.
The tool used to provide the cryptographic tests was John the Ripper (JtR). JtR was scaled by using named pipes to funnel a controlled dictionary (a set of keys to try) into an arbitrary number of JtR clients. Each client would take one key, encrypt it, and test it against a local copy of the hash. John the Ripper on CHAOS differed from Cisillia as it facilitated dictionary based brute-force attacks across a large number of algorithms, rather than an entire key-space driven brute-force attack across one or two algorithms.
CHAOS was the first OpenMosix distribution to provide IPsec and IP packet filtering to the cluster node, enabling authentication and encryption for inter-node communications, and enabling packet filtering to prevent non-cluster devices from accessing the vulnerable OpenMosix communications ports. These security controls allowed the cluster builder to utilise desktop computers in semi-trusted networks with minimal risk to cluster integrity, increasing the number of resources available for inclusion within the cluster.
- "Midnight Code: Project libMidnightCode (Once Written, Twice Linked)". Retrieved June 30, 2007.
- "openMosix: Instant openMosix". Archived from the original on July 18, 2006. Retrieved July 21, 2006.
- Levinsky, Jeff L. "CHAOS: An Interactive Timeshared Operating System for the 8080", Dr. Dobb's Journal, vol. XXXI, January 1979, pp. 6-13.
- "ISS vulnerability: mosix-malformed-packet-dos (8927)". Archived from the original on August 28, 2007. Retrieved July 21, 2006.