SAP BTP: Security Glossary
like I felt the need of collecting terms and abbreviations and their meanings in the huge and complex area of security, I feel like I should share the list with you, as you might have the same need.
It is like:
-> Read ABC anywhere
-> forgot the meaning (again)
-> look it up (again)
-> luckily bookmarked this helpful blog post in the SAP Community…
Below list is obviously far from being complete or professional or official.
Nor are the links officially approved, so use them at your own risk.
At the end, it is just my personal list which I’m sharing with you.
The terms are loosely grouped – as of my feeling, so better use CTRL+F for finding your search term.
Please don’t hesitate to contact me for improvements, suggestions and additions.
And a disclaimer: I’m not expert, please forgive if I’m not precise.
Allows web applications (= relying parties) to authenticate users with an external server (= OpenID Connect Provider).
This server typically gets user information from an identity provider (IdP), which is a database of user credentials and attribute information.
OpenID Connect forwards to concrete IDP
OpenID Connect, 2014, is not the first standard for IdP, but the best (usability and simplicity), learned the lessons from past (SAML + OpenID)
Info at openid.net and spec at openid.net
Relying Party: the client that requests an ID token
OpenID Provider, OpenID Connect Provider:
Provides endpoints: authorization, token, UserInfo
A string containing a unique secret token.
Access token has specific permissions and is used to get data from an API.
Expires soon, typically within 24 hours.
Access token only for oauth, not relevant for openid authentication request.
Required for UserInfo endpoint
A string containing a unique secret token.
Refresh token enables its bearer to request and obtain new Access tokens.
These newly obtained access tokens have a subset of the permissions that the Refresh token has. The Refresh token never expires.
Resembles the concept of an identity card, in a standard JWT format, signed by the OpenID Provider
requested via oauth protocol.
Base64-encoded JSON document.
The json document contains access token refresh token and ID token.
ID tokens are created and signed by OpenID Connect Providers (OP) and consumed, verified by web applications authenticating users.
The ID token contains information about how and when the user authenticated along with various attributes.
ID tokens are normally intended for sign-on, access tokens for calling protected APIs
user attributes. Properties about user,
See here for registered OIDC claims:
Node.js Lib: https://www.npmjs.com/package/openid-client
OpenID spec: https://openid.net/connect/
OIDC client impl guide: https://openid.net/specs/openid-connect-basic-1_0.html
Security Assertion Markup Language
Is a protocol (Authentication) used for SSO
Typically used for scenarios where users in big companies have to use multiple applications.
Instead of entering users/passwords for each application, they login only once, and the login is reused for each application.
Known as Single Sign-On (SSO) login standard.
We use SAML as well for Principal Propagation.
In this context, we talk as well about Identity Federation.
SAML is used in browser-based scenarios.
The involved systems are called “Entities”: Identity Provider and Service Provider (SP).
Service Provider is also called Relying Party (relies on proper authentication by IdP)
When login is required, the user has to do the authentication request at IdP.
The user authentication is handled by a central Identity Provider
The IdP issues a little document which contains the user-info (identity) and which is passed to each application.
Identity Provider is also called Asserting Party.
The IdP creates a little xml document, which is the authentication response and contains the user’s identity.
This little xml document is also called SAML Bearer Assertion (because it is carried around, from app to app) or just token.
The token is stored in the user’s browser session and is sent to each application the user wants to access.
It is signed with X509 certificate.
The receiving Service Provider is able to verify the signature, because a trust relationship has been established between IdP and SP.
To establish the trust relationship, SAML supports metadata documents on both sides (IdP and SP)
Metadata contain e.g. the info about endpoints used for redirects etc.
The SP metadata contains the Assertion Consumer Service URL (ACS Endpoint).
SAML assertions are sent to this endpoint.
Security is handled centrally, applications don’t need to store uses and passwords, users don’t need to enter pwd for each app.
SAML is open standard and provides flexibility.
The little xml document is quite big and causes network overhead.
Main focus is authentication.
Authorization capabilities are rather poor.
Difference to OAuth
SAML2 can be used for both authentication and (limited) authorization.
OAuth2 is an authorization framework. Authentication is not in scope.
However, OAuth2 can be enhanced (with openID) and used for SSO as well.
OAuth2 uses JWT tokens which are smaller than the xml-based SAML assertions.
Different terms for similar concepts
Service Provider (SAML) corresponds to Resource Server (OAuth).
Identity Provider (SAML) corresponds to “Authorization Server” (OAuth).
Client: browser (SAML) corresponds to (mostly) web app clients in OAuth.
https://pages.github.tools.sap/kernelservices/tutorials/identity-service-saml-nodejs/ , http://www.passportjs.org/packages/passport-saml/
A framework for obtaining access tokens for protected resources.
If a target resource is protected with OAuth, we cannot send a user password (like Basic Auth), but instead, we need to fetch a JWT token from the Authorization Server. This is done via an HTTP request and we need to authenticate with clientid/secret. The token is then sent as “Bearer” token to the protected resource.
The resource is accessed by an OAuth client on behalf of a user, as such, password is not handled by web app, which is more safe
For fetching an access token, there are several flows (can be extended).
Client Credentials flow
Used for app-to-app, no user required, fetch token with clientid/secret
Authorization Code flow
Typically used by user-facing web apps.
At BTP, the approuter takes care of executing this flow.
Requires active user login.
It involves sending a code to a previously registered redirect-endpoint, which makes the flow more secure
Resource Owner Password flow
Deprecated, because not safe
To avoid interactive user-login, the user-credentials are send in the request, together with clientid/secret.
Used for prototyping with technical users.
JWT Bearer flow
This grant type allows to fetch a new JWT token by sending an existing token.
Used in Token-_Exchange scenarios.
Spec – CloudFoundry UAA reference
Understanding Token Exchange blog series
Proof Key for Code Exchange:
An extension to the Authorization Code Flow (OAuth) to be able to securely perform the OAuth exchange from public clients.
JSON Web Token
A piece of data
Encoded with Base64
Designed to be compact
JWT specification: rfc7519
– Payload (JSON)
Javasceript Object Signing and Encryption
Framework to provide a method to securely transfer claims between parties.
The JOSE framework provides a collection of specifications to serve this purpose
JSON Web Signing
JSON Web Encryption
JSON Web Key
A JSON data structure that represents a cryptographic key.
Format, e.g. for provider’s public keys (RSA) spec:
JSON web key set.
Used to store public JSON web keys
JWK Set URL
A URI that points to location where public keys are stored.
JSON array of JSON objects with keys.
Jku is a claim contained in a JWT token
Properties contained in the payload of JWT token
A statement that a subject makes about itself.
Claims list (standard)
The receiver for which the token was issued.
Typically the clientid of the credentials section in env
Unique identifier of the token itself.
The “Subject” of the client, it is the same as the client id
Claims list (common)
Algorithm to verify the signature of the token
The key that was used to generate the signature of the token
Claims list (more)
Authentication Context Class Reference
Authentication Methods References
Authorized party – the party to which the Token was issued.
The OAuth ClientID of this party.
Optional claim, same as aud.
Stands for “Confirmation”, this is a fingerprint of the client certificate that was used to fetch the JWT token. It is only present in the JWT, when mTLS is used.
x5t#S256 means that a fingerprint of a X.509 certificate (-> x5t) was created with SHA-256 algorithm (-> S256) See rfc7800 and rfc8705
This “external attributes” is a section that can be filled with custom data.
Even clients can add custom data here, that needs to be transferred to the receiver.
A typical example could be the good old abap_name, when user info is sent to backend.
List of permissions, like scopes.
List of permissions, as defined in xs-security.json file, in case of XSUAA.
Revocation Signature, a hash which can be used to revoke a token, if supported by the server
zone id, currently equal to tenant id (can be found on overview page of subaccount in BTP)
See here for registered and public claims:
Cryptography / Certificates
Transform some format. Is reversible without additional info, no secret/pwd required.
Make data readable in special but common way.
Sender has data in strange format, then encodes it with base64, which can be decoded by anybody.
This ensures that the strange format doesn’t break while it is transferred over network.
The encoding, like base64 (or ASCII, or URL encode), doesn’t contain strange characters which might get lost or broken.
As such, useful for binary data and similar, for systems that send data over net, better convert binary to text.
Make secret data unreadable, for security reason. Pwd required to decrypt (key/secret).
Sender encrypts data with key -> recipient decrypts with key
Can be symmetric (secret key, e.g. AES) or asymmetric (public/private key, e.g. RSA).
You’d like a really intuitive example? See my blog post here.
My CPI Encryptor blog contains intuitive intro.
AKA secret key encryption
Sender encrypts data with a key.
Sender gives the key to the recipient
Sender sends encrypted data to recipient
Recipient decrypts the data with the (symmetric) key.
Symmetric encryption is faster than asymmetric.
Symmetric encryption can handle bigger sizes of data.
Supports block mode and stream mode.
Recipient creates key pair (asymmetric)
Recipient sends his public key to sender.
Sender encrypts data with this public key.
Sender sends encrypted data to recipient.
Recipient decrypts the data with the corresponding private key (key must match).
Public key and private key must correspond together.
A message is encrypted with public key and decrypted with corresponding private key.
A message is signed with private key and verified with corresponding public key.
Openssl generates a private key which contains the public key as well, so the pubkey can be extracted (modulus and exponent) from generated private key with OpenSSL command.
The generated file is base64 encoded.
My memory hook for encryption:
I send messages from public post office, so use public key for send/encrypt.
I receive messages at home, so use private key to read/decrypt.
My memory hook for signing:
Reverse mode of encrypting
Typically, the key that is used in symmetric encryption is called “secret key”.
The size of the secret
The secret is used to encrypt the data
Longer key provide more security, but less performant
Short pwd, valid only one-time or for a short period of time.
Usually bound to a special device e.g.phone or special hardware e.g. RSA SecurID keycards.
Standard defining the format of certificates.
The most common format for public key certificates
X.509 certificates are used in TLS/SSL, the basis for HTTPS
Certificate contains a public key and an identity and is signed by a CA (or self-signed)
Structure is expressed in Abstract Syntax Notation One (ASN.1).
Contains several elements, e.g. Subject and Issuer, both identified by DN
DN is unique, as such, the issuer of a certificate can be identified and proven to bo OK
Formats can be PEM, DER etc
Certificate Signing Request
Defined within PKCS #10, see spec
The PKCS#10 standard defines a binary format for encoding CSRs for use with X.509.
It is expressed in ASN.1.
A CSR may be represented as a Base64 encoded PKCS#10
In the PKI system, a signed certificate is requested via CSR to Certificate Authority.
CSR contains info identifying the applicant
Also contains the applicant’s public key that is used to verify the signature of the CSR –
Contains the Distinguished Name (DN) that the certificate is for.
Result: CA issues a cert binding a public key to a particular distinguished name.
A CSR can be generated with OpenSSL or tools in the internet.
Certificate Revocation List
If certificate is not safe, e.g. private key was revealed, then it can be revoked and added to this list which is publicly available.
Online Certificate Status Protocol
Similar like CRL, but here the certificate is sent to a
A digital certificate is used to prove trustworthiness of e.g. a server and a client.
A certificate is signed by a trustworthy parent certificate, which itself is signed by root CA.
In order to be signed, a CSR is generated and sent to CA.
Certificate contains public key (modulus and exponent) and fingerprint, bags, attributes, header data.
With other words:
A certificate is a public key that is signed, therefore its identity is proven and trustworthy.
In a chain, the first cert is called leaf, it corresponds to the user or client. Below comes one or more intermediate certificate, the last one is the root, corresponding to the CA.
DVC: Domain Validated Certificate
EVC: Extended validation Certificate
Both are commercially issued certificates, the difference is in the validation:
EVC is more expensive, more secure, required for sensitive websites, banking
DER: binary files
PEM: ASCII files, base64 encoded
File extensions: .cer, .crt, .der
usually in binary DER form, but Base64-encoded certificates are common (see .pem)
DN = Distinguished name, comprises of CN+OU+L etc
SAN = Subject Alternative Name
CN = Common Name, e.g. domain name of the website
OU = Organizational Unit
L = Locality
O = Organization
C = Country
Subject: Field in certificate which is uniquely identified by its DN
Issuer: Field in cert, uniquely identified by DN, parent cert which signed the actual cert
Originally Privacy Enhanced Mail.
Most common format for X. 509 certificates ( etc.)
A text file using Base64 ASCII encoding for the (binary) DER content
PEM describes the encoding of the ASN.1 Distinguished Encoding Rules in base64.
Defines plain-text headers and footers
(e.g. —–BEGIN CERTIFICATE—– and —–END CERTIFICATE—–)
PEM is a container format for digital certificates (chain) and keys.
A file extension of a file that contains a bunch of certificate files.
File extensions can be: .pem .cer .crt .cert .key
Distinguished Encoding Rules
A restricted variant of BER
DER is the same thing as BER with all but one sender’s options removed.
DER is a subset of BER providing for exactly one way to encode an ASN.1 value.
DER is intended for situations when a unique encoding is needed, such as in cryptography,
For example, in BER a Boolean value of true can be encoded as any of 255 non-zero byte values, while in DER there is one way to encode a boolean value of true.
DER encoding constraints example: Length encoding must use the definite form
DER is widely used for digital certificates such as X.509.
A binary encoding for X.509 certificates and private keys.
No —BEGIN statements
Can store only one certificate, no chain, no key
Common in java
File extensions .der .cer
Content looks like this:
310b 3009 0603 5504 0613 0255 5331 0e30
Basic Encoding Rules
Canonical Encoding Rules
Hardware Security Module,
A hardware-based security device that generates, stores, and protects cryptographic keys
Import the certificate of the authorisation server into a Personal Security Environment (PSE) also known as a Certificate Collection.
Public key infrastructure. Helps to check if certificate and public key belong together. Requires another cert which is in the chain.
The certificate chain is hierarchical structure where the parent signs many child-certificates.
Public key infrastructure X509.
Web of Trust
Other than the hierarchical PKI, this is a flat network of trust.
Each partner confirms the trust of the other partner’s public key.
Or PKCS7: Public Key Cryptography Standard number 7
Foundation for S/MIME
Evolved to CMS standard (see my blog posts)
Standard for signing or encrypting (“enveloping”) data.
Since the certificate is needed to verify signed data, it is possible to include them in the SignedData structure.
File extension: .p7b .p7c
A .p7c file is a degenerated SignedData structure, without any data to sign
Or PKCS12: Public Key Cryptography Standard number 12
evolved from the personal information exchange (PFX) standard
Used to exchange public and private objects in a single file
Can be password-protected
Used as container to store certificate, chain, key
Used to export/import
File extension: .pfx .p12
Cryptographic Message Syntax
MCS is the successor of PKCS #7, after it was handed over to IETF in 1999
The standard describes how to send secure messages.
The standard contains descriptions for encrypting, digitally signing and others
It describes how to e.g. sign and encrypt, and how to store the signature, encrypted hash, certificate, algorithm info in the message, which is like a package.
A CMS-based message contains all artifacts and information that is required by the receiver to decrypt and read a message.
As such, sender & receiver can be humans or computer systems, like SAP systems.
SAP supports CMS in SAP Cloud Integration in an easy way (see my blog posts)
Multipurpose Internet Mail Extensions
Internet Standard, extends the format of a mail message, should allow that email contain not only ASCII text, but also other character sets.
Furthermore attachments of e.g. audio, video, images, etc
Protocol for secure emails
Uses CMS in case of encryption, digital signature and so on
Encrypted email message that contains the contents and attachments of a sensitive email.
An email message that includes a digital signature.
It can be used for sending secure emails that can only be viewed by the intended recipient.
P7S files verify that the email is from who it claims to be from and that the email has not been modified in transit.
Java Key Store
Used to store certificates or key pairs in binary format.
Keystore is a binary file with file extension .jks
JKS is used in Java environments, alternatively p12 is used and more flexible
Java Key Stores are created with the keytool command line tool, installed together with Java JDK and can be copied and used standalone
Used to create a hash value out of a message (or any other data).
The resulting hash value has fix length, whereas the origin data is of arbitrary length.
Used to ensure “integrity” of data.
Note: does not ensure “authentication” of hashed data .
We have a text file.
We use hash function to create a hash value, based on the text file.
We send the file to a friend.
We also send the hash to the friend.
The friend creates his own hash value, based on the text file.
The friend compares both hashes: they must match.
If not, then the text file has been modified by a hacker
Cryptographic Hash Function
Same as hash function, but more secure.
It should not be possible to take the hash value and calculate the original value (preimage).
It should not happen that hashing 2 different data result in the same hash value (collision).
Or: hash value
Or: hash code
Or: (message) digest
Typically used as synonyms in the world of cryptography.
Result of applying a hash function to a document
Little change in the original input text (or whatever) results in a completely different hash value (digest)
Some extra bits that are added to a hash value, to make it even more secure.
A math formula, used by hash functions
E.g. MD5, SHA1 etc
Enhanced Security Services for S/MIME
Specified in rfrc 2634 and 5035
Describes four optional security service extensions for S/MIME:
– signed receipts
– security labels
– secure mailing lists
– signing certificates
Example: Triple Wrapping
A message is signed, then encrypted, then signed again.
Thus, have signed attributes bound to the encrypted body.
DSIG, Digital Signature
Similar like Hash Value, but is created with private key and verified with public key.
As such, ensures “integrity” and “authentication”.
A signature is a piece of unreadable characters sent in addition to the message itself.
I send you a message
you sign it (privkey) and send to me.
I can now verify if you signed my original message, using your public key.
My CPI Signer blog contains some intuitive intro.
A signature is used to proof the identity of the signer. And also his intention.
Usually done with handwriting, but in modern times also done electronically.
Electronic Signature is the broad term, a specific type of eSignature is the Digital Signature.
SES stands for Simple Electronic Signature.
AES or AdEs stands for Advanced Electronic Signature and is a digital signature
QES stands for Qualified Electronic Signature and is a digital signature
AdES / AES
Advanced electronic signature
An electronic signature that has met the requirements of European Regulation (eIDAS-regulation) on electronic identification and trust services for electronic transactions.
The signer can be identified and linked to the signature
It ensures that the signed data is not modified
Can be invalidated, if signed data has changed
CMS Advanced Electronic Signatures
A set of extensions to CMS standard.
More concrete: to the signing part of the CMS.
These extensions make the CMS suitable for AdES (Advanced Electronic Signatures)
While CMS is generic specification, the AdES extension contains precise specifications for the signature.
This makes it compliant with European Regulations for electronic signatures (eIDAS)
As a consequence, a CAsES-Signature has the same legal value like a handwritten signature (in Europe)
One of the CAdES-profiles (the simplest one) is CAdES-B: Basic Electronic Signature (BES)
It fulfils the minimum requirements for trusting that an electronic signature properly identifies the signer.
The algorithm used for encryption/decryption, like a math formula
Typically, a key is used. Larger keys result in higher security, but lower performance.
In such cases. a key must be selected before using a cipher to encrypt a message
Block ciphers: encrypt block of data of fixed size
Stream ciphers: encrypt continuous streams of data
Examples for ciphers:
AES can be 128, 192, 256 bit, faster than Triple-DES
BF Blowfish, since 1993, symmetric, block cipher,
block size 64 bits, key size variable, usually 128 bits
CAST based on CAST design procedure
DES Data Encryption Standard (1970s), (64bit) symmetric, replaced by Triple-DES, then AES
TDES == Triple DES == 3DES == DESede: use DES algorithm 3 times
DESX DES-X, Extended DES, since 1984, enhancement to DES, increasing the key size to 184 bits
GOST Russian government standard symmetric key block cipher (64 bit), since 1989
IDEA International Data Encryption Algorithm
MD5 Message Digest Method 5
RC2 128 bit, designed by Ron Rives, RC = Rons Code or Rivest Cipher
RC4 can be 40, 64, 128 bit
RC5 RC5 cipher
List of supported algorithms, used for encryption.
Typically exchanged during TLS handshake
A plaintext message is encrypted to ciphertext message.
Stream mode: encryption is done bit per bit
Considered weak form of encryption
A5/1: since 1987, based on A5 security protocol, weaknesses detected
RC4: since 1987, Rivest Cipher 4, aka ARC4 or ARCFOUR (Alleged RC4), vulnerabilities found
Encryption is done block by block
E.g. DES uses 64-bit blocks, AES uses 128-bit-blocks (among others)
AES Advanced Encryption Standard
DES Data Encryption Standard
Twofish related to earlier Blowfish, block size 128 bits
Camellia block size 128 bits, named by Japanese flower
IDEA International Data Encryption Algorithm
A block is a group of bits with fix length.
Stands for Message Digest Algorithm No 2 and was designed by Ronald Rivest in 1989, for 8-bit computers.
Size of hash value: 128 bits (16 bytes).
Message Digest Algorithm No 4, designed by Ronald Rivest in 1990
Size of hash value: 128 bits (16 bytes).
Message Digest Algorithm No 5, since 1991
Designed by Ronald Rivest in 1991 to replace MD4.
Size of hash value: 128 bits (16 bytes).
The hash is represented as 32-digit hexadecimal digits.
Secure Hash Algorithm which is a family of hash functions
published by NIST (National Institute of Standards and Technology).
The family consists of:
SHA: original version, 160 bit, since 1993, unsafe.
SHA-1: 160 bit, replaced the original version, but removed at 2010.
SHA-2: since 2001, consists of
SHA-256 with 256 bits
SHA-512 with 512 bits
In addition: SHA-224 and SHA-384 and SHA-512/224 and SHA-512/256
SHA-3: same properties as SHA-2 but internally the hash is computed differently. Since 2015.
Stands for RACE Integrity Primitives Evaluation Message Digest.
Family of cryptographic hash functions since 1996.
RIPEMD-160 has not been broken.
Size of hash value: 160 bits (20 bytes).
The family consists of:
RIPEMD: output hash value size: 128 bits, weak
RIPEMD-128: output hash value size: 128 bits, weak
RIPEMD-160: output hash value size: 160 bits, most common
RIPEMD-256: output hash value size: 256 bits, similar security level
RIPEMD-320: output hash value size: 320 bits, similar security level
MGF stands for Mask Generation Function.
It is almost the same as cryptographic hash function, with following difference:
CHF generates values of fix size.
MGF generates values of fix size, but it can be configured.
MGF has one implementation called MGF1
Advanced Encryption Standard e.g. 128 bit (or 192 and 256)
A block cipher that encrypts/decrypts blocks of bits.
(unlike stream cipher, which encrypts bits one at a time)
Most commonly used symmetric encryption algorithm.
Cipher block chaining
Hash-based Message Authentication Code
Used to verify the message’s impartiality and validity
Elliptic Curve Diffie Hellman Ephemeral
Galois Counter Mode
Used when the data is larger than the used algorithm handles.
So multiple blocks are created (e.g. by AES) and they are managed by GCM
Some algorithms (Block Ciphers) do their encryption work on blocks.
Usually, the data is larger than the blocks.
As such, the cipher has to be applied repeatedly.
A “block cipher mode of operation” describes how this is done.
Specifications in FIPS, NIST
Examples for modes of operation:
ECB Electronic Codebook
CBC Cipher block Chaining
CFB Cipher Feedback
OFB Output Feedback
Before encrypting e.g. a message, some arbitrary data is added to beginning or end of the message.
This is done to avoid that a hacker could guess typical message-ending phrases, which would facilitate the hacking.
There are multiple practices for padding.
In symmetric encryption, the encryption can be done in blocks. So padding is used to fill up the last block.
If not done in blocks, but in streaming mode, then padding is not required.
In asymmetric encryption, a padding scheme is used to prepare the message for encryption.
E.g. OAEP, PSS
PCKS5 Padding and PCKS7 Padding is done in whole bytes.
PKCS#1 version 1.5 defines 2 different padding schemes for encryption and signature:
RSAES-PKCS1-v1.5: here ES stands for Encryption Scheme
RSASSA-PKCS!-v1.5: here SSA stands for Signature Scheme with Appendix.
RSAES-OAEP: here Optimal Asymmetric Encryption Padding
RSASSA-PSS: here Probabilistic Signature Scheme
Rivest Shamir Adleman (three academics who first described this system in 1977)
One of the most widely adopted asymmetric algorithms, commonly used in PKI cryptosystems.
RSA algorithm used to generate key-pair.
Key sizes are larger than e.g. AES. RSA supports 1024, 2048, 4056
Raw RSA or textbook RSA mean RSA without padding scheme.
Raw RSA is not safe.
PKCS#1: RSA Cryptography Specification: RFC3447
Optimal Asymmetric Encryption Padding
Alternative for e.g. RSA PKCS#1 v1.5
Digital Signature Algorithm, published by NIST in 1991
Designed and used for digital signature and verification (faster than RSA)
Key size smaller than RSA
Not secure enough anymore
Elliptic Curve Digital Signature Algorithm.
Variant and successor of DSA, uses ECC (Elliptic Curve Cryptography).
Used for digital signature and verification
Faster than RSA, uses shorter keys, suitable for small devices
Elliptic Curve Cryptography
Message Authentication Code
AKA “keyed hash”
Basically, a hash function with added authentication via secret key
The (MA-)Code itself stands for the authentication code, or secret key, or tag. MAC is comparable to “Hash Function” and “Digital signature”.
CHF ensures Integrity
MAC ensures Integrity and Authentication, uses symmetric key
DSIG ensures Integrity and Authentication and non-repudiation, uses asymmetric keypair
Non-repudiation: ensuring that the origin cannot be modified
Examples for MAC: HMAC, UMAC, GMAC, NMAC, CMAC, SHA1-HMAC, MD5-HMAC, CBC-MAC
Examples for CHF: SHA1 (compromised), SHA256, MD5 (compromised), SHA2, SHA3, BLAKE2
Secure Sockets Layer
Transport Layer Security
Successor of SSL
mutual Transport Layer Security, mutual TLS
Process whereby, in addition to the normal TLS server authentication with a certificate, a client presents its X.509 certificate and proves possession of the corresponding private key to a server
Both server and client present their cert during TLS handshake
OAuth 2.0 Mutual-TLS Client Authentication and Certificate-Bound Access Tokens
on top of normal oauth flow, enhanced security, utilizing client-certificate-based mTLS
Example in Node.js:
Some random bits that are encrypted with pubkey and sent to partner.
Based on PMS, a master secret and “session key” can be generated.
This one is used for symmetric encryption, as both partners have generated the same.
Session key can be based e.g. on AES128
Octet stands for 8 bits forming a byte.
Putting these bytes into a sequence will form an Octet String.
This is like a very basic functionality, which is used to build another functionality on top of it
E.g. a generic low-level algorithm, which is to build higher-level cryptographic algorithms.
Hash function, symmetric key encryption, public-key encryption, digital signature, random generation
X-Forwarded-Client-Cert, header, used to pass client certificate, in case of mTLS
Discretionary Access Control List and ACEs access entries .
EOT End of Tarnsmission
ETX End of Text
When viewing binary document with notepad++, don’t miss these explanations.
extract p12 file to pem, whole file, not filtering key etc
Decode id_token and other:
Node.js Crypto API (native)
AND of course: Openssl
main entry: https://www.openssl.org/docs/manmaster/man1
Set of libraries that implement several standards
Set of utilities for command line.
Identity Authentication Service
Correct full name:SAP Cloud Identity Services – Identity Authentication
SAP Cloud Identity Services – Identity Authentication
SAP Help landing page:
Identity service: JSON param docu
Video: Why IAS
IAS SAP Community
IAS SAP Community Parent
Identity Provisioning Service
Full name: SAP Cloud Identity Services – Identity Provisioning
The IPS server is used to copy users from a source system to a target, which can be scheduled to run e.g. on nightly basis.
For instance: “Please, each night do provision the users of Success Factors system to my IAS which is connected to my BTP account”.
This basic functionality is enriched with a ton of configuration options, e.g. mapping of user attributes of source to match the target system.
Furthermore, the IPS is intelligent enough to provision only the deltas of changed users, even if source system doesn’t support deltas.
SAP Help landing page: https://help.sap.com/docs/IDENTITY_PROVISIONING
IPS part of the SAP Cloud Identity Services offering, which includes:
Identity Authentication, Identity Provisioning, Identity Directory and Authorization Management services.
Authorization / AMS
eXtensible Access Control Markup Language
Authorization model is based on xacml
Open Policy Agent
Open source policy decision engine which runs as a server next to the application (side car pattern)
Data Control Language
File extension: *.dcl
Authorization Decision Controller, the Policy Engine
Policy Information Point
Policy Administration Point, centralized
Policy Retrieval Point, centralized
Policy Decision Point, decentralized
Authorization Bundle Provider
Authorization Decision Controller
Is a OPA server and its deployment is done with CF multiple buildpack
Container Security Library
Internet Assigned Numbers Authority
Identity- and Access-Management
Customer Identity and Access Management
Federated Identity Management
SAP Cloud Identity
System for Cross-domain Identity Management
Standard for automating the exchange of user identity information between identity domains, or IT systems
A RESTful API for all necessary user management operations, managing resources (users, groups and custom schemas)
SCIM is used as communication protocol for User Role Assignment by IPS
SCIM Aims to simplify user provisioning and management in the cloud by defining two standards
A canonical user schema
A standardized schema and API for querying and managing user identities (attributes, etc.)
OASIS Security Services Technical Committee
Personally identifiable information
Open Service Broker API
Service Broker Framework
National Institute of Standards and Technology
European Union Agency for Network and Information Security: https://www.enisa.europa.eu
European Telecommunications Standards Institute
Standardization organization in the field of information and communications
Lightweight Directory Access Protocol
An application protocol for distributed directory information services
A common use of LDAP is to provide a central place to store usernames and passwords.
This allows many different applications and services to connect to the LDAP server to validate users.
Other application layer protocols: FTP, HTTP, MQTT, TLS/SSL, SSH, Telnet, SMPT
Abstract Syntax Notation One
Standard interface description language for defining data structures that can be serialized and deserialized in a cross-platform way.
Commonly used in telecommunications, computer networking, cryptography.
Protocol developers define data structures in ASN.1 modules (a section of a broader document)
Encoding rules specify how to represent a data structure as a series of bytes (e.g. BER, CER, DER)
ASN.1 data is often binary
Encoded format is often PEM.
Request for Comments
Typically, it is a document containing a specification.
Usually created by international volunteers and maintained by IETF, has gone through several review processes.
After agreement, a number is assigned and it is published (and further maintained) via the rfc-editor
This is why links typically point a rfc-editor URL.
A standard specifying several ASN.1 encoding formats: BER, CER, DER
Time-based One-time Password
Used for 2-factor authentication