[PR #124] feat(junk): add protocol mimicry tags for DPI evasion #196

Open
opened 2026-10-13 21:07:31 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/amnezia-vpn/amneziawg-linux-kernel-module/pull/124
Author: @yoloshii
Created: 12/1/2025
Status: 🔄 Open

Base: master ← Head: feature/protocol-mimicry-tags


📝 Commits (1)

  • f530a66 feat(junk): add protocol mimicry tags for DPI evasion

📊 Changes

1 file changed (+238 additions, -0 deletions)

View changed files

📝 src/junk.c (+238 -0)

📄 Description

Summary

  • Add <quic>, <dns>, and <tls> tags for one-line protocol mimicry
  • Eliminates need for manual Wireshark capture of hex blobs
  • Static RFC-compliant templates with dynamic field randomization at send time

New Tags

Tag Protocol Size Randomized Fields RFC
<quic> QUIC Initial 1200 bytes DCID, SCID, packet number, padding 9000
<dns> DNS Query 33 bytes Transaction ID 1035
<tls> TLS 1.3 ClientHello 185 bytes ClientRandom, SessionID, key_share 8446

Usage Example

[Interface]
PrivateKey = ...
I1 = <quic>
I2 = <dns>
I3 = <tls>

Implementation Details

  • 238 lines of kernel code in src/junk.c
  • Uses get_random_bytes() for cryptographic randomness
  • Modifier functions called at packet send time
  • Backward compatible with existing tags (<b>, <c>, <t>, <r>, <rc>, <rd>)

Test Plan

  • Kernel module compiles without warnings
  • Tags parse correctly in config
  • Wireshark shows valid protocol headers
  • Dynamic fields change per-packet

🤖 Generated with Claude Code


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/amnezia-vpn/amneziawg-linux-kernel-module/pull/124 **Author:** [@yoloshii](https://github.com/yoloshii) **Created:** 12/1/2025 **Status:** 🔄 Open **Base:** `master` ← **Head:** `feature/protocol-mimicry-tags` --- ### 📝 Commits (1) - [`f530a66`](https://github.com/amnezia-vpn/amneziawg-linux-kernel-module/commit/f530a6606be0c118f4196354bd232e658e2007b7) feat(junk): add protocol mimicry tags for DPI evasion ### 📊 Changes **1 file changed** (+238 additions, -0 deletions) <details> <summary>View changed files</summary> 📝 `src/junk.c` (+238 -0) </details> ### 📄 Description ## Summary - Add `<quic>`, `<dns>`, and `<tls>` tags for one-line protocol mimicry - Eliminates need for manual Wireshark capture of hex blobs - Static RFC-compliant templates with dynamic field randomization at send time ## New Tags | Tag | Protocol | Size | Randomized Fields | RFC | |-----|----------|------|-------------------|-----| | `<quic>` | QUIC Initial | 1200 bytes | DCID, SCID, packet number, padding | 9000 | | `<dns>` | DNS Query | 33 bytes | Transaction ID | 1035 | | `<tls>` | TLS 1.3 ClientHello | 185 bytes | ClientRandom, SessionID, key_share | 8446 | ## Usage Example ```ini [Interface] PrivateKey = ... I1 = <quic> I2 = <dns> I3 = <tls> ``` ## Implementation Details - 238 lines of kernel code in `src/junk.c` - Uses `get_random_bytes()` for cryptographic randomness - Modifier functions called at packet send time - Backward compatible with existing tags (`<b>`, `<c>`, `<t>`, `<r>`, `<rc>`, `<rd>`) ## Test Plan - [ ] Kernel module compiles without warnings - [ ] Tags parse correctly in config - [ ] Wireshark shows valid protocol headers - [ ] Dynamic fields change per-packet 🤖 Generated with [Claude Code](https://claude.com/claude-code) --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Sign in to join this conversation.
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
amnezia-vpn/amneziawg-linux-kernel-module#196
No description provided.