Open Blacklist EXchange protocol specification
Copyright © 2008 William Pitcock nenolod@dronebl.org.
Introduction
The Open Blacklist EXchange protocol is designed to enable flexible, automatic data exchange between blacklists in realtime. The benefits of such a protocol is that all blacklists become increasingly effective. With OBEX, it is possible to for blacklists to interact directly with other blacklists.
Authentication
OBEX requests use proprietary authentication tokens, known as RPCKeys. These tokens are used to identify the requestor to the OBEX server.
OBEX object description language
The OBEX protocol uses XML as a data representation language.
An example stanza is:
<?xml version="1.0" standalone="yes"?>
<obex-request key='rgwerJKHKJFfvnQWFRjklbnWQgvbwghJKWHgvnAfjzgnKBKFEbkvfb8FJKENKJVGFn23'>
<push-incident>
<host>127.0.0.2</host>
<category>3</category>
<timestamp>1192176431</timestamp>
<id>49327</id>
<status>open</status>
</push-incident>
</obex-request>
Basic format of OBEX stanzas
First, the stanza begins with an XML header.
<?xml version="1.0" standalone="yes"?>
Next, the call is encapulated in an obex-request
paragraph. The obex-request
paragraph contains
the authentication key. This is followed by 1 or more calls.
<obex-request key='rgwerJKHKJFfvnQWFRjklbnWQgvbwghJKWHgvnAfjzgnKBKFEbkvfb8FJKENKJVGFn23'>
<call1>
<data1>value</data1>
<data2>value</data2>
...
</call1>
</obex-request>
OBEX design principles
OBEX was created to ensure blacklists and dronebl server instances could share information with each other. This ensures secure, open replication of data without dependency on a database-level replication solution.
As a result, OBEX is a subscription-based protocol, inspired by the SKS system of OpenPGP keyservers.
OBEX calls
This is a listing of OBEX calls.