| SPICE | |
|---|---|
| Original author | Qumranet |
| Developer | Red Hat |
| Stable release | |
| Written in | C,C++ |
| Operating system | Linux,Windows,Android (Client) |
| Type | Server, client |
| License | GPL,LGPL andBSD |
| Website | spice-space.org |
| Internet protocol suite |
|---|
| Application layer |
| Transport layer |
| Internet layer |
| Link layer |
Incomputing,SPICE (theSimple Protocol for Independent Computing Environments) is a remote-display system built forvirtual environments which allows users to view a computing "desktop" environment – not only on its computer-server machine, but also from anywhere on theInternet – using a wide variety ofmachine architectures.
Qumranet originally developed SPICE using aclosed-sourcecodebase in 2007.Red Hat, Inc acquired Qumranet in 2008, and in December 2009 released the code under anopen-source license and made the protocol an open standard.[4][5]
A SPICE client connection to a remote desktop server consists of multipledata channels, each of which is run over a separateTCP orUNIXsocket connection. A data channel can be designated to operate in either clear-text, orTLS modes, allowing the administrator to trade off the security level vs performance. The TLS mode providesstrong encryption of all traffic transmitted on the data channel.
In addition to encryption, the SPICE protocol allows for a choice of authentication schemes. The original SPICE protocol defined a ticket based authentication scheme using a shared secret. The server would generate anRSA public/privatekeypair and send itspublic key to the client. The client would encrypt the ticket (password) with the public key and send the result back to the server, which would decrypt and verify the ticket. The current SPICE protocol also allows for use of theSASL authentication protocol, thus enabling support for a wide range of admin configurable authentication mechanisms, in particularKerberos.
While only one server implementation exists, several programmers have developed new implementations of the SPICE client-side since the open-sourcing of SPICE.
The SPICE protocol originated to provide improvedremote desktop capabilities in afork of the KVM codebase.
virt-viewer program uses the spice-gtk client library to connect to virtual machines using SPICE, as an alternative to its previous support forVNC.