Skip to content

Commit 4e3ca3c

Browse files
committed
Update to the latest way of preforming attestation
using AK registration Signed-off-by: Roy Kaufman <[email protected]>
1 parent 3cb3cff commit 4e3ca3c

File tree

17 files changed

+70
-58
lines changed

17 files changed

+70
-58
lines changed
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@ storage:
3535
mode: 0755
3636
contents:
3737
local: populate_kbs.sh
38+
- path: /usr/local/bin/kbs-client
39+
mode: 0755
40+
contents:
41+
local: kbs-client
3842
- path: /etc/containers/systemd/key-generation.container
3943
mode: 0644
4044
contents:
@@ -55,5 +59,9 @@ storage:
5559
mode: 0644
5660
contents:
5761
local: containers/nginx.container
62+
- path: /etc/containers/systemd/register-ak.container
63+
mode: 0644
64+
contents:
65+
local: containers/register-ak.container
5866

5967

configs/trustee-gcp/containers/kbc.container renamed to configs/trustee/containers/kbc.container

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ After=key-generation.container
44

55
[Container]
66
ContainerName=kbs-client
7-
Image=quay.io/rkaufman/kbs-tpm-snp:v1
7+
Image=quay.io/trusted-execution-clusters/trustee-attester:TPM-additional-dev
88
Network=host
99
Volume=user-keys:/opt/confidential-containers/kbs/user-keys
1010
Exec=tail -f /dev/null

configs/trustee-gcp/containers/kbs.container renamed to configs/trustee/containers/kbs.container

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ After=key-generation.container
44

55
[Container]
66
ContainerName=kbs
7-
Image=quay.io/rkaufman/kbs-tpm-snp:v1
7+
Image=quay.io/trusted-execution-clusters/key-broker-service:fix-TPM-report-data-size
88
Network=host
99
Entrypoint=/usr/local/bin/kbs
1010
PublishPort=8080:8080
@@ -13,6 +13,7 @@ Volume=/var/kbs/config/kbs-config.toml:/opt/confidential-containers/kbs/config/k
1313
Volume=kbs-storage:/opt/confidential-containers/kbs/repository
1414
Volume=nebula-ca:/opt/confidential-containers/kbs/nebula-ca
1515
Volume=user-keys:/opt/confidential-containers/kbs/user-keys
16+
Volume=trusted-ak-keys:/etc/tpm/trusted_ak_keys
1617
Exec=--config-file \
1718
/opt/confidential-containers/kbs/config/kbs-config.toml
1819

File renamed without changes.
File renamed without changes.
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
[Unit]
2+
Description=server that allow to register AK
3+
Wants=network-online.target
4+
After=network-online.target
5+
6+
[Container]
7+
ContainerName=register-ak
8+
Image=quay.io/trusted-execution-clusters/test-server-ak:latest
9+
PublishPort=5001:5001
10+
Volume=trusted-ak-keys:/data
11+
12+
[Install]
13+
WantedBy=default.target

configs/trustee/kbs-client

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#!/bin/bash
2+
3+
set -euo pipefail
4+
# set -x
5+
6+
KEY="${KEY:=/opt/confidential-containers/kbs/user-keys/private.key}"
7+
8+
sudo podman exec -ti \
9+
kbs-client \
10+
kbs-client \
11+
config \
12+
--auth-private-key "${KEY}" \
13+
"${@}"
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ type = "BuiltIn"
2525
[attestation_service.rvps_config.storage]
2626
type = "LocalFs"
2727

28+
[attestation_service.verifier_config.tpm_verifier]
29+
trusted_ak_keys_dir = "/etc/tpm/trusted_ak_keys"
30+
max_trusted_ak_keys = 100
2831

2932
[[plugins]]
3033
name = "resource"
Lines changed: 8 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,11 @@ KEY=${KEY:=/opt/confidential-containers/kbs/user-keys/private.key}
99
## set reference values for TPM
1010
for i in {7,14}; do
1111
value=$(sudo tpm2_pcrread sha256:${i} | awk -F: '/0x/ {sub(/.*0x/, "", $2); gsub(/[^0-9A-Fa-f]/, "", $2); print tolower($2)}')
12-
podman exec -ti kbs-client \
13-
kbs-client config \
14-
--auth-private-key ${KEY} \
15-
set-sample-reference-value tpm_pcr${i} "${value}"
12+
kbs-client set-sample-reference-value tpm_pcr${i} "${value}"
1613
done
1714

1815
# Check reference values
19-
podman exec -ti kbs-client \
20-
kbs-client config \
21-
--auth-private-key ${KEY} \
22-
get-reference-values
16+
kbs-client get-reference-values
2317

2418

2519
# Create attestation policy
@@ -53,25 +47,15 @@ result := {
5347
}
5448
EOF
5549

56-
podman cp A_policy.rego kbs-client:/A_policy.rego
57-
podman exec -ti kbs-client \
58-
kbs-client config \
59-
--auth-private-key ${KEY} \
60-
set-attestation-policy \
61-
--policy-file /A_policy.rego \
62-
--type rego --id default_cpu
50+
sudo podman cp A_policy.rego kbs-client:/A_policy.rego
51+
kbs-client set-attestation-policy --policy-file A_policy.rego --type rego --id default_cpu
6352

6453
# Upload resource
6554
cat > secret << EOF
6655
{ "key_type": "oct", "key": "2b442dd5db4478367729ef8bbf2e7480" }
6756
EOF
68-
podman cp secret kbs-client:/secret
69-
podman exec -ti kbs-client \
70-
kbs-client config \
71-
--auth-private-key ${KEY} \
72-
set-resource --resource-file /secret \
73-
--path ${SECRET_PATH}
74-
57+
sudo podman cp secret kbs-client:/secret
58+
kbs-client set-resource --resource-file /secret --path ${SECRET_PATH}
7559

7660
# Create resource policy
7761
## This policy allows access only if both CPUs report an "affirming" status
@@ -90,9 +74,5 @@ allow if {
9074
}
9175
EOF
9276

93-
podman cp R_policy.rego kbs-client:/R_policy.rego
94-
podman exec -ti kbs-client \
95-
kbs-client config \
96-
--auth-private-key ${KEY} \
97-
set-resource-policy \
98-
--policy-file /R_policy.rego \
77+
sudo podman cp R_policy.rego kbs-client:/R_policy.rego
78+
kbs-client set-resource-policy --policy-file R_policy.rego

containerfiles/trustee-attester.container

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ RUN . /etc/os-release && \
1313
RUN dnf install -y git tss2-devel tpm2-tss-devel cargo openssl-devel perl
1414

1515
RUN cd /usr/src/ && \
16-
git clone https://github.com/confidential-containers/guest-components.git && \
16+
git clone https://github.com/trusted-execution-clusters/guest-components.git && \
1717
cd guest-components && git checkout ${COMMIT}
1818

1919
RUN cd /usr/src/guest-components && \

0 commit comments

Comments
 (0)