The Crypt interface is one of the most popular interfaces designed to protect stored passwords.
The original version of Crypt from Unix V7 (Unix Version 7) dates back to 1979. At that time, it only supported one-way password storage using a modified version of the DES algorithm. In older versions, password storage was used in open form. The introduction of the Crypt interface was a significant improvement and gradually expanded to include other algorithms. Subsequently, this interface was also used for authentication by different systems, which is not primarily intended for. Around 2010, it was discovered that the currently used methods of storing passwords were not sufficient to meet the requirements and a search for replacements began. A significant change was brought about by Password Hashing Competition, initiated in 2013 and finished in 2015. He aimed to find a specific class of slow hash functions. That is, groups of functions for which it is difficult to create a rainbow table (a form of computing time-memory trade-off).
Another extension was provided by glibc 2.7, when an additional parameter was added, containing a user-defined number of rund hashes of the function. Currently, the crypt interface uses a general hash string record format of the password '$ID$parameter_2$parameter_3$password_hash'. The number of parameters in this string may vary according to the ID of the algorithm chosen (see the overview for more). However, previous versions did not offer this option, so older systems can still encounter the structure '$ID$parameter_2$password_hash'. In this case, salt is usually inserted as parameter no.2.
Algorithm | Schema ID | Schema | Rounds | Salt | Description |
DES | _ | BSDI | 1 | 24b, parameter n.3 | Weak and obsolete |
DES | DES | 25 | 12b, parameter n.3 | Weak and obsolete | |
MD5 | $1$ | MD5 | parameter n.2 | Weak and obsolete | |
Blowfish | $2$ | bcrypt | parameter n.2 | part of hash | Password <72 chars, obsolete |
Blowfish | $2a$ | bcrypt | parameter n.2 | part of hash | Password <72 chars, CVE-2011-2483, obsolete |
Blowfish | $2b$ | bcrypt | parameter n.2 | part of hash | Password <72 chars, obsolete |
Blowfish | $2x$ | bcrypt | parameter n.2 | part of hash | Password <72 chars |
Blowfish | $2y$ | bcrypt | parameter n.2 | part of hash | Password <72 chars |
MD4 | $3$ | NTHASH | Weak, MD4(UNICODE(password)) | ||
SHA1 | $4$ | SHA1 | parameter n.2 | parameter n.3 | Weak |
SHA2 | $5$ | SHA2-256 | parameter n.2 | parameter n.3 | |
SHA2 | $6$ | SHA2-512 | parameter n.2 | parameter n.3 | |
scrypt | $7$ | scrypt | parameter n.2 | ||
MD5 | $md5,rounds=x$ | Solaris MD5 | parameter n.2 | parameter n.3 | Weak |
SHA1 | $sha1$ | PBKDF1 with SHA2-256 | parameter n.2 | parameter n.3 | Weak |
SHA2 | $sha256$ | PBKDF2 with SHA2-256 | parameter n.2 | parameter n.3 | |
SHA2 | $sha512$ | PBKDF2 with SHA2-512 | parameter n.2 | parameter n.3 | |
ARGON2D | $argon2d$ | Argon2d | parameter n.2 | parameter n.3 | |
ARGON2I | $argon2i$ | Argon2i | parameter n.2 | parameter n.3 | |
yescrypt | $gy$ | ghost-yescrypt | parameter n.2 | parameter n.3 | Weakened - Streebog S-Box |
yescrypt | $y$ | yescrypt | parameter n.2 | parameter n.3 |
Currently, Crypt interfaces are used as "local authentication" by various web, mail, and database systems.
These interfaces rely on their own password storage, or system or hierarchical databases (LDAP). But these
functions are intended for the storage and authentication of password hashes, where they are backdoor functions,
otherwise also one-way functions. Their extension for network authentication was unfortunate, although it is
a much safer procedure than for passwords in open text. The authentication mechanism must provide significantly
more requests than just one-way storage.
From today's perspective, the use of old technologies is inappropriate. The current use of pure hash functions
is insufficient, as is the insufficient use of HMAC or PBKDF derivation. From a security point of view, it is
necessary to focus only on scrypt, yescrypt, and Argon. On older implementations, the older bcrypt can be "at
the mercy" of the older bcrypt. Despite its archaic design, it is still effective, although from the
cryptographic point of view it would be advisable to replace it with more modern systems.
The aforementioned Password Hashing Competition (PHC) aimed at finding slow hash functions (Slow Hash Functions)
has brought interesting progress. Some of these functions, designed to secure key material, were able to
resist the design, although at first glance their architecture is slightly archaic. An example is bcrypt,
based on the BlowFish algorithm (more precisely EksBlowfish - Expensive Key Schedule Blowfish), although
the Blowfish itself is considered obsolete from the cryptographic point of view. A new feature in this area
was the scrypt algorithm, built over PBKDF2 and HMAC-SHA256, and the Salsa20/8 algorithm (predecessor of
ChaCha20). The scrypt algorithm creates a higher memory intensity, which serves as an additional barrier for
the attacker. Another similar algorithm is yescrypt, which again uses PBKDF2 and HMAC-SHA256. Compared to
the scrypt algorithm, it has a significantly higher resistance. The winner, the Argon algorithm is built
over the then new Blake2 hashing function (inspired by ChaCha20 and Salsa algorithms).
In this competition, features available at the time such as bcrypt, scrypt, yescrypt, Catena, Lyra2, Makwa,
Argon2 and others were compared. In this respect, the Argon2 feature excels, which has several variants:
Argon2i – resistant to side channel attack.
Argon2d – resistant to bruteforce cracking attacks, usually with the help of graphics cards.
Argon2id – a compromise combination of these features.
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“).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.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.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.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.6. Complaints
6.1. If the participant is grossly dissatisfied with the course, the trainer is informed of this information.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.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.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.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.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.