Computer-implemented method, computer program product and communication system for identifying security flaws in an entity
Patent Information
- Authority / Receiving Office
- EP · EP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-06-12
- Publication Date
- 2026-03-18
AI Technical Summary
Existing methods for identifying security vulnerabilities in entities, such as password weaknesses, are inefficient due to the exponential growth of possible password combinations and the generation of unlikely passwords using mechanical rules, which limits the effectiveness of brute-force attacks and password recovery.
A computer-implemented method using a trained neural network to generate a list of plausible passwords by applying probability distributions over an alphabet, performing a depth search in a tree structure to identify security gaps, and deciding on backtracking based on probability values, thereby efficiently generating a list of likely passwords.
This approach significantly improves the identification of security vulnerabilities by generating organic, likely passwords, enhancing IT security, and increasing the recovery rate of forgotten passwords, while being more efficient than existing methods.
Smart Images

Figure EP2024066182_26122024_PF_FP_ABST
Abstract
Description
[0001] 202304058 1 Description Computer-implemented method, computer program product, and communication system for identifying security vulnerabilities in an entity. The present invention relates to a computer-implemented method and a computer program product for identifying security vulnerabilities in an entity. Furthermore, the present invention relates to a communication system for identifying security vulnerabilities in an entity. Comprehensive password lists are required both for attacks on and for the protection of IT systems and data. Attackers use such lists to gain access to things that should actually be denied to them using so-called brute-force attacks. This can be done, for example, directly by entering the password candidates into a login field on an IT system.This, however, is likely to be the exception: Firstly, the throughput of passwords that can be tried with such an approach is usually very low, even with fully automated methods (a maximum of a few passwords per second); secondly, most systems lock after a certain number of incorrect password entries. A much more common attack is one in which the password is reconstructed using the list based on the password hash stored on the system: For all words in the list, the corresponding hash is calculated and compared with the stored password hash. If there is a match, the password is found. Conversely, pregenerated password lists can also be used for legitimate purposes: For example, to test systems or newly generated passwords for threats caused by the aforementioned brute-force attacks, but alsoto be able to reconstruct accidentally lost passwords. 202304058 2 Password lists with millions of entries can be found on the Internet [1]. That sounds like a lot, but the set of all passwords up to a certain length l grows exponentially in l: Even for passwords that consist only of the 26 letters in upper and lower case commonly used in German, the number increases by a factor of 52 with each additional letter. Already for l=6 (an extremely small length), there are almost 20 billion combinations – so that even a list with 20 million entries can only contain 1 per mille of all possible such passwords. For somewhat larger values of l, exhaustively enumerating all combinations in a practical time is no longer possible. However, lists like the one above showthat passwords chosen by humans are generally not random and exhibit strong patterns (e.g., matching or at least strong similarity to words from a language). Various programs for testing authentication devices and passwords are known from the state of the art, such as the "John the Ripper" program [2] or the "Hashcat advanced password recovery" program [3]. Furthermore, neural networks are generally known from the state of the art, see [4] – [7]. Furthermore, it is known from the state of the art that passwords can be generated using neural networks, see [8] and [9]. In [8], neural networks are used to generate and evaluate passwords. In [9], so-called "Generative Adversarial Networks" are used to generate passwords. However, the password generation rules discussed above are relatively "mechanical" in nature.i.e., they include, for example, typical password modifications such as changing upper and lower case letters at a certain number of places, appending / inserting special characters, repeating parts of the original password, etc. However, this largely generates relatively improbable passwords. Against this background, one object of the present invention is to improve the identification of security vulnerabilities in an entity. According to a first aspect, a computer-implemented method for identifying security vulnerabilities in an entity in a communication system using a generated password list is proposed. The method comprises the following steps: a) receiving a trained neural network,b) Obtaining one or more probability distributions over a predetermined alphabet depending on a predetermined initial character string and / or depending on at least one specific character string from a plurality of specific character strings by applying the trained neural network to the predetermined initial character string or one of the plurality of specific character strings, wherein the one or more obtained probability distributions assign a respective probability value to each character from the predetermined alphabet, c) Performing a depth-first search in a data structure, in particular in a tree structure, by searching the data structure depending on the one or more obtained probability distributions and the predetermined alphabet to generate the password list of a predetermined list size comprising a number of passwords,and d) identifying security vulnerabilities in the entity using the number of passwords in the generated password list. According to the first aspect, the identification of security vulnerabilities in an entity is improved by automatically generating a password list with the most probable or plausible passwords, by means of which the probability of finding a match is increased due to the most probable passwords when identifying security vulnerabilities, thus facilitating and accelerating the identification of security vulnerabilities. This is achieved by a combination of applying the trained neural network, searching the tree structure based on the outputs of the trained neural network, and deciding whether or not to perform backtracking. The computer-implemented method described above enablesOn the one hand, the trained neural network is used to generate "organic" (most probable) passwords even for longer password lists, and on the other hand, a depth-first search is performed for the most probable passwords according to the output of the trained neural network. Within the depth-first search, a decision is made, based on the predetermined list size and the probability distributions determined by the trained neural network in the nodes of the current path, whether to continue searching for passwords below the current node or whether backtracking should be initiated. In this process, the depth-first search first enters the paths of the data structure that have been assigned a higher probability value based on the probability distributions predicted by the trained neural network. One advantage of this approach isthat information only needs to be kept in memory for a very small number of nodes (namely, the path from the root node to the current node). In summary, the computer-implemented method according to the first aspect can efficiently generate password lists of a fixed size with very plausible ("organic", "probable") passwords in order to optimally utilize a fixed size limit, for example, a maximum storage space on a hard disk, for a repeatedly used password list. 202304058 5 This is particularly advantageous when these password lists are used repeatedly,Because with each additional use of the password lists, their quality saves time compared to quickly trying out relatively unlikely passwords (the effort of creating the list only needs to be made once). This also advantageously increases the IT security of the entity and the communication system. Identifying security gaps in an entity has, for example, the following advantages: Identifying weak or insecure access data: In a company network, for example, an automation system, employee access data can be checked for vulnerabilities or insufficiently secure passwords, and these vulnerabilities or security gaps can be identified. Backdoor detection: Improved protection can be achieved against intentionally stored / forgotten passwords (as plain text or in the form of a hash) in source code,in firmware and / or binaries of a delivered or installed product, e.g., within a software composition analysis (SCA) toolchain. Password recovery: The generated improved password list can achieve a higher recovery rate. This means that forgotten or lost passwords for a computer, system, or network resources can be better identified. Furthermore, the computer-implemented method has the following advantage over the state-of-the-art programs [2] and [3]: The rules supported by [2] and [3], which are used to derive new passwords from existing ones, are, as described in the introduction, relatively "mechanical" in nature. However, this results in improbable passwords being generated. This is compensated for by the extremely high generation speed of the two programs [2] and [3] when used once, but it does not help.if one is interested in the "most probable passwords." Thus, in contrast to the computer-implemented method according to the first aspect, the two programs [2] and [3] are not capable of generating probable or the most probable passwords. A computer-implemented method is, in particular, a method that uses a computer, a computer network, or another programmable device, wherein one or more features are realized entirely or partially with the aid of a computer program. The entity can be a computer located in a company network, for example, an automation system. Furthermore, the entity can be embodied as a software product, which, for example, is to be tested for vulnerabilities before being placed on the market. Furthermore, the entity can represent the software part of a hardware product (e.g., its firmware).which is to be checked for vulnerabilities before being placed on the market. The entity can also be a server, for example a web server, which is to be checked for weak access credentials. The trained neural network, when applied, has, in particular, as an input parameter, the predetermined initial character sequence and, as an output parameter, a probability distribution over the predetermined alphabet, by which a probability is assigned to each character from the predetermined alphabet. The predetermined alphabet can have a character and / or a character string. The character can be designed as a first character, as a second character, as a third character and / or as a fourth character. The character and / or 202304058 7 the character string can have letters, numbers, special characters and / or control characters. The character string can also consist of a mixture of letters, numbers,Special characters and / or control characters may be formed. The predetermined initial character sequence is, for example, "ba", "abc", or an empty string "". The predetermined initial character sequence may also be any other string on the basis of which the most probable passwords for this predetermined initial character sequence are searched. In particular, in step b), each character from the predetermined alphabet is assigned a respective probability value depending on a respective depth, for example, a first depth, a second depth, or a third depth of the data structure.assigned. The depth of the data structure can also be referred to as a recursion depth. The root node is located, in particular, at the first depth or recursion depth 0. The first specific node is located, in particular, at the second depth or recursion depth 1. The second specific node is located, in particular, at the third depth or recursion depth 2. The size of the predetermined list size or the number of passwords is specified, in particular, by a computer or a user operating the computer. Depth-first search is a method for searching for nodes in a graph, for example, the data structure. Starting from the root node in the first depth, depth-first search proceeds downwards to the second, third, fourth, and / or further depths. The tree structure is, in particular, a tree of nodes and edges and is represented as a graph.wherein the edges connect the nodes. 202304058 8 The identification according to step d) can also be referred to as recognition. Identification also includes checking and / or testing the entity for security vulnerabilities using the generated password list. A security vulnerability can be an insecure or weak password and / or access data. Furthermore, a security vulnerability can be an intentionally stored or forgotten password in a program's source code. According to one embodiment, the data structure has at least one root node, wherein the root node represents the predetermined initial character string with the probability value of one, wherein the predetermined alphabet has a special character, wherein a first probability distribution of the plurality of probability distributions is obtained by applying the trained neural network to the predetermined initial character string.wherein a probability value is assigned to the special character by the obtained first probability distribution, wherein the root node is arranged in the first depth of the data structure, wherein the searching of the data structure in step c) comprises: setting the predetermined list size, wherein the predetermined list size comprises a number M1 of passwords to be generated, generating an empty password list, initializing a password counter with the value zero, setting the root node as the current node, creating a first character list for the root node, which at the time of creation comprises exactly the characters of the predetermined alphabet, and executing a password scheme for generating at least one password,wherein the execution of the password scheme comprises the following steps: c100) determining a first maximization result by applying a first maximization function to a number N1 of product probability values for the characters remaining in the first character list, wherein the number N1 corresponds to the number of characters remaining in the first character list, wherein the product probability value assigned to the special character corresponds to the probability value determined by the trained neural network multiplied by one, and each product probability value assigned to a character other than the special character from the first character list is obtained by multiplying the probability value obtained for that character from the first probability distribution by a predetermined probability value,wherein the probability value from the number N1 of product probability values which has the highest value is determined as the first maximization result, c110) determining a first variable value by applying a first backtracking decision function to a determined first password probability value, wherein the first password probability value is determined at least as a function of the first maximization result, wherein if at least the first variable value is true and c111) if the product probability value associated with the special character is determined as the first maximization result, appending the special character to the predetermined initial character string to obtain the predetermined initial character string as a first or a further password, removing the special character from the first character list,and adding the first or further password to the generated password list and increasing the value of the password counter by one, wherein if the value of the password counter is equal to the number M1, terminating the execution of the depth-first search and continuing with step d), or 202304058 10 if, as the first maximization result, a first determined probability value from the product probability values is determined, which does not correspond to the product probability value assigned to the special character, c112) appending a first character assigned to the first determined probability value to the predetermined initial character string to determine a first specific character string assigned to a first specific node, which is determined by appending the first character to the predetermined initial character string, c113) removing the first character from the first character list,c114) Creating a second character list for the first specific node, which at the time of creation includes exactly the characters of the predetermined alphabet, c115) Determining the probability value for the first specific node by multiplying the probability value of the root node by the first maximization result, c116) Determining the root node as a first return point for the first specific node to perform the second backtracking, c117) Determining the first specific node as the current node, and c118) Continuing the search of the data structure in step c) from the first specific node, or c119) If the first variable value is false, performing a first backtracking, wherein the execution of the depth-first search is aborted upon performing the first backtracking. The trained neural network is implemented in each node of the data structure,For example, the root node or the first specific node, implemented to obtain a respective probability distribution for the respective node, for example, the first probability distribution for the root node or the second probability distribution for the first specific node. Based on this respective probability distribution, a backtracking decision can then be determined using the respective backtracking decision function. According to this embodiment, the depth-first search according to step c) is carried out such that the number of passwords to be generated is generated by traversing the tree structure. Here, the nodes each represent the predetermined initial character string or one of the several specific character strings,which in particular have all underlying nodes as an initial string, and the respective edges correspond to a character from the predetermined alphabet to be appended to the predetermined initial character string or one of the several specific character strings. By determining the variable value according to step c110), in particular the first variable value, by applying the first backtracking decision function, a decision is made as to when the paths below the current node to the predetermined initial character string or one of the specific character strings have been searched by the depth-first search to such an extent that it is more promising to perform backtracking, for example, a second backtracking, in order to find further passwords. This decision will be explained in more detail later in the context of applying a second or third backtracking decision function in one embodiment. Performing backtracking comprises, in particular,that another character in one of the predecessor nodes is selected with respect to the current node, and a jump is made back to this predecessor node. "Jumping back" preferably means jumping back to a node above the current node. If, as part of the application of a backtracking decision function, for example the third backtracking decision function, it is decided that a depth should be skipped when jumping back, backtracking is first performed to a depth above the current node in the direction of the root node. Subsequently, a backtracking decision function is preferably executed again at this depth, in order to then possibly jump back another depth upwards towards the root node. In particular, no depth in the tree structure can be skipped with backtracking.to reach a greater depth towards the root node. The depth-first search is aborted, especially when performing the first backtracking, because the first variable value indicates that no password can be found, and therefore the depth-first search is aborted. The root node represents the starting node. The special character is, for example, a dollar sign $. The special character is, in particular, a character that is neither a letter nor a number. The special characters can also include punctuation marks and / or scientific-technical symbols. The current node is always the nodein which the depth-first search is currently located in the data structure. Applying the first maximization function comprises, in particular, comparing the probability values of the number N1 of product probability values for the characters remaining in the first character list with the product probability value assigned to the special character. In particular, if the product probability value assigned to the special character is greater (numerically greater) than at least one of the product probability values of the number 202304058 13 N1, the product probability value assigned to the special character is determined as the first maximization result by applying the first maximization function. On the other hand, if one of the product probability values of the number N1 is greater than the product probability value assigned to the special character,By applying the first maximization function, one of the product probability values of the number N1 is determined as the first maximization result. The first maximization function is preferably a mathematical function. The statements for the first maximization function also apply analogously to the second maximization function and the number N2 of product probability values and / or to the third maximization function and the number N3 of product probability values. As soon as a character is removed from the first, second, or third character list, the remaining characters in the respective character list are called remaining characters. A respective variable value, for example the first, second, or third variable value, can have the return value true or false. In particular, the return value for true is 1 and the return value for false is 0. As soon as the special character is preferably appended to a character string,For example, if the predetermined initial character string is appended, the respective character string is included as a password in the generated password list. If no password was found previously, this recorded password is now the first password. However, if a password has already been found, this recorded password is another password. If the value of the password counter is equal to the number M1, this means that a sufficient number of passwords corresponding to the predetermined list size have been found. 202304058 14 As soon as the second backtracking is performed, a jump is made from the first specific node to the root node, which is defined as the first return point. In particular, the second backtracking can also be performed chronologically after the third backtracking, another backtracking, or shortly before the end of the depth-first search. The designation "first","Second" or "third" backtracking does not represent a chronological order according to which the respective backtrackings are performed in the depth-first search. The predetermined probability value can be fixed and depth-independent. According to a further embodiment, the predetermined probability value depends on the depth of the data structure, in particular on the first depth, the second depth, or the third depth. According to a further embodiment, the first password probability value is determined by multiplying the probability value for the root node by the first maximization result. According to a further embodiment, the first variable value is determined by applying the first backtracking decision function to the determined first password probability value.on a state of the root node and on a number of passwords still to be generated for the password list. The state of the root node can be determined by the first probability distribution (v(z, -)) obtained by the trained neural network for the initial string belonging to the root node, in this case the predetermined initial character sequence (z), as well as by the stack list element (C[i]) of the characters from the predetermined alphabet already tried in the root node, each corresponding to an edge of the data structure emanating from the root node.be described. In particular, the first backtracking decision function is determined analogously to the determination of the second backtracking decision function and / or the third backtracking decision function. According to a further embodiment, continuing the search of the data structure in step c) from the first specific node comprises: c200) Obtaining a second probability distribution of the plurality of probability distributions by applying the trained neural network to the first specific character string, determining a second maximization result by applying a second maximization function to a number N2 of product probability values for the characters remaining in the second character list, wherein the number N2 corresponds to the number of characters remaining in the second character list,wherein the product probability value assigned to the special character corresponds to the probability value determined in the second probability distribution multiplied by one, and each product probability value assigned to a character other than the special character from the second character list is obtained by multiplying the probability value obtained for that character from the second probability distribution by the predetermined probability value, wherein the probability value from the number N2 of product probability values which has the highest value is determined as the second maximization result, c210) Determining a second variable value by applying a second backtracking decision function to a determined second password probability value,wherein the second password probability value is determined at least as a function of the second maximization result, wherein if at least the second variable value is true and c211) if the product probability value associated with the special character is determined as the second maximization result, appending the special character to the first specific character string to obtain the first specific character string as a first or a further password, removing the special character from the second character list, and adding the first or the further password to the generated password list and increasing the value of the password counter by one, wherein if the value of the password counter is equal to the number M1, terminating the execution of the depth-first search and continuing with step d), or if a second specific probability value from the product probability values is determined as the second maximization result,which does not correspond to the product probability value assigned to the special character, c212) appending a second character, which is assigned to the second determined probability value, to the first specific character string to determine a second specific character string, which is assigned to a second specific node, which is determined by appending the second character to the first specific character string, c213) removing the second character from the second character list, c214) creating a third character list for the second specific node, which at the time of creation comprises exactly the characters of the predetermined alphabet, 202304058 17 c215) determining the probability value for the second specific node by multiplying the probability value for the first specific node by the second maximization result,c216) Setting the first specific node as a second return point for the second specific node to perform a third backtracking, c217) Setting the second specific node as the current node, and c218) continuing the search of the data structure in step c) from the second specific node, or c219) if the second variable value is false, performing a second backtracking, wherein performing the second backtracking comprises: continuing the search of the data structure in step c) from the first return point, comprising: repeatedly executing steps c100) - c118). The data structure up to this embodiment is constructed as follows: The root node is the starting node in the first depth, which is at the topmost point of the data structure, which only continues downwards.is arranged. A first path leads from the root node via a first edge to the first specific node at the second depth. The first edge is assigned to the first character. Thus, by appending the first character of the first edge to the predetermined initial character string, the first specific node is determined. In addition, a second path leads from the first specific node via a second edge to the second specific node at the third depth. The second edge is assigned to the second character. Thus, by appending the second character of the second edge to the first specific character string, which is assigned to the first specific node, the second specific node is determined. 202304058 18 In particular, the repeated execution of steps c100) - c118) comprises executing these steps with a reduced first character list,in which the first character is no longer part of the first character list. In other words, steps c100) - c118) are performed with the remaining characters in the first character list during the repeated execution. According to a further embodiment, the second password probability value is determined by multiplying the probability value of the first specific node by the second maximization result. According to a further embodiment, the second variable value is determined by applying the second backtracking decision function to the determined second password probability value,on a respective state of all respective nodes from the root node to the first specific node and on the number of passwords still to be generated for the password list. A respective state of a respective node can be described as the probability distribution obtained by the trained neural network for the character string belonging to the respective node, as well as as the respective stack list element of the characters from the predetermined alphabet already tried in the respective node. According to a further embodiment, continuing the search of the data structure in step c) from the second specific node comprises: c300) Obtaining a third probability distribution of the plurality of probability distributions by applying the trained neural network to the second specific character string,Determining a third maximization result by applying a third maximization function to a number N3 of product probability values for the characters remaining in the third character list, wherein the number N3 corresponds to the number of characters remaining in the third character list, wherein the product probability value assigned to the special character corresponds to the probability value determined in the third probability distribution multiplied by one, and each product probability value assigned to a character other than the special character from the third character list is obtained by multiplying the probability value obtained for this character from the third probability distribution by the predetermined probability value, wherein the probability value from the number N3 of product probability values is determined as the third maximization result,which has the highest value, c310) determining a third variable value by applying a third backtracking decision function to a determined third password probability value, wherein the third password probability value is determined at least as a function of the third maximization result (Max3), wherein if at least the third variable value is true and c311) if the product probability value associated with the special character is determined as the third maximization result, appending the special character to the second specific character string to obtain the second specific character string as a first or a further password, removing the special character from the third character list, and adding the first or the further password to the generated password list and increasing the value of the password counter by one, wherein if the value of the password counter is equal to the number M1,202304058 20 Ending the execution of the depth-first search and continuing with step d), or if a third specific probability value is determined from the product probability values as the third maximization result, which does not correspond to the product probability value assigned to the special character, c312) Appending a third character, which is assigned to the third specific probability value, to the second specific character string to determine a third specific character string, which is assigned to a third specific node, which is determined by appending the third character to the second specific character string, c313) Removing the third character from the third character list, c314) Creating a fourth character list for the third specific node, which at the time of creation comprises exactly the characters of the predetermined alphabet,c315) Determining the probability value for the third specific node by multiplying the probability value for the second specific node by the third maximization result, c316) Determining the second specific node as a third return point for the third specific node to perform a fourth backtracking, c317) Determining the third specific node as the current node, and c318) continuing the search of the data structure in step c) from the third specific node, or c319) if the third variable value is false, performing the third backtracking, comprising: 202304058 21 Continuing the search of the data structure in step c) from the second return point determined for the second specific node,comprising: Repeatedly executing at least steps c200-c218. In this embodiment, the data structure is further additionally constructed as follows: A third path leads from the second specific node via a third edge to the third specific node at a fourth depth. The third edge is associated with the third character. Thus, by appending the third character of the third edge to the second specific character string associated with the second specific node, the third specific node is determined. In particular, the repeated execution of steps c200-c218 comprises executing these steps with a reduced second character list.in which the second character is no longer part of the second character list. In other words, steps c200) - c218) are performed during the repeated execution with the characters remaining in the second character list. According to a further embodiment, the third password probability value is determined by multiplying the probability value of the second specific node by the third maximization result. According to a further embodiment, applying the third backtracking decision function further comprises determining one or more decision probability values depending on at least one mathematical logarithm function, wherein each of the one or more determined decision probability values corresponds to a character remaining in a character list of a node above the second specific node.wherein each of the one or more determined decision probability values is compared with exponents of a determined polynomial for the node belonging to the character list in order to obtain a number of possible passwords present in one or more nodes above the second specific node, wherein the third variable value is determined by comparing the obtained number of possible passwords with the number of passwords still to be generated for the password list, wherein the number of passwords still to be generated for the password list is determined depending on the value of the password counter. By applying the third backtracking decision function, it is determined in particular whether it is worthwhile for a remaining character, starting from the first specific node, to perform a third backtracking from the second specific node to the first specific node.to then search the node and paths below its further edges, which result from appending the remaining character to the first specific node, for passwords that have a probability value at least as high as the third password probability value. In particular, if the number of possible passwords is smaller than the number of passwords still to be generated for the password list, the return value true is determined as a variable value, for example, the second or third variable value. Preferably, if the number of possible passwords is greater than the number of passwords still to be generated for the password list, the return value false is determined as a variable value. According to a further embodiment, the mathematical logarithm function receives at least the third password probability value as an input parameter.the probability value determined by the trained neural network for the character remaining in the character list of the node above the second specific node, the probability value of the node and the predetermined probability value, wherein the node corresponds to the root node or the first specific node, wherein the character list corresponds to the first character list or the second character list, wherein by applying a logarithm by the mathematical logarithm function to the quotient of the third password probability value and the product of the probability value of the node,The one or more decision probability values are determined from the probability value determined by the trained neural network for the character remaining in the character list of the node above the second specific node and the predetermined probability value. As already explained in one embodiment above, by determining the third variable value according to step c310) by applying the third backtracking decision function, a decision is made as to when the paths below the current node, here the second specific node, have been searched by the depth-first search to such an extent that it is more promising to perform a third backtracking to find further passwords below higher nodes in the direction of the root node.which are not below the current node. This decision is explained in more detail below within the context of applying the third backtracking decision function: Within the application of the third backtracking decision function, at least one decision probability value is determined as a function of the mathematical logarithm function. This mathematical logarithm function receives, in particular, several input parameters: A first input parameter is preferably the third password probability value. The third password probability value is the probability of a password "pnext3" (see Fig. 2 below) above the current node, which in this case is the second specific node.which has the highest probability among the remaining passwords. A second input parameter is the respective state of each node above the current node on the path from the root node to the current node. The state can be described using two state parameters. The first state parameter is preferably the probability value determined by the trained neural network for a character remaining in the character list of the node above the second specific node. This is, for example, the character a in the first specific node. The probability value determined by the trained neural network for the character remaining in the character list of the node above the second specific node is, in particular, determined by the second probability distribution, which is, for example, designed as v("bab", "a").obtained by applying the trained neural network to the first specific character string and the remaining character. The second probability distribution is described in particular as an element (V[i], here V[1]) of a stack list "V". The second state parameter is in particular a stack list element (C[i], here C[1]) which contains the characters from the predetermined alphabet already tried in the node above the second specific node, each corresponding to an edge emanating from the node above the second specific node. The last character in the list C[i] is preferably the currently considered character. A third input parameter is in particular the probability value of the node above the second specific node. A fourth input parameter is preferably the predetermined probability value,which is referred to as "p$". If the special character is a character other than the dollar sign $, the predetermined probability value is designated differently. For example, if the special character is a paragraph §, the predetermined probability value can be written as "p§". The decision probability values thus determined by the mathematical logarithm function for the remaining characters in the character list are then compared with exponents of a determined polynomial for the respective node above the second specific node in order to determine a number of passwords with a higher probability than the third password probability value ("pnext3"). The sum of the numbers thus determined is compared with the number of passwords still to be generated for the password list.to obtain the third variable value. In other words, the obtained third variable value should be used to predict whether there are enough passwords in the predecessor nodes or below their edges (i.e., at least as many as the passwords still to be generated) that have a probability value at least as high as the third password probability value. These passwords, which may exist in the predecessor nodes, correspond to the obtained number of possible passwords. In particular, nodes that have been visited once after a respective backtracking starting from this visited node are never reached again when searching the data structure according to step c). For a more precise description of a backtracking decision function "O" (V[i], C[i], R1, P(pnext)), two simplifying assumptions are made about the nodes in the data structure,for which the trained neural network has not yet been used: 202304058 26 Assumption 1: The predetermined probability value (v(z,"$")) for the password end equals a constant p$ for all nodes of the tree structure, for which p$ > 0, which in turn means that p$ is independent of the predetermined initial character sequence. Assumption 2: If one considers the set of probability values (v(z, x)) for all x ^ A \ {"$"} (with their multiplicities) for any node at depth level i of the tree structure, one always obtains the same probability distribution F, i. Thus, at depth i, the same individual probabilities always occur (possibly multiple times), but the probabilities can be assigned to different characters from the predetermined alphabet in each node (except for "$"). Assumption 1 ensures that in the current (examined) node, it is immediately clear which step must be chosen to generate the most probable password pnext below the current node: Since every generated password below the current node must end with the choice of "$", and the probability of this is constant for all nodes following the current node according to Assumption 1, the most probable password pnext is created either by directly choosing "$" (with probability P(z) * v(z,"$")) or by choosing the one (from the characters in the predetermined alphabet orThe first character (remaining in the respective character list), here, for example, the character a, with the highest probability value from the probability distribution v(z,-) of the current node, followed by the selection of "$" in the successor node (with the probability P(z) * v(z, a) * p$). Consequently, P(pnext) = max (P(z) * v(z,,"$"), P(z) * v(z, a) * p$) (see also Fig. 2 below). The following should be noted: To calculate these probabilities, priority is given to the prediction from the probabilities (v(z,-)) of the obtained probability distribution of the applied trained neural network. Assumptions 1 and 2 are only used for the successor node, for which no obtained probability distribution (v(z,-)) is yet available.Using assumptions 1 and 2, one can easily estimate the number of possible passwords with a probability ≥ P(pnext) that would be generated after a backtracking step in a predecessor node. The calculation of the estimate of the resulting number of possible passwords with a probability value ≥ P(pnext) is explained in more detail below: Let each probability distribution F be i given by the polynomial f i =(y wi,0 + y wi,1 + … + y wi,s-2 ). The w i,j represent the natural logarithmic probability of the j-th character from the predetermined alphabet A \ {"$"} according to the probability distribution F i So sum(exp(w i,l ),l=0..s-2) + p$ = 1 ("exp" is the exponential function, i.e. the inverse function of the natural logarithm). This also results, because p$ > 0, in exp(w i,l ) < 1 or w i,l< 0 for all l ("l" corresponds to the maximum password length). When multiplying the summands of two such polynomials, their exponents are added. This makes the following clear: The coefficient a of the monomial a * y w in the polynomial g i,k := f i * f i+1 * … * f i+k-1 corresponds to the expected number of possible passwords that result with probability P(z) * exp(w) * p$, if, starting from a node to the string z (e.g., the predetermined initial character sequence) at depth i in the tree structure, exactly k characters from the predetermined alphabet A \ {"$"} and then "$" are added once. For the cumulative polynomials h i,k :=sum(g i,l , l=0..k) applies analogously: The coefficient of y w in h i,kcorresponds to the expected 202304058 28 number of possible passwords that result with the probability P(z) * exp(w) * p$, if, starting from a node to the string z at depth i in the tree structure, up to k characters are added and then "$" is added once. Note that for the practical implementation of the computer-implemented method according to the first aspect and its embodiments, only the r ≤ n monomials with the most significant exponents of h are used. i,k (counted with the values of their coefficients as multiplicity) are interesting: The question in the sense of the computer-implemented method according to the first aspect and its embodiments is in each case how many monomials with an exponent of a certain minimum value there are in h i,kwhere values >r can be "rounded" to r in the answer without changing anything (since the non-negative numbers thus determined are added together and only checked to see whether their sum is ≥ r, see the explanations below). The polynomial thus reduced is denoted by h i,k,r Since r always decreases during the depth-first search according to the appendix (see appendix), the first reduced polynomial calculated in this way contains h i,k,r at least the same information as all polynomials h needed later i,k,r‘ . Consequently, for each pair i, k, at most one h i,k,r be determined. Since g i,k+1 = g i,k * f i+k and in this multiplication each summand S with exponent e from g i,k (because of w i,l < 0) only summands with smaller exponents than e itself are generated (which in the cumulative h i,k+1in the sorting according to the summand S), are for all g i,k (which only serves to determine a h i,k,r‘ serve) only the r ≤ n monomials with the most significant exponents (counted with the values of their coefficients as multiplicity) are of interest. Due to the monotonous decrease of r during the depth-first search according to the appendix, the g "reduced" in this way for the first value of r i,k can also be reused at all later points. This advantageously further accelerates the calculations. Furthermore, because of "w i,l < 0 for all l" the degree (= value of the highest exponent) of g i,k strictly monotonic with k ("longer passwords become increasingly less likely"), which is why for a generally not too high value k i ' all h i,k,r with k ≥ k i ' are identical. Therefore, the calculation of h i,k,r - and thus also from g i, k - for k > k i ' is no longer necessary (this corresponds to the statement that for the decision of the backtracking decision function only the probabilities of string extensions up to a maximum length k i ' are relevant). In practical implementation, therefore, only a finite number of g i,k be calculated. The determination of the number of possible passwords can now be done as follows: 1. Determine P(pnext) in the current node N for the string z (e.g., the predetermined initial string) using P(pnext) = max (P(z) * v(z,"$"), P(z) * v(z, "a") * p$). 2. Set T1 = 0. 3. For each predecessor node N' (of the current node N) for the string z' at depth i and with probability distributions v(z', -) obtained from the trained neural network, perform the following: a. Determine h i+1,k‘,r (k' as above) or use h i+1,k‘,r‘to a previously occurred r' > rb For each x ^ A \ C[i] increment t by the number of monomials (counted with the values of their coefficients as multiplicity) in h i+1,k‘,r whose exponent is at least log(P(pnext) / [P(z') *·v(z' ,a) *·p$]). For the definition of the probability distributions F i (and of p$) various methods are conceivable, for example: 202304058 30 i) Defining a probability distribution F i as an average over several obtained probability distributions v(z, -) for nodes at different depths i, ii) Defining a probability distribution F i based on the letter distributions of words in a specific target language, and / or iii) choosing a probability distribution F isuch that all characters (except the special character "$") have the same probability (this resulting probability distribution would be very rough, but easy to calculate). According to a further embodiment, when determining g i,k or h i,k or h i,k,r Monomials with approximately equal exponents are combined, in particular by adding their coefficients and averaging their exponents. This reduces the computational effort required to determine the g i,k or h i,k or h i,k,r.According to a further embodiment, a starting string (z0) is specified, and the n most probable passwords that begin with the starting string (z0) are generated (i.e., the root node of the tree does not belong to the empty string, but to the starting string). This is particularly advantageous for generating special, highly probable starting strings for specific products of a company, which provide information about passwords suspected in these specific products, or for extending passwords from existing lists. According to a further embodiment, step a) further comprises the step of training a neural network using an existing password list over the predetermined alphabet to obtain the trained neural network, wherein the trained neural network is configured to obtain a probability value 202304058 31 for each character of the predetermined alphabet,which follows the predetermined initial character sequence or one of the specific character sequences. The advantage of this embodiment is that the neural network is trained using the existing password list, which in particular contains passwords chosen by humans. This takes particular advantage of the fact that an existing password list with passwords chosen by humans often has regularities in these passwords. This allows the factor of combinatorial explosion in the password length l to be reduced, thus achieving a password list with a comparatively high density in the space of "plausible passwords." The training of the neural network is explained in more detail as follows: The neural network is trained using the existing password list, using the predetermined alphabet of a size s, in particular to predict how a password continues. This preferably means,that the training samples for the neural network consist of pairs x, y, where x is a substring of a password from the existing password list and y is the letter following x in the password. Furthermore, the predetermined alphabet always contains a special character, such as a dollar sign, which indicates the end of a password. Therefore, x can also contain a complete password from the existing password list, in which case y = "$". Using the existing password list, a neural network is trained to predict a probability distribution v(z, -) for a predetermined initial character sequence z. The probability v(z, x) can be interpreted as the probabilitythat the character x 202304058 32 from a predetermined alphabet would be the next character following z in a password. According to a further embodiment, the existing password list comprises passwords in a specific language and / or passwords in a specific environment. The specific environment is, for example, a technical environment. According to a second aspect, a computer program product is proposed, comprising instructions which, when the program is executed by a computer, cause the computer to carry out the method according to the first aspect or an embodiment of the first aspect. A computer program product, such as a computer program means, can, for example, be in the form of a storage medium, such as a memory card, USB stick, CD-ROM, DVD,or in the form of a downloadable file from a server in a network. This can be done, for example, in a wireless communication network by transmitting a corresponding file with the computer program product or the computer program means. According to a third aspect, a communication system for identifying security vulnerabilities in an entity is proposed. The communication system comprises a testing device and the entity, wherein the testing device comprises: a receiving unit for receiving a trained neural network,a preservation unit for obtaining one or more probability distributions over a predetermined alphabet depending on a predetermined initial character string and / or depending on at least one specific character string from a plurality of specific character strings by applying the trained neural network to the predetermined 202304058 33 initial character string or one of the plurality of specific character strings, wherein a respective probability value is assigned to each character from the predetermined alphabet by the one or more obtained probability distributions, and a search unit for performing a depth-first search in a data structure, in particular in a tree structure,by searching the data structure depending on the one or more obtained probability distributions and the predetermined alphabet to generate a password list of a predetermined list size comprising a number of passwords, wherein the checking device further comprises a checking unit configured to identify security gaps in the entity using the number of passwords in the generated password list. The communication system can be implemented, in particular, within an automation system. The automation system can be a system from the process industry, the chemical industry, the pharmaceutical industry, the petrochemical industry, or a system from the food and beverage industry. This also includes any systems from the manufacturing and production industry and systems,in which, for example, cars or goods of any kind are produced. In addition, the automation system can also be designed as an energy generation system, such as a wind turbine, a solar system or a power plant and / or as an energy distribution system. The respective unit, for example the testing unit or the search unit, can be implemented in hardware and / or software. In a hardware implementation, the respective unit can be designed as a device or as part of a device, for example as a computer or as a microprocessor or as the control computer of a vehicle. In a software implementation, the respective unit can be designed as a computer program product, as a function, as a routine,be embodied as part of a program code or as an executable object. The technical effects and advantages described for the computer-implemented method according to the first aspect apply equally to the communication system according to the third aspect. Furthermore, the embodiments and features described with reference to the computer-implemented method according to the first aspect also apply equally to the communication system according to the third aspect. Further possible implementations of the invention also include combinations of features or embodiments described previously or below with regard to the embodiments that were not explicitly mentioned. In this case, the person skilled in the art will also add individual aspects as improvements or additions to the respective basic form of the invention. Regardless of the grammatical gender of a particular term, persons with male,female or other gender identity. Further advantageous embodiments and aspects of the invention are the subject of the dependent claims and the exemplary embodiments of the invention described below. The invention is explained in more detail below using preferred embodiments with reference to the accompanying figures. Fig. 1 shows a schematic flow diagram of a computer-implemented method for identifying security vulnerabilities in an entity; Fig. 2 shows a schematic block diagram of performing a depth-first search in a data structure; and Fig. 3 shows a schematic block diagram of a communication system for identifying security vulnerabilities in an entity. In the figures, identical or functionally equivalent elements have been provided with the same reference numerals.unless otherwise stated. Fig. 1 shows a schematic flowchart of a computer-implemented method for identifying security vulnerabilities in an entity 20 (see Fig. 3) in a communication system 100 (see Fig. 3) using a generated password list G_PL (see Fig. 2 or Fig. 3). The computer-implemented method comprises method steps S100 to S400. In step S100 of Fig. 1, a trained neural network 30a (see Fig. 3) is received. In addition, before receiving, step S100 further comprises the step of: training a neural network 30 (see Fig. 3) based on an existing password list PL (see Fig. 3) over a predetermined alphabet A (see Fig. 2) to obtain the trained neural network 30a, wherein the trained neural network 30a is configured to obtain a probability value for each character of the predetermined alphabet A,which follows a predetermined initial character sequence z (see Fig. 2) or one of the specific character sequences bab, babb, babbb (see Fig. 2). Furthermore, the existing password list PL comprises passwords in a specific language or passwords in a specific environment. The trained neural network, when applied, has, in particular, as an input parameter the predetermined initial character sequence z and, as an output parameter, a probability distribution v(z, -), for example, a first probability distribution W1 (see Fig. 2), over the predetermined alphabet A, by which each character, which is represented here as "c", from the predetermined alphabet A is assigned a probability v(z, c). Preferably, the probabilities v(z, c) add up to 1 across all characters "c". Furthermore, the probability v(z, c) corresponds to the probabilitythat a character "c" in a password beginning with the predetermined initial character string z would appear as the next letter or as the password end in the case of the special character. Furthermore, in step S200 of Fig. 1, one or more probability distributions W1, W2, W3 (see Fig. 2) over the predetermined alphabet A are obtained as a function of the predetermined initial character string z and / or as a function of at least one specific character string bab from several specific character strings bab, babb, babbb by applying the trained neural network 30a to the predetermined initial character string z or one of the several specific character strings bab, babb, babbb. Furthermore, the one or more obtained probability distributions W1, W2,W3 each character from the predetermined alphabet A is assigned a respective probability value. Furthermore, in step S300 of Fig. 1, a depth-first search is carried out in a data structure 50 (see Fig. 2), in particular in a tree structure, by searching the data structure 50 depending on the one or more obtained probability distributions W1, W2,W3 and the predetermined alphabet A to generate the password list G_PL of a predetermined list size comprising a number of passwords. Subsequently, in step S400 in Fig. 1, security gaps in the entity 20 are identified using the number of passwords in the generated password list G_PL. 202304058 37 Fig. 2 shows a schematic block diagram of performing a depth-first search in a data structure 50. In Fig. 2, the data structure 50 is designed as a tree structure. The data structure 50 in Fig. 2 has a root node ROOT. The root node ROOT represents the predetermined initial character string z, which, for example, has the string "ba", with the probability value one. As shown in Fig. 2, the root node ROOT is arranged at a first depth depth1 of the data structure 50. In Fig. 2, a first probability distribution W1 of the plurality of probability distributions W1, W2,W3 is obtained by applying the trained neural network 30a (see Fig. 3) to the predetermined initial character string z. Furthermore, the predetermined alphabet A includes a special character $. This obtained first probability distribution W1 assigns a probability value to the special character $. The following describes in detail the execution of the depth-first search in the data structure 50 by searching the data structure 50 according to step S300 (see Fig. 1) with reference to Fig. 2: Searching the data structure 50 in step S300 further includes the steps of: setting the predetermined list size, wherein the predetermined list size includes a number M1 of passwords to be generated, generating an empty password list G_PL, initializing a password counter with the value zero, setting the root node ROOT as the current node, creating a first character list L1 for the root node ROOT,which, at the time of creation, comprises exactly the characters of the predetermined alphabet A, and 202304058 38 Executing a password scheme for generating at least one password, wherein the execution of the password scheme comprises the following steps S301 and S310: In step S301, a first maximization result Max1 is determined by applying a first maximization function to a number N1 of product probability values for the characters remaining in the first character list L1. The number N1 corresponds to the number of characters remaining in the first character list L1, wherein the product probability value assigned to the special character $ corresponds to the probability value determined by the trained neural network 30a multiplied by one,and each product probability value assigned to a character other than the special character $ from the first character list L1 is obtained by multiplying the probability value obtained for that character from the first probability distribution W1 by a predetermined probability value p$. In step S301, the probability value from the number N1 of product probability values is determined as the first maximization result Max1,which has the highest value. Subsequently, in step S310, a first variable value VV1 is determined by applying a first backtracking decision function to a determined first password probability value P(pnext1). The first password probability value P(pnext1) is determined by multiplying the probability value for the root node by the first maximization result Max1. Furthermore, the first variable value VV1 is determined by applying the first backtracking decision function to the determined first password probability value P(pnext1), to a state of the root node ROOT, and to a number R1 of passwords still to be generated for the password list. 202304058 39 The respective steps performed in a respective node, such as the root node ROOT, as well as their results, are shown within circles in Fig. 2 to explain,which steps with which results are performed in which respective node during the search of the data structure 50. Depending on whether the first variable value VV1 (i.e., the return value) is true or false, different steps are subsequently performed within and / or from the root node ROOT. For clarity, these different cases are divided into different cases 1 to 3, each of which is associated with an "OR" operation: 1. Case in the root node ROOT: If the first variable value VV1 is true and if the product probability value assigned to the special character $ is determined as the first maximization result Max1, step S311 is performed. This can also be referred to as the 1st case in the root node ROOT. Here, the predetermined initial character string z, which is represented by the root node ROOT,as a password in the password list. Step S311 comprises the following substeps: appending the special character $ to the predetermined initial character string z to obtain the predetermined initial character string z as a first or further password PW1, removing the special character $ from the first character list L1, adding the first or further password PW1 to the generated password list G_PL, and incrementing the value of the password counter by one. 202304058 40 If the value of the password counter is equal to the number M1, the execution of the depth-first search according to step S300 is terminated and continued with step S400 (see Fig. 1). 2. Case in the root node ROOT: If the first variable value VV1 is true and if the first maximization result Max1 is a first determined probability value from the product probability values,which does not correspond to the product probability value assigned to the special character $, is determined, steps S312 to S318 are performed. This can also be referred to as the second case in the root node ROOT. Here, the character assigned to the first determined probability value is appended to the predetermined initial character string z in order to determine a first specific character string bab assigned to a first specific node 1. Subsequently, the search is continued in the first specific node 1 at a second depth depth2. Step S312 comprises: appending a first character d="b", which is assigned to the first determined probability value, to the predetermined initial character string z in order to determine a first specific character string bab assigned to a first specific node 1,which is determined by appending the first character d to the predetermined initial character string z. Steps S313 to S318 are then performed: removing the first character d from the first character list L1 (step S313), creating a second character list L2 for the first specific node 1, which at the time of creation includes exactly the characters of the predetermined alphabet A (step S314), determining the probability value for the first specific node 1 by multiplying the probability value of the root node ROOT by the first maximization result Max1 (step S315), determining the root node ROOT as a first return point for the first specific node 1 for performing the second backtracking BT2 (step S316), determining the first specific node 1 as the current node (step S317),and continuing the search of the data structure 50 in step S300 from the first specific node 1 (step S318). The first specific node 1 is located at the second depth depth2 of the data structure 50. Furthermore, a first edge 4 is shown in Fig. 2, which connects the root node ROOT and the first specific node 1. By appending the first character d="b", which is represented by the first edge 4, the first specific character string bab is obtained, which is represented by the first specific node 1. 3rd case in the root node ROOT: If the first variable value VV1 is false, a first backtracking BT1 is performed according to step S319. This can also be referred to as the 3rd case in the root node ROOT. Step S319 comprises: performing a first backtracking BT1,wherein, upon performing the first backtracking BT1, the execution S300 of the depth-first search is aborted. Subsequently, in the first specific node 1 in Fig. 2, the search of the data structure 50 is continued in step S300. This corresponds to the continuation of the second case of the root node ROOT, in which, as the first maximization result Max1, a first determined probability value from the product probability values, which does not correspond to the product probability value assigned to the special character $ at 202304058 42, was determined. This continuation comprises steps S330 and S331. In step S330, a second probability distribution W2 of the plurality of probability distributions W1, W2,W3 is obtained by applying the trained neural network 30a to the first specific character string bab. Furthermore, in step S330, a second maximization result Max2 is determined by applying a second maximization function to a number N2 of product probability values for the characters remaining in the second character list L2. The number N2 corresponds to the number of characters remaining in the second character list L2, wherein the product probability value assigned to the special character $ corresponds to the probability value determined in the second probability distribution W2 multiplied by one.and each product probability value assigned to a character other than the special character $ from the second character list L2 is obtained by multiplying the probability value obtained for that character from the second probability distribution W2 by the predetermined probability value p$. In step S330, the probability value from the number N2 of product probability values is determined as the second maximization result Max2,which has the highest value. Subsequently, in step S331, a second variable value VV2 is determined by applying a second backtracking decision function to a determined second password probability value P(pnext2). The second password probability value P(pnext2) is determined by multiplying the probability value of the first specific node 1 by the second maximization result Max2. Furthermore, the second variable value VV2 is determined by applying the second backtracking decision function to the determined second password probability value P(pnext2), to a respective state of all respective nodes from the root node ROOT to the first specific node 1, and to the number R1 of passwords still to be generated for the password list. Analogous to the root node ROOT, depending on whether the second variable value VV2 is true or false,Subsequently, different steps are performed within and / or starting from the first specific node 1. For clarity, these different cases are divided into different cases 1 to 3, each of which is associated with an "OR" operation: 1. Case in the first specific node 1: If the second variable value VV2 is true and if the product probability value associated with the special character $ is determined as the second maximization result Max2, step S332 is performed. This can also be referred to as the 1. Case in the first specific node 1. Here, the first specific character string bab, which is represented by the first specific node 1,as a password in the password list. Step S332 comprises the following substeps: appending the special character $ to the first specific character string bab to obtain the first specific character string bab as a first or further password PW2, removing the special character $ from the second character list L2, adding the first or further password PW2 to the generated password list G_PL, and incrementing the value of the password counter by one. 202304058 44 If the value of the password counter is equal to the number M1, the execution of the depth-first search according to step S300 is terminated and continued with step S400. 2. Case in the first specific node 1: If the second variable value VV2 is true and if a second specific probability value from the product probability values is obtained as the second maximization result Max2,which does not correspond to the product probability value assigned to the special character $, is determined, steps S333 to S339 are performed. This can also be referred to as the second case in the first specific node 1. Here, the character assigned to the second determined probability value is appended to the first specific character string bab in order to determine a second specific character string babb assigned to a second specific node 2. Subsequently, the search is continued in the second specific node 2 at a third depth depth3. Step S333 comprises: appending a second character e="b", which is assigned to the second determined probability value, to the first specific character string bab to determine a second specific character string babb assigned to a second specific node 2,which is determined by appending the second character e to the first specific character string bab. Steps S334 to S339 are then performed: removing the second character e from the second character list L2 (step S334), creating a third character list L3 for the second specific node 2, which at the time of creation includes exactly the characters of the predetermined alphabet A (step S335), determining the probability value for the second specific node 2 by multiplying the probability value for the first specific node 1 by the second maximization result Max2 (step S336), determining the first specific node 1 as a second return point for the second specific node 2 for performing a third backtracking BT3 (step S337), determining the second specific node 2 as the current node (step S338),and continuing the search of the data structure 50 in step S300 from the second specific node 2 (step S339). Furthermore, a second edge 5 is shown in Fig. 2, which connects the first specific node 1 and the second specific node 2. By appending the second character e="b", which is represented by the second edge 5, the second specific character string babb is obtained, which is represented by the second specific node 2. 3rd case in the first specific node 1: If the second variable value VV2 is false, a second backtracking BT2 is performed according to step S340. This can also be referred to as the 3rd case in the first specific node 1. Step S340 comprises: performing a second backtracking BT2, comprising: continuing the search of the data structure 50 in step S300 from the first return point,comprising: 202304058 46 Repeated execution of steps S301 - S318. Subsequently, steps S301 - S318 can be performed again in the root node, but with a reduced character list L1 without the first character d="b". This can then lead to a remaining character a, which represents an edge from the root node ROOT to a node 1a adjacent to the first specific node, having the highest probability and thus being obtained as the (renewed) first maximization result. Then, the search according to step S300 would be continued analogously in the node 1a adjacent to the first specific node with the then resulting character string "baa" (see Fig. 2). Subsequently, the search of the data structure 50 is continued in step S300 in the second specific node 1 in Fig. 2. This corresponds to the continuation of the second case of the first specific node 1,in which, as the second maximization result Max2, a second specific probability value from the product probability values, which does not correspond to the product probability value assigned to the special character $, was determined. This continuation comprises steps S350 and S351. In step S350, a third probability distribution W3 of the plurality of probability distributions W1, W2, W3 is obtained by applying the trained neural network 30a to the second specific character string babb. Furthermore, in step S350, a third maximization result Max3 is determined by applying a third maximization function to a number N3 of product probability values for the characters remaining in the third character list L3. 202304058 47 The number N3 corresponds to the number of characters remaining in the third character list L3,where the product probability value assigned to the special character $ corresponds to the probability value determined in the third probability distribution W3 multiplied by one, and each product probability value assigned to a character other than the special character $ from the third character list L3 is obtained by multiplying the probability value obtained for that character from the third probability distribution W3 by the predetermined probability value p$. In step S350, the probability value from the number N3 of product probability values is determined as the third maximization result Max3,which has the highest value. Subsequently, in step S351, a third variable value VV3 is determined by applying a third backtracking decision function to a determined third password probability value P(pnext3). The third password probability value P(pnext3) is determined by multiplying the probability value of the second specific node 2 by the third maximization result Max3. Analogous to the root node ROOT and the first specific node 1, depending on whether the third variable value VV3 is true or false, different steps are subsequently performed within and / or starting from the second specific node 2. These different cases are divided into different cases 1 to 3 for clarity.which are each connected by an "OR" operation: 1st case in the second specific node 2: 202304058 48 If the third variable value VV3 is true and if the product probability value associated with the special character $ is determined as the second maximization result Max3, step S352 is performed. This can also be referred to as the 1st case in the second specific node 2. Here, the second specific character string babb, which is represented by the second specific node 2, is included in the password list as a password. Step S352 comprises the following substeps: appending the special character $ to the second specific character string babb to obtain the second specific character string babb as a first or further password PW3, removing the special character $ from the third character list L3,and adding the first or further password PW3 to the generated password list G_PL and increasing the value of the password counter by one. If the value of the password counter is equal to the number M1, the execution of the depth-first search according to step S300 is terminated and continued with step S400. 2nd case in the second specific node 2: If the third variable value VV3 is true and if a third specific probability value from the product probability values, which does not correspond to the product probability value assigned to the special character $, is determined as the third maximization result Max3, steps S353 to S359 are performed. This can also be referred to as the 2nd case in the second specific node 2. Here, the character assigned to the third specific probability value is appended to the second specific character string babb to form a third specific character string babbb.which is assigned to a third specific node 3. 202304058 49. Subsequently, the search is continued in the third specific node 3 at a fourth depth depth4. Step S353 comprises: appending a third character f="b", which is assigned to the third determined probability value, to the second specific character string babb to determine a third specific character string babbb, which is assigned to a third specific node 3, which is determined by appending the third character f to the second specific character string babb. Subsequently, steps S354 to S359 are performed: removing the third character f from the third character list L3 (step S354), creating a fourth character list L4 for the third specific node 3, which at the time of creation comprises exactly the characters of the predetermined alphabet A (step S355),Determining the probability value for the third specific node 3 by multiplying the probability value for the second specific node 2 by the third maximization result Max3 (step S356), defining the second specific node 2 as a third return point for the third specific node 3 for performing a fourth backtracking (step S357), defining the third specific node 3 as the current node (step S358), and continuing the search of the data structure 50 in step S300 from the third specific node 3 (step S359). Furthermore, a third edge 6 is shown in Fig. 2, which connects the second specific node 2 and the third specific node 3. By appending the third character f="b", which is represented by the third edge 6, the third specific character string babbb is obtained.which is represented by the third specific node 3. 3rd case in the second specific node 2: If the third variable value VV3 is false, a third backtracking BT3 is performed according to step S360. This can also be referred to as the 3rd case in the second specific node 2. Step S360 comprises: performing the third backtracking BT3, comprising: continuing the search of the data structure 50 in step S300 from the second return point defined for the second specific node 2, comprising: repeatedly executing at least steps S330-S339. Subsequently, steps S330-S339 can be performed again in the first specific node 1, but with a reduced character list L2 without the second character e="b". This can then result in the remaining character a, which represents an edge from the first specific node 1 to a node 2a adjacent to the second specific node,has the highest probability and would thus be obtained as a (new) second maximization result. Then, according to step S300, the search would be continued analogously in the node 2a adjacent to the second specific node with the resulting character string "baba" (see Fig. 2). In the following, using example numbers and example strings as well as a Python implementation listed below, it is explained in more detail with reference to Fig. 2 how a variable value, here the third variable value VV3, is determined. It is then explained how, based on the third variable value VV3, a decision is made as to whether backtracking, here as an example the third backtracking BT3, should be performed. By way of example, the predetermined alphabet A has the characters "a", "b", and "$". Let z = "ba". For the example, it is assumed that the respective obtained probability distribution v(z, -),Independent of z, the result is always that v(z, "a") = 0.25, v(z, "b") = 0.4, and v(z, "$") = 0.35. Furthermore, the probability distribution F, i = y -1.2 + y- 0.92, for all i, which corresponds to the probabilities of 0.3 / 0.4 / 0.3 for "a" / "b" / "$". The predetermined list size is n = 6. Thus, the generated password list should contain six passwords. Thus, six passwords are searched for by searching the data structure 50. Fig. 2 shows the tree structure, among other things, at a time when the decision is made as to whether the search should be continued in the second specific node 2 by appending the third character f="b" to the current string, i.e., the second character sequence "babb", or whether a third backtracking BT3 should be performed in the predecessor node (first specific node 1). The appending of the special character $, which leads to the password "babb", has already been performed in the second specific node 2. In total, the three passwords "ba", "bab", and "babb" have already been generated at this time.This means that the number R1 of passwords still to be generated for the password list is: R1 = 6 (number of target passwords) - 3 (passwords already found) = 3. This means that 3 more passwords still need to be found. The output in the form of a Python implementation for the step considered is (corresponds to applying the third backtracking decision function): 202304058 52 (1) P(pnext3) for x = 'b': 0.0192 O(P(pnext3) = 0.0192): / / Determination of a decision probability value O(P(pnext3)) Iterating over previous nodes: i = 0 / / Depth 1 = root node ROOT (2) h1= y. -2.4 + 2 * y -2.12 + y -1.84 (3) math.log(P(pnext3) / (Pz[0] -1.36 (4) delta_t for x = 'a': 3 i = 1 / / depth 2 = first specific node 1 (5) h2= y -2.4 + 2 * y -2.12 + y -1.84 (6) math.log(P(pnext3) / (Pz[1] -0.45 (7) delta_t for x = 'a': 1 (8) T1 = 4, R1 = 3, returning False / / Return value false The algorithm first calculates the probability for the next password that would result from appending the third character f="b" followed by the special character $. This probability is, according to equation (1) above, P(pnext3) = P("ba" + "bb") * v("ba" + "bb", "b") * p$ (predetermined probability value) = 0.4 2 * 0.4 * 0.3 = 0.0192. Now we must check how many passwords with at least the same probability can be expected from the still unprocessed edges in the predecessor nodes (i.e., the edges to the remaining character a in the predecessor node (middle node = first specific node 1) and in the root node ROOT). For the root node, the polynomial h1 is calculated using equation (2) (see above): 202304058 53 h1= y -2.4 + 2 * y -2.12 + y -1.84 + y -1.2 + y -0.92 + y 0.0The polynomial h1 has the three summands y -2.4 + 2*y -2.12 + y -1.84 , y -1.2 + y -0.92 and y 0.0 Each of the three summands has different exponents, for example, "-2.4", "-1.2", or "0.0". The summands of the polynomial h1 are determined as follows to determine the polynomial h1 for the first depth depth1: Each exponent of a monomial of the polynomial h1 represents a probability in logarithmic notation. The first summand y 0.0 corresponds to the one password that results in the respective node by directly choosing the special character (with logarithmic probability log(1.0)=0.0). The second summand y -1.2 + y -0.92 results from i = 1 by using the probability distribution F1 for the second depth depth2, which in this case results in 1, thus the second summand y results -1.2 + y -0.92. The third term y -2.4 + 2 * y -2.12 + y -1.84 is obtained because i = 2 by multiplying the probability distribution F1 for the second depth with the probability distribution F2 for the third depth depth3. Thus, the third summand is equal to (y -1.2 + y -0.92 )*(y -1.2 + y -0.92 ), which corresponds to the binomial formula (a + b) 2 = a 2 + 2ab + b 2 This gives the third summand y -2.4 + 2 * y -2.12 + y -1.84The same applies analogously to the calculation of the polynomial h2 below. Taking into account the probabilities P("ba") = 1.0 (i.e., the probability of the root node ROOT), v("ba", "a") = 0.25, and p$ = 0.3, which would have to be multiplied by the (exponential) exponents of h1 for comparison with P(pnext3), it follows that all monomials in h1 must be counted (with the multiplicity of their coefficients) whose exponent is at least math.log(0.0192 / [1.0 * 0.25 * 0.3]) = -1.36 (see equation (3) above). There are three of these, namely y -2.4 , 2*y -2.12 and y -1.84 . This results in 202304058 54 in an edge representing the remaining character a leading away from the root node ROOT, there are still 3 possible passwords with a probability at least as high as P(pnext3) (see above, equation (4)). For the middle node (i.e., the first specific node 1), this results in (because of "F iindependent of i" to h1identical) polynomial h2using equation (5) (see above) h2= y -2.4 + 2 * y -2.12 + y -1.84 + y -1.2 + y -0.92 + y 0.0and as the minimum exponent for the monomials, the value log(0.0192 / [0.4 * 0.25 * 0.3]) = -0.45 (see above, equation (6)). For this, there is a matching monomial in h2 (see above, equation (7)). This results in the number T1 of possible passwords: 3 + 1 = 4. R1 = 3. Since T1 > R1, the computer-implemented method decides in step S300 for the third backtracking BT3, since it is more promising to search for further passwords in edges of the first specific node 1 or the root node ROOT, instead of appending the third character f="b" to the second specific node 2. Thus, the third variable value VV3 is false or has the return value "false" (see above, equation (8)). The third backtracking BT3 itself then goes back to the first specific node 1.Thus, applying the third backtracking decision function comprises determining one or more decision probability values O(P(pnext3)) as a function of at least one mathematical logarithm function (see above, equations (1) to (8), in particular equations (3) and (6)), wherein each of the one or more determined decision probability values (O(P(pnext3))) belongs to a character a remaining in a character list of a node above the second specific node 2, wherein the node corresponds to the root node ROOT 202304058 55 or the first specific node 1, wherein the character list corresponds to the first character list L1 or the second character list L2.As shown in equations (3) and (6), the respective mathematical logarithm function receives as input parameters at least the third password probability value P(pnext3), the probability value determined by the trained neural network 30a for the character a remaining in the character list of the node above the second specific node 2, the probability value of the node (see equation (3), Pz[0] or equation (6), Pz[1]) and the predetermined probability value p$.By applying a logarithm through the respective mathematical logarithm function to the quotient of the third password probability value P(pnext3) and the product of the probability value of the node, the probability value determined by the trained neural network 30a for the character a remaining in the character list of the node above the second specific node 2 and the predetermined probability value p$, one or more decision probability values O(P(pnext3)) are determined (see above, equations (3) and (6)).Here, each of the one or more determined decision probability values O(P(pnext3)) is compared with exponents of a determined polynomial (see above, equation (2) or (5)) for the node belonging to the character list in order to obtain a number T1 of possible passwords (see above, equation (4) or (7)) that are present in one or more nodes above the second specific node 2. The third variable value VV3 is then determined by comparing the obtained number T1 of possible passwords with the number R1 of passwords still to be generated for the password list (see above, equation (8)), whereby the 202304058 56 number R1 of passwords still to be generated for the password list is determined depending on the value of the password counter. Fig.3 shows a schematic block diagram of a communication system 100 for identifying security vulnerabilities in an entity 20, wherein the communication system 100 comprises a testing device 40 and the entity 20. The testing device 40 in FIG. 3 comprises a receiving unit 41, a preserving unit 42, a searching unit 43, and a testing unit 44. The receiving unit 41 in FIG. 3 is configured to receive a trained neural network 30a. Furthermore, the preserving unit 42 is configured to obtain one or more probability distributions W1, W2, W3 (see FIG. 2) over a predetermined alphabet A (see FIG. 2) depending on a predetermined initial character sequence z (see FIG. 2) and / or depending on at least one specific character sequence bab from several specific character sequences bab, babb, babbb (see FIG.2) by applying the trained neural network 30a to the predetermined initial character string z or one of the several specific character strings bab, babb, babbb (see Fig. 2). Using the one or more obtained probability distributions W1, W2, W3, a respective probability value is assigned to each character from the predetermined alphabet A. Furthermore, the search unit 43 is configured to perform a depth-first search in a data structure 50 (see Fig. 2), in particular in a tree structure, by searching the data structure 50 depending on the one or more obtained probability distributions W1, W2, W3 and the predetermined alphabet A to generate a password list G_PL (see also Fig. 2) of a predetermined list size comprising a number of passwords.202304058 57 The testing unit 44 is then configured to identify security gaps in the entity 20 using the number of passwords in the generated password list G_PL. Although the present invention has been described using exemplary embodiments, it is capable of being modified in many ways.
[0002] 202304058 58 List of reference symbols 1 first specific node 1a node adjacent to the first specific node 2 second specific node 2a node adjacent to the second specific node 3 third specific node 4 first edge 5 second edge 6 third edge 20 entity 30 neural network 30a trained neural network 40 testing device 41 receiving unit 42 preserving unit 43 searching unit 44 testing unit 50 data structure 100 communication system $ special character A predetermined alphabet a remaining character bab first specific character string babb second specific character string babbb third specific character string BT1 first backtracking BT2 second backtracking BT3 third backtracking d first character depth1 first depth depth2 second depth depth3 third depth depth4 fourth depth e second character 202304058 59 f third character G_PL generated Password list L1 first character list L2 second character list L3 third character list L4 fourthCharacter list Max1 first maximization result Max2 second maximization result Max3 third maximization result O(P(pnext3)) decision probability value p$ predetermined probability value P(pnext1) first password probability value P(pnext2) second password probability value P(pnext3) third password probability value PL existing password list PW1 first password PW2 second password PW3 third password R1 number of ROOT root nodes S100 – S400 process steps S301 process step S310 – S319 process steps S330 – S340 process steps S350 – S360 process steps T1 number of v(z, -) probability distribution VV1 first variable value VV2 second variable value VV3 third variable value W1 first probability distribution W2 second probability distribution W3 third probability distribution z predetermined initial character string 202304058 60 Appendix: Legend R1=n #Number of passwords still to be generated G_PL=[] #incremental toFilling password list V=[] #Stack for the v(z,-) of the nodes in the current search path C=[] #Stack for the characters of the nodes in the current search path that have already been examined Pz=[] #Stack for the Pz of the individual nodes Pseudocode def depth_first_search(z, i): #z: current starting string; i: current depth in the tree Pz.append(P(z)) v(z, -)=NN(z) V.append(v(z, -)) #V is the list in which the v(z, -) for nodes of the current path are located C. append([ ]) #C[i] contains the characters that have already been tried in the i-th node X=A while X<>Ø: # Have not all characters from A been tried in this node yet? if R1==0: #No more passwords to generate return if O(V, C, R1, Pp next)==False: #Backtracking decision function "O" decides for backtracking break C[i].append(x) if x=='$': #Password completed 202304058 61 G_PL.append(z) R1-=1 else: depth_first_search(z+x, i+1) # ”+” stands for appending the character x to z V.pop() C.pop() Pz.pop() depth_first_search(””,0)
[0003] 202304058 62 Quellenverzeichnis: [1] https: / / github.com / danielmiessler / SecLists / tree / master / Passwords / Common-Credentials [2] https: / / www.openwall.com / john / [3] https: / / hashcat.net / hashcat / [4] https: / / de.wikipedia.org / wiki / K%C3%BCnstliches_ neuronales_Netz [5] https: / / towardsdatascience.com / the-mostly-complete- chart-of-neural-networks-explained-3fb6f2367464 [6] https: / / de.wikipedia.org / wiki / Long_short- term_memory [7] https: / / en.wikipedia.org / wiki / Gated_recurrent_unit [8] Melicher, Ur, Segreti, Komanduri, Bauer, Christin, Cranor: Fast, Lean, and Accurate: Modeling Password Guessability Using Neural Networks, 25th USENIX Se- curity Symposium, 2016 (www.usenix.org / system / files / conference / usenixsecur ity16 / sec16_paper_melicher.pdf) [9] Hitaj, Gasti, Ateniese, Perez-Cruz: PassGAN: A Deep Learning Approach for Password Guessing, 2017 (https: / / arxiv.org / abs / 1709.00440)
Claims
202304058 63 Patent claims 1. Computer-implemented method for identifying security gaps in an entity (20) in a communication system (100) by means of a generated password list (G_PL), comprising the steps of: a) receiving (S100) a trained neural network (30a), b) obtaining (S200) one or more probability distributions (W1, W2, W3) over a predetermined alphabet (A) depending on a predetermined initial character string (z) and / or depending on at least one specific character string (bab) from several specific character strings (bab, babb, babbb) by applying the trained neural network (30a) to the predetermined initial character string (z) or one of the several specific character strings (bab, babb, babbb), wherein the one or more obtained probability distributions (W1, W2, W3) each character from the predetermined alphabet (A) is assigned a respective probability value,c) performing (S300) a depth-first search in a data structure (50), in particular in a tree structure, by searching the data structure (50) depending on the one or more obtained probability distributions (W1, W2, W3) and the predetermined alphabet (A) to generate the password list (G_PL) of a predetermined list size comprising a number of passwords, and d) identifying (S400) security gaps in the entity (20) using the number of passwords of the generated password list (G_PL).
2. The method according to claim 1, characterized in that the data structure (50) has at least one root node (ROOT), wherein the root node (ROOT) represents the predetermined initial character string (z) with the probability value one, wherein the predetermined alphabet (A) has a special character ($), wherein a first probability, 202304058 64 probability distribution (W1) of the plurality of probability distributions (W1, W2, W3) is obtained by applying the trained neural network (30a) to the predetermined initial character string (z), wherein the obtained first probability distribution (W1) assigns a probability value to the special character ($), wherein the root node (ROOT) is arranged at a first depth (depth1) of the data structure (50), wherein the searching of the data structure (50) in step c) (S300) comprises: setting the predetermined list size, wherein the predetermined list size comprises a number M1 of passwords to be generated, generating an empty password list (G_PL), initializing a password counter with the value zero, setting the root node (ROOT) as the current node, creating a first character list (L1) for the root node (ROOT), which at the time of creation, it contains exactly the characters of the predetermined alphabet (A),and executing a password scheme for generating at least one password, wherein the execution of the password scheme comprises the following steps: c100) determining (S301) a first maximization result (Max1) by applying a first maximization function to a number N1 of product probability values for the characters remaining in the first character list (L1), wherein the number N1 corresponds to the number of characters remaining in the first character list (L1), wherein the product probability value assigned to the special character ($) corresponds to the probability value determined by the trained neural network (30a) multiplied by one,and each product probability value assigned to a character other than the special character ($) from the first character list (L1) is obtained by multiplying the probability value obtained for this character from the first probability distribution (W1) by a predetermined probability value (p$), wherein the first maximization result (Max1) is that probability, 202304058 65 probability value is determined from the number N1 of product probability values, which has the highest value, c110) determining (S310) a first variable value (VV1) by applying a first backtracking decision function to a determined first password probability value (P(pnext1)), wherein the first password probability value (P(pnext1)) is determined at least as a function of the first maximization result (Max1), wherein if at least the first variable value (VV1) is true and c111) if the product probability value associated with the special character ($) is determined as the first maximization result (Max1), appending (S311) the special character ($) to the predetermined initial character string (z) to obtain the predetermined initial character string (z) as a first or a further password (PW1), removing (S311) the special character ($) from the first character list (L1),and adding (S311) the first or further password (PW1) to the generated password list (G_PL) and increasing the value of the password counter by one, wherein if the value of the password counter is equal to the number M1, terminating the execution (S300) of the depth-first search and continuing with step d) (S400), or if a first determined probability value from the product probability values, which does not correspond to the product probability value assigned to the special character ($), is determined as the first maximization result (Max1), c112) appending (S312) a first character (d), which is assigned to the first determined probability value, to the predetermined initial character string (z) to determine a first specific character string (bab), which is assigned to a first specific node (1), 202304058 66, which is determined by appending the first character (d) to the predetermined initial character string (z), c113) removing (S313) the first character (d) from the first character list (L1), c114) creating (S314) a second character list (L2) for the first specific node (1), which at the time of creation comprises exactly the characters of the predetermined alphabet (A), c115) determining (S315) the probability value for the first specific node (1) by multiplying the probability value of the root node (ROOT) by the first maximization result (Max1), c116) determining (S316) the root node (ROOT) as a first return point for the first specific node (1) for performing the second backtracking (BT2), c117) Setting (S317) the first specific node (1) as the current node, and c118) continuing (S318) the search of the data structure (50) in step c) (S300) from the first specific node (1),or c119) if the first variable value (VV1) is incorrect, performing (S319) a first backtracking (BT1), wherein the execution (S300) of the depth-first search is aborted during the execution (S319) of the first backtracking (BT1).
3. Method according to claim 2, characterized in that the first password probability value (P(pnext1)) is determined by multiplying the probability value for the root node by the first maximization result (Max1).
4. Method according to claim 2 or 3, characterized in that the first variable value (VV1) is determined by applying the first backtracking decision function to the determined first, 202304058 67 password probability value (P(pnext1)), a state of the root node (ROOT) and a number (R1) of passwords still to be generated for the password list.
5. The method according to any one of claims 2-4, characterized in that continuing the search of the data structure (50) in step c) (S300) from the first specific node (1) comprises: c200) Obtaining (S330) a second probability distribution (W2) of the plurality of probability distributions (W1, W2, W3) by applying the trained neural network (30a) to the first specific character string (bab), Determining (S330) a second maximization result (Max2) by applying a second maximization function to a number N2 of product probability values for the characters remaining in the second character list (L2), wherein the number N2 corresponds to the number of characters remaining in the second character list (L2),wherein the product probability value assigned to the special character ($) corresponds to the probability value determined in the second probability distribution (W2) multiplied by one, and each product probability value assigned to a character other than the special character ($) from the second character list (L2) is obtained by multiplying the probability value obtained for this character from the second probability distribution (W2) by the predetermined probability value (p$), wherein the probability value from the number N2 of product probability values which has the highest value is determined as the second maximization result (Max2), c210) Determining (S331) a second variable value (VV2) by applying a second backtracking decision function to a determined second password probability value (P(pnext2)),where the second password probability value (P(pnext2)) is at least in 202304058 68 dependence of the second maximization result (Max2) is determined, wherein if at least the second variable value (VV2) is true and c211) if the product probability value associated with the special character ($) is determined as the second maximization result (Max2), appending (S332) the special character ($) to the first specific character string (bab) to obtain the first specific character string (bab) as a first or a further password (PW2), removing (S332) the special character ($) from the second character list (L2), and adding (S332) the first or the further password (PW2) to the generated password list (G_PL) and increasing the value of the password counter by one, wherein if the value of the password counter is equal to the number M1, terminating the execution (S300) of the depth-first search and continuing with step d) (S400),or if, as the second maximization result (Max2), a second specific probability value is determined from the product probability values, which does not correspond to the product probability value assigned to the special character ($), c212) appending (S333) a second character (e) assigned to the second specific probability value to the first specific character string (bab) to determine a second specific character string (babb) assigned to a second specific node (2), which is determined by appending the second character (e) to the first specific character string (bab), c213) removing (S334) the second character (e) from the second character list (L2), c214) creating (S335) a third character list (L3) for the second specific node (2), which, 202304058 69 at the time of creation comprises exactly the characters of the predetermined alphabet (A), c215) setting (S336) the probability value for the second specific node (2) by multiplying the probability value for the first specific node (1) by the second maximization result (Max2), c216) setting (S337) the first specific node (1) as a second return point for the second specific node (2) for performing a third backtracking (BT3), c217) setting (S338) the second specific node (2) as the current node, and c218) continuing (S339) the searching of the data structure (50) in step c) (S300) from the second specific node (2), or c219) if the second variable value (VV2) is false, performing (S340) a second backtracking (BT2), comprising: continuing the search of the data structure (50) in step c) (S300) from the first return point,comprising: Repeatedly executing steps c100) - c118) (S301 - S318).
6. The method according to claim 5, characterized in that the second password probability value (P(pnext2)) is determined by multiplying the probability value of the first specific node (1) by the second maximization result (Max2).
7. The method according to claim 5 or 6, characterized in that the second variable value (VV2) is determined by applying the second backtracking decision function to the determined second password probability value (P(pnext2)), to one, 202304058 70 the respective state of all respective nodes from the root node (ROOT) to the first specific node (1) and the number (R1) of passwords still to be generated for the password list.
8. The method according to any one of claims 5-7, characterized in that continuing the search of the data structure (50) in step c) (S300) from the second specific node (2) comprises: c300) Obtaining (S350) a third probability distribution (W3) of the plurality of probability distributions (W1, W2, W3) by applying the trained neural network (30a) to the second specific character string (babb), Determining (S350) a third maximization result (Max3) by applying a third maximization function to a number N3 of product probability values for the characters remaining in the third character list (L3),wherein the number N3 corresponds to the number of characters remaining in the third character list (L3), wherein the product probability value assigned to the special character ($) corresponds to the probability value determined in the third probability distribution (W3) multiplied by one, and each product probability value assigned to a character other than the special character ($) from the third character list (L3) is obtained by multiplying the probability value obtained for this character from the third probability distribution (W3) by the predetermined probability value (p$), wherein the probability value from the number N3 of product probability values which has the highest value is determined as the third maximization result (Max3),c310) Determining (S351) a third variable value (VV3) by applying a third backtracking decision function to a determined third password probability value (P(pnext3)), wherein the third password probability value (P(pnext3)) is at least in ab-, 202304058 71 dependence of the third maximization result (Max3) is determined, wherein if at least the third variable value (VV3) is true and c311) if the product probability value associated with the special character ($) is determined as the third maximization result (Max3), appending (S352) the special character ($) to the second specific character string (babb) to obtain the second specific character string (babb) as a first or a further password (PW3), removing (S352) the special character ($) from the third character list (L3), and adding (S352) the first or the further password (PW3) to the generated password list (G_PL) and increasing the value of the password counter by one, wherein if the value of the password counter is equal to the number M1, terminating the execution (S300) of the depth- search and continue with step d) (S400),or if, as the third maximization result (Max3), a third specific probability value is determined from the product probability values, which does not correspond to the product probability value assigned to the special character ($), c312) appending (S353) a third character (f) assigned to the third specific probability value to the second specific character string (babb) to determine a third specific character string (babbb) assigned to a third specific node (3), which is determined by appending the third character (f) to the second specific character string (babb), c313) removing (S354) the third character (f) from the third character list (L3), c314) creating (S355) a fourth character list (L4) for the third specific node (3), which, 202304058 72 at the time of creation comprises exactly the characters of the predetermined alphabet (A), c315) setting (S356) the probability value for the third specific node (3) by multiplying the probability value for the second specific node (2) by the third maximization result (Max3), c316) setting (S357) the second specific node (2) as a third return point for the third specific node (3) for performing a fourth backtracking, c317) setting (S358) the third specific node (3) as the current node, and c318) continuing (S359) the searching of the data structure (50) in step c) (S300) from the third specific node (3), or c319) if the third variable value (VV3) is false, performing (S360) of the third backtracking (BT3),comprising: continuing the search of the data structure (50) in step c) (S300) from the second return point defined for the second specific node (2), comprising: repeatedly executing at least steps c200 - c218 (S330) - (S339).
9. The method according to claim 8, characterized in that the third password probability value (P(pnext3)) is determined by multiplying the probability value of the second specific node (2) by the third maximization result (Max3).
10. The method according to claim 8 or 9, characterized in that applying the third backtracking decision function further comprises determining one or more decision, 202304058 73 decision probability values (O(P(pnext3))) as a function of at least one mathematical logarithm function, wherein each of the one or more determined decision probability values (O(P(pnext3))) corresponds to a character (a) remaining in a character list of a node above the second specific node (2), wherein each of the one or more determined decision probability values (O(P(pnext3))) is compared with exponents of a determined polynomial for the node belonging to the character list in order to obtain a number (T1) of possible passwords which are present in one or more nodes above the second specific node (2), wherein the third variable value (VV3) is determined by comparing the obtained number (T1) of possible passwords with the number (R1) of remaining for the password list to be generated passwords are compared,wherein the number (R1) of passwords still to be generated for the password list is determined depending on the value of the password counter.
11. The method according to claim 10, characterized in that the mathematical logarithm function receives as input parameters at least the third password probability value (P(pnext3)), the probability value determined by the trained neural network (30a) for the character (a) remaining in the character list (L) of the node above the second specific node (2), the probability value of the node, and the predetermined probability value (p$), wherein the node corresponds to the root node (ROOT) or the first specific node (1), wherein the character list corresponds to the first character list (L1) or the second character list (L2).wherein by applying a logarithm by the mathematical logarithm function to the quotient of the third password probability value (P(pnext3)) and the product of the probability value of the node, the probability value determined by the trained neural network (30a) for the character list (L) of the node above the second specific, 202304058 74 node (2) remaining characters (a) and the predetermined probability value (p$) of the one or more decision probability values (O(P(pnext3))) are determined.
12. Method according to one of claims 1 - 11, characterized in that step a) (S100) before receiving further comprises the step of: training a neural network (30) using an existing password list (PL) over the predetermined alphabet (A) to obtain the trained neural network (30a), wherein the trained neural network (30a) is designed to obtain a probability value for each character of the predetermined alphabet (A) which follows the predetermined initial character sequence (z) or one of the specific character sequences (bab, babb, babbb).
13. The method according to claim 12, characterized in that the existing password list (PL) comprises passwords in a specific language and / or passwords in a specific environment. 14.Computer program product, comprising instructions which, when the program is executed by a computer, cause the computer to carry out the method according to one of claims 1 - 13.
15. Communication system (100) for identifying security gaps in an entity (20), the communication system (100) having a testing device (40) and the entity (20), the testing device (40) comprising: a receiving unit (41) for receiving a trained neural network (30a), a obtaining unit (42) for obtaining one or more probability distributions (W1, W2, W3) over a predetermined alphabet (A) as a function of a predetermined. 202304058 75 agreed initial character string (z) and / or depending on at least one specific character string (bab) from several specific character strings (bab, babb, babbb) by applying the trained neural network (30a) to the predetermined initial character string (z) or one of the several specific character strings (bab, babb, babbb), wherein by means of the one or more obtained probability distributions (W1, W2, W3) a respective probability value is assigned to each character from the predetermined alphabet (A), and a search unit (43) for performing a depth-first search in a data structure (50), in particular in a tree structure, by searching the data structure (50) depending on the one or more obtained probability distributions (W1, W2, W3) and the predetermined alphabet (A) to generate a password list (G_PL) of a predetermined list size having a number of passwords,wherein the checking device (40) further comprises a checking unit (44) which is configured to identify security gaps in the entity (20) by means of the number of passwords of the generated password list (G_PL).