|
Mixe for Privacy and Anonymity in the Internet
|
This is the index of all XML structs used in the project.
<?xml version="1.0" encoding="utf-8" ?>
<Mixes count="1">
<!-- <Mixes> contains an ordered list of the Mixes of the cascade -->
<!-- count gives the number of <Mix> elements -->
<Mix id="..."> <!-- describes a single Mix -->
<MixProtocolVersion>
0.3|0.5|0.6
<!-- Protocal Version / features of this Mix-->
<!-- 0.3 is the normal "old" protocal; 0.4 was used only for testing; 0.5 simulated 1:n channels;0.6 indicates new flow control-->
</MixProtocolVersion>
<RSAKeyValue> <!-- The public encryption key used by that Mix -->
<Modulus></Modulus>
<Exponent></Exponent>
</RSAKeyValue>
<Nonce>...</Nonce> <!-- A nonce used to detect reply attacks -->
<Signature>...</Signature> <!-- digital signature of the <Mix>-element -->
<KeepAlive>
<!-- Gives information about the "Keep-Alive"-protocol
between Mixes -->
<SendInterval>
<!-- minimum packet send interval (in seconds)
from Mix n to Mix n-1 -->
...
</SendInterval>
<ReceiveInterval>
<!-- minimum packet receive interval (in seconds)
from Mix n-1 to Mix n -->
...
</ReceiveInterval>
</KeepAlive>
<FlowControl>
<!-- Information related to new flow control-->
<UpstreamSendMe>
<!-- Number of packets send in upstram direction which could be sent without wating of a SENDME-message from last mix-->
</UpstreamSendMe>
<DownstreamSendMe>
<!-- Number of packets the last Mix will sent, before he wait for a SENDME-message from JAP-->
</DownstreamSendMe>
</FlowControl>
</Mix>
</Mixes>
<?xml version="1.0" encoding="utf-8" ?>
<EncryptedKey>
<EncryptionMethod Algorithm="RSA" />
<CipherData>
<CipherValue>...</CipherValue>
</CipherData>
<Nonce>...</Nonce>
<KeepAlive>
<!-- Gives information about the "Keep-Alive"-protocol
between Mixes -->
<SendInterval>
<!-- minimum packet send interval (in seconds)
from Mix n-1 to Mix n -->
...
</SendInterval>
<ReceiveInterval>
<!-- minimum packet receive interval (in seconds)
from Mix n to Mix n-1 -->
...
</ReceiveInterval>
</KeepAlive>
<Signature>...</Signature>
</EncryptedKey><?xml version="1.0" ?>
<MixCascade id="...">
<Name>...</Name>
<Network>
<ListenerInterfaces>
<ListenerInterface>
<Type>RAW/TCP</Type>
<Port>..</Port>
<Host>..</Host>
<IP>..</IP>
</ListenerInterface>
</ListenerInterfaces>
</Network>
<Mixes count="..">
<Mix id=".." />
<!--- all the Information about the FirstMix -->
<Mix id="." />
<!-- only the id's of all other mixes of the cascade -->
</Mixes>
<LastUpdate>..</LastUpdate>
<Payment required="true|false">
<!--Gives payment related information to the JAP
if required=="true" payment is required
if required=="false" no paymetn is required
-->
</Payment>
<Signature>..</Signature>
</MixCascade><?xml version="1.0" encoding="utf-8" ?>
<MixCascadeStatus id=".."
currentRisk=".."
mixedPackets=".."
nrOfActiveUsers=".."
trafficSituation=".."
LastUpdate="..">
<Signature>..</Signature>
</MixCascadeStatus><?xml version="1.0" encoding="utf-8" ?>
<Mix id="...">
<Name>..</Name>
<Location>
...
</Location>
<Proxies> <!-- Only for the Last Mix -->
<Proxy>
<VisibleAddresses> <!-- Describes the visible addresses from the 'outside world' -->
<VisibleAddress>
<Host> <!-- Host or IP -->
</Host>
</VisibleAddress>
</VisibleAddresses>
</Proxy>
</Proxies>
<Operator>
<Organisation>..</Organisation>
<URL>..</URL>
</Operator>
<Software>
<Version>..</Version>
</Software>
<LastUpdate>..</LastUpdate>
<DataRetention>
<!--Data retention related information. this element is given, iff the Mix supports data retention-->
<LoggedElements>
<!--Describes which elements are logged-->
<InputTime>TRUE|FALSE</InputTime> <!--If TRUE, the time of packet arrival is logged-->
<OutputTime>TRUE|FALSE</OutputTime> <!--If TRUE, the time of packet sending / connetcion establishment is logged-->
<InputChannelID>TRUE|FALSE</InputChannelID> <!--If TRUE, the cahnnel id of incoming packet is logged-->
<OutputChannelID>TRUE|FALSE</OutputChannelID> <!--If TRUE, the cahnnel id of outgoing packet is logged-->
<InputSourceIPAddress>TRUE|FALSE</InputSourceIPAddress><!--If TRUE, the source IP address of incoming connection is logged-->
<InputSourceIPPort>TRUE|FALSE</InputSourceIPPort> <!--If TRUE, the source IP port of incoming connection is logged-->
<OutputSourceIPAddress>TRUE|FALSE</OutputSourceIPAddress> <!--If TRUE, the source IP address of outgoing connection is logged-->
<OutputSourceIPPort>TRUE|FALSE</OutputSourceIPPort> <!--If TRUE, the source IP port of outgoing connection is logged-->
</LoggedElements>
<RetentionPeriod>
<!-- The periof od time the log are retained;
given as xs:duration (see: http://www.w3.org/TR/xmlschema-2/#duration)
-->
</RetentionPeriod>
<Description lang="LANGID"><!--Contains information about dat retention -->
<URL></URL><!--URL of a Web-Site with information about data retention-->
</Description>
</DataRetention>
<Signature>..</Signature>
</Mix>
<?xml version="1.0" ?>
<MixCascade version="0.2">
<MixProtocolVersion>
<!-- "0.4" ==> "normal" mix proctocol
"0.8" ==> with timestamp/replay detection
"0.9" ==> with new payment protocol
-->
...
</MixProtocolVersion>
<Mixes count="..">
<Mix id="..">
<MixProtocolVersion>
<!-- specifies which sub protocol this Mix uses, if ther is a difference to the gerneral cascade protocol-->
...
</MixProtocolVersion>
<RSAKeyValue>
<!--- PubKey of FirstMix -->
...
</RSAKeyValue>
<Replay>
<!-- information for replay detection mechanisms
if supported by protocol -->
<ReplayTimestamp interval=".." offset="..">
<!-- replay timestamp on the mix -->
<!-- interval give the number of the current
interval on the mix; offset gives the
seconds since start of this interval -->
</ReplayTimestamp>
</Replay>
</Mix>
<Mix id="..">
...
</Mix>
...
</Mixes>
<Payment required="true|false">
<!-- Since Version 0.2 -->
<!-- Gives payment related information to the JAP
if required=="true" payment is required
if required=="false" no payment is required
-->
</Payment>
<Signature>
<!--- from FirstMix -->
...
</Signature>
</MixCascade><Signature>
<SignedInfo>
<Reference URI=""> <!--what is signed ?-->
<DigestValue>.....</DigestValue> <!--base64 SHA1 digest -->
</Reference>
</SignedInfo>
<SignatureValue>
<!--base64 of r,s of DSA signature -->
</SignatureValue>
<KeyInfo>
<!-- info abnout the key used -->
<X509Data>
<X509Certificate>
<!-- base64 cert of the public test key for the signature -->
</X509Certificate>
</X509Data>
</KeyInfo>
</Signature><?xml version="1.0" encoding="UTF-8"?> <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="anon" elementFormDefault="unqualified" xmlns:anon="anon"> <include schemaLocation="Signature.xsd" /> <include schemaLocation="LocationType.xsd" /> <include schemaLocation="OperatorType.xsd" /> <include schemaLocation="ListenerInterfaceType.xsd" /> <include schemaLocation="DataRetentionType.xsd" /> <include schemaLocation="KeepAliveType.xsd" /> <include schemaLocation="RSAKeyType.xsd" /> <include schemaLocation="ProxyType.xsd" /> <include schemaLocation="SoftwareType.xsd" /> <complexType name="MixType"> <all> <element name="MixProtocolVersion" type="string" minOccurs="0" /> <element name="MixType"> <simpleType> <restriction base="string"> <enumeration value="FirstMix" /> <enumeration value="MiddleMix" /> <enumeration value="LastMix" /> </restriction> </simpleType> </element> <element name="Name" type="string" /> <element name="Location" type="anon:LocationType" /> <element name="Operator" type="anon:OperatorType" /> <element name="Software" type="anon:SoftwareType" /> <element name="DataRetention" type="anon:DataRetentionType" /> <element name="KeepAlive" type="anon:KeepAliveType" minOccurs="0" /> <element name="RSAKeyValue" type="anon:RSAKeyType" /> <element name="ChannelSymmetricChipher"> <!-- The symmetric cipher used by the Mix for symmetric channel recoding --> <simpleType> <restriction base="string"> <enumeration value="AES/OFB/ANON" /> <!-- The original cipher, AES128-OFB with some AN.ON specific data handling (this is the default) --> <enumeration value="AES/CTR" /> <!-- AES128-CTR --> </restriction> </simpleType> </element> <element name="LastUpdate" type="integer" /> <element name="ListenerInterfaces"> <complexType> <sequence minOccurs="1" maxOccurs="unbounded"> <element name="ListenerInterface" type="anon:ListenerInterfaceType" /> </sequence> </complexType> </element> <element name="Proxies" minOccurs="0"> <complexType> <sequence minOccurs="1" maxOccurs="unbounded"> <element name="Proxy" type="anon:ProxyType" /> </sequence> </complexType> </element> <element name="Nonce" type="string" minOccurs="0" /> <element name="SupportsEncrypedControlChannels" type="boolean" minOccurs="0" /> <element name="Signature" type="anon:SignatureType" /> </all> <attribute name="id" type="string" /> <attribute name="serial" type="integer" /> </complexType> </schema>