審計申請的回執在十一點零九分落到隔離屏上。
林知夏沒有讓平台責任人直接點開結果。她先對照上一輪封存單,核對本次申請只包含令牌簽發、輪換、撤銷、節點緩存清理、設備綁定摘要和白名單命中摘要;正文、附件內容和身份欄位不在範圍內,只允許讀取「是否回傳、是否生成索引」這類狀態位。未實名請求端的主動連接也被排除。技術員把範圍表投出來,旁邊還掛著一條紅色提醒:本次導出不會觸發重試,也不會刷新舊節點狀態。
「原始日誌只讀,導出後雙人驗簽。」林知夏扣上筆帽,「先看時間,再看狀態。任何一條記錄想替人說話,都把它停在欄位上。」
平台責任人點下確認。隔離屏先回放10:55:16受理時點的歷史快照,再展開後續清理記錄。第一行沒有人名,只有舊訪問組、節點指紋和一串縮短後的校驗值。
`legacy_m17`。
鄭柏年材料中附有的撤銷請求編號在下一欄,發出時間為10:55:14,服務端受理時間為10:55:16。材料交接不等於請求發起人。受理時點的歷史畫面旁掛著一個未閉合的黃色標誌,說明當時下游令牌和節點緩存還沒有完成同步。
林晏川靠近半步:「請求受理了,為什麼還沒失效?」
「受理只代表請求進了處理隊列。」平台責任人說,「這張回放畫面對應10:55:16,當時撤銷動作還沒走完令牌服務和節點緩存兩個環節。後面的完成時間要沿時間軸往後看。」
技術員調出同一時間窗的令牌輪換記錄。10:53:44,舊組令牌在節點 `BA-LEGACY-03` 上完成一次短時簽發,簽發對象寫的是服務帳號,設備綁定欄只有摘要哈希。10:55:14撤銷請求到達時,令牌仍在服務端有效窗口內;10:55:57,令牌服務才記錄「撤銷完成」;六秒後,10:56:03,節點緩存清理回執閉合。
會議室里的空調聲停了一瞬。林晏川盯著那三個時間點,手指慢慢收緊:「中間有四十三秒。」
「從撤銷請求發出到令牌撤銷完成,是四十三秒。」林知夏糾正,「從撤銷受理到令牌撤銷完成,是四十一秒。節點緩存又晚了六秒。」
她讓記錄員把兩個間隔分別寫進報告,不能把服務端撤銷和節點緩存清理揉成一個動作。平台責任人照做,隨後把10:55:18的失敗請求拖進同一時間軸。
那條請求的事件號與撤銷請求不同,入口別名是 `legacy_m17`,命中的節點仍是 `BA-LEGACY-03`。白名單摘要顯示命中舊組範圍,權限控制器卻在校驗目標動作時返回失敗。狀態位顯示,失敗階段停在權限控制器,業務層未進入簽字服務,簽字回執、媒體索引和確認端回傳均未生成或未回傳。
林晏川抬頭:「它命中了白名單,又沒進去。那兩秒里,誰知道它在試什麼?」
技術員看著屏幕:「本次摘要不含目標正文,設備序列號也未導出。請求只帶入口層所需的別名和動作類型,失敗發生在權限控制器,具體請求方不在這份導出里。」
「動作類型是什麼?」
「動作類別屬於歷史交接的補授權入口,展示狀態沿用了『待人工補授權』。它沒有共享事件號或載荷摘要,不能指向F3還是ROOF-1528。」
林晏川的喉結動了動。他想起先前屏幕右下角那四個字,像有人把一扇門推開,又在門檻前停住。停住不代表門後沒有人,門檻外的腳印也不能替門後寫出姓名。
林知夏沒有讓他繼續往前猜。她把失敗請求的原始封裝、校驗哈希和權限控制器回執放在一組,另取一張空白分欄表:「白名單命中是節點範圍,令牌有效是服務狀態,失敗階段是業務邊界,個人操作仍然空著。四件事都是真的,誰也不能替誰補最後一格。」
平台責任人翻到設備綁定摘要。舊令牌簽發時,服務帳號關聯了一段設備綁定哈希、一個網段摘要和節點指紋,現場終端的序列號、手機號碼與登錄憑證均未進入這份導出。白名單命中記錄同樣只保留節點和組範圍,連「由哪一台機器發起」都被舊系統壓縮成一段不可逆摘要。
「設備綁定摘要能不能和今天的失敗請求比對?」林知夏問。
「能比對哈希是否相同,不能從哈希還原設備。」技術員把兩行摘要放在一起,「今天失敗請求的綁定摘要為空,只有節點指紋和別名。兩者無法做同一設備判斷。」
「寫清楚。」林知夏說,「空值不能解釋成新設備,也不能解釋成沒有設備。」
林晏川退回桌邊,接過林母剛讓人送來的紙杯。杯壁燙得他指腹發紅,手指仍扣在杯沿。林知夏看見他盯著自己的名字發怔,伸手把杯子往桌面中央推了推:「先喝一口。你在10:55:18前後的見證鏈已經封存,別把系統的空白接到自己身上。」
「我知道。」他低聲說,「就是每次看見『接收』兩個字,還是會想起那天她把文件塞給我,說只要簽一下就好。」
林知夏沒有追問「她」是誰。她把紙杯的蓋子壓緊,聲音仍舊平穩:「你現在簽的是校時記錄。能證明你在哪裡,就簽哪裡。」
他點頭,翻開記錄本。紙頁上已經有他在隔離詢問室的門禁時間、執法記錄編號和兩名見證人的簽名。他把10:55:14、10:55:18、10:55:57和10:56:03四個時間點逐一圈出,又在旁邊寫下「不同事件號、未進入簽字業務層」。筆畫起初很重,寫到最後一項時,力度慢了下來。
本書首發𝟏𝟎𝟏𝐤𝐤𝐬.𝐜𝐨𝐦,提供給你無錯章節,無亂序章節的閱讀體驗
技術員繼續調取F3記錄。10:55:12,F3審計鏡像出現一次「重新推送」服務動作,來源索引為空,事件號與ROOF-1528的10:55:12請求不同。當前導出的關聯摘要未見 `legacy_m17` 令牌繼承標記,只留下同秒時間和服務模板指紋;沿用前一輪封存的狀態位,確認端未回傳,外部登記和媒體索引未生成。
林晏川看向那兩行:「同一秒,兩個事件號,一條是ROOF,一條是F3。它們都在緩存清理之前。」
「相鄰時間可以申請同一時間窗的審計。」林知夏說,「不能把事件號抹平。F3來源欄位為空,說明元數據不完整;ROOF通過 `effective_alias` 和入口狀態回執觸及入口層。舊節點白名單命中只屬於10:55:18那條獨立失敗請求,不能回填到F3或ROOF。它們之間的關係,暫時只到這裡。」
平台責任人把兩條記錄分別裝進只讀副本。導出過程中,系統彈出一次舊節點緩存查詢提示,詢問是否刷新當前狀態。技術員下意識伸手,林知夏先按住鍵盤邊緣。
「不刷新。」她說,「任何刷新都會改變查詢時點。保存原提示,申請被動讀取歷史清理結果。」
技術員收回手,重新導出提示和操作日誌。十點五十六分零三秒的清理回執已經閉合,舊節點白名單的當前狀態則被隔離在另一份快照里,不能拿現在的凍結狀態覆蓋十點五十五分的歷史窗口。
這一點讓林晏川稍微直起了背。他看著林知夏,像是在等一句可以放心的話。她沒有給他結論,只在報告上寫下:「歷史時間窗內存在控制面延遲;現有失敗請求未進入簽字業務層;是否有其他請求在延遲窗口內產生,需從獨立事件號繼續篩查。」
這句話並不溫柔,卻給了他一塊能站穩的地面。
十一點十六分,平台責任人提交第一版審計包。林知夏逐項核驗:令牌簽發時間、令牌撤銷完成時間、節點緩存清理回執、白名單命中摘要、設備綁定摘要、失敗請求封裝、F3重新推送記錄,七項都有獨立哈希;七項均未觸及正文,確認端內容也未納入本輪導出。前一輪封存的狀態摘要仍標註未回傳,不能與本輪的控制面日誌混寫。
她在封存單上簽字,隨後把「撤銷請求已受理」旁邊的舊結論劃掉,換成兩行窄口徑說明:撤銷請求進入處理隊列;令牌服務記錄撤銷完成,節點清理任務回執閉合,下游失效狀態仍待核對。兩行字之間留出空白,正好容下一條仍未查完的鏈。
平台責任人看著那處空白:「還要補什麼?」
「補令牌簽發鏈和節點維護工單。」林知夏說,「誰維護 `BA-LEGACY-03`,誰有權限改緩存清理範圍,先看服務責任。個人操作繼續待證。」
她又把F3和ROOF-1528的事件號列入申請範圍,要求導出同一時間窗的調用關聯欄位,但限定只看哈希、狀態和事件關係,不讀通知正文,不取載荷內容。平台責任人按要求生成新的申請單,系統提示預計只保留一次歷史範圍快照。
「一次?」林晏川問。
「舊節點的清理範圍只保留當前快照和一次變更摘要。」技術員說,「如果現在不鎖,下一輪輪換會覆蓋前一版。」
林知夏抬眼:「那就鎖。先把快照保全,再申請讀取變更摘要。」
平台責任人先按獲批清單生成範圍回執,列出本輪可見的欄位名和哈希。封存鎖落下後,審計屏最下方才出現此前未在當前摘要中展示的欄位。
`cache_scope = F3/0318 historical confirmer`
後面跟著一段範圍標籤哈希,欄位只顯示基礎範圍名稱,狀態後綴和創建人不在本輪導出內,修改次數為一次。修改時間落在10:54:49,正是F3簽字端別名從 `sg-temp-17` 回退到舊別名的時間。
林晏川的手停在半空。
平台責任人也沒有立即說話。十點五十四分四十九秒的別名回退、十點五十五分十二秒的兩條服務動作、十點五十五分十四秒的舊組撤銷請求,被一條緩存範圍標籤串在同一張審計屏上。它仍然沒有名字,連原始欄位都不在當前導出里。
林知夏把屏幕截取編號,先封存範圍標籤哈希,再關閉窗口。
「下一輪只調這條標籤的創建、修改和清理日誌。」她說,「正文、通知、帳號本體,都不動。」
審計包底部的狀態燈從黃色變成灰色。十點五十五分十八秒的失敗請求仍停在權限控制器,ROOF-1528仍是「待人工補授權」,而那條被改過一次的範圍標籤,終於留下了一個能繼續追的時間點。