Chapter 13 · The Honeypot
Farhan locked himself in the shielded room for three weeks. Not an exaggeration — he literally didn’t leave that underground space for more than two hours at a time. Sister Shen left meals on the metal rack outside the door every day, knocked twice, and left immediately. Occasionally someone caught a glimpse of him through the crack in the door — hunched in front of the monitors, code scrolling like a waterfall, his hair longer than three weeks ago, his eyes sunken like a man who’d been living in a tunnel for months.
Lu Yuan spent his time feeding his daughter, giving her medicine, putting her to bed — and the rest of the time standing outside the shielded room’s door. He didn’t knock. He just waited.
On the last night of the third week, the door opened.
Farhan stood in the frame with an expression Lu Yuan had never seen before — not fatigue, not the thrill of success, but something between fear and confusion, profoundly alien. In his hand he held the cable of a portable hard drive, the cord wrapped around his fingers several times, gripped tight enough to turn his knuckles white.
“Come look.” His voice was hoarse, like sandpaper on wood.
Lu Yuan walked into the shielded room. The air smelled of the acrid tang of electronic components running hot for too long, mixed with the scent of Farhan’s three-week-unwashed body. Three monitors sat side by side, each covered in dense data windows — spectrum analysis, protocol stack comparisons, firmware disassembly, formal verification tool output. He scanned through them line by line.
Then he saw the conclusion.
Farhan didn’t make him guess. He opened a file on the center monitor. The title bar read: Vulnerability ML-Core-7 · Formal Verification Report · Round 47. The abstract was a single paragraph, default font size, no bold, no highlight — as ordinary as a routine experimental result. But after Lu Yuan read it, he felt a cold sweat slowly seeping across his back.
Abstract: Target code segment (ML-Core-7, firmware offset 0x7A3F_1C44-0x7A3F_1D8F) exhibits vulnerability characteristics under all 1,247 known attack models. Further analysis indicates: this code segment exhibits systematic stylistic deviation from the rest of the firmware — variable naming conventions inconsistent, comment density mismatched with surrounding code, exception handling paths abnormally complete. Comprehensive assessment: this code segment does not satisfy the statistical distribution of naturally occurring software defects. It has been intentionally inserted.
Farhan said nothing. He opened another window — the output of an automated comparison tool he’d built over the past three weeks. The tool had compared the “vulnerability” code segment against more than six thousand other modules in the Starlink firmware across multiple dimensions, generating a visualization radar chart. On all seven axes — variable naming, comment frequency, error handling completeness, boundary condition coverage — the vulnerability’s score deviated wildly from the firmware’s baseline distribution. Not by a small margin. It was so far off it belonged to a different species.
Lu Yuan stared at that radar chart for a long time. He felt his brain actively resisting the implication of the conclusion, but his engineering intuition had already completed the assessment ahead of his conscious reasoning.
“Real system vulnerabilities,” Farhan’s voice came from behind him, like a man talking to himself, “usually come with inconsistent signatures — the development team changed hands, drafts were discarded, edge cases were overlooked. They have fingerprints. They’re not perfect. When you find a vulnerability in firmware, you should see traces of human imperfection around it — rough boundary handling, commented-out debug code, two or three unhandled branches.”
He paused.
“But this vulnerability — it’s too clean. Clean as a textbook exercise. No unhandled branches. No missed boundaries. Not a single exposed thread. Like a teacher leaving a perfectly solved problem on the desk, waiting for a student to copy it.”
Lu Yuan finally spoke. His voice was calmer than he’d expected: “That’s not a vulnerability. It’s a carefully designed backdoor. It’s waiting for us to walk in.”
Farhan nodded. The motion was slight, but Lu Yuan could see his left hand, hanging at his side, trembling faintly — not from fear, but from the physiological tremor of adrenaline receding after the worst-case suspicion was confirmed.
“In the last round of verification, I traced the backdoor’s parent module,” Farhan said, his voice suppressing something. “It sits under a Starlink core network module — Ingress-7 Protocol. Its signature chain traces all the way back to Milan Vojnović’s private development environment.”
Lu Yuan didn’t respond. The cooling fan inside the shielded room hummed at a low frequency, a nearly white-noise drone. He felt like he was standing at a great depth, the weight above him increasing by the second.
“You —” Lu Yuan’s voice caught. “You’re sure?”
“Every code commit from Milan has a unique compiler signature. Compiler version, optimization flags, system timestamp encoding — every developer’s environment leaves an unforgeable fingerprint in the binary.” Farhan typed a few commands and opened a window. “Compared three sample sets: one from Milan’s public commits, one from anonymous commits of other Starlink firmware modules, and one from this vulnerability’s binary fingerprint. Match: 99.8%.”
Lu Yuan didn’t ask for further confirmation. He sat down on the chair beside Farhan. One of its legs was slightly short — it wobbled when he sat. He didn’t steady it, letting the wobble continue for a few seconds.
“Our SkyWalker — it’s been traceable from day one,” he said slowly. It wasn’t a question.
“Every communication, every data packet injection, every bit of information transmitted through the QKD side channel — it’s all been tagged. Not the content — the content is encrypted. But the connection itself — when it happened, which satellite relayed it, the data volume, the routing path — all that metadata has been mirrored to Milan’s audit system.”
Farhan’s voice had no emotional inflection anymore — it was the mechanical stability of a man whose mental resources had been burned to ash. “Three weeks. We thought we were building a secret tunnel in the dark. We were actually building it under a searchlight.”
The shielded room was silent for a long time. The ventilation duct overhead carried the low rumble of distant server racks — like some enormous animal breathing slowly, trapped deep underground.
Lu Yuan stood up and walked to the wall of the shielded room. The copper mesh covering the walls felt cool and metallic under his fingers, the sensation traveling from his skin deep into his skull. He pressed his forehead against the copper mesh and stood there with his eyes closed for about ten seconds.
“Got a cigarette?” he asked.
“I don’t smoke.”
“Neither do I.” Lu Yuan lifted his forehead from the copper mesh and turned around. “But we might need one.”
They didn’t have cigarettes. Lu Yuan fished an ice cube from a glass of three-day-old water on the desk and put it in his mouth. The cold cleared his thoughts slightly.
“Keep reading the logs,” he said. “Milan’s design logs. You’ve only seen the beginning.”
Farhan looked at him — not a confirming glance, but something closer to a surprised reassessment.
“You don’t want to give up?”
“My daughter has twenty-three days of medicine left,” Lu Yuan said. “Twenty-three days from now, if SkyWalker isn’t operational — trap or not — she’ll run out. Trap or not makes no difference to the outcome. The only difference is whether she still has her medicine before I get caught.”
Farhan said nothing more. He turned back to the screen and opened the decryption task that had been running in the background for three days.
The decryption program had completed at 100%. A line of green text at the bottom read: Decryption complete · Output directory: /home/farhan/analysis/milan_logs/
He opened the output directory. About three hundred files — not complete diaries, but fragments of Milan’s technical design logs, leaked by Farhan’s anonymous contact from cold storage in Starlink’s internal version control system. The logs spanned from 2049 to 2055, not continuous — entries every few weeks or months. But across those fragments, one theme recurred.
Farhan sorted by time and started from the earliest entry.
2049.03.11 Project: Ingress-7 Protocol. Preliminary architecture review complete. An unexpected clause appears in the requirements document: “The audit module shall support automatic tagging and attribution of fake terminal connections.” This requirement originated from upper management, not the technical team. I raised no objection. But I reserved an additional conditional branch in the architecture — it has no corresponding entry in the requirements document. Recorded here for future reference.
2050.07.28 Phase 1 audit implementation for Ingress-7 submitted. Core logic: allow unauthorized terminals to establish connections (violating Ingress-3’s authentication policy), but all traffic is tagged and mirrored to the central audit system’s isolated storage. Intended use: tracking the source of high-level threats. By design — this is a perfect honeypot. I don’t know who will walk into it yet. But I know that if someone does, I’ll know who they are, where they came from, and what they wanted to do.
2051.12.04 Today I sat down at the terminal and asked myself a question: what if the honeypot catches not prey — but a hunter?
Farhan’s fingers stopped on the touchpad. He glanced back at Lu Yuan. Lu Yuan had seen the sentence too, but he didn’t speak — he just gestured with his chin for Farhan to keep scrolling.
2052.01.19 I’m rereading a comment I wrote in 2049. It’s buried in a firmware region no one would ever check — the bootloader’s exception handling branch, a code path that only executes when the system crashes. I wrote: “Every trap is bidirectional.” I’m not sure what I was thinking when I wrote that five years ago. But reading it today, I suddenly smiled — not a happy smile — it felt like being reminded of something by my five-years-younger self.
2052.03.08 What would happen if I hid a nested backdoor inside the audit ingress — an entry that no audit system would ever record? I’m asking myself this question. It’s not in the requirements document. Not authorized by management. Not something I could explain to anyone. But it’s technically feasible. The Ingress-7 audit module needs to read connection logs from the core network’s routing table and write them to isolated storage. What if I insert a condition during the “reading” process — when certain specific connection characteristics appear — instead of writing to isolated storage, it writes to another address space. An address space recorded in no routing table.
The log broke off there. The next entry was dated 2052.09.
2052.09.22 I built the nested backdoor. It took me sixty-three days. Most of the work was done late at night, in hotel rooms — I refuse to disclose which hotels I stayed at during business trips, I don’t want any location records that could be correlated. The nested backdoor’s activation condition is a specific set of QKD channel noise characteristics — not signal content, but the physical layer noise pattern itself. Like a lock whose key is not data, but a physical layer feature that exists before data is born. I don’t know when I’ll use this key. Maybe never. But I put it there.
Farhan’s breathing had become shallow.
He kept scrolling — the later logs gradually shifted away from technical topics, more about Milan’s personal thoughts. An entry from 2053 mentioned “Mia not answering my calls for the first time.” An entry from 2054 was a single sentence: “Ingress-7 has been triggered. Not by my people. By someone I didn’t expect. I didn’t flag it. I don’t know why I didn’t flag it.”
The last log entry was timestamped 2055.12.
2055.12.31 New Year’s Eve. Belgrade, rain. I sat in my office listening to the rain. Ingress-7 was triggered forty-seven times in the past year. Forty-seven different people walked through the door I designed seven years ago. Not one of them knew that door was left there by me. They all thought they were clever — that they’d found a vulnerability in Starlink. But they found what I put there for them to find. But — Of those forty-seven triggers, one was different. One terminal, after triggering Ingress-7, did not follow the expected path. Its connection pattern wasn’t stealing bandwidth, wasn’t cracking accounts — it was reading the QKD channel’s metadata. It was learning Starlink’s noise signature. It was digging a small tunnel beside the trap I designed. I don’t know who it was. But I want to.
The logs ended there. No continuation.
Farhan leaned back in his chair. The blue glow of the three monitors reflected on his face. His eyes were bloodshot, his lips cracked, he looked like a man who’d just been pulled from a long drowning. But there was a light in his pupils — not excitement, but something extremely complex, a mixture of fear and hope.
“This madman —” Farhan’s voice was so hoarse it was barely audible. “He hid another entrance under his own honeypot. One that not even Starlink’s audit system knows about. He may never have told anyone. He may not even be sure he wants to use it — but he put it there.”
Lu Yuan stood in front of the screen, running those log fragments through his mind again. His thoughts were heating up in a way he could feel — fragments were assembling into an image he couldn’t believe but couldn’t deny either.
“Milan deliberately left the signal fingerprint cloning vulnerability for Farhan to find. Then he designed a honeypot inside the Ingress-7 protocol that Farhan would inevitably discover — a perfect trap. But beneath the honeypot, he concealed another door — one he recorded in no document, told no one about.”
Lu Yuan spoke, his voice growing slower, like someone walking a path he didn’t quite trust.
“The nested backdoor he wrote about in the logs — its activation condition is QKD channel noise characteristics. Not ordinary noise characteristics. The characteristics of the future SkyWalker protocol.”
Farhan turned to look at him. Their eyes met in the dim light of the shielded room.
“Milan was waiting for his own trap to be found,” Lu Yuan said. “And then he was waiting for whoever found it to be smart enough to keep digging.”
“He’s a man who built his traps as signposts.”
They were both silent.
The silence in the shielded room lasted about twenty seconds. Then Farhan let out a very soft laugh — not happiness, but the almost unhinged laugh of someone who, in the depths of exhaustion, had finally glimpsed something.
“You know,” he said, “I spent three years reverse-engineering Starlink’s firmware, two more finding Ingress-7, and three weeks confirming it was a trap. I thought I’d already lost.”
He turned back to the screen, the cursor blinking in the terminal window.
“But if Milan hid another layer beneath the trap — if those logs are real — then we haven’t lost everything yet.”
“Maybe Milan — maybe he wanted someone to win.”
Belgrade, the same moment.
Milan sat in front of his office terminal, the main light off. The room’s only illumination came from the backlight of three screens, casting blurry blue-white outlines on the walls. Outside the window, sparse lights flickered on the opposite bank of the Danube. Rain was falling — not a downpour, but the unhurried European autumn rain that could last for days, tapping against the glass in a fine, steady rhythm.
He had been sitting here for three hours.
The screens displayed the Data Party’s recent activity patterns. Farhan’s SkyWalker test signals — the voids hidden in QKD channel metadata — appeared in his audit system, tagged, classified, archived. Everything was functioning as the trap was designed. The honeypot was being triggered. The audit system was recording. The analysis algorithms were mapping the target network’s organizational topology.
The seed he had planted three years ago was growing exactly as he had anticipated.
But he had not closed the nested backdoor.
He opened the private directory that only he knew about — an address space hidden in the bootloader’s exception handling branch, recorded in no design document anywhere. The access log showed: last accessed thirty-four months ago, when he himself had opened it during a late-night debugging session. No one had touched it since.
It was still there. Intact. Quiet. Like a key that had never been used, hidden behind a loose brick.
Milan placed his fingers on the keyboard but didn’t press down.
What was he thinking? He wasn’t entirely sure himself.
He was thinking about Lu Yuan — the Chinese man. He had already reviewed his complete trajectory in the audit system: from the initial signal clone to save his daughter, to being hunted by Silas, to being connected to the Data Party by Farhan, to the development of the SkyWalker protocol, to the Lagos trip. Every step had been within Milan’s expectations — except one variable.
That variable was small — small enough to be almost negligible.
But Milan had noticed it.
Of all the intruders, Lu Yuan was the only one who, after seeing the vulnerability in Starlink — didn’t immediately exploit it for profit, didn’t use it to distribute data, didn’t use it to prove how smart he was. He saw the vulnerability, fixed his phone, said thank you, and left.
That detail bothered Milan in a way he couldn’t explain.
His gaze settled on the icon of the nested backdoor on the screen — a folder he had never named, labeled only with a hexadecimal code. Inside it was code he had written over sixty-three days, code that had never been compiled into any formal firmware release. He had written the last line at four in the morning on September 22, 2052, and then locked the directory.
He was waiting for someone who could make it this far.
But now that the person had actually arrived, Milan found himself sitting at the terminal, his fingers hovering above the keyboard, pressing nothing.
His daughter was on the Data Party’s side.
His trap was being triggered.
His nested backdoor was waiting to be used.
And he — the one who had designed everything — suddenly didn’t know which door he wanted to open.
He stood up and walked to the window. The rain was still falling. The roofs of Belgrade’s old town glistened with dark wetness under the rainy night sky. He remembered the words his father had said when he walked out the door in the winter of 1991: “Make sure the line is connected.”
He had spent thirty years building the most massive communication line humanity had ever seen.
But was the line connected? Had he really connected anyone?
Milan pressed his palm against the cold glass. Rainwater streamed down the other side of the pane, blurring his fingerprints and palm lines into a single smear.
He walked back to the desk. He didn’t touch the nested backdoor.
He opened his diary, picked up a fountain pen, and wrote a single line:
2057.09.12. Honeypot triggered. Level three. They found the first layer. Now they’re looking for the second. I haven’t decided whether to let them find it.
He closed the notebook.
The rain outside grew heavier. One hundred and twenty thousand satellites were flying overhead at seven kilometers per second. Inside the code circulating through them, a small fragment — a piece never checked into any version control system — existed silently across gigabytes of firmware.
Like a letter that was never sent, tucked between the pages of a book no one reads.
Milan turned off the screens.
In the darkness, he sat in his office chair, motionless.
He was waiting.
For tomorrow.