Re: Internal key management system

Поиск
Список
Период
Сортировка
От Jose Luis Tallon
Тема Re: Internal key management system
Дата
Msg-id 4a73c734-668e-257a-1c6e-21744e5df055@adv-solutions.net
обсуждение исходный текст
Ответ на Re: Internal key management system  (Cary Huang <cary.huang@highgo.ca>)
Список pgsql-hackers
On 18/6/20 19:41, Cary Huang wrote:
Hi all

Having read through the discussion, I have some comments and suggestions that I would like to share. 

I think it is still quite early to even talk about external key management system even if it is running on the same host as PG. This is most likely achieved as an extension that can provide communication to external key server and it would be a separate project/discussion. I think the focus now is to finalize on the internal KMS design, and we can discuss about how to migrate internally managed keys to the external when the time is right.

As long as there exists a clean interface, and the "default" (internal) backend is a provider of said functionality, it'll be fine.

Given that having different KMS within a single instance (e.g. per database) is quite unlikely, I suggest just exposing hook-like function-pointer variables and be done with it. Requiring a preloaded library for this purpose doesn't seem too restrictive ---at least at this stage--- and can be very easily evolved in the future --- super-simple API which receives a struct made of function pointers, plus another function to reset it to "internal defaults" and that's it.


Key management system is generally built to manage the life cycle of cryptographic keys, so our KMS in my opinion needs to be built with key life cycle in mind such as:

* Key generation
* key protection
* key storage
* key rotation
* key rewrap
* key disable/enable
* key destroy

Add the support functions for your suggested "key information" functionality, and that's a very rough first draft of the API ...

KMS should not perform the above life cycle management by itself automatically or hardcoded, instead it should expose some interfaces to the end user or even a backend process like TDE to trigger the above. 
The only key KMS should manage by itself is the KEK, which is derived from cluster passphrase value. This is fine in my opinion. This KEK should exist only within KMS to perform key protection (by wrapping) and key storage (save as file).

Asking for the "cluster password" is something better left optional / made easily overrideable ... or we risk thousands of clusters suddenly not working after a reboot.... :S


Just my .02€


Thanks,

    J.L.


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Robert Haas
Дата:
Сообщение: Re: More tzdb fun: POSIXRULES is being deprecated upstream
Следующее
От: Robert Haas
Дата:
Сообщение: Re: [patch] demote