Difference between revisions of "SoC/2017"

(Improve libcli/dns)
Line 8: Line 8:
 
* Mentors: Kai Blin, David Disseldorp
 
* Mentors: Kai Blin, David Disseldorp
 
* Student: Dimitris Gravanis
 
* Student: Dimitris Gravanis
 +
 +
# Client-side DNS call handling with GSS-TSIG
 +
### Unix SMB/CIFS implementation
 +
### Dimitrios Gravanis (C) 2017
 +
### Based on the existing work by Samba Team
 +
 +
--------------------------------------------------------
 +
About
 +
--------------------------------------------------------
 +
 +
***WORK IN PROGRESS***
 +
 +
For the Samba AD DC, libcli/dns is a library that allows the handling of DNS
 +
calls (send/receive requests) and generates GSS-TSIG type encryption signature
 +
for signed packets, to accomodate encrypted client-server communication.
 +
 +
It consists of its respective function and structure libraries, that provide
 +
definitions for client-side functionality.
 +
 +
Test suites are also available, that inspect individual features of cli_dns.c
 +
 +
For more information on the project goals, read the GSoC proposal [here](https://summerofcode.withgoogle.com/projects/#6642229069217792).
 +
 +
The project timeline and development journal is documented in its dedicated [blogspot](https://dimgrav.blogspot.gr/).
 +
 +
--------------------------------------------------------
 +
DNS Client (with wrapper support)
 +
--------------------------------------------------------
 +
 +
Handles TCP and UDP requests.
 +
 +
The client may use either TCP or UDP protocols to send a DNS name request to
 +
the server, then handle the reception of the appropriate server response.
 +
 +
Features:
 +
 +
* UDP request send/receive
 +
* TCP request send/receive
 +
* GSS-TSIG generation
 +
* DNS name packet parsing and signing
 +
 +
The library consists of cli_dns.c, that includes functions, and dns.h, libtcp.h,
 +
libtsig.h, libudp.h, that provide declarations, definitions and structures.
 +
 +
### Wrapping
 +
wrap_cli.c provides multiple wrapping of the above functionality, to hide buffer
 +
creation, DNS packet parsing and signature generation. Definitions of the wrapped
 +
functions are provided in libwrap.h.

Revision as of 12:24, 25 August 2017

Improve libcli/dns

Samba comes with its own asynchronous DNS parser framework developed for the internal DNS server. Basic calls have been implemented for a client-side library as well, but a more fleshed out implementation would be needed. The goal of this project is to implement more high-level calls handling DNS requests, such as UDP/TCP switchover and client-side GSS-TSIG cryptography. A test suite excercising all the functions is required and can be used to cross-check and complement the existing DNS server tests already shipped by Samba. This testsuite should use cmocka.

  • Difficulty: Medium
  • Language(s): C
  • Mentors: Kai Blin, David Disseldorp
  • Student: Dimitris Gravanis
  1. Client-side DNS call handling with GSS-TSIG
      1. Unix SMB/CIFS implementation
      2. Dimitrios Gravanis (C) 2017
      3. Based on the existing work by Samba Team

About


      • WORK IN PROGRESS***

For the Samba AD DC, libcli/dns is a library that allows the handling of DNS calls (send/receive requests) and generates GSS-TSIG type encryption signature for signed packets, to accomodate encrypted client-server communication.

It consists of its respective function and structure libraries, that provide definitions for client-side functionality.

Test suites are also available, that inspect individual features of cli_dns.c

For more information on the project goals, read the GSoC proposal [here](https://summerofcode.withgoogle.com/projects/#6642229069217792).

The project timeline and development journal is documented in its dedicated [blogspot](https://dimgrav.blogspot.gr/).


DNS Client (with wrapper support)


Handles TCP and UDP requests.

The client may use either TCP or UDP protocols to send a DNS name request to the server, then handle the reception of the appropriate server response.

Features:

  • UDP request send/receive
  • TCP request send/receive
  • GSS-TSIG generation
  • DNS name packet parsing and signing

The library consists of cli_dns.c, that includes functions, and dns.h, libtcp.h, libtsig.h, libudp.h, that provide declarations, definitions and structures.

      1. Wrapping

wrap_cli.c provides multiple wrapping of the above functionality, to hide buffer creation, DNS packet parsing and signature generation. Definitions of the wrapped functions are provided in libwrap.h.