審計追蹤

出自先虑百科
跳至導覽 跳至搜尋

審計追蹤,可以對系統進行關鍵操作的時候,留下審計日誌,以備今後查看。審計日誌受到電子簽名的保護,生成之後無法篡改。同時,所有的用戶相關操作,會自動計入審計日誌,以確保審計日誌的生成者,是有跡可循的。審計追蹤模塊符合美國FDA Title 21 CFR Part 11的相關法律法規的規定。

術語解釋

  • 審計日誌:在進行一些操作時,需要留下操作日誌,並且該日誌必須與某一操作人進行綁定。此種操作日誌由電子簽名來保護,只有持有操作人本人的私鑰,才可以生成。且一經生成,無法修改。審計日誌包含內容電子簽名兩部分:
    • 內容:即記錄的信息本身,如某操作員在某時刻做了何種操作。
    • 電子簽名:用驗證內容是否被修改的一段信息。
  • 私鑰:私鑰是用來生成電子簽名的一段信息,與某一操作員一一對應。使用私鑰對某一審計日誌生成電子簽名,則在法律上視為該操作員的手動簽名,具有法律效力。 本系統採用ECDSA[1]密鑰對實行簽名/驗證的操作。
    • 私鑰屬於敏感信息,存儲時以操作密碼加密保存。拿到了私鑰,意味着可以以某位操作員的身份生成審計日誌。
    • 私鑰可以推導出與之為唯一對應的公鑰,可以用來驗證電子簽名。
  • 公鑰:與私鑰一一對應,可以由私鑰推導出來。可以用於驗證電子簽名。如其所名,公鑰是可以公開的信息。
  • 電子簽名:由用戶的私鑰,對審計日誌的內容進行運算,所生成的一段信息。
    • 原始內容是二進制信息,打印輸出時,採用base58[2]編碼進行輸出,目的是方便人類閱讀,其實質是與底層二進制完全一樣的,可以互相轉化。
    • 可以用公鑰來驗證,審計日誌的內容是否是有效的(未被篡改)。
    • 驗證:使用公鑰,對審計日誌的內容與電子簽名做驗證的運算,可以知道此內容與此簽名是否匹配。匹配則說明,此電子簽名是由該公鑰的對應的私鑰所生成。而私鑰對應於某一操作員,那就可以認定,該審計日誌確實是由該操作員所生成。

何種操作會被記入審計日誌

  • 在畫面組態時,設定被記入審計日誌的操作
  • 一切對用戶和用戶組進行修改的操作

審計日誌的字段

字段名 含義 說明
signature_timestamp 日期 生成的日期
operator_id 操作人的ID 操作人的數據庫主鍵
operator_name 操作人姓名 在本日誌生成時,操作人的姓名
operator_key_id 私鑰ID 簽名所使用私鑰的主鍵
private_key_fingerprint 私鑰指紋 簽名所使用的私鑰的指紋
category 類別 在組態時設定的審計追蹤,類別為user_action。由系統自動記錄的審計日誌,分別有他們自己的類別
action 動作 何種操作的詳細描述
target_id 關聯記錄ID target_type一起,可以定位到一條與該審計日誌相關聯的記錄。由組態生成的審計日誌,此項與target_type為空
target_type 關聯記錄類型 target_id
extra 額外信息 對本操作有幫助的額外信息,以鍵值對形式存儲。組態時可以將一些變量的當前值存在這裡,以備今後查閱
remark 操作備註 在生成審計日誌時,由操作員記錄的可選信息。
nonce 隨機數 為避免完全相同的審計日誌出現,加入一個隨機數
signature 電子簽名 以上除本字段,均為審計日誌的內容,是生成電子簽名,與驗證電子簽名的主體

審計追蹤的操作事項

  • 一個項目需要在項目屬性里開啟審計追蹤,才可以啟用審計追蹤的功能。
  • 項目在開發模式下,可以任意添加和編輯用戶。這些操作不產生審計日誌。
  • 在項目預覽時,第一次執行需要審計日誌的操作之前,會要求進行審計日誌初始化。
  • 審計追蹤初始化,在用戶管理模塊中進行。進行這個操作,會要求設置當前操作員的操作密碼。之後,之前所有的,在開發模式下建立的用戶、權限等信息,都被視為由該初始化用戶所建立。
    • 該用戶的私鑰,也會一併初始化
  • 非初始化用戶,在第一次觸發需要使用審計日誌的操作時,會要求設置操作密碼。此時私鑰也將生成
  • 如果在開發預覽模式下,初始化過審計日誌,此時如果再在開發模式下添加、編輯用戶,這些操作也不會記入審計日誌。因此如果審查審計日誌的完整性,將會出現問題,例如某用戶找不到創建對應的審計日誌,或其編輯歷史與其當前狀態不符合。這是正常現象。
  • 在部署時,在部署的機器上,仍然需要審計追蹤初始化。此時不會有開發模式進行編輯用戶,因此審計日誌是嚴格的。

審計日誌的展示、導出與驗證

審計日誌組態模塊中,可以直接瀏覽與搜索審計日誌。同時審計日誌支持以Excel與PDF格式進行導出。PDF格式僅能查看,但是普通手段無法修改。Excel雖然理論上可以在輸出後修改,但是可以支持進行審計日誌驗證。任何修改都會導致該條審計日誌簽名驗證失敗,即無效。

  1. ECDSA即橢圓曲線電子簽名算法,是目前業界強度較高的一種算法,也是多數加密系統推薦的算法。
  2. base58是一種可以將任意二進制數據,映射為數字1-9,以及英文字母A-Z的編碼,且去除有歧義的字符,例如數字0、字母O,小寫字母l等。此種編碼是為了讓任意二進制數據,可以由人類進行閱讀。它與二進制數據可以互相轉化。