THE PASSWORD AUTHENTICATION SECURITY- Draft
Total Page:16
File Type:pdf, Size:1020Kb
THE PASSWORD AUTHENTICATION SECURITY- draft Peter Szabó and Radko ulej and Viera Mislivcová Technical University of Ko²ice, Faculty of Aeronautics, Department of Aerodynamics and Simulations, Rampová 7, 040 21 Ko²ice, Slovak Republic Abstract The simplest way of authentication into information systems is the one of made by name and password. Name is a static aspect, attention is to be paid to password. Reducing safety risk by revealing the password consists in using a sucient number of and safe combination of characters in the password. One of the ways of verifying the suciently safe password is by developing a model for the proces of simulation, through which one can nd out the time maximum time required for the computer to decode the password of a given type and length applying the method of brute force attack. Keywords: information security, authentication, password, brute force, variations with repetitions. 1. Introduction Modern transport companies information systems use in all business processes. In air transport, an example of such a system are computer reservations systems, see [6]. Here it is necessary to authenticate users. Authentication in information systems with a password is a basic way of proving users identity in the system. Brute force is the type of attack whereby the attacker tries to break the password by systematically checking all possible keys. The possible keys can be tested locally or remotely. This process involves systematically checking all possible keys until the correct key is found. In the worst case, this would involve traversing the entire search space. Dierent combinations of passwords can be checked within a very short time. In case of weak passwords, it is likely that the password is found. Time breaking the password in this way depends on the strength of a password (search space, key length) and the computer speed, what we can express as a number of CPU operations per second. This work describes a procedure to estimate the maximum time needed to nd (to break) the password of given complexity. 2. Pouºité mnoºiny znakov a symbolov V práci budeme pouºíva´ kódovací systém znakov anglickej abecedy, £íslic a ²peciálnych znakov ASCII, vi¤. : [3] Pouºité ozna£enia mnoºín : N = f0; ··· ; 9g; - £íslice (10) : 0 1 2 3 4 5 6 7 8 9 Z = fa; ··· ; zg; - malé písmená (26) : a b c d e f g h i j k l m n o p q r s t u v w x y z Z = fA; ··· ;Zg; - ve©ké písmená (26) : A B C D E F G H I J K L M N O P Q R S T U V W X Y Z S = f!; ··· ; =g; - ²peciálne znaky (32) : ! @ # $ % ^ & * ( ) _ + { } : " | < > ? / * - + , . ; ' \ [ ] = A = Z[ Z; - písmená AN = N [Z[ Z; - alfanumerické znaky V=AN [ S; - v²etky znaky Poznámka : Existujú aj iné kódovania znakov a £íslic. Uvedieme tu príklad kódovania £íslic : Preprint submitted to MOSATT 2011, Modern Safety Technologies in Transportation, 20-22 Sep. 2011, Kosice July 5, 2011 Kódovanie £ísel : Internetový zdroj [7] 3. Výpo£ty, pomocné premenné a funkcie Pri algoritmoch typu brute force potrebujeme vypo£íta´ po£et v²etkých moºných hesiel. Na takéto výpo£ty slúºia vedomosti z kombinatoriky. V tejto kapitole a v ¤al²om predpokladáme, ºe £itate© pozná základné pojmy kombinatoriky ako : faktoriál, kombina£né £íslo, binomiálny koecient, kombinácie a varia- cie s opakovaním, vi¤. [4]. V ¤al²om popí²eme vstupno-výstupné premenné a pomocné funkcie ktoré pouºívame pri návrhu algorit- mov. Pomocné premenné a funkcie : pz - po£et znakov hesla Pomocná funkcia pm(X) vráti nám hodnotu po£et znakov mnoºiny X. Napr. pm(AN) = 62. Ke¤ máme danú mnoºinu zankov X a po£et znakov v hesle pz tak funkcia pa(X; pz) vypo£íta po£et v²etkých moºných hesiel pod©a vzorca pm(X) pm(X)! pa(X; pz) = = pz (pm(X) − pz)!pz! To je tzn. binomiálny koecient. Príklad 1 : nech pz = 4;X = N tak 10 10! pa( ; pz) = = = 210 N 4 6!4! To je po£et hesiel, ktoré obsahujú 4 rôzne £íslice (4510). Znaky v hesle môºu sa opakova´ (4483) preto na výpo£et v²etkých moºností pouºívame vzorec pre kombinácie s opakovaním. pm(X) + pz − 1 (pm(X) + pz − 1)! pa∗(X; pz) = = (1) pz (pm(X) − 1)!pz! A záleºí aj na poradí znakov v hesle (1175 6= 7115) preto po£et v²etkých moºností je tzn. variácia s opakovaním : pa+(X; pz) = pm(X)pz (2) Preto v na²om Príklade 1 po£et v²etkých moºných hesiel, ktoré obsahujú 4 £íslice (od 0000 po 9999) je : + 4 pa (N; pz) = 10 = 10000 Na zistenie okamºitej rýchlosti po£íta£a budeme pouºíva´ premennú Or. Táto premenná vyjadruje po£et operácií, ktoré po£íta£ vie vykona´ za 1000 msec. Je to len odhad, táto hodnota závisí od frekvencie procesora, pouºitého opera£ného systému a od procesov, ktoré v danom momente beºia na lokálnom po£íta£i. V práci neuvaºujeme sie´ovú komunikáciu. Existujú rôzne systémy na meranie, odhad výkonu po£íta£ov. vi¤. [9] V na²om prípade £as c v sekundách na zistenie hesla pomocou metódy brute force na danom po£íta£i závisí od premenných : X, pz, Or a vieme to vyjadri´ ako Ppz pa+(X; i) c(X; pz; Or) = i=1 (3) Or Pri tomto odhade predpokladáme, ºe na vykonanie testu správnosti hesla nám sta£í jedno porovnanie (jedná operácia procesora). 2 4. Algoritmus na zistenie zloºitosti hesla Na popis algoritmov [1] je pouºitý jazyk Pidgin Pascal, je to pseudokód, ktorý obsahuje popis príkazov v prírodzenom jazyku a príkazy jazyka Pascal. (For description of algorithms is used the language Pidgin Pascal, which is a pseudocode that is a mixture of a programming language Pascal with natural language descriptions, see) vi¤ .[8]. Pouºitie tohto jazyka ukáºeme na algoritme randompassword, ktorý slúºi na generovanie náhodného hesla. Algorithm 1 Náhodné heslo - randompassword(X; pz; pass); INPUT: X - mnoºina znakov, pz - po£et znakov OUTPUT: P ass - náhodné heslo d¨ºky pz so znakmi z mnoºiny X begin Pass:=; for i := 1 to pz do P ass := P ass + Rand(X); {Rand - je generátor náhodných znakov z mnoºiny X } end for end. Algoritmus brute force password cracker vi¤. [5] pracuje tak, ºe systematicky za radom vygeneruje heslá a skú²a ich správnos´. Pre výpo£et zloºitosti hesla a odhad £asu na zistenie hesla pomocou algoritmu brute force password cracker potrebujeme otestova´ aj rýchlos´ po£íta£a. Teraz tu uvedieme algoritmus - pcspeed na zistenie okamºitej rýchlosti po£íta£a. Algorithm 2 Rýchlos´ po£íta£a - pcspeed(Or); INPUT: t1 - za£iatok merania OUTPUT: Or - rýchlos´ po£íta£a begin Or := 0; t1 := Now; t2 := t1; while t2 − t1 < 1000 do Or := Or + 1; t1 := Now; {Now - je funkcia ktorá vráti nám aktuálny £as s rozlí²ením na milisekundy } end while end. Algoritmus passwordcomplexity je algoritmus na výpo£et zloºitosti hesla. Algoritmus vypo£íta £as c v sekundách na zistenie hesla pomocou metódy brute force pod©a vzorca (3). Túto hodnotu je moºné potom previes´ na minúty, hodiny, dni a roky. Táto hodnota vyjadruje odhad £asu v sekundách potrebného pre algoritmus brute force password cracker na zistenie ná²ho hesla s po£tom znakov pz z mnoºiny X na po£íta£i ktorý pracuje s rýchlos´ou Or: Na základe tejto hodnoty vieme posúdi´ bezpe£nos´ daného hesla v danom systéme. Algorithm 3 Zloºitos´ hesla - passwordcomplexity(X; pz; Or; c); INPUT: X - mnoºina znakov, pz - po£et znakov, Or - rýchlos´ po£íta£a OUTPUT: c -£as v sekundách na zistenie hesla pomocou metódy brute force begin P oc := 0; pcspeed(Or); for i := 1 to pz do P oc := P oc + pa+(X; i); end for P oc ; c := Or end. 3 Záver V práci popísaná metóda umoº¬uje pouºívate©om dopravných informa£ných systémov s web rozhraním ako napr. distribu£né systémy, rezerva£né systémy (vi¤. [6]) a tarifné systémy zisti´ zloºitos´ ich hesla pre vstup do systému pod©a £asu potrebného na zlomenie tohto hesla. Práca obsahuje jeden algoritmus, ktorý priradí k danému heslu teoretický £as potrebný na zistenie hesla na danom po£íta£i pomocou metódy brute force (preberanie v²etkých moºností). Na základe tejto hodnoty vieme posúdi´ bezpe£nos´ daného hesla v danom informa£nom systéme. Tento ná£rt príspevku je napísaný v systéme LaT eX (LYX: http://www.lyx.org/Download). Na prácu s referenciami bol pouºitý manager referencií JabRef : http://jabref.sourceforge.net/. Pri písaní práce sme pouºívali ²ablónu vydavate©stva Elsevier(Article) doplnenú s balíkom Algorithm, vi¤. [2]. MS Word nemá ²tandardizované makro na písanie algoritmov. References [1] Algorithm. In Wikipedia : the free encyclopedia [online]. St. Petersburg (Florida) : Wikipedia Founda- tion, [cit. 2011-06-27], 2011. URL http://en.wikipedia.org/wiki/Algorithm.3 [2] Article of the future. In Elsevier :[online]. Elsevier:Project article of the future [cit. 2011-06-27], 2011. URL http://www.articleofthefuture.com/mathematics_computer_science.4 [3] ASCII. In Wikipedia : the free encyclopedia [online]. St. Petersburg (Florida) : Wikipedia Foundation, [cit. 2011-06-27], 2011. URL http://en.wikipedia.org/wiki/ASCII.1 [4] Binomial Coefficient. In Wolfram Research [online]. Mathematics resource [cit. 2011-06-27], 2011. URL http://mathworld.wolfram.com/BinomialCoefficient.html.2 [5] Brute force password cracker. In www.oxid.it [online]. [cit. 2011-06-27], 2011. URL http://www.oxid. it/ca_um/topics/brute-force_password_cracker.htm.3 [6] Computer reservations system. In Wikipedia : the free encyclopedia [online]. St. Petersburg (Florida) : Wikipedia Foundation, [cit. 2011-06-27], 2011. URL http://en.wikipedia.org/wiki/Computer_ reservations_system.1,4 [7] Numerical digit. In Wikipedia : the free encyclopedia [online]. St. Petersburg (Florida) : Wikipedia Foundation, [cit. 2011-06-27], 2011.