{"version": "https://jsonfeed.org/version/1", "title": "/dev/posts/ - Tag index - network", "home_page_url": "https://www.gabriel.urdhr.fr", "feed_url": "/tags/network/feed.json", "items": [{"id": "http://www.gabriel.urdhr.fr/2024/05/09/x3dh/", "title": "Notes on X3DH", "url": "https://www.gabriel.urdhr.fr/2024/05/09/x3dh/", "date_published": "2024-05-09T00:00:00+02:00", "date_modified": "2024-05-09T00:00:00+02:00", "tags": ["computer", "network", "cryptography", "diffie-hellman"], "content_html": "<p>Some notes on <a href=\"https://signal.org/docs/specifications/x3dh/\">X3DH</a> (Extended Triple Diffie-Hellman).</p>\n"}, {"id": "http://www.gabriel.urdhr.fr/2024/04/13/ssh-tunnels/", "title": "OpenSSH tunneling guide", "url": "https://www.gabriel.urdhr.fr/2024/04/13/ssh-tunnels/", "date_published": "2024-04-13T00:00:00+02:00", "date_modified": "2024-07-20T02:11:29+02:00", "tags": ["computer", "network", "ssh", "unix", "network", "tun", "vpn", "linux", "socks", "foxyproxy"], "content_html": "<p>This post is an overview of the different tunneling options available in OpenSSH.\nThis is intended as a reference to use when I am explaining\n(every so often) how to use SSH for tunneling.</p>\n"}, {"id": "http://www.gabriel.urdhr.fr/2023/12/20/protocol-stacks/", "title": "Protocol stack diagrams", "url": "https://www.gabriel.urdhr.fr/2023/12/20/protocol-stacks/", "date_published": "2023-12-20T00:00:00+01:00", "date_modified": "2026-05-14T00:09:02+02:00", "tags": ["computer", "network"], "content_html": "<p>A collection of ASCII-art protocol stack diagrams.</p>\n"}, {"id": "http://www.gabriel.urdhr.fr/2022/06/07/impact-of-the-different-wifi-security-modes/", "title": "Impact of the different Wifi security modes", "url": "https://www.gabriel.urdhr.fr/2022/06/07/impact-of-the-different-wifi-security-modes/", "date_published": "2022-06-07T00:00:00+02:00", "date_modified": "2024-01-05T13:47:35+01:00", "tags": ["computer", "network", "wifi", "security"], "content_html": "<p>Comparing the different Wifi/WPA authentication and key distribution methods (PSK, EAP, SEA).</p>\n"}, {"id": "http://www.gabriel.urdhr.fr/2022/02/26/tls1.3-intro/", "title": "Introduction to TLS v1.3", "url": "https://www.gabriel.urdhr.fr/2022/02/26/tls1.3-intro/", "date_published": "2022-02-26T00:00:00+01:00", "date_modified": "2024-11-23T01:15:07+01:00", "tags": ["computer", "web", "network", "tls", "cryptography", "protocol"], "content_html": "<p>Some notes about how <a href=\"https://datatracker.ietf.org/doc/html/rfc8446\">TLS v1.3</a> works.\nThis is a follow-up of the <a href=\"https://www.gabriel.urdhr.fr/2021/11/30/tls1.2-intro/\">previous episode</a>\nabout <a href=\"https://datatracker.ietf.org/doc/html/rfc5246\">TLS v1.2</a>.\nAs before, the goal is to have a high-level overview\nabout how the protocol works,\nwhat is the role of the different messages\nand be able to understand (and debug) a network traffic dump.</p>\n"}, {"id": "http://www.gabriel.urdhr.fr/2021/11/30/tls1.2-intro/", "title": "Introduction to TLS v1.2", "url": "https://www.gabriel.urdhr.fr/2021/11/30/tls1.2-intro/", "date_published": "2021-11-30T00:00:00+01:00", "date_modified": "2024-11-23T01:15:07+01:00", "tags": ["computer", "web", "network", "tls", "cryptography", "protocol"], "content_html": "<p>Some notes\nabout how <a href=\"https://datatracker.ietf.org/doc/html/rfc5246\">TLS v1.2</a>\n(Transport Layer Security) works.\nThe goal explain what is going on in a network traffic dump,\nthe role of the different TLS extensions,\nthe impact of the different cipher suites on security, etc.\nIt includes several diagrams and many references.</p>\n"}, {"id": "http://www.gabriel.urdhr.fr/2021/10/19/diffie-hellman-intro/", "title": "Introduction to the Diffie-Hellman key exchange", "url": "https://www.gabriel.urdhr.fr/2021/10/19/diffie-hellman-intro/", "date_published": "2021-10-19T00:00:00+02:00", "date_modified": "2021-10-19T00:00:00+02:00", "tags": ["computer", "network", "cryptography", "tls", "diffie-hellman", "elliptic-curve"], "content_html": "<p>The Diffie-Hellman (DH) key exchange (and variants thereof) is widely used\nin many protocols\n(such as TLS, SSH, IKE (IPSec), Signal, etc.)\nto bootstrap some symmetric key material\nwhich may then be used to secure communication channel between two parties.\nThis introduction\nfocuses on the different ways the DH key exchange\nis used in practice\nin several protocols (especially TLS)\nand the impact of these different approaches on the security.\nThis is intended as a prelude for the upcoming <a href=\"https://www.gabriel.urdhr.fr/2021/11/30/tls1.2-intro/\">next episodes</a>\nabout how TLS works.</p>\n"}, {"id": "http://www.gabriel.urdhr.fr/2021/05/08/tuntap/", "title": "TUN/TAP interface (on Linux)", "url": "https://www.gabriel.urdhr.fr/2021/05/08/tuntap/", "date_published": "2021-05-08T00:00:00+02:00", "date_modified": "2021-05-08T00:00:00+02:00", "tags": ["computer", "system", "network", "tun", "tap", "linux", "vpn"], "content_html": "<p>Some notes about using the TUN/TAP interface, especially on Linux.</p>\n"}, {"id": "http://www.gabriel.urdhr.fr/2021/03/22/introduction-to-upnp/", "title": "Introduction to UPnP", "url": "https://www.gabriel.urdhr.fr/2021/03/22/introduction-to-upnp/", "date_published": "2021-03-22T23:24:42+01:00", "date_modified": "2021-03-22T23:24:42+01:00", "tags": ["computer", "network", "upnp", "security", "csrf", "dns-rebinding"], "content_html": "<p>This post gives simple explanations of how UPnP (Universal Plug-and-Play) works,\nespecially with the goal of testing the security devices\nsuch as <a href=\"https://www.gabriel.urdhr.fr/2020/09/23/dns-rebinding-freebox/\">routers</a>,\n<a href=\"https://www.gabriel.urdhr.fr/samsung-tv-upnp-dns-rebinding/\">smart TVs</a>, etc.</p>\n"}, {"id": "http://www.gabriel.urdhr.fr/2020/04/20/linux-host-name-resolution/", "title": "GNU/Linux host name resolution", "url": "https://www.gabriel.urdhr.fr/2020/04/20/linux-host-name-resolution/", "date_published": "2020-04-20T00:00:00+02:00", "date_modified": "2020-04-20T00:00:00+02:00", "tags": ["computer", "network", "dns", "system"], "content_html": "<p>This post describes different software components\ninvolved in host name resolutions and DNS configuration on GNU/Linux systems.\nIt consists of a diagram and some accompanying explanations.\nThe goal is to give some pointers and references to understand\nhow to troubleshoot host name/DNS resolution problems\nand configuration problems on GNU/Linux systems.</p>\n"}, {"id": "http://www.gabriel.urdhr.fr/2019/04/02/llmnr-mdns-cli-lookup/", "title": "Using dig as a LLMNR or mDNS CLI lookup utility", "url": "https://www.gabriel.urdhr.fr/2019/04/02/llmnr-mdns-cli-lookup/", "date_published": "2019-04-02T00:00:00+02:00", "date_modified": "2023-09-22T14:20:00+02:00", "tags": ["computer", "network", "dns", "llmnr", "mdns"], "content_html": "<p>I was looking for a LLMNR commandline lookup utility.\nActually, <code>dig</code> can do the job quite fine.</p>\n"}, {"id": "http://www.gabriel.urdhr.fr/2017/08/02/foo-over-ssh/", "title": "Foo over SSH", "url": "https://www.gabriel.urdhr.fr/2017/08/02/foo-over-ssh/", "date_published": "2017-08-02T00:00:00+02:00", "date_modified": "2017-08-02T00:00:00+02:00", "tags": ["computer", "network", "ssh", "unix"], "content_html": "<p>A comparison of the different solutions for using SSH2 as a secured\ntransport for protocols/services/applications.</p>\n"}, {"id": "http://www.gabriel.urdhr.fr/2016/08/07/openssh-proxyusefdpass/", "title": "OpenSSH ProxyUseFdPass", "url": "https://www.gabriel.urdhr.fr/2016/08/07/openssh-proxyusefdpass/", "date_published": "2016-08-07T00:00:00+02:00", "date_modified": "2025-03-28T15:37:22+01:00", "tags": ["computer", "network", "system", "ssh", "python", "unix"], "content_html": "<p>While looking at the OpenSSH <code>ssh_config</code> manpage, I found the\n<code>ProxyUseFdpass</code> configuration I did not know about.\nIt is apparently not widely known or used.</p>\n"}, {"id": "http://www.gabriel.urdhr.fr/2016/01/12/ip-over-udp-with-socat/", "title": "IP over UDP tunnel with socat", "url": "https://www.gabriel.urdhr.fr/2016/01/12/ip-over-udp-with-socat/", "date_published": "2016-01-12T00:00:00+01:00", "date_modified": "2016-01-12T00:00:00+01:00", "tags": ["computer", "network", "vpn", "tun"], "content_html": "<p>A simple way to create <a href=\"http://sites.inka.de/~W1011/devel/tcp-tcp.html\">IP over\nUDP</a> tunnels using\n<code>socat</code>.</p>\n"}, {"id": "http://www.gabriel.urdhr.fr/2015/12/09/dns-aggregator-tls/", "title": "DNS aggregation over TLS", "url": "https://www.gabriel.urdhr.fr/2015/12/09/dns-aggregator-tls/", "date_published": "2015-12-09T00:00:00+01:00", "date_modified": "2015-12-09T00:00:00+01:00", "tags": ["computer", "dns", "network", "tls", "privacy"], "content_html": "<p>In a <a href=\"https://www.gabriel.urdhr.fr/2015/02/14/recursive-dns-over-tls-over-tcp-443/\">previous\npost</a>, I tried\ndifferent solutions for tunnelling <a href=\"https://ant.isi.edu/tdns/index.html\">DNS over\nTLS</a>.  One of those solutions was\nusing a <a href=\"https://github.com/randomstuff/truncatednsd\">dedicated DNS-over-UDP fake\nservice</a> replying to all\nqueries with the truncate flag set: this was causing the stub\nresolvers to retry the query using a TCP-based virtual-circuit. This\nsolution is interesting because it is dead simple (it fits in a few\nline of codes) but it is clearly a hack. Here, I am using a dedicated\n<a href=\"https://github.com/randomstuff/dnsfwd\">DNS forwarder</a> aggregating all\nthe incoming DNS-over-UDP requests over a single persistent TCP\nvirtual-circuit.</p>\n"}, {"id": "http://www.gabriel.urdhr.fr/2015/02/15/broadband-protocol-stack/", "title": "The broadband protocol stacks", "url": "https://www.gabriel.urdhr.fr/2015/02/15/broadband-protocol-stack/", "date_published": "2015-02-15T00:00:00+01:00", "date_modified": "2021-05-25T21:27:22+02:00", "tags": ["computer", "network", "broadband", "dsl"], "content_html": "<p>The Broadband Forum as a lot of <a href=\"http://www.broadband-forum.org/technical/trlist.php\">technical\nreports</a> about\nthe xDSL architecture but it is not so easy to find a good description\nof the global architecture. Those are ASCII-art protocol stack I\ninferred from those documents. What is in there may be wrong, feel free\nto correct me.</p>\n"}, {"id": "http://www.gabriel.urdhr.fr/2015/02/14/recursive-dns-over-tls-over-tcp-443/", "title": "Recursive DNS over TLS over TCP 443", "url": "https://www.gabriel.urdhr.fr/2015/02/14/recursive-dns-over-tls-over-tcp-443/", "date_published": "2015-02-14T00:00:00+01:00", "date_modified": "2019-12-13T00:53:18+01:00", "tags": ["computer", "network", "dns", "tls", "privacy"], "content_html": "<p>You might want to use an open recursive DNS servers if your ISP's DNS\nserver is lying. However, if your network/ISP is intercepting all DNS\nrequests, a standard open recursive DNS server won't help. You might\nhave more luck by using an alternative port or by forcing the usage of\nTCP (<code>use-vc</code> option in recent versions of glibc) but it might not\nwork. Alternatively, you could want to talk to a (trusted) remote\nrecursive DNS server over secure channel such as TLS: by using DNS\nover TLS over TCP port 443 (the HTTP/TLS port), you should be able to\navoid most filtering between you and the recursive server.</p>\n"}]}