[tcpdump-workers] New official link-layer type request

2019-05-11 Thread Damir Franusic

Hi

My name is Damir and I am a founder of a Croatian based company called 
*Socket d.o.o. *
We are currently working on an *ETSI compliant Lawful 
Interception*solution; It is a
work in progress but we already have couple of clients in need of this 
solution.


The problem with *LI*is that governments impose the law on the *ISPs*and 
other

Communication Provides (*CSPs*), making them obliged to purchase the *LI *
software or implement it themselves. These system are standardized to 
some degree
by the European Telecommunications Standards Institute (*ETSI*), but 
that is just

the first part of the story.

*L**I* systems are quite complex but from the perspective of *LEAs*(Law 
Enforcement Agencies),
they consist of *2 parts; Backend*and *Frontend*. *Backend*is actually 
what is normally called
a *GUI*or a *Web Interface*, so the reversal of terminology can be a bit 
confusing at times.


*ELEE*software is a data interception (*Fronted*) system that passively 
tracks *IP traffic*
and delivers the data of interest to *LEAs*. The format of that delivery 
if defined by *ETSI*;
they describe everything in great detail by using *ASN.1*notation which 
is then encoded using

*BER *when sent by wire.


*Why do we need a new DLT? *We would like to offer *ELEE*solution to our 
customers (*ISPs* and/or *CSPs)*,
but *LEAs*are also a vital part of this *2-part business*. *LEAs* are 
quite prone to having lots of issues
with data analysis (*Backend part*) software, which is quite odd since 
they also follow *ETSI* governed
standards. Some even demand a regular *PCAP*format for data delivery due 
to complete lack of *Backend*
software. *LI *data delivery comprises both *packet data* and intercept 
*metadata* which is completely
*unrelated to network stack. *Thisis also one of the reasons to ask for 
a *new DLT.*



*ELEE *solution supports *PCAP*, *BER*and *ELEE/PCAP.*We created our own 
protocol which is transferred using
*SCTP*and is registered with *IANA**with SCTP PPID 65*. We would like to 
offer a way to analyze *ELEE/PCAP

*
format with *Wireshark*and bring *LI*capabilities to a well established 
network analysis software.
That would also be very interesting to *LEAs*; they would be able to use 
*Wireshark *as their official *

*
*Backend* data analysis tool. They use different terminology and fields 
to inspect data, and that
is what *ELEE/PCAP *is all about; *bridging**the gap between **LI**and 
**PCAP**. *


I have already created a dissector for *Wireshark* to be able to debug 
and analyze our internal SCTP traffic
and inspect aggregated network data for which I use Wireshark's 
*WTAP_ENCAP_USER0 *Like Layer Type.
Unfortunately, I don't have the documentation/specification for 
*ELEE/PCAP* ready just yet, but that would come
later on. I would like to get an official *DLT*for our product 
(*LINKTYPE_ELEE*), just like we got *

*
*SCTP PPID from IANA*. The protocol and the dissector would be used 
mainly by *LEAs*and I don't think it would
cause any harm to *tcpdump* and/or *Wireshark* community to get closer 
to being able to provide Lawful Interception
features. The plan is to include the dissector in the official 
*Wireshark* version when it's finished.



Sorry for the long summary, I just wanted to give you a little intro and 
not cause any headaches or tech rage.
I have also attached a PDF slideshow of our product which you may or may 
not find interesting. The interesting
part is: We will be the first to offer *LI* systems on *ARM* based *SBCs 
(*Single Board Computers).



Company info: 
*https://sudreg.pravosudje.hr/registar/f?p=150:28:0::NO:28:P28_SBT_MBS:080973259*

Website(temp until the project is finished): *http://socket.hr*
IANA SCTP PPID 65: 
*https://www.iana.org/assignments/sctp-parameters/sctp-parameters.xhtml#sctp-parameters-25*


P.S.
You can find some tshark output for the *ELEE/PCAP* protocol dissector 
(both IRI and CC, the only two main PDU types)


*Example tshark output for IRI:*

Frame 1: 161 bytes on wire (1288 bits), 161 bytes captured (1288 bits)
    Encapsulation type: USER 0 (45)
    Arrival Time: May 10, 2019 20:21:59.2065333272 CEST
    [Expert Info (Note/Sequence): Arrival Time: Fractional second 
2065333272 is invalid, the valid range is 0-10]
    [Arrival Time: Fractional second 2065333272 is invalid, the 
valid range is 0-10]

    [Severity level: Note]
    [Group: Sequence]
    [Time shift for this packet: 0.0 seconds]
    Epoch Time: 1557512519.2065333272 seconds
    [Time delta from previous captured frame: 0.0 seconds]
    [Time delta from previous displayed frame: 0.0 seconds]
    [Time since reference or first frame: 0.0 seconds]
    Frame Number: 1
    Frame Length: 161 bytes (1288 bits)
    Capture Length: 161 bytes (1288 bits)
    [Frame is marked: False]
    [Frame is ignored: False]
    [Protocols in frame: elee]

ELEE Protocol
    Protocol version: 1
    PDU type: Target PDU (1)
    Source node: ele

Re: [tcpdump-workers] New official link-layer type request

2019-05-11 Thread Damir Franusic

Hi

Like I sad, I don't have the complete documentation ready, but
this is the general format:

+-+
|   Version   |
|   (1 Octet) |
| |
+-+
|   PDU Type  |
|   (1 Octet) |
| |
+-+
|   Source ELLE Node  |
|  NULL terminated ASCII string   |
|   (1 Octet min for \0)  |
| |
+-+
|   Destination ELEE Node |
|  NULL terminated ASCII string   |
|   (1 Octet min for \0)  |
| |
+-+
|   ELEE PDU Payload  |
.  (Remaining octets)     .
. .
. .

PDU Payload part is the rest of the packet data
and will be interpreted based on PDU Type.




On 5/11/19 10:09 PM, Guy Harris wrote:

On May 11, 2019, at 7:26 AM, Damir Franusic  wrote:


*Example tshark output for IRI:*

...


ELEE Protocol
 Protocol version: 1
 PDU type: Target PDU (1)
 Source node: elee.ppd.node_1
 Destination node: .
 Target PDU
 Lawful interception identifier: dhcp_li_id
 Target PDU data type: Intercept Related Information (IRI) (1)
 Sequence number: 0
 Timestamp: May 10, 2019 18:21:59.723619839 UTC
 IRI configuration
 Active: True
 Delivery format: ELEE (3)
 Handover connection:
 Handover directory:
 Aggregation factor: 2
 Delivery timeout: 0
 Communication identifier
 Operator identifier:
 Network element identifier:
 Communication identifier number (CIN): 0
 Data part size: 95
 IP IRI
 IRI type: IRI-REPORT (4)
 Access event type: accessAttempt (0)
 Target username: 001cbf0dbfd7
 Internet access type: Unknown (0)
 IP version: IPv4 protocol (1)
 Target IPv4: 0.0.0.0
 Target network id: 00:1c:bf:0d:bf:d7
 POP port number: 0
 Target call-back number: 
 POP IP address: 
 Authentication type: AAA provided by DHCP (3)

...


*Example tshark output for CC:*

...


*ELEE Protocol*
 Protocol version: 1
 PDU type: Target PDU (1)
 Source node: elee.ppd.node_1
 Destination node: .
 Target PDU
 Lawful interception identifier: test_li_id
 Target PDU data type: Content of Communication (CC) (2)
 Sequence number: 0
 Timestamp: May 10, 2019 18:27:56.677651565 UTC
 CC configuration
 Active: True
 Delivery format: ELEE (3)
 Handover connection:
 Handover directory:
 Aggregation factor: 10
 Delivery timeout: 0
 Communication identifier
 Operator identifier:
 Network element identifier:
 Communication identifier number (CIN): 0
 Data part size: 60

So what would the exact format of the header be for this link-layer type?


--
Damir Franusic

email: damir.franu...@gmail.com
http://ele2.io/

___
tcpdump-workers mailing list
tcpdump-workers@lists.tcpdump.org
https://lists.sandelman.ca/mailman/listinfo/tcpdump-workers


Re: [tcpdump-workers] New official link-layer type request

2019-05-11 Thread Guy Harris
On May 11, 2019, at 2:51 PM, Damir Franusic  wrote:

> PDU types are extendable and there might be more of them in the future. I 
> wanted to make it like this so adding new types would not present a big 
> issue. I can define the two PDU types used at present moment but maybe it 
> would be more practical to leave PDU payload part as generic octet stream if 
> that's possible.

Why would it be more practical not to define *what you already implementString 
s are pure ASCII C null terminated, no need for utf-8.

> The formats of PDUs will be described in protocol documentation, sure. I am 
> just not sure how many types of PDUs will it consist of when it's done. Is we 
> just leave as a data octet stream, any kind of PDU added later would not 
> break the initial design.

If you're planning on extending this, then what you should do is:

put a specification for the *current* set of PDU types on your Web 
site, *including* the payload formats for each of those PDU types;

update it as *new* PDU types are added;

and the entry for your LINKTYPE_ value on tcpdump.org can link to that 
specification.

pcapng has a specification:


http://xml2rfc.tools.ietf.org/cgi-bin/xml2rfc.cgi?url=https://raw.githubusercontent.com/pcapng/pcapng/master/draft-tuexen-opsawg-pcapng.xml&modeAsFormat=html/ascii&type=ascii

and it *does* list the block type values, and formats, for existing block 
types, and the option number values, and formats, for existing options, but 
that does *not* prevent it from being extensible; as new block types or options 
are added, the specification is updated.

Our goal is to have a registry of link-layer header types that would allow 
somebody to write their *own* code to process pcap or pcapng files with packets 
of that type *without* having to read tcpdump or Wireshark code to figure out 
how to analyze it.
___
tcpdump-workers mailing list
tcpdump-workers@lists.tcpdump.org
https://lists.sandelman.ca/mailman/listinfo/tcpdump-workers


Re: [tcpdump-workers] New official link-layer type request

2019-05-11 Thread Guy Harris
On May 11, 2019, at 1:39 PM, Damir Franusic  wrote:

> Like I sad, I don't have the complete documentation ready,

When you have the complete documentation ready, let us know.

> but this is the general format:
> 
> +-+
> |   Version   |
> |   (1 Octet) |
> | |
> +-+
> |   PDU Type  |
> |   (1 Octet) |
> | |

What are the PDU type values?

> +-+
> |   Source ELLE Node  |
> |  NULL terminated ASCII string   |
> |   (1 Octet min for \0)  |

So that's pure ASCII, without, for example, any letters with diacritical marks, 
so it doesn't need full UTF-8?

> | |
> +-+
> |   Destination ELEE Node |
> |  NULL terminated ASCII string   |
> |   (1 Octet min for \0)  |

And the same applies there?

> | |
> +-+
> |   ELEE PDU Payload  |
> .  (Remaining octets) .
> . .
> . .
> 
> PDU Payload part is the rest of the packet data
> and will be interpreted based on PDU Type.

Presumably the formats of the PDU payloads will be described in the complete 
documentation.
___
tcpdump-workers mailing list
tcpdump-workers@lists.tcpdump.org
https://lists.sandelman.ca/mailman/listinfo/tcpdump-workers


Re: [tcpdump-workers] New official link-layer type request

2019-05-11 Thread Guy Harris
On May 11, 2019, at 7:26 AM, Damir Franusic  wrote:

> *Example tshark output for IRI:*

...

> ELEE Protocol
>Protocol version: 1
>PDU type: Target PDU (1)
>Source node: elee.ppd.node_1
>Destination node: .
>Target PDU
>Lawful interception identifier: dhcp_li_id
>Target PDU data type: Intercept Related Information (IRI) (1)
>Sequence number: 0
>Timestamp: May 10, 2019 18:21:59.723619839 UTC
>IRI configuration
>Active: True
>Delivery format: ELEE (3)
>Handover connection:
>Handover directory:
>Aggregation factor: 2
>Delivery timeout: 0
>Communication identifier
>Operator identifier:
>Network element identifier:
>Communication identifier number (CIN): 0
>Data part size: 95
>IP IRI
>IRI type: IRI-REPORT (4)
>Access event type: accessAttempt (0)
>Target username: 001cbf0dbfd7
>Internet access type: Unknown (0)
>IP version: IPv4 protocol (1)
>Target IPv4: 0.0.0.0
>Target network id: 00:1c:bf:0d:bf:d7
>POP port number: 0
>Target call-back number: 
>POP IP address: 
>Authentication type: AAA provided by DHCP (3)

...

> *Example tshark output for CC:*

...

> *ELEE Protocol*
>Protocol version: 1
>PDU type: Target PDU (1)
>Source node: elee.ppd.node_1
>Destination node: .
>Target PDU
>Lawful interception identifier: test_li_id
>Target PDU data type: Content of Communication (CC) (2)
>Sequence number: 0
>Timestamp: May 10, 2019 18:27:56.677651565 UTC
>CC configuration
>Active: True
>Delivery format: ELEE (3)
>Handover connection:
>Handover directory:
>Aggregation factor: 10
>Delivery timeout: 0
>Communication identifier
>Operator identifier:
>Network element identifier:
>Communication identifier number (CIN): 0
>Data part size: 60

So what would the exact format of the header be for this link-layer type?

___
tcpdump-workers mailing list
tcpdump-workers@lists.tcpdump.org
https://lists.sandelman.ca/mailman/listinfo/tcpdump-workers


Re: [tcpdump-workers] New official link-layer type request

2019-05-11 Thread Damir Franusic
PDU types are extendable and there might be more of them in the future. I 
wanted to make it like this so adding new types would not present a big issue.  
I can define the two PDU types used at present moment but maybe it would be 
more practical to leave PDU payload part as generic octet stream if that's 
possible. 

String s are pure ASCII C null terminated, no need for utf-8.

The formats of PDUs will be described in protocol documentation, sure. I am 
just not sure how many types of PDUs will it consist of when it's done. Is we 
just leave as a data octet stream, any kind of PDU added later would not break 
the initial design. 

That's just my point of view, maybe you disagree and I respect that. Sometimes 
you can't now in advance all the possible extensions that might follow later 
on, lime EtherType for example. I'm sure that initial version didn't include 
all the values available today.

No disrespect and sorry if I sound a bit rude, I would just like to get this 
DLT as soon as possible and also define a simple easily extendable header.

Cheers


On May 11, 2019 11:27:57 PM GMT+02:00, Guy Harris  wrote:
>On May 11, 2019, at 1:39 PM, Damir Franusic 
>wrote:
>
>> Like I sad, I don't have the complete documentation ready,
>
>When you have the complete documentation ready, let us know.
>
>> but this is the general format:
>> 
>> +-+
>> |   Version   |
>> |   (1 Octet) |
>> | |
>> +-+
>> |   PDU Type  |
>> |   (1 Octet) |
>> | |
>
>What are the PDU type values?
>
>> +-+
>> |   Source ELLE Node  |
>> |  NULL terminated ASCII string   |
>> |   (1 Octet min for \0)  |
>
>So that's pure ASCII, without, for example, any letters with
>diacritical marks, so it doesn't need full UTF-8?
>
>> | |
>> +-+
>> |   Destination ELEE Node |
>> |  NULL terminated ASCII string   |
>> |   (1 Octet min for \0)  |
>
>And the same applies there?
>
>> | |
>> +-+
>> |   ELEE PDU Payload  |
>> .  (Remaining octets) .
>> . .
>> . .
>> 
>> PDU Payload part is the rest of the packet data
>> and will be interpreted based on PDU Type.
>
>Presumably the formats of the PDU payloads will be described in the
>complete documentation.

-- 
Sent from my Android device with K-9 Mail. Please excuse my brevity.
___
tcpdump-workers mailing list
tcpdump-workers@lists.tcpdump.org
https://lists.sandelman.ca/mailman/listinfo/tcpdump-workers


Re: [tcpdump-workers] New official link-layer type request

2019-05-11 Thread Damir Franusic
No problem, I will do my best to describe the current version, you'll get it 
tomorrow.

Thank You for being so prompt

On May 12, 2019 12:02:42 AM GMT+02:00, Guy Harris  wrote:
>On May 11, 2019, at 2:51 PM, Damir Franusic 
>wrote:
>
>> PDU types are extendable and there might be more of them in the
>future. I wanted to make it like this so adding new types would not
>present a big issue. I can define the two PDU types used at present
>moment but maybe it would be more practical to leave PDU payload part
>as generic octet stream if that's possible.
>
>Why would it be more practical not to define *what you already
>implementString s are pure ASCII C null terminated, no need for utf-8.
>
>> The formats of PDUs will be described in protocol documentation,
>sure. I am just not sure how many types of PDUs will it consist of when
>it's done. Is we just leave as a data octet stream, any kind of PDU
>added later would not break the initial design.
>
>If you're planning on extending this, then what you should do is:
>
>   put a specification for the *current* set of PDU types on your Web
>site, *including* the payload formats for each of those PDU types;
>
>   update it as *new* PDU types are added;
>
>and the entry for your LINKTYPE_ value on tcpdump.org can link to that
>specification.
>
>pcapng has a specification:
>
>   
> http://xml2rfc.tools.ietf.org/cgi-bin/xml2rfc.cgi?url=https://raw.githubusercontent.com/pcapng/pcapng/master/draft-tuexen-opsawg-pcapng.xml&modeAsFormat=html/ascii&type=ascii
>
>and it *does* list the block type values, and formats, for existing
>block types, and the option number values, and formats, for existing
>options, but that does *not* prevent it from being extensible; as new
>block types or options are added, the specification is updated.
>
>Our goal is to have a registry of link-layer header types that would
>allow somebody to write their *own* code to process pcap or pcapng
>files with packets of that type *without* having to read tcpdump or
>Wireshark code to figure out how to analyze it.

-- 
Sent from my Android device with K-9 Mail. Please excuse my brevity.
___
tcpdump-workers mailing list
tcpdump-workers@lists.tcpdump.org
https://lists.sandelman.ca/mailman/listinfo/tcpdump-workers