Editing
Vcd:Introduction
(section)
From Linix VServer
Jump to navigation
Jump to search
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
=== The XMLRPC Server === The XMLRPC Server is the core of the VServer Control Daemon and implements the XMLRPC standard for Remote Procedure Calls (RPC). XMLRPC is a specification and a set of implementations that allow software running on disparate operating systems, running in different environments to make procedure calls over the Wide Area Network (Internet) or Local Area Network (Intranet). ==== The XMLRPC Protocol ==== XMLRPC is a wire protocol that describes an XML serialization format that clients and servers use to pass remote procedure calls to each other. There are two features that make this protocol worth knowing. The first is that the details of parsing the XML are hidden from the user. The second is that clients and servers don't need to be written in the same language. XMLRPC is designed to be as simple as possible, while allowing complex data structures to be transmitted, processed and returned. Here are some examples of remote procedure call (RPC) style communications: * There is a server that can measure atmospheric temperature. A client anywhere in the world can ask the server at any time what the temperature is. The "what temperature is it?" request and the "the temperature is..." response constitute an RPC transaction. * There is a server that can turn a light on or off. A client can tell the server to turn the light on. A request to turn the light on and the acknowledgement that the light has been turned on constitute an RPC transaction. * There is a server that knows the phone numbers of a million people. A client can supply a name and get back the phone number of the named person. Here are some kinds of communication that are not RPC: * A long-lived connection such as an SSH login session. * A high volume transfer such as an FTP download. * A one-way transmission such as a UDP packet. * A dialogue such as an SMTP (mail) transaction. Based on XML nearly any application can be enabled to call methods defined by the XMLRPC Server. The fact that XML is written in plain-text and also easily readable by humans allows tracing and debugging with no additional overhead or learning curve. The server defines a global registry of methods accessible by its clients. These methods are devided in several logical parts and seperated by a dot in their method name. For a list of available methods see below. ==== Authentication ==== Authentication in the VServer Control Daemon is based on the cryptographic hash function WHIRLPOOL. WHIRLPOOL is a cryptographic hash function designed by Vincent Rijmen and Paulo S. L. M. Barreto. The hash has been recommended by the NESSIE project. It has also been adopted by the International Organization for Standardization (ISO) and the International Electrotechnical Commission (IEC) as part of the joint ISO/IEC 10118-3 international standard. WHIRLPOOL is a hash designed after the Square block cipher. WHIRLPOOL is a Miyaguchi-Preneel construction based on a substantially modified Advanced Encryption Standard (AES). Given a message less than 2<sup>256</sup> bits in length, it returns a 512-bit message digest. For security reasons the clear-text password is never stored in VXDB. The client will send the password as plain-text - the server then creates a WHIRLPOOL hash using the submitted password and compares its result with the hash stored in VXDB. ==== Access Restrictions ==== For a fine-grained access control the server implements its own set of capabilities. A capability is a lot like the keys on your key ring. As an example, consider your car key. It works on a specific car (it designates a particular object), and anyone holding the key can perform certain actions (locking or unlocking the car, starting the car, opening the glove compartment). You can hand your car key to me, after which I can open, lock, or start the car, but only on your car. Holding your car key won't let me test drive my neighbor's Lamborghini. ==== Owner Checks ==== To ensure the distinction between your car and the Lamborghini another access control system has to be implemented. Therefore the server also implements owner checks for most of its methods. This results in an extension to the capability model explained above. Instead of using one key per car, you can now drive multiple cars using just one key. Still, this model has a noticable flaw: Imagine your company has two hundred cars and your top management should have access to all cars. Adding all members of the management to the owner list of every single car can become a pain in the ass very quickly. Therefore the user database in VXDB implements the adminstrator flag. Using this flag all owner checks are passed without even consulting the owner lists in VXDB.
Summary:
Please note that all contributions to Linix VServer may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Linix VServer:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Navigation menu
Page actions
Page
Discussion
Read
Edit
History
Page actions
Page
Discussion
More
Tools
Personal tools
Not logged in
Talk
Contributions
Create account
Log in
About
Overview
Paper
News
Developers
Donations
Search
Getting Started
Downloads
FAQs
Documentation
Support
Participate
How to participate
Report a Bug
Communicate
Teams/Projects
Hall of Fame
Resources
Archives
Recent Wiki Changes
Pastebin
Related Projects
VServer Hosting
Happy VServer Users
Tools
What links here
Related changes
Special pages
Page information