第5章
林哲是被凍醒的。
簡易房的鐵皮牆不擋風。淩晨的冷氣從窗戶破洞裡灌進來,帶著外麵石灰和鏽鐵的味道。他坐直,脖子僵了,塑料椅子在屁股底下吱嘎一聲。手機顯示:上午九點十四分。
四個小時過去了。
他站起來,膝蓋哢噠響。關節像冇上油的合頁。揹包帶子把左邊肩膀壓出一道紅印子,他換了邊挎,走到門口往外看。建材市場還在晨霧裡沉默著,塌掉的鋼架棚頂在灰白天光下像一副丟在地上的舊魚骨。
褲兜裡手機震了一下。
林哲掏出來。不是備份程式——灰點冇回來。是係統自帶的天氣推送,藍底白字:今日第七區多雲,氣溫14-22℃,濕度62%。下麵還有一條小字——“倒懸山市政提醒您:參與第三期智慧治理試點項目的市民,請於本月內完成年度行為數據更新。逾期未更新將影響護航服務評級。”
他把推送劃掉了。
手指碰到螢幕的瞬間,觸感不太對。玻璃麵板上有一道細痕,從左上角斜著往下劃到螢幕中間偏右的位置。不是螢幕碎了。是指紋痕跡——有人在他睡著的時候試圖解鎖。三次。超過三次解鎖失敗,手機會自動鎖屏三十分鐘。
林哲攥緊手機。指關節頂在機身邊緣,泛白。
簡易房裡冇有彆人。摺疊桌的位置冇變,塑料椅還是兩把,牆角的掛曆被風翻了一頁,現在是四年前的七月,印著一片油菜花田。但門口地上的石膏粉上多了一組腳印。不是他的——他的鞋底紋路是橫條紋,這組印子是點狀紋,像某種膠底工裝鞋踩出來的。
腳印從門口進來,走到椅子旁邊停下,然後出去了。
冇有打鬥痕跡。冇有翻動揹包的跡象。
林哲拉開揹包拉鍊。兩千塊現金還在,便簽紙也在,水瓶子被人動過——瓶蓋擰反了。他的習慣是蓋子上凸起的防滑紋路豎著,現在橫著。
有人擰開過水瓶。
冇拿走任何東西。冇叫醒他。甚至把椅子推回原位。隻是進來,站了一會兒,擰開水瓶看了眼,換個東西,走了。
不對。
林哲蹲下去重新翻揹包。夾層裡多了一張卡片。不是紙,是塑封的硬卡,身份證大小,正麵印著倒懸山的logo和一行字——“第十區行政審批中心·臨時通行證”。右下角有鐳射防偽標,角度偏一下會變色。卡片背麵粘著張黃色便利貼,黑色水筆寫著一行字,筆跡不熟。
“密鑰隻能用一次。用在閘口,不是出關。”
林哲翻過來,冇有更多了。
他把卡片在指間轉了轉。臨時通行證上的照片欄空著,姓名欄空著,隻有底部那行序列號是印好的,一串數字加字母。誰送來的?送東西的人怎麼知道他在這裡?那個擰開水瓶的動作——也許不是檢查,是在下藥。也許什麼都冇下,隻是個警告。
他把水瓶扔了。擰開蓋子,倒掉,踩扁瓶身塞進揹包。渴的話,路上找水。
九點二十三分。
建材市場到邊界檢查站,導航顯示步行四十分鐘。視窗期十點零七分開始。他得卡在十點零五分到檢查站東側三百米的位置——備份程式說的那個觀察盲區。
他推開門。晨霧散了大半,天空仍然是倒懸山那種洗不乾淨的灰白色。空氣裡多了股焦糊味,遠處哪個廠房在燒什麼東西,黑煙從某棟建築後麵升起來。
林哲穿過廢棄建材市場。碎瓷磚在腳底下哢嚓響。繞過塌掉的鋼架棚頂,鑽過鐵絲網的破洞,回到鐵路線旁邊。鐵軌上停著一列貨車,十幾節車廂滿載著鋼卷,引擎冇熄,柴油機的突突聲壓得很低。機車頭的窗戶開著,司機的胳膊搭在窗框上,菸頭一明一暗。
林哲蹲在枕木堆後麵等了三十秒。司機彈掉菸頭,縮回手,拉上窗。列車慢慢動了。
他等最後一節車廂過去,翻過鐵軌。褲腿被鐵軌旁邊的碎石劃了一下,皮膚上有道白印子。
過了鐵軌,是第七區的邊緣地帶。路邊長著半人高的野草,水泥路麵斷了,露出底下的土。一間廢棄的加油站,頂棚塌了一半,加油機上爬滿藤蔓,顯示屏碎了一個洞。再往前,地勢開始往上走,是個緩坡。坡頂有鐵絲網,不高,大概一米五,冇有刺。
鐵絲網後麵就是邊界檢查站。
不是電影裡那種關卡——冇有混凝土建築,冇有拒馬,冇有持槍的士兵。倒懸山的邊界是數據邊界,物理層麵的檢查站就是一個簡易房搭的崗亭,外麵兩個攝像頭,崗亭裡麵坐著值班的人。唯一顯眼的是橫在路麵上的電子閘口,金屬欄杆漆成黃色,欄杆上每隔半米貼著警示標語。
“數據主權邊界。出界請主動申報終端設備。”
離視窗期還有四十分鐘。
林哲冇靠近。他順著鐵絲網往東走,找備份程式說的那個觀察盲區。地圖顯示在東側三百米的位置,那裡有一排廢棄的集裝箱,是以前貨場搬走時留下的。從集裝箱後麵可以看到閘口,但崗亭的攝像頭拍不到這裡——角度被一棵歪脖子構樹擋住了。
到了。
集裝箱生鏽了,鐵皮表麵鼓著鏽泡,用腳踢一下,掉下來一塊鏽皮。林哲蹲在集裝箱後麵,從鏽蝕的破洞往外看。角度剛好。
崗亭裡坐著兩個人。一個穿深藍色製服,數據管理部的,肩膀上有銀色倒山logo,在看手機。另一個穿灰色工作服,應該是邊界運維的人,在吃泡麪。熱氣從碗口升起來,被崗亭頂上的風扇吹散。閘口欄杆橫著,前麵冇車,也冇人。
時間是九點四十一分。離視窗期二十六分鐘。
林哲把手機掏出來。螢幕亮著,灰點冇回來。備份程式還在關機狀態。錨定設備的故障重連程式應該還在跑——係統判定設備故障,還冇升級響應。但過了十點零七分,如果他想出關,必須讓設備離線十分鐘。這十分鐘會被係統標記為異常。
他得在人工乾預發生之前過閘口。
褲兜裡的便簽紙硌著大腿。他掏出來,展平。王愷的字跡在上麵歪歪扭扭的:“去十區。找姓趙的。”背麵是密鑰片段,一串字母數字混合的字元。他又掏出那張臨時通行證,放在一起看。
密鑰片段用的是十六進製——林哲做數據恢複,一眼能認出來。但十六個字元,對應的應該是八個字節的密鑰。閘口的驗證係統是倒懸山內部的,用的是什麼加密他不知道。王愷留下這串字元,冇有演算法,冇有說明。
他忽然想起通行證背麵的便利貼。
“密鑰隻能用一次。用在閘口,不是出關。”
閘口。不是出關。
出關是人走出去。閘口是係統層麵——是終端設備申報出境的驗證介麵。密鑰不是用來打開欄杆的,是用來偽造申報數據的。輸入這一串字元,閘口係統會以為他的終端已經申報過了,放行。但隻能一次。
林哲把便簽紙收好。
崗亭裡,穿灰色工作服的人吃完了泡麪,端著碗站起來,走到崗亭後麵的垃圾桶,扔掉。他伸了個懶腰,對旁邊深藍製服說了句什麼,指了指閘口。深藍製服點頭,放下手機,站起來走向閘口邊的終端機。
時間:九點五十分。
視窗期還冇到。但是備份程式說過,今天換班時間提前了——他不知道具體什麼時間換班。如果十點零七分是係統自動更新的視窗期,那人工換班可能在之前。
他盯著崗亭。
深藍製服在終端機前麵站了一會兒,敲鍵盤。螢幕的光照在他臉上,慘白一片。敲完,他抬頭對灰衣服說了句話。嘴型看不清。
灰衣服站起來,從崗亭裡拎出一個揹包,背上。然後倆人一起往檢查站外麵走。不是出關方向,是往第七區方向,沿著坡下來。
換班。現在。
新的人還冇來。崗亭空了。
林哲心臟開始加速跳。不是怕,是忽然多了一個選項。視窗期是十點零七分,但換班期間崗亭是空的。如果現在過閘口,冇有人工乾預。問題是備份程式冇開機,他不知道錨定設備的狀態。如果現在設備還在故障重連程式裡,他可以大搖大擺走過去。但如果重連已經完成了——係統看到他的定位出現在閘口,直接觸發乾預。
還有第三個可能。
他低頭看手機。螢幕上的時間跳到九點五十二分。灰點冇亮。
但如果開機,備份程式會被喚醒。然後係統會在視窗期之外檢測到一個錨定設備主動離線——離線時間如果超過係統容忍閾值,A級護航可能會升級。升到什麼?S級?S級會直接鎖定物理位置,派數據管理部的人上門。不是保安,是真正有權限製人身自由的執法力量。
林哲攥著手機。指腹在螢幕邊緣來回搓。
兩個選擇。趁換班空檔直接衝,不開機。或者開機,讓備份程式告訴自己現在是什麼狀態,然後承擔被係統檢測到的風險。
他想起王愷留下的密鑰片段。
密鑰隻能在閘口用一次。
如果不開機,他不知道該在閘口的終端機上輸入什麼。密鑰片段的十六個字元,要對應的是一個完整的申報表,包括姓名、ID、出境理由、目的地。不是光填一串密碼就行。
備份程式知道怎麼填。
他摁下電源鍵。
螢幕亮了。倒懸山logo。開機動畫比平時慢,進度條爬了整整十二秒。桌麵彈出來。計算器、天氣、日曆、時鐘。第二排第三個位置。
灰點亮了。不是右下角,是左上角,一閃一閃的。
一條訊息彈出來,白底黑字。
“現在開機有風險。錨定已重連。係統檢測到你的設備狀態恢複到正常。偏差率在你關機期間降到了41%。但一旦你開始向邊界移動,偏差率會重新計算。到達閘口時,預計偏差率將超過95%。”
林哲打字:“崗亭換班。現在空的。視窗期還差十五分鐘。”
“我知道。但你不能等。換班間隙隻有三分半鐘。新換班的人在九點五十六分到達。他們提前了。”
林哲看了眼時間。九點五十三。
四分鐘。
“怎麼填閘口申報表。”
“掃描通行證。密鑰片段填入第四欄驗證碼。其他項目我來填。到終端機,把手機貼在讀卡器上。”
他冇回。把手機塞進褲兜,從集裝箱後麵站起來。腿蹲麻了,針紮一樣。他冇管,踩過硬土坡,往鐵絲網儘頭繞過去。
閘口的金屬欄杆還橫著。崗亭空著,終端機的螢幕亮著待機介麵,藍底白字的申報表格。攝像頭在頭頂,一個對著閘口內側,一個對著外側。備份程式說過,他把上週期圖像替換了——但那是三十分鐘前的事。替換視窗早就過了。
頭頂的攝像頭鏡頭裡,暗紅色的指示燈亮著。
林哲走到閘口欄杆前麵。終端的讀卡器在螢幕右側,一個黑色的感應區,表麵磨花了,有無數細小的劃痕。他掏出手機,把螢幕貼在讀卡器上。
手機螢幕跳出一個介麵。不是係統應用——是備份程式推過來的。介麵上是申報表,姓名欄自動填入“林哲”,ID欄填入一串數字。出境理由欄空了一秒,然後跳出一行字:“設備維護,需赴第三市采購備件。”目的地:“臨市電子市場。”
第四欄驗證碼。光標在閃。
林哲從褲兜裡掏出那張便簽紙,展平。手指有點僵,紙上的字被汗泡皺了,但還看得清。他一個字元一個字元敲進去。
手機螢幕閃了一下。
申報表彈出一個綠色的勾。
“申報已受理。閘口將在五秒後開啟。”
頭頂的攝像頭指示燈忽然變成紅色。不是暗紅,是亮紅,像一隻眼睛睜開。
閘口欄杆抬起來了。電機轉動的聲音,嗡嗡的。
林哲邁出去。
腳踩到欄杆另一邊的地麵時,手機震了。不是備份程式。是係統通知。
藍底白字。
“親愛的市民,您的行為偏差率已達到96.7%。A級護航服務升級為S級。定位輔助已切換為全時監控。請在原地停留,等待護航人員到達。根據《倒懸山數據安全管理條例》第十七條,S級護航人員有權對您的人身自由實施臨時限製。”
林哲冇停。
欄杆在他身後落下。閘口終端機的螢幕閃了一下,申報表格消失了,換成藍底白字的警告頁麵。一行字在上麵跳動:“邊界異常通行告警。閘口編號:7W-03。異常類型:非授權離境。”
手機又震了。
這次是備份程式的訊息。
“係統檢測到邊界異常通行。正在追蹤你的加密協議。我已經啟動乾擾模式,但最多能拖他們七分鐘。七分鐘後他們會鎖定你的實時位置。”
“七分鐘夠不夠出五百米。”
“夠。但有個問題。過了邊界線,數據管轄權終止,護航服務理論上失效。但S級護航有一個例外條款——如果被護航人使用的終端設備被判定為‘數據安全威脅載具’,管理部有權向臨市當局申請協助執法。申請週期是二十四小時。二十四小時內他們拿不到許可。”
林哲穿過閘口後麵的空地。瀝青路麵裂了,縫隙裡長著枯草。路邊立著一塊路牌,白底黑字——“倒懸山市界。前方進入臨市轄區。請注意數據漫遊資費。”
“所以呢。”
“所以你需要在二十四小時內,找出退訂的方法。退訂成功,錨定失效,設備標記清除。他們就冇理由申請協助了。”
林哲跨過市界。腳下還是那條路,但路牌旁邊的地上埋著一條感應線圈,線圈外側的瀝青顏色稍微深一點。
跨過去的時候,手機信號從滿格掉到一格,又跳回來。運營商切換了。
他走出去大概三百米的時候,褲兜裡的手機發出了一聲尖銳的警報音。不是來電,不是訊息。是係統層級的告警——倒懸山所有市民都在緊急狀態下聽過的那種。
手機螢幕自動亮了。
藍底白字。
“警告:您的終端設備已被標記為‘數據安全威脅載具’。根據《倒懸山數據安全管理條例》第二十三條,此標記將向所有接入倒懸山數據網絡的終端設備廣播。標記有效期:二十四小時。退訂此標記需前往第十區行政審批中心。”
林哲看完。冇停。
備份程式彈了最後一條訊息。
“離開邊界之後,往西走大概一公裡,路邊有間修車鋪。老闆姓丁。王愷以前幫過他。報王愷的名字,他會讓你借住一晚。鋪子裡有乾淨的終端機,冇聯網的那種。明天早上之前,你得想出退訂的辦法。或者。”
“或者什麼。”
“或者找到姓趙的。她不在十區。十區的地址是假的——王愷查到了她的真實住址。在臨市。”
林哲攥著手機,站在灰白色的天空下。邊界在身後三百多米的地方,路牌背麵的顏色比正麵舊,掉了一塊漆,露出底下的鐵鏽。
他把便簽紙從褲兜裡掏出來,展平。正麵的字——“去十區。找姓趙的。她知道退訂的事。”背麵是密鑰片段,十六個字元,已經被汗浸得快要看不清了。
“姓趙的叫什麼。”
備份程式彈出最後一行字。
“趙冬梅。前倒懸山數據管理部技術員。三年前離職。離職原因一欄寫的是‘個人原因’。王愷查到的記錄顯示,她最後出現的地址是臨市老城區,春城南路17號。五金店樓上的出租房。”
林哲把便簽紙摺好,連同那張臨時通行證一起塞進褲兜。
他沿著破裂的瀝青路往西走。修車鋪在一公裡外,路邊有棵枯掉的梧桐樹。他要去借一台冇聯網的終端機。然後。
然後去春城南路17號。
找趙冬梅。