Closed n1ckl0sk0rtge closed 1 year ago
At the end the strings all map to the hex code (code point). The most normative reference seems to be IANA: https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml. I don't think we need to capture the individual strings used by OpenSSL/GnuTLS and others. IANA names on the other hand are more descriptive than hex codes, so my recommendation would be to clarify that we expect IANA names. Agreed with the need to describe the "curve", which is also needed to infer the security level.
Sounds good to me. Maybe we should call the key for the json value ianaName
then.
"cryptoProperties": {
"assetType": "protocol",
"protocolProperties": {
"tlsCipherSuites" : [
{
"ianaName": "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
"curve": "x25519"
}
]
}
}
"cryptoProperties": {
"assetType": "protocol",
"protocolProperties": {
"algorithmSet" : [
{
"type": "cipherSuite" (enum)
"name": "TLS_DHE_RSA_WITH_AES_128_CCM ",
"algorithmes" : [
"ref" : "<reference to algorithm>"
],
"identifiers": ["0xC0", "0x9E"]
}
]
}
}
"cryptoProperties": {
"assetType": "algorithm",
"algorithmProperties": {
"variant": "ECDH-secp256r1"
# enum of common curvs
"curve": "x25519"
}
"classicalSecurityLevel": 192,
"nistQuantumSecurityLevel": 3
}
A TLS cipher suite can be described by a variety of different identifiers. This should also be reflected in the CBOM. These are identifiers for a TLS cipher suite that uses DHE for key exchange, RSA for authentication, and AES with 128bit key in counter with CBC-MAC mode (AES 128 CCM).
Also there should be a way to capture and document the used elliptic curve by ECDH (like
sect163k1
,x25519
, ...) or the key size by plain DH (like2048
, ...)