• 沒有找到結果。

第三章 基於區塊鏈的 PKI 容錯架構

第七節 申訴

前面已經分析完所有錯誤情形,在這個章節將會詳細說明任何錯誤的詳細申 訴流程,包括Owner 要上傳甚麼證據、Contract 會如何判決。

第一段 憑證從樹上消失

定義:Owner 在稽核階段的第三個步驟,檢查憑證資料時,直接找不到憑證

訊息,意即key-value pair 移失。這有兩種可能,第一種是 CA 在申請的時候就未 放入Tree 中,另一種則是 CA 某日不小心刪除 key-value pair。

情境:

圖10 CA 未放入之情境

26

圖11 從樹上消失之情境

申訴依據:𝐴𝐶𝑀𝑟𝑒𝑞𝑢𝑒𝑠𝑡、𝐴𝐶𝑀𝑟𝑒𝑝𝑙𝑦、List of key-value pairs。

申訴步驟:

第一步:Owner 將回條𝐴𝐶𝑀𝑟𝑒𝑝𝑙𝑦、Slice、list of key-value pairs 打入 Contract。

第二步:Contract 檢查回條上 CA 簽名是否正確。

第三步:Contract 確認 CO 與 Root hash 是否與本身記錄的一致。

第四步:Contract 計算 Slice、list of key-value pairs 是否正確。

第五步:Contract 檢查 list of key-value pairs 內是否有𝐴𝐶𝑀𝑟𝑒𝑝𝑙𝑦記錄之憑證。

第六步:若List of key-value pairs 查無憑證,則判定 CA 弄丟憑證,Contract 將轉出一筆加密貨幣給 Owner,當作賠償金。

第二段 CA 狀態更新錯誤

定義:Owner 有向 CA 發送𝐶𝑆𝑀𝑟𝑒𝑞𝑢𝑒𝑠𝑡,CA 同意請求也給了𝐶𝑆𝑀𝑟𝑒𝑝𝑙𝑦,但 Owner 在稽核階段的第三個步驟,檢查憑證資料時,發現 key-value pair 的憑證狀

態與𝐶𝑆𝑀𝑟𝑒𝑝𝑙𝑦記錄不同。

27

情境:

圖12 CA 狀態更新錯誤之情境

申訴依據:𝐶𝑆𝑀𝑟𝑒𝑞𝑢𝑒𝑡、𝐶𝑆𝑀𝑟𝑒𝑝𝑙𝑦、List of key-value pairs。

申訴步驟:

第一步:Owner 將回條𝐶𝑆𝑀𝑟𝑒𝑝𝑙𝑦、Slice、list of key-value pairs 打入 Contract。

第二步:Contract 檢查回條上 CA 簽名是否正確。

第三步:Contract 確認 CO 與 Root hash 是否與本身記錄的一致。

第四步:Contract 計算 Slice、list of key-value pairs 是否正確。

第五步:Contract 比對 List of key-value pairs 內記錄的憑證狀態是否與 𝐶𝑆𝑀𝑟𝑒𝑝𝑙𝑦記錄相同。

第六步:若比對結果不相同,判定CA 狀態更新錯誤,Contract 將轉出一筆 加密貨幣給 Owner,當作賠償金。

第三段 CA 撤銷憑證錯誤

定義:CA 撤銷憑證並未按照正常程序(先暫停,在撤銷),導致 Owner 在稽

核階段,發現憑證狀態從Add 或 Renew,直接變為 Revoked。

28

情境:

圖13 CA 撤銷憑證錯誤之情境 申訴依據:CO 相連的兩條 Slice。

申訴步驟:

第一步:Owner 將兩條 Slice、list of key-value pairs 打入 Contract。

第二步:Contract 檢查兩個 Slice 的 CO 是否相連。

第三步:Contract 確認兩對 CO 與 Root hash 是否與本身記錄的一致。

第四步:Contract 計算兩條 Slice、list of key-value pairs 是否正確。

第五步:Contract 比對兩個 List of key-value pairs 內記錄的憑證狀態,是否分 別為 Pause、Revoked。

第六步:若比對結果不符合,判定CA 未照正常程序進行撤銷,Contract 將 轉出一筆加密貨幣給 Owner,當作賠償金。

第四段 𝑴

𝒓𝒆𝒑𝒍𝒚

欄位資料錯誤

定義:Owner 收到的任何種類𝑀𝑟𝑒𝑝𝑙𝑦,其result 為 Accept,但記錄的資料與

𝑀𝑟𝑒𝑞𝑢𝑒𝑠𝑡不同

29

情境:

圖14 𝑴𝒓𝒆𝒑𝒍𝒚欄位資料錯誤之情境

申訴依據:𝑀𝑟𝑒𝑞𝑢𝑒𝑠𝑡、𝑀𝑟𝑒𝑝𝑙𝑦 申訴步驟:

第一步:Owner 將𝑀𝑟𝑒𝑝𝑙𝑦、Slice、list of key-value pairs 打入 Contract。

第二步:Contract 檢查回條上 CA 簽名是否正確。

第三步:Contract 確認𝑀𝑟𝑒𝑝𝑙𝑦的result 是否為 Accept。

第四步:Contract 比對𝑀𝑟𝑒𝑝𝑙𝑦與𝑀𝑟𝑒𝑞𝑢𝑒𝑠𝑡的Status 是否一致。

第五步:若比對結果不符合,判定CA 回條有誤,Contract 將轉出一筆加密 貨幣給 Owner,當作賠償金。

𝑀𝑟𝑒𝑝𝑙𝑦欄位錯誤除了Status 以外,還有 Hash(Certificate)也可能會發生錯誤,

但Hash(Certificate)錯誤會導致 Owner 在稽核時,查無憑證資訊,因此可接使用「憑 證不在樹上」的方式申訴即可

第五段 CA 上傳錯誤證據

定義:Owner 取得的 Slice,其 Root hash 與 Contract 上記錄的不一致。這有

兩種可能,第一種是CA 上傳錯誤的 Root hash 到 Contract 上,第二種則是 CA 發

30

給Owner 的 Slice 有錯誤。可以同時申訴兩種情況的理由是 Contract 只有 CA 能 上傳,而Slice 有 CA 簽名,兩者都只有 CA 可以操作,因此若資料發生不同步,

我們可以合理推斷一定是CA 自己操作失誤。

情境:

圖15 CA 上傳錯誤證據之情境 申訴依據:Slice

申訴步驟:

第一步:Owner 將 Slice、list of key-value pairs 打入 Contract。

第二步:Contract 檢查 Slice、list of key-value pairs 簽名是否正確。

第三步:Contract 確認 CO 與 Root hash 是否與本身記錄的一致。

第四步:若比對結果不符合,判定CA 上傳錯誤證據,Contract 將轉出一筆

加密貨幣給Owner,當作賠償金。

31

相關文件