「审计追踪」修訂間的差異
跳至導覽
跳至搜尋
Xinye.wang(對話 | 貢獻) |
Xinye.wang(對話 | 貢獻) |
||
| 第1行: | 第1行: | ||
== 术语解释 == | |||
* 审计日志:在进行一些操作时,需要留下操作日志,并且该日志必须与某一操作人进行绑定。此种操作日志由电子签名来保护,只有持有操作人本人的私钥,才可以生成。且一经生成,无法修改。审计日志包含'''内容'''与'''电子签名'''两部分: | * 审计日志:在进行一些操作时,需要留下操作日志,并且该日志必须与某一操作人进行绑定。此种操作日志由电子签名来保护,只有持有操作人本人的私钥,才可以生成。且一经生成,无法修改。审计日志包含'''内容'''与'''电子签名'''两部分: | ||
| 第12行: | 第12行: | ||
** 可以用公钥来验证,审计日志的内容是否是有效的(未被篡改)。 | ** 可以用公钥来验证,审计日志的内容是否是有效的(未被篡改)。 | ||
** 验证:使用公钥,对审计日志的内容与电子签名做验证的运算,可以知道此内容与此签名是否匹配。匹配则说明,此电子签名是由该公钥的对应的私钥所生成。而私钥对应于某一操作员,那就可以认定,该审计日志确实是由该操作员所生成。 | ** 验证:使用公钥,对审计日志的内容与电子签名做验证的运算,可以知道此内容与此签名是否匹配。匹配则说明,此电子签名是由该公钥的对应的私钥所生成。而私钥对应于某一操作员,那就可以认定,该审计日志确实是由该操作员所生成。 | ||
== 何种操作会被记入审计日志 == | |||
* 在画面组态时,设定被记入审计日志的操作 | |||
* 一切对用户和用户组进行修改的操作 | |||
== 审计日志的字段 == | |||
{| class="wikitable" | |||
|+ | |||
!字段名 | |||
!含义 | |||
!说明 | |||
|- | |||
|signature_timestamp | |||
|日期 | |||
|生成的日期 | |||
|- | |||
|operator_id | |||
|操作人的ID | |||
|操作人的数据库主键 | |||
|- | |||
|operator_name | |||
|操作人姓名 | |||
|在本日志生成时,操作人的姓名 | |||
|- | |||
|operator_key_id | |||
|私钥ID | |||
|签名所使用私钥的主键 | |||
|- | |||
|private_key_fingerprint | |||
|私钥指纹 | |||
|签名所使用的私钥的指纹 | |||
|- | |||
|category | |||
|类别 | |||
|在组态时设定的审计追踪,类别为<code>user_action</code>。由系统自动记录的审计日志,分别有他们自己的类别 | |||
|- | |||
|action | |||
|动作 | |||
|何种操作的详细描述 | |||
|- | |||
|target_id | |||
|关联记录ID | |||
|与<code>target_type</code>一起,可以定位到一条与该审计日志相关联的记录。由组态生成的审计日志,此项与<code>target_type</code>为空 | |||
|- | |||
|target_type | |||
|关联记录类型 | |||
|见<code>target_id</code> | |||
|- | |||
|extra | |||
|额外信息 | |||
|对本操作有帮助的额外信息,以键值对形式存储。组态时可以将一些变量的当前值存在这里,以备今后查阅 | |||
|- | |||
|remark | |||
|操作备注 | |||
|在生成审计日志时,由操作员记录的可选信息。 | |||
|- | |||
|nonce | |||
|随机数 | |||
|为避免完全相同的审计日志出现,加入一个随机数 | |||
|- | |||
|signature | |||
|电子签名 | |||
|以上除本字段,均为审计日志的'''内容''',是生成电子签名,与验证电子签名的主体 | |||
|} | |||
== 审计追踪的操作事项 == | |||
* 一个项目需要在项目属性里开启审计追踪,才可以启用审计追踪的功能。 | |||
* 项目在开发模式下,可以任意添加和编辑用户。这些操作不产生审计日志。 | |||
* 在项目预览时,第一次执行需要审计日志的操作之前,会要求进行审计日志初始化。 | |||
* '''审计追踪初始化''',在用户管理模块中进行。进行这个操作,会要求设置当前操作员的操作密码。之后,之前所有的,在开发模式下建立的用户、权限等信息,都被视为由该初始化用户所建立。 | |||
** 该用户的私钥,也会一并初始化 | |||
* 非初始化用户,在第一次触发需要使用审计日志的操作时,会要求设置操作密码。此时私钥也将生成 | |||
* 如果在开发预览模式下,初始化过审计日志,此时如果再在开发模式下添加、编辑用户,这些操作也不会记入审计日志。因此如果审查审计日志的完整性,将会出现问题,例如某用户找不到创建对应的审计日志,或其编辑历史与其当前状态不符合。这是正常现象。 | |||
* 在部署时,在部署的机器上,仍然需要'''审计追踪初始化'''。此时不会有开发模式进行编辑用户,因此审计日志是严格的。 | |||
== 审计日志的展示、导出与验证 == | |||
在'''审计日志'''组态模块中,可以直接浏览与搜索审计日志。同时审计日志支持以Excel与PDF格式进行导出。PDF格式仅能查看,但是普通手段无法修改。Excel虽然理论上可以在输出后修改,但是可以支持进行'''审计日志验证'''。任何修改都会导致该条审计日志签名验证失败,即无效。 | |||
於 2021年8月11日 (三) 12:13 的修訂
術語解釋
- 審計日誌:在進行一些操作時,需要留下操作日誌,並且該日誌必須與某一操作人進行綁定。此種操作日誌由電子簽名來保護,只有持有操作人本人的私鑰,才可以生成。且一經生成,無法修改。審計日誌包含內容與電子簽名兩部分:
- 內容:即記錄的信息本身,如某操作員在某時刻做了何種操作。
- 電子簽名:用驗證內容是否被修改的一段信息。
- 私鑰:私鑰是用來生成電子簽名的一段信息,與某一操作員一一對應。使用私鑰對某一審計日誌生成電子簽名,則在法律上視為該操作員的手動簽名,具有法律效力。
- 私鑰屬於敏感信息,存儲時以操作密碼加密保存。拿到了私鑰,意味着可以以某位操作員的身份生成審計日誌。
- 私鑰可以推導出與之為唯一對應的公鑰,可以用來驗證電子簽名。
- 公鑰:與私鑰一一對應,可以由私鑰推倒出來。可以用於驗證電子簽名。如其所名,公鑰是可以公開的信息。
- 電子簽名:由用戶的私鑰,對審計日誌的內容進行運算,所生成的一段信息。
何種操作會被記入審計日誌
- 在畫面組態時,設定被記入審計日誌的操作
- 一切對用戶和用戶組進行修改的操作
審計日誌的字段
| 字段名 | 含義 | 說明 |
|---|---|---|
| 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雖然理論上可以在輸出後修改,但是可以支持進行審計日誌驗證。任何修改都會導致該條審計日誌簽名驗證失敗,即無效。
- ↑ base58是一種可以將任意二進制數據,映射為數字1-9,以及英文字母A-Z的編碼,且去除有歧義的字符,例如數字0、字母O,小寫字母l等。此種編碼是為了讓任意二進制數據,可以由人類進行閱讀。它與二進制數據可以互相轉化。