Under Construction
Der Digital Signature Catalog (DSC)
Für die Überprüfung von Filesets bei der Installation verwendet AIX Trusted Installation den Digital Signature Catalog (DSC). Dabei handelt es sich um eine ODM mit Namen dsc_inventory unter /usr/lib/objrepos. Einträge in dieser ODM haben die folgende Form:
# ODMDIR=/usr/lib/objrepos odmshow dsc_inventory
class dsc_inventory {
char pkg_name[145]; /* offset: 0xc ( 12) */
char lpp_name[145]; /* offset: 0x9d ( 157) */
short ver; /* offset: 0x12e ( 302) */
short rel; /* offset: 0x130 ( 304) */
short mod; /* offset: 0x132 ( 306) */
short fix; /* offset: 0x134 ( 308) */
char ftype[4]; /* offset: 0x136 ( 310) */
vchar signature[1024]; /* offset: 0x13c ( 316) */
vchar timestamp[64]; /* offset: 0x140 ( 320) */
link dsc_key dsc_key id key[11]; /* offset: 0x144 ( 324) */
};
/*
descriptors: 10
structure size: 0x158 (344) bytes
data offset: 0x334
population: 14187 objects (14187 active, 0 deleted)
*/
#
Damit ein Fileset bei der Installation überprüft werden kann, muss für das zu installierende Fileset ein zugehöriger Eintrag in dem DSC (dsc_inventory) existieren. Für jede bekannte Version eines Filesets, gibt es einen eigenen Eintrag. Neben dem Paket-Namen (pkg_name), dem Fileset-Namen (lpp_name) und dem Paket-Typ (ftype), sind auch die Version (ver), der Release (rel), der Modification Level (mod) und der Fix Level (fix) hinterlegt. Die wichtigsten Informationen sind die digitale Signatur (signature) des Filesets, der Build-Zeitstempel (timestamp) und ein Verweis auf die ID (key) des zu verwendenden Zertifikats bei der Überprüfung der Signatur.
Der Eintrag für die Version 7.3.2.1 von bos.rte.libc sieht beispielsweise so aus:
# ODMDIR=/usr/lib/objrepos odmget -q "lpp_name=bos.rte.libc AND ver=7 AND rel=3 AND mod=2 AND fix=1" dsc_inventory
dsc_inventory:
pkg_name = "bos"
lpp_name = "bos.rte.libc"
ver = 7
rel = 3
mod = 2
fix = 1
ftype = "S"
signature = "lRjpNE9gD+6nWyvPQJH0RoZgISpJrXxYUwlJoZuqfjCNfUWy73WgduuZRnkGeEeGHrC/LGy1VBH+NgXDfqKN+NxKZQmS7IA+wo4G0LsqcidzDIKE4ONbSOhQeA9k8izFxeFrLqFLmkntq6S3vcvku+5OF7ahoy6CuCmdczg580bs/SuQpEjp46XdDHwb6S8YlYBLYWvxunOlXVLneJBaOzCY/KGrKPbnHEwUhKwxamv3xoPWdqI7nOSjCHYoysNVUsIbukYId/XdmVeSIrC8/6EWmuxvZG/aHM0GDAoQdLy6zSNQ8zMlCBM2rfJcVxkgKNHFkzuNPDTW7aFwXVJ4XA=="
timestamp = "Thu_Mar_21_11-13-28_2024"
key = "3"
#
Das Feld key verweist auf die ID des zugehörigen Zertifikats in der ODM dsc_key:
# ODMDIR=/usr/lib/objrepos odmget -q id=3 dsc_key
dsc_key:
id = 3
type = "certificate"
alias = "aixpublic_73"
location = "/etc/security/pkgverify/certfile/aixpublic_73.pem"
modulus = "b19c33e5eb0b4e2fbdcff3b2eeec31d5"
hash = "sha256"
keystore = "03"
#
Das Zertifikat ist unter /etc/security/pkgverify/certfile/aixpublic_73.pem zu finden. Der zugehörige Public-Key steht in der gleichen ODM (dsc_key) mit Typ „key“ anstelle von „certificate“. Beide Einträge besitzen einen Verweis (keystore) auf die ID des zugehörigen Keystores.
Für Keystores gibt es eine eigene weitere ODM dsc_keystore. In den meisten Fällen enthält diese ODM nur einen Eintrag für den Default-Keystore von IBM:
# ODMDIR=/usr/lib/objrepos odmget dsc_keystore
dsc_keystore:
id = 3
type = "pkcs12"
alias = "aixpublic_73"
location = "/etc/security/pkgverify/keystore/aixpublic_73.p12"
#
Wurde AIX Trusted Installation auf einem System noch nie aktiviert, dann enthalten die beiden ODMs dsc_key und dsc_keystore keine Einträge. Sobald AIX Trusted Installation das erste Mal verwendet wird, indem Filesets, mit Signatur-Richtlinie verschieden von none, installiert werden, werden diese beiden ODMs automatisch mit Standard-Einträgen initialisiert. Dabei werden die schon vorhandenen Zertifikate unter /etc/security/certificates verwendet:
# ls -l /etc/security/certificates/certificate_72 /etc/security/certificates/certificate_73
-rw-r----- 1 root security 846 Jul 25 2020 /etc/security/certificates/certificate_72
-rw-r----- 1 root security 846 Mar 24 2021 /etc/security/certificates/certificate_73
#
Je nach AIX Version wird entweder certificate_72 oder certificate_73 verwendet.
Die Initialisierung der beiden ODMs dsc_key und dsc_keystore kann man als Administrator über das Kommando pkgverify und der Option „-I“ (initialize keystore) auch selber vornehmen:
# pkgverify -I
#
Hinweis: Das Kommando pkgverify ist von IBM nicht als offizielles Admin-Kommando vorgesehen, wird aber implizit beim Installieren von Filesets aufgerufen.