第4章 第 4 章
鬧鐘在凌晨五點半震動,聲音被她手掌按停時,還帶著一點不甘心的尾音。溫若棠睜開眼,天仍舊灰藍,窗外霓虹在未乾的水痕裡拖出細長的光線,像一條條被拉長的訊號。
她沒立刻起身。身邊的位置空著,床單平整得像沒人躺過。她把視線移向門縫,客廳那盞小燈還亮著,光落在走道上,勉強把陰影切出邊界。
她穿上拖鞋,走出去時腳步刻意放輕。客廳裡,程砚行坐在窗邊,背對她,外套搭在椅背上,襯衫袖口捲到手肘。他面前的筆電螢幕亮著一塊淡淡的白,旁邊是一杯早就冷掉的黑咖啡。城市還沒醒,他已經把整個晚上拆成一格格可處理的時間片。
溫若棠站在他身後兩步,沒出聲,先看他的肩線。那種安靜不是溫柔的安靜,是警戒的安靜,像一條緊繃的弦。她忽然想到他昨晚說的那句「先相信我一晚」,心口微微一酸,像有人把一句話放在她掌心,而她怕自己握不住。
程砚行沒有回頭,卻像從她呼吸的節奏裡捕捉到她的存在。「醒了?」
「嗯。」她的聲音剛起來,帶著一點乾澀,但仍努力平穩,「你沒睡?」
「睡不重要。」他說完,像覺得這句太像敷衍,又補了一句更像報告的話,「orion-svc凌晨三點四十七被喚醒一次,沒有走我們排程。觸發的不是內部token,是外部的測試請求。來源在公司附近。」
溫若棠走近些,視線落在螢幕上的log,仍看不懂那些縮寫和時間戳,卻看得懂他眼裡那種不願放過任何異常的冷。「所以不是昨晚那個IP?」
「同一個出口段。」他手指在觸控板上滑動,把一段地圖截圖拉出來,標記停在一間二十四小時咖啡廳附近,「這裡有公共Wi-Fi,也有幾家共享辦公。跳板很好藏。」
她心裡那種被盯著的感覺又爬上來,像冷水貼著背。「他們真的在附近。」
「嗯。」程砚行把螢幕合上一半,像終於允許資訊暫停流動,「六點到公司,沈予安那邊會把簡訊網關的供應商和內部名單對一遍。六點半出門去醫院,走西側門。你手機今天只開加密那支,原本那支關機,放防RF的袋子。」
他把一個黑色的小袋子放到茶几上,像在交付一件無關情緒的工具。
溫若棠看著那袋子,忽然想起自己昨晚提出的要求。她說如果她害怕,她會說;他答應要看著她。可現在他開口的每一句,仍然是方案、流程、排程。她不怪他,甚至因為這些方案而心安,但她知道自己如果又把需求吞回去,下一次她可能就再也說不出口。
她吸了一口氣,聲音很輕:「你也要吃點東西。」
程砚行看她一眼,像在判斷這是不是另一種「你不用管我」的委婉。他沒反駁,只起身去洗手台倒水,拿了兩片吐司,動作快得像把「照顧自己」也當成任務完成。
溫若棠進浴室洗臉時,鏡子裡的自己眼下有淡淡的青。她把頭髮紮起來,抹上薄薄的遮瑕,動作熟練得像每次要上台做簡報前的自我修復。可遮住的只是顏色,遮不住那種心裡被拉扯的空。
她換好衣服出來,程砚行已經把兩支手機處理好,一支進袋子,一支貼上新的保護膜。他把加密手機遞給她時,指尖很短暫碰到她的手背,溫度很低,像整夜都在冷光下工作。
「今天你不用回任何人。」他說,「包括許婧澄。」
話音剛落,像被他叫了名,桌上的另一支手機亮起來,來電顯示是一串公司助理的號碼。
溫若棠心口一緊,下意識伸手想接,又想起他說的「不用回」。她停住,抬眼看他。
程砚行伸手按掉,沒有猶豫。「等我們從公司出來再看。現在回覆會透露你醒了、你在哪、你焦慮什麼。」
他說得合理,像每個字都經過防火牆。但溫若棠仍忍不住問:「如果是她急著加條款呢?」
「那更不能讓她知道你現在被拖著跑。」程砚行看著她,語氣仍平,卻多了一點不容退讓,「她會把你的分心當成折價。」
溫若棠把那句「折價」吞進喉嚨裡,苦味卻留在舌根。她點頭,沒再說什麼,拎起包跟他出門。
電梯下行時,金屬牆面映出兩人的影子。她站得筆直,像任何一個準備上班的產品經理;他站在她斜後方,手插在口袋,眼神落在電梯門縫的反光上,像在看一條可能出現的縫隙。
「等下到公司。」他忽然開口,「你跟沈予安看同一份資料就好,不要分開。有人想用你當入口。」
溫若棠輕輕「嗯」了一聲。她把自己一直想問的那句壓著:你會不會也把我當入口。她知道自己不能在這種時候問這句話,問了會像在挑剔他的保護方式。
停車場冷光刺眼,車窗內側起了薄霧。程砚行發動引擎,暖氣沒開太大,怕讓玻璃起更多霧。他一路開得很穩,車內安靜得只剩雨刷偶爾掃過的聲音。
溫若棠看著窗外街景往後退,突然意識到自己正在進入一個由他制定的作戰圖。她不是被推著走的那個人,她昨天已經答應要並肩。她把手放在膝上,指尖互相扣住,像在固定自己的勇氣。
公司大樓在六點十分前還沒完全亮起來,大廳只有保全和清潔人員。電梯開到他們樓層時,走廊燈一盞盞感應亮起,像程序逐步啟動。
沈予安的工位燈已經亮著。他穿著帽T,頭髮亂得像剛被風扯過,桌上攤著兩台筆電、一個路由器樣的設備,還有一杯便利商店咖啡,杯蓋沒蓋好,像隨時準備打翻。
「六點公司。」他抬頭看見他們,先丟出一句像嘲諷的招呼,「你們這同居效率不錯啊,連加班都變成夫妻晨跑。」
溫若棠忍住笑意,嘴角只動了一下。「你也很早。」
「我不早,誰來救你們兩個天才。」沈予安把椅子往後一滑,視線掃過程砚行,「尤其是某位只會把人當系統節點的。」
程砚行沒接招,直接把加密手機放在桌上。「簡訊網關的供應商查到了?」
沈予安把一份資料丟到他們面前,像把牌攤開。「查到一半。那則簡訊是網關偽造沒錯,走的是一個第三方簡訊聚合商的API。問題是,那家聚合商的客戶一堆,從電商到醫療都有。你要我直接鎖定誰?除非你們有更精準的時間戳和payload特徵。」
程砚行把昨晚截的第二張圖調出來,推到沈予安面前。「時間戳在這,還有一個小特徵。你看這裡,發送端ID格式不是一般人用的,像是把sender做成短碼,但又故意偽成一般號碼。」
沈予安眯眼看了幾秒,嘴角抽了一下。「哦,這種啊。半吊子裝專業。要嘛是內行懶得藏,要嘛是外行以為這樣很高級。」
溫若棠忍不住問:「那代表什麼?」
「代表對方想被你們看到。」沈予安抬頭,眼神毒得很直白,「他不是怕被抓,他是在玩你們。讓你們一直追,一直以為快抓到了,然後你們就會在某個地方犯錯。」
她指尖微微發冷。那種被牽著走的感覺更明確了。
程砚行把另一份log打開。「外部IP靠近商辦區,出口段定位到咖啡廳附近。orion-svc凌晨被喚醒一次,打到醫療相關第三方服務端點。」
「醫療?」沈予安眉毛一挑,手指敲了敲桌面,「你是說他們不只是盯你們公司,還盯醫院那條線?」
「或是盯她。」程砚行看了一眼溫若棠,視線停留的時間比平常長半拍,又很快移開,「她父親資料在保險、醫療、授權鏈裡都有痕跡。對方可能從第三方廠商下手。」
沈予安冷笑一聲:「行啊,供應鏈攻擊,老梗但好用。你們這案子要是爆出去,許婧澄能把顧問團條款直接變成鐵鍊。」
溫若棠聽到許婧澄的名字,胃裡一沉。她把話題拉回最急的:「你剛說內部名單呢?知道我那支加密號碼的人,除了你們?」
沈予安把一張表格拉出來,推到她面前。「我列了。你、程砚行、我,還有一個人。」
溫若棠的呼吸一滯。「誰?」
「你們公司法務那邊的人。」沈予安說,「上週你不是讓法務確認那份『試婚同居對外口徑』的NDA嗎?你用加密號碼跟對方講過一次,還傳過一張掃描檔。你以為只是做紀錄,實際上你把號碼放進了別人的郵件備份。」
溫若棠一瞬間臉色發白。她努力維持禮貌的表情,但那種「我又做錯了」的自責像一塊沉石往下墜。她習慣把一切做得周全,卻忘了周全也是暴露。
程砚行沒有責備,只把那張表格往自己這邊拉近,語氣冷靜得像把她的自責擋在外面。「名字。」
沈予安報出一個名字。那是溫若棠見過的法務專員,平常不多話,做事很快,像任何一個「可靠的後台」。
「我會讓人查他最近的存取紀錄。」程砚行說,「但現在不能打草驚蛇。」
沈予安把咖啡喝了一口,皺眉,像太苦。「我還有一條。你們那個外部IP出口段,我調到附近監視器的公開取景角度。咖啡廳門口有一支街景鏡頭,雖然畫質爛,但凌晨四點左右有一個人一直坐在角落,沒有筆電,手一直在滑手機。」
他把一張模糊的截圖放大。畫面裡的人戴帽子,臉看不清,只看得到一個反常的姿勢:他不是在喝咖啡,也不是在等人,而像在看某個方向。
溫若棠盯著那張圖,心裡突然有個很輕的恐懼念頭:看某個方向。看他們住的那棟樓?看她接過手機的瞬間?
她開口的時候,聲音比自己想像的還穩:「你們覺得他在看我?」
沈予安聳肩,嘴上仍毒,眼神卻收斂了一點:「我覺得他在看你們兩個。這種戲碼,最愛的是你們互相不信任。」
程砚行合上資料,像把話題收回作戰節奏。「六點半出發。沈予安,你留在公司,盯orion-svc和網關API。誘餌token我放在一個醫療授權流程裡,對方如果想拿她父親資料,可能會咬。咬了你就能追。」
「你把誘餌放醫療授權?」沈予安嗤了一聲,「你真是很敢。被醫院那邊知道你會被告到破產。」
程砚行淡淡回:「不會連到真實病歷。只是模擬授權端點。合法邊界我有算。」
沈予安翻白眼,像懶得跟他討論道德邊界,轉而看向溫若棠。「你今天記得一件事,別把自己當背景板。有人要跟你講話,你就說一句:我需要先確認身分。然後轉頭找他。」
他下巴往程砚行方向點了一下,像在嫌棄又像在交代。
溫若棠點頭。「我會。」
六點二十,程砚行的手機終於跳出那通剛才被按掉的來電的訊息。不是許婧澄本人,是她助理發來的行程提醒,附帶一份更新的條款摘要,語氣客氣得像在遞名片:今晚晚宴前,希望溫經理先單獨與許總碰面十五分鐘,討論顧問團條款與對外聲明一致性。
單獨。十五分鐘。對外聲明一致性。
每個詞都像精準挑過的刀口。
溫若棠看著訊息,手指有點僵。她想像許婧澄優雅地端著酒杯,笑著說「我只是為你好」。她也想像自己被迫在那十五分鐘裡交出一些更私人的東西,換取看似安全的條件。
程砚行把手機拿回去,回了一句簡短的文字:收到,晚宴現場再談。
助理秒回一個微笑表情符號,像一種無聲的壓力。
沈予安在旁邊看得嘖了一聲。「她這手很會。你們今天早上跑醫院,晚上還要上她的桌。兩線戰場,挺刺激。」
「刺激」兩個字被他說得像在評論一部爛片。
程砚行站起來,把外套披上。「走了。西側門。」
離開公司時天已微亮,街上車流開始密起來。車內暖氣終於開了一點,窗霧慢慢散開。溫若棠看著醫院方向的路標,胃裡那種緊張像被擰得更緊。她把加密手機放在包內側,另一隻手抓著安全帶邊緣,指尖用力到發白。
「若棠。」程砚行突然叫她,沒有加任何稱呼,乾淨得像直接進入核心。
她轉頭看他。
他沒看她,視線仍在前方路況,聲音壓低:「如果你等下害怕,直接說。不要忍著。」
那句話不像方案,反而像一條短短的繩索丟過來,讓她可以抓住。溫若棠喉嚨一緊,輕聲回:「好。」
醫院西側門比正門冷清,只有幾個早班護理師和推著小推車的清潔人員。程砚行把車停在離入口不遠的臨停區,沒有立刻下車,而是先掃過周圍:側門的監視器角度、牆角的陰影、停在對面那輛灰色休旅的車牌。
溫若棠跟著他的視線看,覺得自己像被拉進一個過度清醒的世界,所有日常的細節都變成可疑點。她深吸一口氣,打開車門時,冷風鑽進袖口,讓她打了個寒顫。
程砚行下車後沒有先走,而是站在她身側半步的位置,像一面無聲的牆。溫若棠突然想到自己昨天說「你要看著我」。她以為那會是一個情緒的瞬間,沒想到他用最不張揚的方式把它做成了站位。
他們走進側門的走廊,消毒水味道淡淡的,牆上貼著病房指引。溫若棠正要往掛號機走,身後忽然有人叫她的姓氏,聲音不大,卻精準。
「溫小姐?」
她背脊一僵,第一反應是把笑容掛上去,再轉身。她看見一個穿著便服的男人,約三十出頭,乾乾淨淨,手上拿著一個透明文件袋,像行政人員。男人的目光先落在她臉上,再滑向程砚行,停了一瞬,像在估算距離。
「我是任開。」男人把文件袋抬了一點,語氣平穩,「你父親的病房那邊有一些授權文件需要補簽,我們窗口說你今天會過來。」
溫若棠心裡一沉。窗口說她今天會過來。她的行程不是公開的,至少不該是。
程砚行沒有立刻上前,只是把身體微微往她前方移了半步,聲音很淡:「你哪個單位?」
任開看著他,沒有不耐,也沒有多餘解釋,只回得很簡潔:「醫務行政協調。你可以打分機確認。」
他報出一串分機號碼,流暢得像背過很多次。
溫若棠握緊包帶,心跳快得有點失控。她想起沈予安說的那句:先確認身分。她張口,發現自己的聲音仍然能維持禮貌,卻在尾音裡藏不住一點抖。
「我需要先確認身分。」她說完,抬眼看程砚行,「我可以現在打嗎?」
程砚行的視線終於落到她眼睛上,停了很短的一秒。那一秒不是判斷流程,而像在回應她昨天的要求:我在看著你。
「可以。」他說,然後把自己的手機遞給她,「用我的打,別用你那支。」
溫若棠接過他的手機,指尖冰冷。她按下分機,電話響了兩聲就被接起。對面是醫院總機的制式聲音,轉接後又是一段等待。任開站在一旁,沒有催促,只把文件袋拿在手裡,姿態從容得像他真的只是來補一張紙。
等待音每跳一下,溫若棠的恐懼就更清晰一點。她忽然很想開口說:我害怕。可這句話卡在舌尖,像她一旦說出口就會顯得軟弱,顯得麻煩。
程砚行沒有催她,也沒有用「別怕」這種空話。他只是站得更近一點,近到她能感覺到他外套的布料微微擦過她手臂。那種存在感讓她的喉嚨終於鬆了一點。
「我害怕。」她在等待音裡很小聲地說,像把一顆石頭放到桌上。
程砚行的視線沒有移開,也沒有立刻給方案。他只回了一句同樣小聲的:「我知道。」
那不是解法,但像承認她的感受是真實的,不需要被修正。
電話終於接通,一個女聲傳來:「醫務行政,請說。」
溫若棠報了父親姓名與病房,問對方是否有一位叫任開的行政協調、是否需要補簽授權文件。對方停了一下,說:「我們這邊沒有這個名字。不過病房那邊可能有外包窗口,你要不要直接去護理站問?」
溫若棠的指尖瞬間麻掉,手機差點滑落。她努力讓自己聲音不要顫:「好,謝謝。」
掛斷後,走廊空氣像忽然變冷。她看向任開,想維持禮貌,卻發現自己的笑怎麼都掛不上去。
任開臉上仍然平靜,甚至微微一笑,像早就預料到這通電話。「總機不一定知道。窗口不在行政端。」
「那你是誰?」程砚行終於開口,聲音不高,卻像刀鋒擦過玻璃。
任開看著他,視線沒有閃躲。「你們的暗號。」他說,「你不是跟我同事約好了嗎?說一句今晚的雨太假。」
溫若棠的心臟猛地一縮。那句暗號,昨晚程砚行才告訴她,只有他們兩個和那個「R.K」會知道。對方說得太準了,準到像在他們屋裡聽過。
程砚行的眼神一瞬間沉到幾乎沒有光。他沒有退,反而往前走了一步,把溫若棠完全護在他身後。
「我沒有說過這句話。」他說。
任開的笑意淡了一點,像第一次遇到超出預期的回應。下一秒,他的目光越過程砚行,落到溫若棠臉上,語氣忽然變得很輕,像要把一根針塞進她最敏感的地方。
「溫小姐,你真的要讓他陪你進去嗎?」他問,「你知道他做過什麼。周驍那件事,你以為他是受害者?」
溫若棠耳邊轟的一聲,像走廊的燈全部嗡鳴起來。周驍。那個名字像一塊舊傷被硬生生揭開,還帶著沒乾的血。她想起當年那些流言,想起自己曾經遠遠看著程砚行,想起她把某些疑問用「不要打擾」包起來的習慣。
她想後退,想把自己縮回禮貌裡,想把這句話當成垃圾訊息丟掉。可她昨晚說過,她要並肩。
她的指尖抓住程砚行外套的衣角,像抓住一個支點。她聽見自己比想像中清楚的聲音,從喉嚨深處擠出來。
「我不知道。」她說,「所以我不會跟你單獨講。」
她說完那句,才發現自己在抖,抖得像要散架。可她沒有鬆手。
程砚行沒有回頭看她,只在她抓住衣角的瞬間,肩膀微微一沉,像把她的重量接住。他對任開說:「你今天出現在這裡,是為了套話,還是為了拍照?」
任開不答,反而把手機拿出來,像只是要看時間。螢幕亮起的瞬間,溫若棠瞥見上面一張照片的縮圖,像是她昨晚在客廳接過手機的背影。角度很遠,像從對面大樓拍的,光線模糊,卻足以讓人認出是她。
她胃裡一陣翻騰,喉嚨發緊,眼前的走廊像微微晃了一下。她終於明白那種「精準時點」不是直覺,是事實。有人真的看著。
程砚行的手抬起來,不是去搶手機,而是直接按下自己手錶側邊一個按鍵,像啟動某種預設。「你現在把那張照片刪掉。」
任開笑了,笑意很淡,很冷。「你以為刪掉就沒了?你們這行不是最懂備份嗎?」
遠處忽然傳來急促的腳步聲,兩名穿便服的保全或警衛樣的人朝這邊走來,視線先鎖住任開,又看向程砚行,像在找誰是問題源。
任開的表情沒有變,卻把手機收回口袋,往後退了半步。「溫小姐,今天先這樣。你父親那邊……有人比你更在意他的資料會去哪裡。」
他說完,轉身就走,步伐不快,卻恰好在那兩名便衣靠近前拐進轉角,消失在視線盲區。
溫若棠的呼吸像被人掐住。她想追,卻腿發軟。程砚行沒有追,他仍站在她前方,像在判斷追擊的代價。那兩名便衣走到他們面前,其中一個低聲問:「剛才那人誰?」
程砚行回得很短:「不認識。可疑接觸,可能詐騙。你們調監視器,西側門走廊,剛剛那段時間。」
便衣看了他一眼,像在衡量他是路人還是懂行的人,最後點頭,轉身去追。
走廊又恢復安靜,只剩消毒水味道和遠處的推車聲。溫若棠這才發現自己一直抓著程砚行的外套,指節用力到發白。
她慢慢鬆開,卻在鬆開的瞬間覺得自己要倒下去。她努力把情緒包回禮貌裡,可包不住了,眼眶熱得發疼。
「你看到了嗎?」她聲音很小,「他有我昨晚的照片。」
程砚行終於轉過身,目光落在她臉上,沒有避開,也沒有急著把她拉去下一個流程。他只是看著她,像把她整個人從恐懼裡辨識出來。
「看到了。」他說,「所以你剛才做得對。你沒有跟他講,你沒有被他拖走。」
溫若棠的喉嚨哽住,想說自己其實差點就被那句周驍拖進去了。她想問程砚行:周驍那件事到底是什麼。可她也知道這裡不是拆封傷口的地方。
她把眼淚硬生生壓住,只讓它停在眼眶邊緣,聲音仍禮貌,卻不再完美:「我剛才真的很怕。」
程砚行點頭,像在確認她有履行承諾,也在履行自己的承諾。「我知道。」他停了一下,補上一句比任何方案都重的話,「你不用一個人扛。」
溫若棠胸口一縮,像終於可以呼吸。她低下頭,深吸一口氣,再抬頭時,眼裡仍有水光,但目光清醒了些。
「我們去護理站。」她說,「我得看我爸。」
程砚行「嗯」了一聲,伸手把她掉在肩頭的一縷頭髮撥回去,動作很快,很克制,像怕自己多停一秒就越界。可那一秒的觸碰仍讓溫若棠心臟發熱,像有人在她最冷的地方點了一盞燈。
他們轉身往裡走。走到轉角時,溫若棠的加密手機震了一下。她以為是沈予安,低頭一看,卻是一則新的訊息,沒有來電顯示,只有一張圖片。
圖片是一份病歷摘要的截圖,父親的姓名、診斷、下次檢查日期清清楚楚,下面附著一句短短的字:
今晚晚宴之前,讓程砚行自己把話說清楚。否則下一張,是你當年那段錄音。
溫若棠指尖瞬間冰冷,像手機變成一塊鐵。她抬頭看程砚行的背影,他正抬手指向護理站方向,像要替她擋開來往的人流。
她張口,喉嚨卻像被什麼卡住。她想起自己昨晚答應「先相信他一晚」,可現在,那個人把晚宴、病歷、錄音、周驍全都串成一條線,逼她在同一天裡做選擇。
她終於知道,這不是單純的資安攻擊,是要把他們拆開的心理戰。
溫若棠把手機螢幕按暗,手掌握緊到發痛。她追上程砚行,跟在他身側半步,像什麼都沒發生。但她心裡清楚,下一個戰場不只在晚宴,也在他們之間。
而她必須決定,什麼時候開口,怎麼開口。以及,在他還沒準備好說清楚之前,她能不能先把那份信任撐住。
她沒立刻起身。身邊的位置空著,床單平整得像沒人躺過。她把視線移向門縫,客廳那盞小燈還亮著,光落在走道上,勉強把陰影切出邊界。
她穿上拖鞋,走出去時腳步刻意放輕。客廳裡,程砚行坐在窗邊,背對她,外套搭在椅背上,襯衫袖口捲到手肘。他面前的筆電螢幕亮著一塊淡淡的白,旁邊是一杯早就冷掉的黑咖啡。城市還沒醒,他已經把整個晚上拆成一格格可處理的時間片。
溫若棠站在他身後兩步,沒出聲,先看他的肩線。那種安靜不是溫柔的安靜,是警戒的安靜,像一條緊繃的弦。她忽然想到他昨晚說的那句「先相信我一晚」,心口微微一酸,像有人把一句話放在她掌心,而她怕自己握不住。
程砚行沒有回頭,卻像從她呼吸的節奏裡捕捉到她的存在。「醒了?」
「嗯。」她的聲音剛起來,帶著一點乾澀,但仍努力平穩,「你沒睡?」
「睡不重要。」他說完,像覺得這句太像敷衍,又補了一句更像報告的話,「orion-svc凌晨三點四十七被喚醒一次,沒有走我們排程。觸發的不是內部token,是外部的測試請求。來源在公司附近。」
溫若棠走近些,視線落在螢幕上的log,仍看不懂那些縮寫和時間戳,卻看得懂他眼裡那種不願放過任何異常的冷。「所以不是昨晚那個IP?」
「同一個出口段。」他手指在觸控板上滑動,把一段地圖截圖拉出來,標記停在一間二十四小時咖啡廳附近,「這裡有公共Wi-Fi,也有幾家共享辦公。跳板很好藏。」
她心裡那種被盯著的感覺又爬上來,像冷水貼著背。「他們真的在附近。」
「嗯。」程砚行把螢幕合上一半,像終於允許資訊暫停流動,「六點到公司,沈予安那邊會把簡訊網關的供應商和內部名單對一遍。六點半出門去醫院,走西側門。你手機今天只開加密那支,原本那支關機,放防RF的袋子。」
他把一個黑色的小袋子放到茶几上,像在交付一件無關情緒的工具。
溫若棠看著那袋子,忽然想起自己昨晚提出的要求。她說如果她害怕,她會說;他答應要看著她。可現在他開口的每一句,仍然是方案、流程、排程。她不怪他,甚至因為這些方案而心安,但她知道自己如果又把需求吞回去,下一次她可能就再也說不出口。
她吸了一口氣,聲音很輕:「你也要吃點東西。」
程砚行看她一眼,像在判斷這是不是另一種「你不用管我」的委婉。他沒反駁,只起身去洗手台倒水,拿了兩片吐司,動作快得像把「照顧自己」也當成任務完成。
溫若棠進浴室洗臉時,鏡子裡的自己眼下有淡淡的青。她把頭髮紮起來,抹上薄薄的遮瑕,動作熟練得像每次要上台做簡報前的自我修復。可遮住的只是顏色,遮不住那種心裡被拉扯的空。
她換好衣服出來,程砚行已經把兩支手機處理好,一支進袋子,一支貼上新的保護膜。他把加密手機遞給她時,指尖很短暫碰到她的手背,溫度很低,像整夜都在冷光下工作。
「今天你不用回任何人。」他說,「包括許婧澄。」
話音剛落,像被他叫了名,桌上的另一支手機亮起來,來電顯示是一串公司助理的號碼。
溫若棠心口一緊,下意識伸手想接,又想起他說的「不用回」。她停住,抬眼看他。
程砚行伸手按掉,沒有猶豫。「等我們從公司出來再看。現在回覆會透露你醒了、你在哪、你焦慮什麼。」
他說得合理,像每個字都經過防火牆。但溫若棠仍忍不住問:「如果是她急著加條款呢?」
「那更不能讓她知道你現在被拖著跑。」程砚行看著她,語氣仍平,卻多了一點不容退讓,「她會把你的分心當成折價。」
溫若棠把那句「折價」吞進喉嚨裡,苦味卻留在舌根。她點頭,沒再說什麼,拎起包跟他出門。
電梯下行時,金屬牆面映出兩人的影子。她站得筆直,像任何一個準備上班的產品經理;他站在她斜後方,手插在口袋,眼神落在電梯門縫的反光上,像在看一條可能出現的縫隙。
「等下到公司。」他忽然開口,「你跟沈予安看同一份資料就好,不要分開。有人想用你當入口。」
溫若棠輕輕「嗯」了一聲。她把自己一直想問的那句壓著:你會不會也把我當入口。她知道自己不能在這種時候問這句話,問了會像在挑剔他的保護方式。
停車場冷光刺眼,車窗內側起了薄霧。程砚行發動引擎,暖氣沒開太大,怕讓玻璃起更多霧。他一路開得很穩,車內安靜得只剩雨刷偶爾掃過的聲音。
溫若棠看著窗外街景往後退,突然意識到自己正在進入一個由他制定的作戰圖。她不是被推著走的那個人,她昨天已經答應要並肩。她把手放在膝上,指尖互相扣住,像在固定自己的勇氣。
公司大樓在六點十分前還沒完全亮起來,大廳只有保全和清潔人員。電梯開到他們樓層時,走廊燈一盞盞感應亮起,像程序逐步啟動。
沈予安的工位燈已經亮著。他穿著帽T,頭髮亂得像剛被風扯過,桌上攤著兩台筆電、一個路由器樣的設備,還有一杯便利商店咖啡,杯蓋沒蓋好,像隨時準備打翻。
「六點公司。」他抬頭看見他們,先丟出一句像嘲諷的招呼,「你們這同居效率不錯啊,連加班都變成夫妻晨跑。」
溫若棠忍住笑意,嘴角只動了一下。「你也很早。」
「我不早,誰來救你們兩個天才。」沈予安把椅子往後一滑,視線掃過程砚行,「尤其是某位只會把人當系統節點的。」
程砚行沒接招,直接把加密手機放在桌上。「簡訊網關的供應商查到了?」
沈予安把一份資料丟到他們面前,像把牌攤開。「查到一半。那則簡訊是網關偽造沒錯,走的是一個第三方簡訊聚合商的API。問題是,那家聚合商的客戶一堆,從電商到醫療都有。你要我直接鎖定誰?除非你們有更精準的時間戳和payload特徵。」
程砚行把昨晚截的第二張圖調出來,推到沈予安面前。「時間戳在這,還有一個小特徵。你看這裡,發送端ID格式不是一般人用的,像是把sender做成短碼,但又故意偽成一般號碼。」
沈予安眯眼看了幾秒,嘴角抽了一下。「哦,這種啊。半吊子裝專業。要嘛是內行懶得藏,要嘛是外行以為這樣很高級。」
溫若棠忍不住問:「那代表什麼?」
「代表對方想被你們看到。」沈予安抬頭,眼神毒得很直白,「他不是怕被抓,他是在玩你們。讓你們一直追,一直以為快抓到了,然後你們就會在某個地方犯錯。」
她指尖微微發冷。那種被牽著走的感覺更明確了。
程砚行把另一份log打開。「外部IP靠近商辦區,出口段定位到咖啡廳附近。orion-svc凌晨被喚醒一次,打到醫療相關第三方服務端點。」
「醫療?」沈予安眉毛一挑,手指敲了敲桌面,「你是說他們不只是盯你們公司,還盯醫院那條線?」
「或是盯她。」程砚行看了一眼溫若棠,視線停留的時間比平常長半拍,又很快移開,「她父親資料在保險、醫療、授權鏈裡都有痕跡。對方可能從第三方廠商下手。」
沈予安冷笑一聲:「行啊,供應鏈攻擊,老梗但好用。你們這案子要是爆出去,許婧澄能把顧問團條款直接變成鐵鍊。」
溫若棠聽到許婧澄的名字,胃裡一沉。她把話題拉回最急的:「你剛說內部名單呢?知道我那支加密號碼的人,除了你們?」
沈予安把一張表格拉出來,推到她面前。「我列了。你、程砚行、我,還有一個人。」
溫若棠的呼吸一滯。「誰?」
「你們公司法務那邊的人。」沈予安說,「上週你不是讓法務確認那份『試婚同居對外口徑』的NDA嗎?你用加密號碼跟對方講過一次,還傳過一張掃描檔。你以為只是做紀錄,實際上你把號碼放進了別人的郵件備份。」
溫若棠一瞬間臉色發白。她努力維持禮貌的表情,但那種「我又做錯了」的自責像一塊沉石往下墜。她習慣把一切做得周全,卻忘了周全也是暴露。
程砚行沒有責備,只把那張表格往自己這邊拉近,語氣冷靜得像把她的自責擋在外面。「名字。」
沈予安報出一個名字。那是溫若棠見過的法務專員,平常不多話,做事很快,像任何一個「可靠的後台」。
「我會讓人查他最近的存取紀錄。」程砚行說,「但現在不能打草驚蛇。」
沈予安把咖啡喝了一口,皺眉,像太苦。「我還有一條。你們那個外部IP出口段,我調到附近監視器的公開取景角度。咖啡廳門口有一支街景鏡頭,雖然畫質爛,但凌晨四點左右有一個人一直坐在角落,沒有筆電,手一直在滑手機。」
他把一張模糊的截圖放大。畫面裡的人戴帽子,臉看不清,只看得到一個反常的姿勢:他不是在喝咖啡,也不是在等人,而像在看某個方向。
溫若棠盯著那張圖,心裡突然有個很輕的恐懼念頭:看某個方向。看他們住的那棟樓?看她接過手機的瞬間?
她開口的時候,聲音比自己想像的還穩:「你們覺得他在看我?」
沈予安聳肩,嘴上仍毒,眼神卻收斂了一點:「我覺得他在看你們兩個。這種戲碼,最愛的是你們互相不信任。」
程砚行合上資料,像把話題收回作戰節奏。「六點半出發。沈予安,你留在公司,盯orion-svc和網關API。誘餌token我放在一個醫療授權流程裡,對方如果想拿她父親資料,可能會咬。咬了你就能追。」
「你把誘餌放醫療授權?」沈予安嗤了一聲,「你真是很敢。被醫院那邊知道你會被告到破產。」
程砚行淡淡回:「不會連到真實病歷。只是模擬授權端點。合法邊界我有算。」
沈予安翻白眼,像懶得跟他討論道德邊界,轉而看向溫若棠。「你今天記得一件事,別把自己當背景板。有人要跟你講話,你就說一句:我需要先確認身分。然後轉頭找他。」
他下巴往程砚行方向點了一下,像在嫌棄又像在交代。
溫若棠點頭。「我會。」
六點二十,程砚行的手機終於跳出那通剛才被按掉的來電的訊息。不是許婧澄本人,是她助理發來的行程提醒,附帶一份更新的條款摘要,語氣客氣得像在遞名片:今晚晚宴前,希望溫經理先單獨與許總碰面十五分鐘,討論顧問團條款與對外聲明一致性。
單獨。十五分鐘。對外聲明一致性。
每個詞都像精準挑過的刀口。
溫若棠看著訊息,手指有點僵。她想像許婧澄優雅地端著酒杯,笑著說「我只是為你好」。她也想像自己被迫在那十五分鐘裡交出一些更私人的東西,換取看似安全的條件。
程砚行把手機拿回去,回了一句簡短的文字:收到,晚宴現場再談。
助理秒回一個微笑表情符號,像一種無聲的壓力。
沈予安在旁邊看得嘖了一聲。「她這手很會。你們今天早上跑醫院,晚上還要上她的桌。兩線戰場,挺刺激。」
「刺激」兩個字被他說得像在評論一部爛片。
程砚行站起來,把外套披上。「走了。西側門。」
離開公司時天已微亮,街上車流開始密起來。車內暖氣終於開了一點,窗霧慢慢散開。溫若棠看著醫院方向的路標,胃裡那種緊張像被擰得更緊。她把加密手機放在包內側,另一隻手抓著安全帶邊緣,指尖用力到發白。
「若棠。」程砚行突然叫她,沒有加任何稱呼,乾淨得像直接進入核心。
她轉頭看他。
他沒看她,視線仍在前方路況,聲音壓低:「如果你等下害怕,直接說。不要忍著。」
那句話不像方案,反而像一條短短的繩索丟過來,讓她可以抓住。溫若棠喉嚨一緊,輕聲回:「好。」
醫院西側門比正門冷清,只有幾個早班護理師和推著小推車的清潔人員。程砚行把車停在離入口不遠的臨停區,沒有立刻下車,而是先掃過周圍:側門的監視器角度、牆角的陰影、停在對面那輛灰色休旅的車牌。
溫若棠跟著他的視線看,覺得自己像被拉進一個過度清醒的世界,所有日常的細節都變成可疑點。她深吸一口氣,打開車門時,冷風鑽進袖口,讓她打了個寒顫。
程砚行下車後沒有先走,而是站在她身側半步的位置,像一面無聲的牆。溫若棠突然想到自己昨天說「你要看著我」。她以為那會是一個情緒的瞬間,沒想到他用最不張揚的方式把它做成了站位。
他們走進側門的走廊,消毒水味道淡淡的,牆上貼著病房指引。溫若棠正要往掛號機走,身後忽然有人叫她的姓氏,聲音不大,卻精準。
「溫小姐?」
她背脊一僵,第一反應是把笑容掛上去,再轉身。她看見一個穿著便服的男人,約三十出頭,乾乾淨淨,手上拿著一個透明文件袋,像行政人員。男人的目光先落在她臉上,再滑向程砚行,停了一瞬,像在估算距離。
「我是任開。」男人把文件袋抬了一點,語氣平穩,「你父親的病房那邊有一些授權文件需要補簽,我們窗口說你今天會過來。」
溫若棠心裡一沉。窗口說她今天會過來。她的行程不是公開的,至少不該是。
程砚行沒有立刻上前,只是把身體微微往她前方移了半步,聲音很淡:「你哪個單位?」
任開看著他,沒有不耐,也沒有多餘解釋,只回得很簡潔:「醫務行政協調。你可以打分機確認。」
他報出一串分機號碼,流暢得像背過很多次。
溫若棠握緊包帶,心跳快得有點失控。她想起沈予安說的那句:先確認身分。她張口,發現自己的聲音仍然能維持禮貌,卻在尾音裡藏不住一點抖。
「我需要先確認身分。」她說完,抬眼看程砚行,「我可以現在打嗎?」
程砚行的視線終於落到她眼睛上,停了很短的一秒。那一秒不是判斷流程,而像在回應她昨天的要求:我在看著你。
「可以。」他說,然後把自己的手機遞給她,「用我的打,別用你那支。」
溫若棠接過他的手機,指尖冰冷。她按下分機,電話響了兩聲就被接起。對面是醫院總機的制式聲音,轉接後又是一段等待。任開站在一旁,沒有催促,只把文件袋拿在手裡,姿態從容得像他真的只是來補一張紙。
等待音每跳一下,溫若棠的恐懼就更清晰一點。她忽然很想開口說:我害怕。可這句話卡在舌尖,像她一旦說出口就會顯得軟弱,顯得麻煩。
程砚行沒有催她,也沒有用「別怕」這種空話。他只是站得更近一點,近到她能感覺到他外套的布料微微擦過她手臂。那種存在感讓她的喉嚨終於鬆了一點。
「我害怕。」她在等待音裡很小聲地說,像把一顆石頭放到桌上。
程砚行的視線沒有移開,也沒有立刻給方案。他只回了一句同樣小聲的:「我知道。」
那不是解法,但像承認她的感受是真實的,不需要被修正。
電話終於接通,一個女聲傳來:「醫務行政,請說。」
溫若棠報了父親姓名與病房,問對方是否有一位叫任開的行政協調、是否需要補簽授權文件。對方停了一下,說:「我們這邊沒有這個名字。不過病房那邊可能有外包窗口,你要不要直接去護理站問?」
溫若棠的指尖瞬間麻掉,手機差點滑落。她努力讓自己聲音不要顫:「好,謝謝。」
掛斷後,走廊空氣像忽然變冷。她看向任開,想維持禮貌,卻發現自己的笑怎麼都掛不上去。
任開臉上仍然平靜,甚至微微一笑,像早就預料到這通電話。「總機不一定知道。窗口不在行政端。」
「那你是誰?」程砚行終於開口,聲音不高,卻像刀鋒擦過玻璃。
任開看著他,視線沒有閃躲。「你們的暗號。」他說,「你不是跟我同事約好了嗎?說一句今晚的雨太假。」
溫若棠的心臟猛地一縮。那句暗號,昨晚程砚行才告訴她,只有他們兩個和那個「R.K」會知道。對方說得太準了,準到像在他們屋裡聽過。
程砚行的眼神一瞬間沉到幾乎沒有光。他沒有退,反而往前走了一步,把溫若棠完全護在他身後。
「我沒有說過這句話。」他說。
任開的笑意淡了一點,像第一次遇到超出預期的回應。下一秒,他的目光越過程砚行,落到溫若棠臉上,語氣忽然變得很輕,像要把一根針塞進她最敏感的地方。
「溫小姐,你真的要讓他陪你進去嗎?」他問,「你知道他做過什麼。周驍那件事,你以為他是受害者?」
溫若棠耳邊轟的一聲,像走廊的燈全部嗡鳴起來。周驍。那個名字像一塊舊傷被硬生生揭開,還帶著沒乾的血。她想起當年那些流言,想起自己曾經遠遠看著程砚行,想起她把某些疑問用「不要打擾」包起來的習慣。
她想後退,想把自己縮回禮貌裡,想把這句話當成垃圾訊息丟掉。可她昨晚說過,她要並肩。
她的指尖抓住程砚行外套的衣角,像抓住一個支點。她聽見自己比想像中清楚的聲音,從喉嚨深處擠出來。
「我不知道。」她說,「所以我不會跟你單獨講。」
她說完那句,才發現自己在抖,抖得像要散架。可她沒有鬆手。
程砚行沒有回頭看她,只在她抓住衣角的瞬間,肩膀微微一沉,像把她的重量接住。他對任開說:「你今天出現在這裡,是為了套話,還是為了拍照?」
任開不答,反而把手機拿出來,像只是要看時間。螢幕亮起的瞬間,溫若棠瞥見上面一張照片的縮圖,像是她昨晚在客廳接過手機的背影。角度很遠,像從對面大樓拍的,光線模糊,卻足以讓人認出是她。
她胃裡一陣翻騰,喉嚨發緊,眼前的走廊像微微晃了一下。她終於明白那種「精準時點」不是直覺,是事實。有人真的看著。
程砚行的手抬起來,不是去搶手機,而是直接按下自己手錶側邊一個按鍵,像啟動某種預設。「你現在把那張照片刪掉。」
任開笑了,笑意很淡,很冷。「你以為刪掉就沒了?你們這行不是最懂備份嗎?」
遠處忽然傳來急促的腳步聲,兩名穿便服的保全或警衛樣的人朝這邊走來,視線先鎖住任開,又看向程砚行,像在找誰是問題源。
任開的表情沒有變,卻把手機收回口袋,往後退了半步。「溫小姐,今天先這樣。你父親那邊……有人比你更在意他的資料會去哪裡。」
他說完,轉身就走,步伐不快,卻恰好在那兩名便衣靠近前拐進轉角,消失在視線盲區。
溫若棠的呼吸像被人掐住。她想追,卻腿發軟。程砚行沒有追,他仍站在她前方,像在判斷追擊的代價。那兩名便衣走到他們面前,其中一個低聲問:「剛才那人誰?」
程砚行回得很短:「不認識。可疑接觸,可能詐騙。你們調監視器,西側門走廊,剛剛那段時間。」
便衣看了他一眼,像在衡量他是路人還是懂行的人,最後點頭,轉身去追。
走廊又恢復安靜,只剩消毒水味道和遠處的推車聲。溫若棠這才發現自己一直抓著程砚行的外套,指節用力到發白。
她慢慢鬆開,卻在鬆開的瞬間覺得自己要倒下去。她努力把情緒包回禮貌裡,可包不住了,眼眶熱得發疼。
「你看到了嗎?」她聲音很小,「他有我昨晚的照片。」
程砚行終於轉過身,目光落在她臉上,沒有避開,也沒有急著把她拉去下一個流程。他只是看著她,像把她整個人從恐懼裡辨識出來。
「看到了。」他說,「所以你剛才做得對。你沒有跟他講,你沒有被他拖走。」
溫若棠的喉嚨哽住,想說自己其實差點就被那句周驍拖進去了。她想問程砚行:周驍那件事到底是什麼。可她也知道這裡不是拆封傷口的地方。
她把眼淚硬生生壓住,只讓它停在眼眶邊緣,聲音仍禮貌,卻不再完美:「我剛才真的很怕。」
程砚行點頭,像在確認她有履行承諾,也在履行自己的承諾。「我知道。」他停了一下,補上一句比任何方案都重的話,「你不用一個人扛。」
溫若棠胸口一縮,像終於可以呼吸。她低下頭,深吸一口氣,再抬頭時,眼裡仍有水光,但目光清醒了些。
「我們去護理站。」她說,「我得看我爸。」
程砚行「嗯」了一聲,伸手把她掉在肩頭的一縷頭髮撥回去,動作很快,很克制,像怕自己多停一秒就越界。可那一秒的觸碰仍讓溫若棠心臟發熱,像有人在她最冷的地方點了一盞燈。
他們轉身往裡走。走到轉角時,溫若棠的加密手機震了一下。她以為是沈予安,低頭一看,卻是一則新的訊息,沒有來電顯示,只有一張圖片。
圖片是一份病歷摘要的截圖,父親的姓名、診斷、下次檢查日期清清楚楚,下面附著一句短短的字:
今晚晚宴之前,讓程砚行自己把話說清楚。否則下一張,是你當年那段錄音。
溫若棠指尖瞬間冰冷,像手機變成一塊鐵。她抬頭看程砚行的背影,他正抬手指向護理站方向,像要替她擋開來往的人流。
她張口,喉嚨卻像被什麼卡住。她想起自己昨晚答應「先相信他一晚」,可現在,那個人把晚宴、病歷、錄音、周驍全都串成一條線,逼她在同一天裡做選擇。
她終於知道,這不是單純的資安攻擊,是要把他們拆開的心理戰。
溫若棠把手機螢幕按暗,手掌握緊到發痛。她追上程砚行,跟在他身側半步,像什麼都沒發生。但她心裡清楚,下一個戰場不只在晚宴,也在他們之間。
而她必須決定,什麼時候開口,怎麼開口。以及,在他還沒準備好說清楚之前,她能不能先把那份信任撐住。
— 本章完 —
下一章:第5章 第 5 章
讀者留言 (0)
還沒有留言,來當第一個吧!