-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathsequence.pu
More file actions
96 lines (84 loc) · 4.08 KB
/
sequence.pu
File metadata and controls
96 lines (84 loc) · 4.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
@startuml humane-rachain-ns
title Humane-RAChain-NSフロー
<style>
/* monochrome */
element {
BackgroundColor White
FontColor Black
}
sequenceDiagram {
Participant {
BackgroundColor LightGray
LineColor Black
FontColor Black
}
arrow {
FontColor Black
LineColor Black
}
group {
BackgroundColor White
LineColor Black
FontColor Black
}
}
</style>
participant "Client" as client
participant "Server (CVM)" as server
participant "NRAS" as nras
activate nras
activate server
== NCC及びCVMのRAの実施(兼TLS通信路確立) ==
server -> server: TLS自己署名証明書の生成
server -> server: サーバの起動(上記TLS自己署名証明書を使用)
activate client
client -> client: snpguestのパス、NCC Attestation自前検証の有無、\n期待するMeasurementを格納したファイルの読み込み、\n期待するPLATFORM_INFOの指定を実施
client -> client: サーバURLのセットと、snpguestのパス通しを実行
client -> client: SEV-SNP、NCC、TPM用のnonceをそれぞれ乱数的に生成
client -> server: 上記nonceと共にサーバにPOSTリクエスト
server -> server: 動的生成したTLS自己署名証明書を\nレスポンス構造体に格納
server -> server: TSS(TPM操作用SWスタック)の初期化を実施
server -> server: THIM(Azureバックエンド)からのVCEK Certの取得
server -> server: SEV-SNP Attestation Reportの取得
server -> server: NCC Attestation Evidenceの取得
server -> nras: 上記Evidenceを送信し検証要求
nras -> server: NCC Attestation検証結果を返信
server -> server: TPM AK公開鍵の取得
server -> server: PCRバンク23番のリセット
server -> server: 測定対象ファイルによるPCRバンク23番のExtend
server -> server: TPM Quoteの取得
server -> server: IMA関係ファイルのロード
server -> server: 各種証跡のレスポンス構造体への同梱
server -> client: Attestation証跡等を格納したレスポンスの返信
client -> client: VCEK CertをAMD証明書(ARK、ASK)で検証
client -> client: SEV-SNP Attestation Reportの検証。\n署名、Measurement、PLATFORM_INFO、REPORT_DATAの\n検証を実施する
client -> client: TPM AK公開鍵の検証。\nSEV-SNP Attestation Report由来のものと、\nvTPMから取得し転送されたものが一致するかを確認する事で、\n真正性の確認を行う
client -> client: TPM Quoteの検証。署名とPCRリストの正しさを確かめる
client -> client: PCRバンク23番のハッシュを再現し、\nTPM Quoteのそれと一致するかを検証
opt PCR10番の再現計算・検証を行う場合
client -> client: IMAログファイルからPCRバンク10番のハッシュを再現し、\nTPM Quoteのそれと一致するかを検証
end
opt boot_aggregateの再現計算・検証を行う場合
client -> client: PCR0-9番のハッシュ値からboot_aggregateのハッシュを再現し、\nIMAログのそれと一致するかを検証
end
opt IMAログの検証を行う場合
client -> client: IMAログの各エントリのパス・ハッシュをAppraiseポリシに従い評価
end
opt NCC Attestationを自前検証する場合
client -> nras: レスポンスからNCC Attestation証跡を抽出し、\n検証のため送信
nras -> client: Attestation検証結果を返信
end
client -> client: RAの受理判断を実施
opt RAを棄却する場合
client -> client: TLSセッション破棄・プログラム終了
end
== NCC及びCVMのRAの実施(兼TLS通信路確立) ==
client -> server: サンプル秘密計算用の2つの整数を、\nRAで確立したTLS通信路で送信
server -> server: リクエスト内の2つの整数を渡しながら\nサンプル秘密計算スクリプトを実行
server -> client: 結果を返信
client -> client: 結果確認
== 事後処理 ==
client -> client: TLSセッション破棄・プログラム終了
deactivate client
deactivate server
@enduml