Constellation, a Kubernetes distribution to provide full end-to-end encryption with Confidential Computing - Moritz Eckert from Edgeless Systems
Cloud CommuteMarch 07, 2024x
3
00:23:2821.49 MB

Constellation, a Kubernetes distribution to provide full end-to-end encryption with Confidential Computing - Moritz Eckert from Edgeless Systems

In this episode, host Chris Engelbert welcomes Moritz Eckert from Edgeless Systems, a company specializing in confidential computing technologies. Moritz shares his background in computer security and his journey into co-founding Edgeless Systems. He dives deep into the concept of confidential computing, explaining its hardware-based approach to encrypt memory at runtime and perform remote attestation to ensure the integrity of the computing environment.

Moritz discusses how Edgeless Systems' flagship product, Constellation, provides an "always encrypted" Kubernetes distribution, allowing data to remain encrypted throughout its lifecycle—from network transit to processing and storage. This ensures maximum security, especially for cloud-native applications, by leveraging hardware features available on modern CPUs.

They explore the practical implications for application developers, emphasizing that the goal is to make the underlying security features invisible to developers, requiring no significant changes to their existing workflows. The conversation also touches on the current landscape of confidential computing hardware, the support from major cloud providers, and the potential for confidential computing in AI and machine learning contexts, particularly with GPUs.

The conference Moritz mentioned during the show: OC3 - Open Confidential Computing Conference - https://www.oc3.dev/

For questions, you can reach Moritz at:

You can learn more about Edgeless Systems at:

The Cloud Commute Podcast is presented by simplyblock (https://www.simplyblock.io)


01:00:00
Nvidia has in fact released with

01:00:02
the H100, which is their latest

01:00:05
chip. They released the same

01:00:07
or more or less the same features

01:00:09
as with the CPUs also for the

01:00:10
GPUs. You have attestation

01:00:12
and you have the runtime isolation

01:00:14
encryption for the GPU as well.

01:00:23
You're listening to simplyblock's

01:00:24
Cloud Commute podcast, your weekly

01:00:26
20-minute podcast about cloud

01:00:28
technologies, Kubernetes,

01:00:29
security, sustainability and more.

01:00:32
Hello everyone,

01:00:33
welcome back to another

01:00:34
episode. Today I have Moritz with

01:00:37
me. Moritz is from Edgeless Systems,

01:00:40
a really cool company.

01:00:42
So welcome Moritz. Thank you

01:00:46
Chris, great to be here. Ah yeah,

01:00:48
we're happy to have you.

01:00:50
So maybe just start very quickly.

01:00:55
Who are you? What is your

01:00:56
background? And

01:00:57
specifically, what is

01:00:59
this cool technology from Edgeless

01:01:03
Systems?

01:01:08
Edgeless Systems, yeah, no, that's

01:01:10
right. Yeah, who am I? Yeah, I'm a

01:01:16
German that studied computer

01:01:18
science once in his life, got

01:01:21
really deep into security.

01:01:23
Computer security played a lot of

01:01:25
capture-the-flag competitions and

01:01:29
was excited about research in that

01:01:31
area. Actually started off

01:01:34
doing a PhD and doing research in

01:01:37
security, more specifically like

01:01:40
binary system security.

01:01:42
And wanted to do a little pivot,

01:01:47
do something outside of the

01:01:51
research world and stumbled up on

01:01:54
my colleagues these days, Thomas

01:01:58
and Felix, who were about to fund

01:02:02
a company called Edgeless Systems

01:02:06
on the topic of confidential

01:02:09
computing. And I had some touch

01:02:13
points. I actually did a bachelor

01:02:15
thesis in this area where I was

01:02:20
looking more from like the

01:02:20
offensive side,

01:02:22
the attacking side.

01:02:24
But the idea of, yeah, a new

01:02:27
technology, a deep tech startup in

01:02:29
Germany and building some cool

01:02:32
stuff really got me hooked. And I

01:02:34
decided to join those two guys as

01:02:36
the first employee. And

01:02:39
that's where, at least for me, the

01:02:40
story of Edgeles Systems started. And yeah, I

01:02:44
guess the

01:02:45
pressing question is what

01:02:46
is confidential computing? What is

01:02:47
Edgeless doing? So confidential

01:02:49
computing is a hardware-based

01:02:52
technology or a term for

01:02:54
generalizing this hardware-based

01:02:56
technology where chips,

01:02:58
specifically CPUs, have the

01:03:00
ability to keep memory encrypted

01:03:02
at runtime. I

01:03:03
think that's the most

01:03:06
prominent feature. And they also

01:03:09
have a feature for doing a form of

01:03:13
remote attestation, basically

01:03:14
providing you with a form of

01:03:17
verifying that this is exactly the

01:03:20
CPU you expect to

01:03:22
be there. Let's say,

01:03:24
for example, this is an Intel CPU

01:03:25
with this and that firmware that

01:03:27
is currently running

01:03:29
that application inside such

01:03:32
encrypted memory environment. And

01:03:34
these are the main two new

01:03:36
features that the processors or

01:03:37
the hardware vendors introduced.

01:03:39
And confidential computing

01:03:40
is summarizing all of the tech

01:03:42
that builds up on these

01:03:43
features, essentially.

01:03:47
Interesting. So attestation, in

01:03:50
the sense of you can actually make

01:03:52
sure nobody exchanged

01:03:53
the CPU against something you

01:03:55
would not expect? Exactly right.

01:03:59
The CPU has a burned-in secret

01:04:01
and basically uses that for

01:04:03
signing some reports about itself

01:04:07
and also about what's currently

01:04:09
running in that support. Got it.

01:04:12
So it's something along the lines

01:04:14
of secure boot where you also have

01:04:16
the attestation of the different

01:04:17
stages of the boot process.

01:04:20
Interesting. In a sense, yes.

01:04:22
But from my understanding, Edgeless Systems

01:04:27
Constellation is a

01:04:30
Kubernetes distribution that

01:04:31
enables you to have an always

01:04:34
encrypted container. What does

01:04:38
always encrypted

01:04:39
mean and what does that

01:04:40
give you specifically? Right. So

01:04:43
this is basically our take on

01:04:46
confidential computing is that

01:04:49
we try to... So first of all, we

01:04:52
see this fundamentally as a cloud

01:04:54
technology where

01:04:59
there's a need for establishing

01:05:01
trust because you run on a shared

01:05:04
infrastructure in a remote place

01:05:07
where it might be necessary, first

01:05:09
of all, to isolate yourself

01:05:11
against that infrastructure

01:05:13
layer. And you want to establish

01:05:16
some form of trust before

01:05:18
processing any

01:05:20
kind of sensitive data

01:05:22
as one example. And because it's

01:05:26
fundamentally for us a cloud

01:05:28
technology, our focus area or our

01:05:30
products are in this

01:05:32
infrastructure layer where you

01:05:35
want to enable cloud

01:05:36
native applications to

01:05:37
consume this technology. And yeah,

01:05:42
that's basically why from the

01:05:44
start our focus was very much on

01:05:46
this Kubernetes cloud native

01:05:50
application layer. And maybe with

01:05:57
this focus of let's build these

01:06:00
infrastructure tools, right? Let's

01:06:01
build the shovels for the gold

01:06:02
rush so that you can build up

01:06:04
these cool applications that

01:06:07
consume the technology. And yeah,

01:06:10
as you said, our main

01:06:12
product these days is called

01:06:13
Constellation, which is a

01:06:15
Kubernetes distribution

01:06:16
specifically for

01:06:19
confidential computing or that

01:06:20
specifically makes confidential

01:06:21
computing available for your

01:06:23
application. And we also call it

01:06:27
an always encrypted Kubernetes for

01:06:30
those people that are

01:06:30
not that familiar with the term of

01:06:32
confidential computing, always

01:06:33
encrypted maybe is a bit more

01:06:37
triggering. And always encrypted

01:06:42
means, right, when you use

01:06:44
Kubernetes these

01:06:45
days, you might use

01:06:46
some some CNI network interface

01:06:49
that does encryption on the wire,

01:06:51
you have storage that

01:06:54
implements encryption in one place

01:06:56
or another. And now what we add is

01:07:00
this in between encryption

01:07:02
during processing the encryption

01:07:04
in use, and thereby closing this

01:07:06
logical gap so that when

01:07:08
when you have a Kubernetes

01:07:10
cluster, or you have a

01:07:12
containerized application that

01:07:13
runs in the cloud,

01:07:15
the data that flows through this

01:07:16
application is encrypted through

01:07:19
the entire time. So when it

01:07:21
comes in, maybe over the network,

01:07:23
it's being processed as being

01:07:25
stored on disk for consistency

01:07:27
at all times the data is

01:07:28
encrypted. That's what this always

01:07:31
always encryption means.

01:07:33
Right, right. So from an

01:07:35
application developer or the

01:07:37
application

01:07:37
developers point of view,

01:07:39
do I need to be aware of

01:07:40
something? Do I need to build my

01:07:43
applications slightly different?

01:07:44
Is there something like some

01:07:47
overhead? I think you said it's

01:07:50
implemented in

01:07:50
hardware. So I guess

01:07:51
the overhead wouldn't be too big,

01:07:53
but it's very something I have to

01:07:55
be careful about.

01:07:57
Right. And this is a very

01:07:59
excellent question, because my

01:08:01
fundamental belief is that

01:08:04
we are very much deep down in the

01:08:06
stack, somewhat of like a

01:08:07
foundation, but

01:08:08
we should be almost

01:08:09
invisible. If we build this right,

01:08:10
it should be always invisible.

01:08:11
Because me as an application

01:08:13
developer, I don't want to care

01:08:15
about it. Similar to like,

01:08:18
hopefully, I don't

01:08:18
need to care about that

01:08:20
my storage is encrypted, or

01:08:21
there's network encryption, I just

01:08:23
want to deploy my application

01:08:24
and consume this. And maybe the

01:08:27
first iteration of confidential

01:08:29
computing technology,

01:08:32
it was not quite there yet. It

01:08:34
gets very technical, but

01:08:36
essentially, the

01:08:37
first iteration called

01:08:38
Intel SGX was very much process

01:08:40
based. So that means to do that,

01:08:44
you would need to, or to consume

01:08:46
that you wouldn't to adjust your

01:08:47
application, you would have it has

01:08:49
some effects on the application

01:08:50
layer. And with these later

01:08:52
generations, now, the focus is

01:08:54
more on the virtualization layer,

01:08:57
the hypervisor layer, they don't

01:08:59
isolate and process your isolate

01:09:01
essentially an entire VM.

01:09:02
And this can now be applied in

01:09:06
different ways. And with

01:09:07
Constellation, we

01:09:08
apply this, let's say,

01:09:09
on the Kubernetes layer, that's

01:09:10
why we have a Kubernetes

01:09:12
distribution,

01:09:12
where we isolate every

01:09:14
Kubernetes node inside its own

01:09:16
confidential VM. So when you

01:09:18
deploy a container, it runs inside

01:09:20
that confidential VM, the memory

01:09:22
of that container during

01:09:23
processing is

01:09:24
automatically encrypted.

01:09:25
Um, yeah, we do some some, of

01:09:29
course, some more

01:09:32
tricks and treats in different in

01:09:35
different layers. So that not only

01:09:37
is the memory encrypted,

01:09:38
but we can also make use of this

01:09:39
attestation feature so that in the

01:09:41
end, when you create

01:09:42
a Constellation cluster, you can

01:09:44
do some meaningful verification

01:09:46
about this is indeed

01:09:48
a benign Constellation cluster

01:09:53
that has integrity that when I

01:09:56
deploy my application,

01:09:57
I know I have this runtime

01:09:59
environment that is isolated from

01:10:01
the cloud and fundamentally the

01:10:03
cloud provider, which is probably

01:10:05
the most important feature. So

01:10:06
yeah, as application developer,

01:10:08
I don't really need to take

01:10:09
care. For me, it's just

01:10:12
any other Kubernetes. In fact,

01:10:16
it's CNCF certified in the sense

01:10:18
that it fulfills the CNCF

01:10:23
Kubernetes conformance tests,

01:10:25
which is not surprising, because

01:10:26
even though we are a Kubernetes

01:10:28
distribution, we don't

01:10:29
modify the Kubernetes itself,

01:10:31
right inside our confidential VMs

01:10:33
inside the isolated environment,

01:10:35
there are the vanilla Kubernetes

01:10:37
components running. So we run the

01:10:39
actual release artifacts

01:10:40
from the Kubernetes project

01:10:42
itself. So it's not surprising

01:10:44
that we fulfilled that.

01:10:45
In that sense, but yeah.

01:10:50
So that means you are a CNCF

01:10:54
certified Kubernetes distribution,

01:10:55
which I think is important for

01:10:56
many people that that actually

01:10:58
need to run their own

01:10:59
Kubernetes clusters. And that

01:11:01
makes total sense. Yeah. When I

01:11:04
install that, do I install in

01:11:06
in in a cloud and a private cloud

01:11:08
on prem? Anything? Yeah, yeah. I

01:11:13
mean, the goal here is,

01:11:13
of course, anything. There are

01:11:17
multiple arguments for Kubernetes

01:11:20
or strong, strong

01:11:21
points on multiple

01:11:22
Kubernetes distributions. For us,

01:11:24
of course, it's the confidential

01:11:25
computing aspect. So the primary

01:11:27
focus is public cloud. Currently,

01:11:31
you can go through the three

01:11:32
hyperscaders and you can

01:11:34
create Constellation clusters.

01:11:35
What needs to be there is this

01:11:37
this hardware layer, you need the

01:11:40
hardware features and you need to

01:11:42
be have them exposed so that we

01:11:44
can consume them create our

01:11:47
confidential computing

01:11:48
environments. And we have that in

01:11:50
the on the

01:11:51
hyperscalers. You can, of course,

01:11:53
also do that on prem, there might

01:11:54
be different reasons to do so.

01:11:57
It's not the typical cloud case,

01:11:59
then I guess, but yeah, you can

01:12:00
you can do that as well. And this

01:12:02
is, I guess, where the most touch

01:12:04
points are with constellations. So

01:12:05
the actual handling of the

01:12:08
Kubernetes distribution. And you

01:12:11
can use constellations standalone.

01:12:14
But I think, yeah, that's probably

01:12:16
one of the more interesting

01:12:18
points in terms of any kind of

01:12:24
compromises you have to do. So we

01:12:28
try to make your life as easy

01:12:32
as possible. And we don't get

01:12:35
around having our own

01:12:37
distribution, due to

01:12:39
the fact that this should

01:12:40
be an isolated environment. It's

01:12:42
not a way to offer this in a

01:12:45
managed way. So

01:12:47
one thing, of course,

01:12:48
is integrations like terraform,

01:12:49
infrastructures as code. Yeah, so

01:12:52
you can plug and play that into

01:12:54
into your into your code base.

01:12:57
And then other directions are

01:12:58
integrations, like, I would call

01:13:00
them meta orchestrators, like

01:13:02
let's say, a SUSE Rancher, or

01:13:04
there might be

01:13:05
others out there. And

01:13:07
of course, integrations into

01:13:09
these kind of toolings are also

01:13:12
something we strive towards,

01:13:13
but we're not quite there yet.

01:13:15
Right, right. So you said in cloud

01:13:19
providers, I guess you can

01:13:22
deploy it from from marketplaces

01:13:24
as the easiest solution.

01:13:26
Yes, marketplaces is the easiest

01:13:30
way. And it also offers us to

01:13:31
provide this in a

01:13:32
dynamically built

01:13:34
way, right? So you get

01:13:36
automatically built for only as

01:13:38
much as you

01:13:38
consume. Right, right. And

01:13:41
you also mentioned that you need

01:13:43
to make sure that the hardware

01:13:45
is or the hardware capability is

01:13:48
actually exposed. I think for when

01:13:50
you when you use the marketplace

01:13:51
installation, that's probably

01:13:52
easy because you only provide or

01:13:54
only offer the different options

01:13:55
that are available. But are

01:13:58
there like older instances where

01:14:01
this capability is not available

01:14:03
or older systems? Or is that

01:14:06
something which is slowly fading

01:14:08
away and it's not going to be an

01:14:10
issue in the next

01:14:10
month or so? No, no. So yeah,

01:14:15
they're currently not not all

01:14:17
machine types have that feature

01:14:20
available. It's it's still

01:14:22
relatively new. But I'd say like

01:14:26
for AMD, the the latest generation

01:14:29
exists, I think, since the last

01:14:31
two generations. With Intel, it's

01:14:34
it's being rolled out with the

01:14:35
with the last generation. So it's

01:14:38
something that will with the

01:14:40
upcoming releases be

01:14:44
probably be available in almost

01:14:45
all instance types. But as of now,

01:14:47
yeah, there are specific

01:14:48
instance types. You need to select

01:14:51
those instance types for creating

01:14:53
the cluster. Sure, as you say,

01:14:56
marketplace make this

01:14:57
straightforward. Depending on the

01:14:58
client side tooling.

01:15:00
It's also fairly simple,

01:15:02
or, of course, document well

01:15:03
documented also by the cloud

01:15:04
providers. Right.

01:15:06
Just in case somebody,

01:15:08
I don't know how broadly this

01:15:10
is used right now. You mentioned

01:15:13
AMD and Intel is ARM supported.

01:15:16
Yeah, that's no, that's a great,

01:15:19
great question. And ARM is

01:15:21
something people, of course,

01:15:23
ask a lot. So there is an ARM

01:15:26
specification for confidential

01:15:28
computing called the

01:15:30
CCA, the confidential computing

01:15:33
architecture. So far, it was not

01:15:37
released as silicon. So the

01:15:39
specifications are nobody has

01:15:41
licensed and built a chip based on

01:15:44
that. But very interestingly,

01:15:47
there will be so we will organize

01:15:48
a online conference next week for

01:15:50
confidential computing

01:15:51
called the OC3. And there will be

01:15:54
a big talk from about ARM and ARM

01:15:57
CCA from mostly ARM folks.

01:16:01
And believe some some, yeah, not

01:16:03
sure maybe some from some cloud

01:16:04
providers or something.

01:16:06
And they will present the current

01:16:08
status and when things are getting

01:16:12
getting, yeah, started with

01:16:15
silicon. So yeah, if that's an

01:16:18
interesting topic for some

01:16:19
listeners might be

01:16:21
interested to listen

01:16:22
into this talk at the OC3, which

01:16:24
is free for sign

01:16:26
up. Perfect. And OC3.dev.

01:16:30
Well, we'll put it in the notes.

01:16:33
People will find it. It's always

01:16:36
easier to just

01:16:37
give somebody a link.

01:16:39
Yeah, for sure. That is

01:16:41
actually interesting. I

01:16:42
think I have to sign up

01:16:43
myself. That sounds really, really

01:16:45
interesting. I've done a little

01:16:47
bit in like secure computing

01:16:50
for embedded devices in the past.

01:16:52
That's why I know the attestation

01:16:53
for secure boot and similar

01:16:56
systems. So that is certainly

01:16:58
something along my mind as well.

01:17:02
All right. Let me see. We think is

01:17:05
like the most important trend

01:17:07
right now when you look at

01:17:10
something like

01:17:10
Kubernetes as a whole or

01:17:13
specifically like the computing

01:17:16
space or the secure computing

01:17:17
space you're in.

01:17:19
Yeah. Very good question. I think

01:17:21
this is this space has so much

01:17:23
velocity that so many things

01:17:25
are happening. One thing I would

01:17:27
definitely see is that all of this

01:17:29
AI generative AI large language

01:17:32
model thing is not passing us

01:17:35
entirely. I think it's hitting us

01:17:37
full front in all

01:17:39
kinds of capacities.

01:17:40
But of course, we also get asked,

01:17:43
okay, now what about confidential

01:17:45
computing in terms of AI,

01:17:46
in terms of GPUs? Because there's

01:17:50
a very interesting use case,

01:17:52
right? All of these people

01:17:52
want to consume things like chat

01:17:55
GPT. But do you provide all of

01:17:57
your data to chat GPT? Maybe

01:17:59
in your personal life, but do you

01:18:00
can you do that in an enterprise

01:18:02
context? What about like the

01:18:04
public sector? And yeah, lots of

01:18:07
questions. And that's where we see

01:18:09
a lot of things getting

01:18:12
are moving. Nvidia has in fact

01:18:14
released with the H100, which is

01:18:16
their, I think, still latest chip.

01:18:19
They released the same or more or

01:18:21
less the same features as with the

01:18:23
CPUs also for the GPUs you

01:18:24
have attestation and you have

01:18:26
the runtime isolation encryption

01:18:28
for the GPU as well.

01:18:32
So yeah, that's something where we

01:18:34
are very busy with. How can we

01:18:36
make that available to both

01:18:38
votes? So that yeah, you can,

01:18:42
let's say you can build a

01:18:43
confidential chat

01:18:44
GPT in a way to say it

01:18:47
in very broad terms. But yeah,

01:18:48
that's, that's definitely

01:18:49
something. And I believe this,

01:18:51
this is just my view, but the

01:18:52
whole AI space is also super

01:18:55
interesting for the

01:18:56
I think that makes, yeah, I think

01:18:58
that makes a lot of sense.

01:19:00
Especially because you said,

01:19:01
right, if you if you need to

01:19:03
analyze those data, do you want to

01:19:05
have it encrypted everywhere,

01:19:08
except for when you actually

01:19:09
process it. But on the other hand,

01:19:12
it's interesting that you said

01:19:13
AMD has it in their CPUs for a

01:19:16
long time, but it seems nobody

01:19:17
thought about the

01:19:18
graphics cards yet.

01:19:21
Right. It's

01:19:21
interesting. Yeah, yeah.

01:19:23
Yeah, for sure.

01:19:26
So one last question, because

01:19:29
we're already running out of time,

01:19:30
like, what do you

01:19:31
think is like the

01:19:32
most overlooked workload, or type

01:19:35
of workload when you move

01:19:37
to the cloud? Or what do you

01:19:38
think is mostly overlooked in

01:19:41
workloads? Let's let's play that

01:19:42
way. And don't

01:19:43
don't say encryption,

01:19:44
because that's obvious. No, I

01:19:49
mean, this, this is a very

01:19:50
difficult question.

01:19:54
Probably there are a lot of a lot

01:19:55
of things you could

01:19:56
you could name here.

01:19:59
Yeah, I could give so many

01:20:02
philosophical, answers here.

01:20:06
But I think one thing I see right

01:20:08
now when we when we talk about

01:20:09
cloud migration stuff,

01:20:11
we are very much at this

01:20:12
infrastructure layer, we are very

01:20:13
much at this,

01:20:14
let's say the original

01:20:16
layer still of cloud, where, as if

01:20:19
we look at the cloud providers,

01:20:20
we're already talking about like

01:20:23
PaaS services, of course,

01:20:24
SaaS services, everything can be

01:20:26
consumed in a

01:20:28
managed way.

01:20:32
And yet, there's, I

01:20:35
believe there are a very

01:20:36
interesting

01:20:36
discussions in the area.

01:20:39
Where do I want to go in that in

01:20:41
that in that range, right? Do I

01:20:44
want to use plain infrastructure

01:20:45
service, you want to use as much

01:20:47
managed as possible, because it

01:20:49
reduces the cost I need on

01:20:51
my side, in terms of expertise in

01:20:53
terms of building stuff, in terms

01:20:56
of costs, I don't know.

01:20:59
But also, I lose a bit, maybe a

01:21:01
bit of control, I lose a maybe a

01:21:03
bit of in house knowledge.

01:21:06
That's definitely an interesting,

01:21:08
I don't know,

01:21:10
triangle, where, yeah,

01:21:13
moving in one direction or the

01:21:16
other has certain implications on

01:21:20
the on the other side.

01:21:22
All right. Yeah, I was that was

01:21:25
fun. As I said, we're

01:21:27
unfortunately out

01:21:28
of time again. Yeah.

01:21:30
It's 20 minutes is so short.

01:21:32
Anything else you want to add on

01:21:34
that? Anything you

01:21:35
feel you have to give

01:21:36
away. No, I hope maybe some

01:21:41
listener found found this

01:21:42
insightful. I can just repeat

01:21:46
myself the OC3, if you're

01:21:48
interested in the topic, I think

01:21:49
that's a good

01:21:49
place to start. Get a

01:21:51
broad overview from all of

01:21:53
different players like cloud

01:21:54
providers, open

01:21:55
source vendors, as we are

01:21:58
hardware vendors. Yeah, lots of

01:22:00
stuff to explore. Awesome. Well,

01:22:03
we'll put your contact details in

01:22:05
in the show notes. I am not sure

01:22:08
if it will be out before

01:22:11
the OC3. Okay. Yeah.

01:22:15
If not, everything will be

01:22:17
recorded in on YouTube still

01:22:19
probably a good

01:22:19
place to start. Yeah,

01:22:21
but yeah. I wanted to say if

01:22:23
somebody wants to meet you and

01:22:24
talk to you about it, but you're

01:22:26
probably being at different

01:22:27
conferences. And as I said, we put

01:22:29
contact details for you. So people

01:22:32
can just write you a mail or

01:22:33
ask any question. All right.

01:22:36
Thank you very much. It

01:22:38
was lovely having you. I still

01:22:40
have a lot of questions. You may

01:22:42
have to come back at some point.

01:22:44
No, thank you. Thank you very much

01:22:45
for having me. It

01:22:46
was great chatting.

01:22:49
All right. Thank you very much,

01:22:50
people. I'm looking forward to see

01:22:53
you next week. And we'll see you

01:22:56
again.