Blog

SASL analysis, part one

SASL analysis, part one

This is a network authentication layer that is still confused by many people with the crypt interface (local authentication methods). It currently provides a few dozen methods, but there is one serious problem. Due to the variety of methods and the development of cryptography, it is challenging to compare the security level of each method. Another annoying fact is the ability to even find a comparison of the security of these methods. This article is intended to offer such a comparison.

What is SASL (Simple Authentication and Security Layer)

The most common question is what the SASL is actually for. It's simple. It's one of the basic mechanisms providing user authentication tools. Originally, it was mainly used for mail server purposes, i.e. it provided POP3, IMAP4 and SMTP authentication. And it continues to be used here. Later, this protocol was implemented for authentication in protocols such as LDAP (directory services), XMPP (communication tools), but it can also be used in other places. One of the many less well-known options is, for example, its support in some implementations of VNC (Virtual Network Computing), a remote desktop access program.
What else can I say? According to Wikipedia, this is a ‘...general method for authentication in client/server protocols. Its main purpose is to authenticate clients on servers. SASL has several authentication mechanisms for exchanging authentication information (usually referred to as login credentials) and a authentication system for storing user information. The SASL authentication mechanism controls the prompts and replies between the client and the server and how they should be encoded during transmission. The authentication system refers to how the server stores and authenticates data.’ The methods used are standardized by IETF (RFC 2222, RFC 4422 and supporting RFC 2245, RFC 2595, RFC 2831, RFC 4505, RFC 4616, RFC 5801, RFC 6631, RFC 7677) have their own IANA algorithm registers and open implementation. For example, they are implemented within Cyrus SASL, GNU SASL, Java SASL and other libraries.

History of SASL

The reason for the creation was the extremely unsatisfactory situation when verifying users of postal systems. Although there were more developed mechanisms at the time, algorithms such as PAP, CHAP, MSCHAP, or other mechanisms such as APOP were generally used to access mail. These mechanisms are part of the introductory article.
The first version of SASL, but not yet under this designation, originated in 1993 at Carnegie Mellon University as the Cyrus Project (Cyrus). This project was named after the Persian king Cyrus the Great, who was historically known for his system of royal routes and postal couriers, which greatly boosted the country's economy (Cyrus was probably later inspired by the Romans). The system of postal couriers can be considered to be a precursor of communication systems to some extent. The aim of this project was to create a universal authentication framework and to separate authentication mechanisms from communication protocols, the authors most often being Rob Siemborski and John Gardiner Myers. The author of the original specification was J. G. Myers, which was later approved by the IETF as RFC 2222. These recommendations were in line with the proposal, minor differences due to the formalization of the algorithms were elaborated in Cyrus SASLv1. After less than a decade, the first major change occurred, the new document was created by Alexey Melnikov and Kurta D. Zeileng (RFC 4422) and SASLv2 was created.

Differences between versions

There are basic differences between the first and second versions of SASL, which can be summed up with a few sentences in the following paragraph. SASLv1 had a monolithic structure that was difficult to expand and several built-in mechanisms (Anonymous, LOGIN, PLAIN and further Digest-MD5, CRAM-MD5). The second version had a modular architecture, there is support for the GSSAPI, EXTERNAL and SCRAM methods. While the first version mainly supported protocols for mail services such as IMAP, POP3, SMTP and later LDAP, the second version tries to be a universal interface. There are other differences, for example the first version did not support integrity assurance, it only supported cryptographic mechanisms due to the time of creation and the like.

Important terms

Within the analysis, the following terms and methods of evaluation are used, which describe advantages and disadvantages of each algorithm.
- Channel Binding is a technology that provides a link between the authentication mechanism and the communication protocol. The aim is to protect the connection from hijacking, or at least to provide basic authentication at the beginning of the connection.
- Realms means an area, in the IT world for example DNS denotes a domain or a domain of services in which a certain service is provided.
- Crypto-primitives provide an overview of the algorithms used. The mechanisms mentioned are outdated from today's perspective, which are acceptable at the current level and which will be prospectively secure.
- The number of participants specifies how many of them are involved in user authentication. For common mechanisms, authentication takes place on the target server (i.e. client and server), but there are mechanisms where the authentication is provided by a third party (client, authentication server and server of the service). In this case, either the authenticated user identification is provided to the target server (usually a token), or the token may also contain authorization information (where everywhere the user has access).
- PQC/QRC inform whether the mechanism is resistant to quantum computers (Post Quantum Cryptography or Quantum Resistant Cryptography)
- ZKP. This term refers to the Zero Knowledge Protocols. In short, it refers to a protocol that allows password authentication during the information process without providing information that could lead to its discovery.
- crypt support is more or less additional information and more on this topic is in a separate paragraph.
- Tokenization is closely related to the number of communicating parties, but is not a condition.
- Uniqueness describes the authentication information transmitted. This should be unique (unrepeatable), random and unpredictable. Ensuring that all three parameters are met is difficult.
- Credentials protection (Account information, password, key material etc.) is an important part of authentication. The vast majority of password protection occurs, but algorithms capable of protecting the user's name or realms (realms)
- Replay protection is now more or less an essential part of authentication. Every time you log in, authentication must be used in such a way that the information cannot be re-used. Otherwise, the attacker may intercept the information and log in.
- Relay protection is a much more challenging discipline. To ensure protection against the transfer of information (for example, an attacker's server posing as the provider's server) the control to which the user connects must be ensured, so mutual authentication must take place. Unfortunately, this technology is very little used.
- Hijack protection consists of linking authentication information to a communication channel. The aim is to protect against the possibility of hijacking the connection to the attacker's machine. Again, these methods are not often used to the detriment of the owners. Very closely related to Channel Binding, unfortunately, these are not synonyms.
- The Forge protection to some extent includes previous terms. This is protection against an attacker who aims to falsify the user's login.
- MFA support is now part of a mantra to ensure higher security. This is true when using different communication channels (OOB - Out of band), but debatable when using a single one.
- Integrity protection consists in implementing one of the MAC technologies (Message Authenticity Code), i.e. a cryptographic checksum. Outside of the MAC term, the term MIC (Message Integrity Check), ICV (Integrity Code Verification)
- Channel protection used - the authentization channel uses internal encryption, optional transport encryption, uses mandatory transport encryption, or uses end-to-end encryption (E2EE, usually above transport encryption as protection against SSL inspection)

Relationship between SASL and crypt interface

At first glance, there is a simple relationship between SASL and crypt, the outputs of some functions may look similar. But why can't they be interchanged? They may have a similar output, i.e. identifier, number of rounds, salt, output hash … but all form ends there. There is no relationship between these two methods, but for some algorithms it is possible to use server-side authentication against the local password database in the form provided by the crypt method (more on this topic in "Storing password with Crypt interface"). These are the methods PLAIN, LOGIN, CRAM-MD5 and under certain conditions e.g. GS2/GSS-API/SPNEGO/Kerberos, or EXTERNAL or OTP. Other algorithms do not support this procedure and even with these methods it is necessary to understand how exactly they work and whether these mechanisms can be used. Alternatively, whether their deployment will be implementation and architecturally dependent. For this reason it is often much secure to let the SASL mechanism use its own database, which is not connected to the system in any way.

Overview of SASL methods that are part of the analysis

When the connection is initialized, a specific method is selected, further user authentication is performed based on this choice. The choice is made by sending the following information:
AUTHENTICATE SASL [Method]


MechanismYearOID (if available)UsageReference
9798-M-DSA-SHA12008GeneralRFC3163
ISO/IEC 9798-3:2008
9798-M-ECDSA-SHA12008GeneralRFC3163
ISO/IEC 9798-3:2008
9798-M-RSA-SHA1-ENC2008GeneralRFC3163
ISO/IEC 9798-3:2008
9798-U-DSA-SHA12008GeneralRFC3163
ISO/IEC 9798-3:2008
9798-U-ECDSA-SHA12008GeneralRFC3163
ISO/IEC 9798-3:2008
9798-U-RSA-SHA1-ENC2008GeneralRFC3163
ISO/IEC 9798-3:2008
ANONYMOUS1999GeneralRFC4505
CRAM-MD51997Limited useRFC2195
DIGEST-MD519991.2.840.113549.2.5 (inaccurate)ObsoleteRFC6331
EAP-AES1282010GeneralRFC7055
EAP-AES128-PLUS2014GeneralRFC7055
ECDH-X25519-CHALLENGE2015Limited usehttps://github.com/atheme/atheme
ECDSA-NIST256P-CHALLENGE2010Limited usehttps://github.com/kaniini/ecdsatool
EXTERNAL2006GeneralRFC4422
GS2-*2006GeneralRFC5801
GS2-KRB52006GeneralRFC5801
GS2-KRB5-PLUS2006GeneralRFC5801
GSS-SPNEGO2003Limited useMS-SPNG
GSSAPI19931.2.840.113554.1.2.2GeneralRFC4752
KERBEROS_V419831.3.6.1.5.1ObsoleteRFC2222
KERBEROS_V519931.2.840.113554.1.2.2 (Kerberos)
1.2.840.48018.1.2.2 (Microsoft)
1.3.6.1.5.2.5 (inaccurate)
GeneralDraft-josefsson-sasl-kerberos5-01
LOGIN1998Obsoletedraft-murchison-sasl-login
NMAS_AUTHEN2000Limited useNMAS
NMAS_LOGIN2000Limited useNMAS
NMAS-SAMBA-AUTH2000Limited useNMAS
NTLM1996Limited useMS-NLMP
OAUTH10A2010GeneralRFC7628
OAUTHBEARER2012GeneralRFC7628
OPENID2020071.3.6.1.5.5.16GeneralRFC6616
OTP1998GeneralRFC2444
PASSDSS1997ObsoleteRFC2222
PLAIN1997GeneralRFC4616
Compuserve RPA1986?ObsoleteN/A
SAML2020051.3.6.1.5.5.17GeneralRFC6595
SCRAM-SHA-120101.3.6.1.5.5.14GeneralRFC5802 RFC7677
SCRAM-SHA-1-PLUS20101.3.6.1.5.5.14GeneralRFC5802 RFC7677
SCRAM-SHA-25620181.3.6.1.5.5.18GeneralRFC7677
SCRAM-SHA-256-PLUS20181.3.6.1.5.5.18GeneralRFC7677
SECURID1987GeneralRFC2808
SKEY1984ObsoleteRFC2444
SPNEGO20031.3.6.1.5.5.2Do not useRFC5801
SPNEGO-PLUS2003Do not useRFC5801
SRP2000GeneralRFC2945
SXOVER-PLUS2006GeneralDraft-vanrein-diameter-sasl-07
XOAUTH2009ObsoleteN/A
XOAUTH22010ObsoleteN/A

Explanation of the relationship between GS2, GSSAPI, SPNEGO and Kerberos

The above methods have quite complicated links, given their design and general function.
Kerberos. Probably the simplest method is Kerberos, which can be taken as a separate authentication mechanism.
GSSAPI (Generic Security Services Application Programming Interface) is actually nothing else than an interface for authentication, where the most common protocol is Kerberos. The reason was quite prosaic, there is still no standardized interface for Kerberos and the interface is provided by GSSAPI. Eventually the API started to support the SPNEGO method as well. The use in SASL is interesting because SASL is an API, which uses another API here.
SPNEGO (Simple and Protected GSSAPI Negotiation Mechanism) is a mechanism from the Microsoft operating system environment, which used NTLM (more commonly NTLMv1 and NTLMv2) and Kerberos for authentication against Active Directory. In the Microsoft environment, SPNEGO is part of SSPI (API for SPNEGO and other mechanisms), SPNEGO can use GSSAPI as one of the mechanisms. At the same time, GSSAPI can use SPNEGO as one of its mechanisms. It's a little tangled, but that's how it was designed.
GS2 (Generic Security Service Mechanism for SASL) uses GSSAPI as an interface for authentication, Kerberos is one of the possible authentication mechanisms here.

Incomplete method overview (predecessors of SASL)

In addition to the methods below, other methods of verification were used. Typically, it depended on the method of communication, i.e. whether serial lines (UUCP, SLIP, PPP …) or a clean network connection over TCP/IP were used. The methods listed are outdated and difficult to use, they are listed only for documentary reasons.

PAP (Password Authentication Protocol)
This is practically a BASIC method (see below), where the client sends a request for authentication to the server in an unencrypted way.

CHAP (Challenge Autentication Protocol)
This is a slight improvement of the method where the client sends a request for user login, the server provides a prompt for the reply and the client responds with hashes to the message ID, password and prompt.
Server → Client: CS
Client → Server: MD5(ID||Password||CS)

APOP (Auhtentization before POP)
It is a protocol specific to POP3 only, i.e. a protocol designed for downloading mail.
Server → Client: CS
Client → Server: MD5(Password||CS)

Analysis of Methods

The actual SASL methods that are part of the overview always contain a section dealing with algorithm description, cryptographic writing and evaluation. At present, most of these algorithms are of rather historical importance, so it is necessary to consider the importance of their deployment in the production environment.

9798-U-DSA-SHA1, 9798-U-ECDSA-SHA1, 9798-U-RSA-SHA1-ENC

9798-U-algorithm is an algorithm for unidirectional (Unilateral) certificate authentication, where the client authenticates against the server, but the server does not authenticate. The authentication algorithm allows the use of DSA, ECDSA and RSA algorithms.

Server → Client: Challenge SA
Client → Server: TokenC(CA||Client Certificate||DSA-(SA||CA))

SA, CA – Random prompt from server and client, must be a unique value.

Channel Binding: No
Realms: Yes
Cryptoprimitives: Obsolete (SHA1, DSA), rundown (RSA)
Number of participans: 2
PQC/QRC: No
ZKP: No
Crypt interface support: No
Tokenization: No
Uniqueness: Yes
Credentials protected: No
Replay protection: Yes
Protection against Relay: No
Hijack protection: No
Protection against Forge: Yes
MFA support: No
Integrity protection: No
Encryption type: Internal


9798-M-DSA-SHA1, 9798-M-ECDSA-SHA1, 9798-M-RSA-SHA1-ENC

9798-M-algorithm is an algorithm for two-way (Mutual) certificate authentication, where both client to server and server to client are authenticated. The authentication algorithm allows the use of DSA, ECDSA and RSA algorithms.

Server → Client: Challenge SA
Client → Server: TokenC(CA||Client Certificate||DSA-(SA||CA)||Optional IC)
Server → Client: TokenS(SB||Server Certificate||DSA-(SA||CA||SB)||Optional IS)

SA, SB, CA - Random prompt from server and client, must be a unique value.
IS, IC - Server identifier and client identifier

Channel Binding: No
Realms: Yes
Cryptoprimitives: Obsolete (SHA1, DSA), rundown (RSA)
Number of participans: 2
PQC/QRC: No
ZKP: No
Crypt interface support: No
Tokenization: No
Uniqueness: Yes
Credentials protected: No
Replay protection: Yes
Protection against Relay: Yes
Hijack protection: Yes
Protection against Forge: Yes
MFA support: No
Integrity protection: No
Encryption type: Internal


Anonymous

Anonymous connection without password, anonymous name is required.

Channel Binding: No
Realms: No
Cryptoprimitives: No
Number of participans: ?
PQC/QRC: No
ZKP: Ne
Crypt interface support: Ne
Tokenization: Ne
Uniqueness: No
Credentials protected: No
Replay protection: No
Protection against Relay: No
Hijack protection: No
Protection against Forge: No
MFA support: No
Integrity protection: No
Encryption type: None


PLAIN

This is text information about the username and password. The information is sent in open text (PLAIN), without any protection. The use of transport encryption is a necessary, but not sufficient method of protection, because in the case of SSL inspection, this authentication information is obtained.

Client → Server: (username||0x00h||password||0x00h)

Channel Binding: No
Realms: No
Cryptoprimitives: No
Number of participans: 2
PQC/QRC: No
ZKP: Ne
Crypt interface support: Yes
Tokenization: No
Uniqueness: No
Credentials protected: No
Replay protection: No
Protection against Relay: No
Hijack protection: No
Protection against Forge: No
MFA support: No
Integrity protection: No
Encryption Type: No, Necessary


LOGIN

This is again a text information about the username and password. In this case there are two exchanges between the server and the client, the client sends the encoded data. The above information is only encoded using BASE64 (4B to 6B encoding so that the result is always printable characters from the 7-bit ASCII range), but otherwise without any protection. The use of transport encryption is a necessary, but again insufficient method of protection, because in the case of SSL inspection it is also possible to obtain authentication information.
A similar method of logging is the BASIC method for web servers, where the string "username:password" is encoded using BASE64 and sent in response to the server authentication request.

Server → Client: Username:
Client → Server: Base64(username)
Server → Client: Password:
Client → Server: Base64(password)

Channel Binding: No
Realms: No
Cryptoprimitives: No
Number of participans: 2
PQC/QRC: No
ZKP: Ne
Crypt interface support: Yes
Tokenization: Ne
Uniqueness: No
Credentials protected: No
Replay protection: No
Protection against Relay: No
Hijack protection: No
Protection against Forge: No
MFA support: No
Integrity protection: No
Encryption Type: No, Necessary


CRAM-MD5

Simple protection of login information based on random prompting and MD5 hash. The client and server share a password or password hash, in which case the password is considered.

Server → Client: CS
Client → Server: HMAC-MD5(Password, CS)

Channel Binding: No
Realms: No
Cryptoprimitives: Obsolete (MD5)
Number of participans: 2
PQC/QRC: No
ZKP: No
Crypt interface support: Can be used
Tokenization: No
Uniqueness: Yes
Credentials protected: Password
Replay protection: Yes
Protection against Relay: No
Hijack protection: No
Protection against Forge: No
MFA support: No
Integrity protection: No
Encryption type: Internal


DIGEST-MD5

Simple protection of login information based on random prompting and MD5 hash. The client and server share a password or password hash, in which case the password is considered.

Server → Client: CS
Client → Server: MD5(MD5(username||realm||password)||CS||CC)||CS||Auth)||CC

Where to login: Auth=method||URI
For integrity : Auth=MD5(message)

Channel Binding: No
Realms: Yes
Crypto-primitives: Obsolete (MD5)
Number of pages on authentication: 2
PQC/QRC: No
ZKP: No
Crypt interface support: No
Tokenization: No
Uniqueness: Yes
Credentials protected: Password
Replay protection: Yes
Relay protection: No
Hijack protection: No
Forge protection: No
MFA support: No
Integrity protection: No
Encryption type: Internal


PASSDSS

Password-based Secure Device Authentication is a user authentication mechanism created using a DES algorithm. It exists in both PASSDSS-DES-1 and PASSDSS-3DES-1 versions and was used for authentication using SSH keys based on the DSA algorithm. At the beginning, there was an exchange of information, which was signed by DSA keys to ensure trustworthiness. The transmitted information was used to derive key material that was encrypted with a user password. While creating the authentication information, the message created an incomplete open text checksum, the entire result including the MAC is encrypted. The structure of the algorithm is complicated from today's perspective.

Client: SharedSecret=DHPublicKeyClient=gPrivKeyClient
Server: SharedSecret=DHPublicKeyServer=gPrivKeyClient
Client → Server: Request
Server → Client: DSA Public KeyServer||DSASignature(KeyServer,CServer)
Client → Server: DSA Public KeyClient||DSASignature(KeyClient,CClient)
Client:
- K=Public KeyServerPrivKeyClient
- cs-encryption-iv = SHA1( K || "A" || H )
- sc-encryption-iv = SHA1( K || "B" || H )
- cs-encryption-key-1 = SHA1( K || "C" || H )
- cs-encryption-key-2 = SHA1( K || cs-encryption-key-1 )
- cs-encryption-key = cs-encryption-key-1 || cs-encryption-key-2
- sc-encryption-key-1 = SHA1( K || "D" || H )
- sc-encryption-key-2 = SHA1( K || sc-encryption-key-1 )
- sc-encryption-key = sc-encryption-key-1 || sc-encryption-key-2
- cs-integrity-key = SHA1( K || "E" || H )
- sc-integrity-key = SHA1( K || "F" || H )
- data=AuthID||DSA Public KeyClient||DSA Public KeyServer||mask||buffer)
- MAC=HMAC-SHA-1(cs-integrity-key, data)
Client → Server: Enc-3DES-CBC(cs-encryption-key, mask||buffer||passphrase, IV=cs-encryption-iv)||MAC

Channel Binding: No
Realms: No
Cryptoprimitives: Obsolete (DES, 3DES, SHA-1, DSA, DH)
Partner sides: 2
PQC/QRC: No
ZKP: No
Crypt interface support: No
Tokenization: No
Uniqueness: Yes
Credentials protected: Password
Replay protection: Yes
Protection against Relay: No
Hijack protection: No
Protection against Forge: No
MFA support: No
Integrity protection: No
Encryption type: Internal


Compuserve RPA (non-standard)

Compuserve Remote Passphrase Authentication is a proprietary mechanism from the mid-1980s. Originally used to authenticate users to the CompuServe network, thanks to this mechanism and a wide spread, it was later included in the SASL library. It is currently in decline, its safety properties are insufficient from the current perspective.

Client → Server: Request||Username
Server → Client: List of identities
Client → Server: ID||Username||Service
Server → Client: CServer||Timestamp
Client → Server: CClient
Client → Server: ResponseClient=MD5(Password 128b||Padding 48B||Username||Service||ID||CClient||CServer||Timestamp||Password 128b)
Server → Client: ResponseServer=MD5(Service Password 128b||Padding 48B||Username||Service||ID||CClient||CServer||Timestamp||ResponseServer||Service Password 128b)

Channel Binding: No
Realms: Yes
Cryptoprimitives: Obsolete (MD5)
Partner sides: 2
PQC/QRC: No
ZKP: No
Crypt interface support: No
Tokenization: No
Uniqueness: Yes
Credentials protected: Password
Replay protection: Yes
Protection against Relay: No
Hijack protection: No
Protection against Forge: No
MFA support: No
Integrity protection: No
Encryption type: Internal


SRP

Secure Remote Password is an older but high-quality authentication mechanism within the design of the original SASL. It uses modular arithmetic to encrypt one-time password output. This mechanism can still be available on some platforms as SRP or PAKE and despite its age it excels in quality. From today's point of view it is possible to reproach some details, currently I would recommend replacing it with the algorithm OPAQUE, SESPAKE (RFC 8133), SPAKE2+ (RFC 9383). Unfortunately, these algorithms are not available within SASL.

Client:
- Random R
- A=gR mod p
Client → Server: Username||A
Server:
- Random R
- Salt S from file with saved passwords
- Validator V is the result of one-way password saving
- B=(V+gQ) mod p
Server → Client: B||S
Client:
- Password
- H=SHA-1(S||SHA-1(Username|":"|Password))
- T=(B-gH)(R+Username*H) mod p
- W=SHA-1_Interleave(T)
- M=SHA-1(SHA-1(p) xor SHA-1(g)||SHA-1(Username)||S||A||B||W)
Client → Server: M||K
Server: Z=H(A||M||K)

Channel Binding: No
Realms: No
Cryptoprimitive: Obsolete (SHA-1)
Partner sides: 2
PQC/QRC: No
ZKP: Yes
Crypt interface support: Maybe
Tokenization: No
Uniqueness: Yes
Credentials protected: Password
Replay protection: Yes
Relay protection: No
Hijack protection: Yes
Forge protection: Yes
MFA support: No
Integrity protection: Yes
Encryption type: Internal

Overview

This part dealt mainly with the history and basic mechanisms that are associated with the history of authentication mechanisms. This history included mechanisms that use asymmetric cryptography from the top of the list. The other mechanisms that use the client-server architecture will be discussed in the next parts. The other mechanisms that use multiple parties will be discussed in the next parts.

Reference:

  1. Cyrus SASL
    Source: https://www.cyrusimap.org
  2. GNU SASL
    Source: https://www.gnu.org
  3. Dovecot SASL
    Source: https://wiki.dovecot.org
  4. Java SASL
    Source: https://www.oracle.com
  5. ISO/IEC 9798-3 Authentication SASL Mechanism
    Source: https://www.ietf.org/
  6. Anonymous Simple Authentication and Security Layer (SASL) Mechanism
    Source: https://www.ietf.org/
  7. RFC Draft The LOGIN SASL Mechanism
    Source: https://www.ietf.org/
  8. IMAP/POP AUTHorize Extension for Simple Challenge/Response
    Source: https://www.ietf.org/
  9. Moving DIGEST-MD5 to Historic
    Source: https://www.ietf.org/
  10. Simple and Protected GSS-API Negotiation Mechanism (SPNEGO) Extension
    Source: https://www.microsoft.com/
  11. NT LAN Manager (NTLM) Authentication Protocol
    Source: https://www.microsoft.com/
  12. Novell Modular Authentication Service (Microfocus, originally by Novell)
    Source: https://www.microfocus.com/
  13. RFC draft Realm Crossover for SASL and GSS-API via Diameter
    Source: https://www.ietf.org/
  14. The Secure Remote Password Authentication and Key Exchange Mechanism
    Source: https://www.ietf.org/
  15. The OPAQUE Augmented PAKE Protocol
    Source: https://www.iacr.org/
  16. DSS Secured Password Authentication
    Source: https://www.ietf.org/
  17. Computesrve Remote Password Authentication
    Source: https://github.com/
  18. RFC draft A Kerberos 5 SASL Mechanism
    Source: https://www.ietf.org/
  19. Towards pluggable GSS-API modules
    Source: https://blog.josefsson.org

Autor článku:

Jan Dušátko
Jan Dušátko

Jan Dušátko has been working with computers and computer security for almost a quarter of a century. In the field of cryptography, he has cooperated with leading experts such as Vlastimil Klíma or Tomáš Rosa. Currently he works as a security consultant, his main focus is on topics related to cryptography, security, e-mail communication and Linux systems.

1. Introductory Provisions

1.1. These General Terms and Conditions are, unless otherwise agreed in writing in the contract, an integral part of all contracts relating to training organised or provided by the trainer, Jan Dušátko, IČ 434 797 66, DIČ 7208253041, with location Pod Harfou 938/58, Praha 9 (next as a „lector“).
1.2. The contracting parties in the general terms and conditions are meant to be the trainer and the ordering party, where the ordering party may also be the mediator of the contractual relationship.
1.3. Issues that are not regulated by these terms and conditions are dealt with according to the Czech Civil Code, i.e. Act No.89/2012 Coll.
1.4. All potential disputes will be resolved according to the law of the Czech Republic.

2. Creation of a contract by signing up for a course

2.1. Application means unilateral action of the client addressed to the trainer through a data box with identification euxesuf, e-mailu with address register@cryptosession.cz or register@cryptosession.info, internet pages cryptosession.cz, cryptosession.info or contact phone +420 602 427 840.
2.2. By submitting the application, the Client agrees with these General Terms and Conditions and declares that he has become acquainted with them.
2.3. The application is deemed to have been received at the time of confirmation (within 2 working days by default) by the trainer or intermediary. This confirmation is sent to the data box or to the contact e-mail.
2.4. The standard time for registration is no later than 14 working days before the educational event, unless otherwise stated. In the case of a natural non-business person, the order must be at least 28 working days before the educational event.
2.5. More than one participant can be registered for one application.
2.6. If there are more than 10 participants from one Client, it is possible to arrange for training at the place of residence of the intermediary or the Client.
2.7. Applications are received and processed in the order in which they have been received by the Provider. The Provider immediately informs the Client of all facts. These are the filling of capacity, too low number of participants, or any other serious reason, such as a lecturer's illness or force majeure. In this case, the Client will be offered a new term or participation in another educational event. In the event that the ordering party does not agree to move or participate in another educational event offered, the provider will refund the participation fee. The lack of participants is notified to the ordering party at least 14 days before the start of the planned term.
2.8. The contract between the provider and the ordering party arises by sending a confirmation from the provider to the ordering party.
2.9. The contract may be changed or cancelled only if the legal prerequisites are met and only in writing.

3. Termination of the contract by cancellation of the application

3.1. The application may be cancelled by the ordering party via e-mail or via a data mailbox.
3.2. The customer has the right to cancel his or her application for the course 14 days before the course takes place without any fees. If the period is shorter, the subsequent change takes place. In the interval of 7-13 days, an administrative fee of 10% is charged, cancellation of participation in a shorter interval than 7 days then a fee of 25%. In case of cancellation of the application or order by the customer, the possibility of the customer's participation in an alternative period without any additional fee is offered. The right to cancel the application expires with the implementation of the ordered training.
3.3. In case of cancellation of the application by the trainer, the ordering party is entitled to a full refund for the unrealized action.
3.4. The ordering party has the right to request an alternative date or an alternative training. In such case, the ordering party will be informed about all open courses. The alternative date cannot be enforced or enforced, it depends on the current availability of the course. If the alternative training is for a lower price, the ordering party will pay the difference. If the alternative training is for a lower price, the trainer will return the difference in the training prices to the ordering party.

4. Price and payment terms

4.1. By sending the application, the ordering party accepts the contract price (hereinafter referred to as the participation fee) indicated for the course.
4.2. In case of multiple participants registered with one application, a discount is possible.
4.3. The participation fee must be paid into the bank account of the company held with the company Komerční banka č. 78-7768770207/0100, IBAN:CZ5301000000787768770207, BIC:KOMBCZPPXXX. When making the payment, a variable symbol must be provided, which is indicated on the invoice sent to the client by the trainer.
4.4. The participation fee includes the provider's costs, including the training materials. The provider is a VAT payer.
4.5. The client is obliged to pay the participation fee within 14 working days of receipt of the invoice, unless otherwise stated by a separate contract.
4.6. If the person enrolled does not attend the training and no other agreement has been made, his or her absence is considered a cancellation application at an interval of less than 7 days, i.e. the trainer is entitled to a reward of 25% of the course price. The overpayment is returned within 14 days to the sender's payment account from which the funds were sent. Payment to another account number is not possible.
4.7. An invoice will be issued by the trainer no later than 5 working days from the beginning of the training, which will be sent by e-mail or data box as agreed.

5. Training conditions

5.1. The trainer is obliged to inform the client 14 days in advance of the location and time of the training, including the start and end dates of the daily programme.
5.2. If the client is not a student of the course, he is obliged to ensure the distribution of this information to the end participants. The trainer is not responsible for failure to comply with these terms and conditions.
5.2. By default, the training takes place from 9 a.m. to 5 p.m. at a predetermined location.
5.3. The trainer can be available from 8 a.m. to 9 a.m. and then from 17 a.m. to 6 p.m. for questions from the participants, according to the current terms and conditions.
5.4. At the end of the training, the certificate of absorption is handed over to the end users.
5.5. At the end of the training, the end users evaluate the trainer's approach and are asked to comment on the evaluation of his presentation, the manner of presentation and the significance of the information provided.

6. Complaints

6.1. If the participant is grossly dissatisfied with the course, the trainer is informed of this information.
6.2. The reasons for dissatisfaction are recorded in the minutes in two copies on the same day. One is handed over to the client and one is held by the trainer.
6.3. A statement on the complaint will be submitted by e-mail within two weeks. A solution will then be agreed within one week.
6.4. The customer's dissatisfaction may be a reason for discontinuing further cooperation, or financial compensation up to the price of the training, after deduction of costs.

7. Copyright of the provided materials

7.1. The training materials provided by the trainer in the course of the training meet the characteristics of a copyrighted work in accordance with Czech Act No 121/2000 Coll.
7.2. None of the training materials or any part thereof may be further processed, reproduced, distributed or used for further presentations or training in any way without the prior written consent of the trainer.

8. Liability

8.1. The trainer does not assume responsibility for any shortcomings in the services of any third party that he uses in the training.
8.2. The trainer does not assume responsibility for injuries, damages and losses incurred by the participants in the training events or caused by the participants. Such costs, caused by the above circumstances, shall be borne exclusively by the participant in the training event.

9. Validity of the Terms

9.1 These General Terms and Conditions shall be valid and effective from 1 October 2024.

Consent to the collection and processing of personal data

According to Regulation (EU) No 2016/679 of the European Parliament and of the Council on the protection of individuals with regard to the processing of personal data and on the free movement of such data and repealing Directive 95/46/EC (General Data Protection Regulation, hereinafter referred to as "the Regulation"), the processor xxx (hereinafter referred to as "the Controller") processes personal data. Individual personal data that are part of the processing during specific activities at this web presentation and in the course of trade are also broken down.
Although the collection of data is ubiquitous, the operation of this website is based on the right to privacy of each user. For this reason, the collection of information about users takes place to the extent absolutely necessary and only if the user decides to contact the operator. We consider any further collection and processing of data unethical.

Information about the records of access to the web presentation

This website does not collect any cookies. The site does not use any analytical scripts of third parties (social networks, cloud providers). For these reasons, an option is also offered for displaying the map in the form of a link, where the primary source is OpenStreet and alternatives then the frequently used Maps of Seznam, a.s., or Google Maps of Google LLC Inc. The use of any of these sources is entirely at the discretion of the users of this site. The administrator is not responsible for the collection of data carried out by these companies, does not provide them with data about users and does not cooperate on the collection of data.
Logging of access takes place only at the system level, the reason being the identification of any technical or security problems. Other reasons are overview access statistics. No specific data is collected or monitored in this area and all access records are deleted after three months.

Information about contacting the operator of the site

The form for contacting the operator of the site (administrator) contains the following personal data: name, surname, e-mail. These data are intended only for this communication, corresponding to the address of the user and are kept for the time necessary to fulfil the purpose, up to a maximum of one year, unless the user determines otherwise.

Information about the order form

In case of an interest in the order form, the form contains more data, i.e. name, surname, e-mail and contact details for the organisation. These data are intended only for this communication, corresponding to the address of the user and are kept for one year, unless the user determines otherwise. In the event that a business relationship is concluded on the basis of this order, only the information required by Czech law on the basis of business relations (company name and address, bank account number, type of course and its price) will continue to be kept by the administrator.

Information about the course completion document

Within the course, a course completion document is issued by the processor. This document contains the following data: student's name and surname, the name and date of the course completion and the employer's name. The information is subsequently used for the creation of a linear hash tree (non-modifiable record). This database contains only information about the provided names and company names, which may or may not correspond to reality and is maintained by the processor for possible re-issuance or verification of the document's issuance.

Rights of the personal data subject

The customer or visitor of this website has the possibility to request information about the processing of personal data, the right to request access to personal data, or the right to request the correction or deletion of any data held about him. In the case of deletion, this requirement cannot be fulfilled only if it is not data strictly necessary in the course of business. The customer or visitor of this website also has the right to obtain explanations regarding the processing of his personal data if he finds out or believes that the processing is carried out in violation of the protection of his private and personal life or in violation of applicable legislation, and the right to request removal of the resulting situation and to ensure the correction.
Furthermore, the customer/visitor of this website may request restriction of processing or object to the processing of personal data and has the right to withdraw his/her consent to the processing of personal data at any time in writing, without prejudice to the lawfulness of their processing prior to such withdrawal. For this purpose, the contact e-mail address support@cryptosession.cz is used.
The customer/visitor has the right to file a complaint against the processing of personal data with the supervisory authority, which is the Office for Personal Data Protection.

404

I can't find your requested page, or someone overreacted the the encryption

Your request cannot be completed