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>