BF Key Management (KMN) Bugs Class

Definition

Key Management (KMN) class – Cryptographic keying material is generated, stored, distributed, used, or destroyed improperly.

Taxonomy

OperationsDefinition
Generate/SelectGenerate/Select operation – yyyddd.
StoreStore operation – yyyddd.
DistributeDistribute operation – yyyddd.
UseUse operation – yyyddd.
DestroyDestroy operation – yyyddd.
OperandsDefinition
DataData operand – The data value of an object – i.e., the actual value that is stored in memory.
CausesDefinition
Code BugCode Bug type – Defect in the implementation of the operation – proper operands over an improper operation. A first cause for the chain of weaknesses underlying a software security vulnerability. Must be fixed to resolve the vulnerability.
   Missing CodeMissing Code bug - The operation is entirely absent.
   Added CodeAdded Code bug - An inappropriate code is added to the implementation of an algorithm.
   Erroneous CodeErroneous Code bug - There is a coding error in the implementation of the operation.
Specification BugSpecification Bug type – Defect in the metadata or algorithm of the operation – proper operands over an improper operation. It is always the first cause for the chain of weaknesses underlying a software security vulnerability. It must be fixed to resolve the vulnerability.
   Wrong Algorithm
Data FaultData Fault/Error type – The object data has harmed semantics or inconsistent or wrong value.
   Weak Keying MaterialWeak Keying Material fault/error – yyyddd.
ConsequencesDefinition
Data ErrorData Fault/Error type – The object data has harmed semantics or inconsistent or wrong value.
   Weak Keying MaterialWeak Keying Material fault/error – yyyddd.
Data Security Final ErrorData Security final error type – xxx
   Revealed IVRevealed IV final error – A secret, public, or private key is exposed.
   Revealed Shared SecretsRevealed Shared Secrets final error – A pre-master or other secret is exposed.
   Revealed Domain ParameterRevealed Domain Parameter final error – A xxx is exposed.
   Revealed Random BitsRevealed Random Bits final error – A random number (inlc. a salt or a nonce) is exposed.
Operations AttributesDefinition
MechanismMechanism operation attribute type – Shows how the operation is performed.
   Hash + RNDHash + RND operation attribute – The operation uses Hash Function + Random Numbers.
   MACMAC operation attribute – The operation is via Message Authentication Code.
   Digital SignatureDigital Signature operation attribute – The operation is via digital signature.
Source CodeSource Code operation attribute type – Shows where the operation code resides within the software, firmware, or circuit logic code.
   CodebaseCodebase operation attribute – The operation is in the programmer's code - in the application itself.
   Third-PartyThird-Party operation attribute – The operation code is in a third-party software.
   Standard LibraryStandard Library operation attribute – The operation code is in the standard library for a particular programming language.
   Compiler/InterpreterCompiler/Interpreter operation attribute – The operation code is in the language processor that allows execution or creates executables (interpreter, compiler, assembler).
Execution SpaceExecution Space operation attribute type – Shows where the operation is executed or the privilege level at which it runs.
   UserlandUserland operation attribute – The bugged code runs in an environment with privilege levels, but in unprivileged mode (e.g., ring 3 in x86 architecture).
   KernelKernel operation attribute – The bugged code runs in an environment with privilege levels with access privileged instructions (e.g., ring 0 in x86 architecture).
   Bare-MetalBare-Metal operation attribute – The bugged code runs in an environment without privilege control. Usually, the program is the only software running and has total access to the hardware.
Operands AttributesDefinition
         Data KindData Kind operand attribute type – Shows the type or category of data.
            HashesHashes operand attribute – Fixed-length bit strings mapped by a hash function from arbitrary length bit strings. They are used for integrity authentication. They are cryptographic data.
            Keying MaterialKeying Material operand attribute – Cryptographic keys (secret, public, private) and other crypto algorithm parameters (initialization vectors (IVs), shared secrets (e.g., pre-master secrets), domain parameters, and random bits (eandom number - RBG seeds, salt, nonce).
            Digital CertificateDigital Certificate operand attribute – yyyddd They are sensitive data.
         Data StateData State operand attribute type – Shows where the data came from.
            EnteredEntered operand attribute – Data are from a user via a user interface (e.g., input field of a dialog or a command prompt).
            StoredStored operand attribute – Data are from a permanent storage (e.g., file, database on a storage device); they are at rest.
            In UseIn Use operand attribute – Data are from a volatile storage (e.g., RAM, cache memory).
            TransferredTransferred operand attribute – Data are from another device via a network (e.g., connecting analog device or another computer).