Security
Authorization (Access Control)
Notes:
The infrastructure implements a security schema that is sufficient for most network management applications. The use of Java is handy because it has provided a security package that is sufficient to implement four security facilities: authentication, data integrity, data privacy and authorization. We do not support data privacy at this moment. We use the current implementation of the Java security API. This can be extended easily to implement more stringent rules.
The Java Security API provides a complete suit to implement either low level or high level security functionality into Java applications [6]. JDK 1.1. also comes standard with a default provider, named “SUN”. The “SUN” provider package includes an implementation of the Digital Signature Algorithm, and an implementation of the MD5 [RFC 1321] and SHA-1 [NIST FIPS 180-1] message digest algorithm. The authentication uses DSA, which provides a pair of keys, a public key and a private key. The data integrity use of MD5 and SHA-1 ensures the itegrity of mobile agent during its transmission.
The mobile agent is not allowed to access local resources directly. Instead, it must do it indirectly through the VMC that interfaces to the actual resources. The VMC implements access control to the resources to guard sensitive data. A mobile agent is not allowed to access the local file system, launch programs, call system level services of the visited network component, or invoke SecurityManager or ClassLoader classes. With these restrictions, the network component is reasonably safe from attacks of any malicious mobile code (we refer to such code as a piglet).