💻 Қауіпсіздікте challenge-response протоколы – сұрақ-жауап тексеруі. Құпия сөзді ұрлаудан қорғау үшін идентификаторлармен бірнеше құпия сөздер қолданылады.🔑
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Аутентификация протоколының түрі
Type of authentication protocol
Компьютерлік қауіпсіздікте, шақыру-жауап аутентификациясы – бір тарап сұрақ (“шақыру”) жолдап, екінші тарап аутентификация үшін дұрыс жауап (“жауап”) беруі тиіс протоколдар жиынтығы. Шақыру-жауап протоколының ең қарапайым мысалы – парольді аутентификациялау, онда шақыру парольді сұрау, ал дұрыс жауап – дұрыс пароль болып табылады. Парольді аутентификациялауды тыңдай алатын қарсылас, ұрланған парольді қайта пайдаланып өзін аутентификациялай алады. Бір шешім – әрқайсысына идентификатор тағайындалған бірнеше пароль беру. Тексеруші идентификаторды ұсынады, ал растаушы осы идентификаторға дұрыс парольмен жауап беруі керек. Егер парольдер тәуелсіз түрде таңдалса, бір қарсылас ұстап алған шақыру-жауап хабарламасының жұбы басқа уақытта басқа шақыруға көмектеспейді. Мысалы, басқа байланыс қауіпсіздігі әдістері қолжетімді болмаған жағдайда, АҚШ әскері кейбір байланыстарды аутентификациялау және шифрлау үшін AKAC 1553 TRIAD сандық шифрын қолданады. TRIAD үш әріптен тұратын шақыру кодтарының тізімін қамтиды, оларды тексеруші кездейсоқ түрде таңдауы керек, сондай-ақ оларға кездейсоқ үш әріптен тұратын жауаптарды қамтиды. Қосымша қауіпсіздік үшін кодтардың әрбір жиынтығы белгілі бір уақыт аралығында ғана жарамды болады, әдетте 24 сағат. Тағы бір қызықты шақыру-жауап техникасы былай жұмыс істейді. Боб қандай да бір ресурстың кіру құқығын басқарады делік. Алиса кіруді іздеп келеді. Боб шақыру жолдайды, мысалы, “52w72y”. Алиса Бобтың жолдаған шақыруына “сәйкес” келетін таңбалар тізбегімен жауап беруі керек. “Сәйкестік” Боб пен Алиса келіскен алгоритммен анықталады. (Дұрыс жауап “63x83z” сияқты қарапайым болуы мүмкін, алгоритм Цезарь шифрын қолданып, шақырудың әрбір таңбасын өзгертеді. Нақты әлемде алгоритм әлдеқайда күрделі болар еді.) Боб әр жолы басқаша шақыру жолдайды, сондықтан бұрынғы дұрыс жауапты білу (ол Алиса мен Боб арасында қолданылатын байланыс құралдарымен “жасырын” болмаса да) ешқандай пайда бермейді.
In computer security, challenge response authentication is a family of protocols in which one party presents a question ("challenge") and another party must provide a valid answer ("response") to be authenticated. The simplest example of a challenge response protocol is password authentication, where the challenge is asking for the password and the valid response is the correct password. An adversary who can eavesdrop on a password authentication can then authenticate itself by reusing the intercepted password. One solution is to issue multiple passwords, each of them marked with an identifier. The verifier can then present an identifier, and the prover must respond with the correct password for that identifier. Assuming that the passwords are chosen independently, an adversary who intercepts one challenge response message pair has no clues to help with a different challenge at a different time. For example, when other communications security methods are unavailable, the U. S. military uses the AKAC 1553 TRIAD numeral cipher to authenticate and encrypt some communications. TRIAD includes a list of three letter challenge codes, which the verifier is supposed to choose randomly from, and random three letter responses to them. For added security, each set of codes is only valid for a particular time period which is ordinarily 24 hours. A more interesting challenge response technique works as follows. Say Bob is controlling access to some resource. Alice comes along seeking entry. Bob issues a challenge, perhaps "52w72y". Alice must respond with the one string of characters which "fits" the challenge Bob issued. The "fit" is determined by an algorithm agreed upon by Bob and Alice. (The correct response might be as simple as "63x83z", with the algorithm changing each character of the challenge using a Caesar cipher. In the real world, the algorithm would be much more complex.) Bob issues a different challenge each time, and thus knowing a previous correct response (even if it is not "hidden" by the means of communication used between Alice and Bob) is of no use.
Басқа криптографиялық емес протоколдар
Жауап беру протоколдары құпия мәнді білуден басқа да мәселелерді растау үшін де қолданылады. Мысалы, CAPTCHA – бұл Тьюринг тестісінің бір түрі, веб-сайтты немесе мобильді қосымшаны қараушының нағыз адам екенін анықтауға арналған. Алғашқы CAPTCHA-ларда қараушыға жіберілген тапсырма бұрмаланған мәтін суреті болды, ал қараушы сол мәтінді теріп жауап берді. Бұл бұрмалау автоматты оптикалық таңбаларды тануды (OCR) қиындату және компьютер бағдарламасының адам ретінде қабылдануына бөгет жасау үшін жасалған.
Challenge response protocols are also used to assert things other than knowledge of a secret value. CAPTCHAs, for example, are a variant on the Turing test, meant to determine whether a viewer of a Web or mobile application is a real person. In early CAPTCHAs, the challenge sent to the viewer was a distorted image of some text, and the viewer responded by typing in that text. The distortion was designed to make automated optical character recognition (OCR) difficult and prevent a computer program from passing as a human.
Криптографиялық техникалар
Шифрлауға негізделмеген аутентификация, пайдаланушы парольді сұраған жүйенің өзіне қатысты қол жеткізуге тырысып жатқан жүйе екеніне сенімді бола алатын Интернетке дейінгі кезеңде жеткілікті болды, сондай-ақ ешкімнің пароль енгізілуін бақылап, байланыс арнасын тыңдау мүмкіндігі де төмен болды. Қауіпсіз канал мәселесін шешу үшін күрделірек тәсіл қажет. Көптеген криптографиялық шешімдер екі жақты аутентификацияны қамтиды, онда пайдаланушы да, жүйе де ортақ құпияны (парольді) білетінін бір-біріне сендіруі керек, ал бұл құпия ешқашан байланыс арнасы арқылы ашық түрде жіберілмейді, онда тыңдаушылар болуы мүмкін. Мұның бір жолы – парольді шифрлау кілті ретінде пайдаланып, кездейсоқ түрде жасалған ақпаратты сынақ ретінде жіберу болып табылады, ал екінші жақ жауап ретінде бастапқыда ұсынылған ақпараттың алдын ала белгіленген функциясы болып табылатын ұқсас шифрланған мәнді қайтарады, осылайша сынақты шифрлай алғанын дәлелдейді. Мысалы, Kerberos жүйесінде сынақ – шифрланған N бүтін саны, ал жауап – шифрланған N+1 бүтін саны, бұл екінші жақтың N бүтін санын шифрлай алатынын көрсетеді. Хэш функциясы пароль мен кездейсоқ сынақ мәніне қолданылып, жауап мәнін жасауға болады. Тағы бір нұсқасы модельдің кірісіне байланысты кездейсоқ сынақтарды ұсыну үшін ықтималдық модельді пайдаланады. Мұндай шифрланған немесе хэштелген алмасулар парольді тыңдаушыға тікелей ашпайды. Дегенмен, олар тыңдаушыға сөздік шабуыл немесе күш қолдану арқылы парольді анықтауға жеткілікті ақпарат бере алады. Әр алмасуда кездейсоқ түрде жасалған ақпаратты пайдалану (жауап сынақтан өзгеше болған жағдайда) қайталау шабуылдарына қарсы қорғаныс шарасы болып табылады, онда қаскөй аралық жүйе алмастырылған деректерді жазбаға алып, кейінірек оларды қайта жіберіп, бір жақты аутентификация жасалғанын қателеуге тырысады. Аутентификация протоколдары әдетте әрбір сынақ-жауап тізбегінің бірегей болуын қамтамасыз ету үшін сынақ ретінде криптографиялық нонс қолданады. Бұл тыңдау және одан кейін қайталау шабуылдарынан қорғайды. Шынайы нонсты енгізу мүмкін болмаса, күшті криптографиялық қауіпсіз псевдо-кездейсоқ сандар генераторы мен криптографиялық хэш функциясы бірнеше рет қайталанбас қиындықтарды жасай алады. Кейде уақытқа негізделген нонстарды қолданбау маңызды, өйткені олар әртүрлі уақыт белдеулеріндегі серверлерді және дұрыс емес сағаттары бар серверлерді әлсіретуі мүмкін. Егер қосымша кешіктірілген хабарлама шабуылдарына ұшыраса, уақытқа негізделген нонстар мен синхронды сағаттарды қолдану маңызды болуы мүмкін. Бұл шабуыл кезінде шабуылшы жіберілген хабарды көшіріп, оны баратын жерге жетуіне кедерілгі келтіреді, содан кейін оны өз қалауынша кешіктіріп қайта жібере алады. Бұл сымсыз арналарда оңай орындалады. Уақытқа негізделген нонс шабуылдаушының хабарламаны қайта жіберуіне шектеу қою үшін пайдаланылуы мүмкін, бірақ мерзімі біткен уақытпен шектеледі, мысалы, бір секундтан кем, бұл қосымшаға әсер етпейді және шабуылды жеңілдетеді. Өзара аутентификация екі бағытта жауап беру қол алысу арқылы жүзеге асырылады; сервер клиент құпияны білетінін қамтамасыз етеді, ал клиент сервердің құпияны білетінін қамтамасыз етеді, бұл нақты серверді жалған серверден қорғайды. Жауап беру аутентификациясы сеанс кілттерін шифрлау үшін алмасу мәселесін шешуге көмектеседі. Кілтті шығару функциясын пайдалана отырып, сынақ мәні мен құпияны сеанс үшін болжауға болмайтын шифрлау кілтін жасау үшін біріктіруге болады. Бұл, әсіресе, ортадағы адам шабуылына қарсы тиімді, өйткені шабуылшы құпияны білмей, сынақтан сеанс кілтін шығара алмайды, сондықтан дерек ағынын шифрлай алмайды.
Non cryptographic authentication was generally adequate in the days before the Internet, when the user could be sure that the system asking for the password was really the system they were trying to access, and that nobody was likely to be eavesdropping on the communication channel to observe the password being entered. To address the insecure channel problem, a more sophisticated approach is necessary. Many cryptographic solutions involve two way authentication, where both the user and the system must each convince the other that they know the shared secret (the password), without this secret ever being transmitted in the clear over the communication channel, where eavesdroppers might be lurking. One way this is done involves using the password as the encryption key to transmit some randomly generated information as the challenge, whereupon the other end must return as its response a similarly encrypted value which is some predetermined function of the originally offered information, thus proving that it was able to decrypt the challenge. For instance, in Kerberos, the challenge is an encrypted integer N, while the response is the encrypted integer N + 1, proving that the other end was able to decrypt the integer N. A hash function can also be applied to a password and a random challenge value to create a response value. Another variation uses a probabilistic model to provide randomized challenges conditioned on model input. Such encrypted or hashed exchanges do not directly reveal the password to an eavesdropper. However, they may supply enough information to allow an eavesdropper to deduce what the password is, using a dictionary attack or brute force attack. The use of information which is randomly generated on each exchange (and where the response is different from the challenge) guards against the possibility of a replay attack, where a malicious intermediary simply records the exchanged data and retransmits it at a later time to fool one end into thinking it has authenticated a new connection attempt from the other. Authentication protocols usually employ a cryptographic nonce as the challenge to ensure that every challenge response sequence is unique. This protects against Eavesdropping with a subsequent replay attack. If it is impractical to implement a true nonce, a strong cryptographically secure pseudorandom number generator and cryptographic hash function can generate challenges that are highly unlikely to occur more than once. It is sometimes important not to use time based nonces, as these can weaken servers in different time zones and servers with inaccurate clocks. It can also be important to use time based nonces and synchronized clocks if the application is vulnerable to a delayed message attack. This attack occurs where an attacker copies a transmission whilst blocking it from reaching the destination, allowing them to replay the captured transmission after a delay of their choosing. This is easily accomplished on wireless channels. The time based nonce can be used to limit the attacker to resending the message but restricted by an expiry time of perhaps less than one second, likely having no effect upon the application and so mitigating the attack. Mutual authentication is performed using a challenge response handshake in both directions; the server ensures that the client knows the secret, and the client also ensures that the server knows the secret, which protects against a rogue server impersonating the real server. Challenge response authentication can help solve the problem of exchanging session keys for encryption. Using a key derivation function, the challenge value and the secret may be combined to generate an unpredictable encryption key for the session. This is particularly effective against a man in the middle attack, because the attacker will not be able to derive the session key from the challenge without knowing the secret, and therefore will not be able to decrypt the data stream.
Парольді сақтау
Парольдерді сақтаудан аулақ болу үшін, кейбір операциялық жүйелер (мысалы, Unix сияқты) парольдің өзін сақтаудың орнына, парольдің хэшін сақтайды. Растау кезінде, жүйеге енгізілген парольдің хэші, парольдер базасында сақталған хэшпен сәйкес келе ме екенін тексеру жеткілікті. Бұл шабуылшыға парольдерді алуды қиындатады, себебі парольдің өзі сақталмайды және белгілі бір хэшке сәйкес келетін парольді анықтау өте қиын. Дегенмен, бұл көптеген (бірақ барлығы емес) сұрақ-жауап алгоритмдері үшін мәселе тудырады, олар клиент пен сервердің екеуінің де ортақ құпияға ие болуын қажет етеді. Парольдің өзі сақталмағандықтан, сұрақ-жауап алгоритмі көбінесе парольдің орнына оның хэшін құпия ретінде пайдалануға мәжбүр болады. Бұл жағдайда, шабуылшы парольдің өзінің орнына нақты хэшті пайдалана алады, бұл сақталған хэштерді нақты парольдердей сезімтал етеді. SCRAM – бұл мәселенің алдын алатын сұрақ-жауап алгоритмі.
To avoid storage of passwords, some operating systems (e. g. Unix type) store a hash of the password rather than storing the password itself. During authentication, the system need only verify that the hash of the password entered matches the hash stored in the password database. This makes it more difficult for an intruder to get the passwords, since the password itself is not stored, and it is very difficult to determine a password that matches a given hash. However, this presents a problem for many (but not all) challenge response algorithms, which require both the client and the server to have a shared secret. Since the password itself is not stored, a challenge response algorithm will usually have to use the hash of the password as the secret instead of the password itself. In this case, an intruder can use the actual hash, rather than the password, which makes the stored hashes just as sensitive as the actual passwords. SCRAM is a challenge response algorithm that avoids this problem.