Кіріспе

Аутентификация протоколының түрі

Компьютерлік қауіпсіздікте, шақыру-жауап аутентификациясы – бір тарап сұрақ (“шақыру”) жолдап, екінші тарап аутентификация үшін дұрыс жауап (“жауап”) беруі тиіс протоколдар жиынтығы. Шақыру-жауап протоколының ең қарапайым мысалы – парольді аутентификациялау, онда шақыру парольді сұрау, ал дұрыс жауап – дұрыс пароль болып табылады. Парольді аутентификациялауды тыңдай алатын қарсылас, ұрланған парольді қайта пайдаланып өзін аутентификациялай алады. Бір шешім – әрқайсысына идентификатор тағайындалған бірнеше пароль беру. Тексеруші идентификаторды ұсынады, ал растаушы осы идентификаторға дұрыс парольмен жауап беруі керек. Егер парольдер тәуелсіз түрде таңдалса, бір қарсылас ұстап алған шақыру-жауап хабарламасының жұбы басқа уақытта басқа шақыруға көмектеспейді. Мысалы, басқа байланыс қауіпсіздігі әдістері қолжетімді болмаған жағдайда, АҚШ әскері кейбір байланыстарды аутентификациялау және шифрлау үшін AKAC 1553 TRIAD сандық шифрын қолданады. TRIAD үш әріптен тұратын шақыру кодтарының тізімін қамтиды, оларды тексеруші кездейсоқ түрде таңдауы керек, сондай-ақ оларға кездейсоқ үш әріптен тұратын жауаптарды қамтиды. Қосымша қауіпсіздік үшін кодтардың әрбір жиынтығы белгілі бір уақыт аралығында ғана жарамды болады, әдетте 24 сағат. Тағы бір қызықты шақыру-жауап техникасы былай жұмыс істейді. Боб қандай да бір ресурстың кіру құқығын басқарады делік. Алиса кіруді іздеп келеді. Боб шақыру жолдайды, мысалы, “52w72y”. Алиса Бобтың жолдаған шақыруына “сәйкес” келетін таңбалар тізбегімен жауап беруі керек. “Сәйкестік” Боб пен Алиса келіскен алгоритммен анықталады. (Дұрыс жауап “63x83z” сияқты қарапайым болуы мүмкін, алгоритм Цезарь шифрын қолданып, шақырудың әрбір таңбасын өзгертеді. Нақты әлемде алгоритм әлдеқайда күрделі болар еді.) Боб әр жолы басқаша шақыру жолдайды, сондықтан бұрынғы дұрыс жауапты білу (ол Алиса мен Боб арасында қолданылатын байланыс құралдарымен “жасырын” болмаса да) ешқандай пайда бермейді.

Басқа криптографиялық емес протоколдар

Жауап беру протоколдары құпия мәнді білуден басқа да мәселелерді растау үшін де қолданылады. Мысалы, CAPTCHA – бұл Тьюринг тестісінің бір түрі, веб-сайтты немесе мобильді қосымшаны қараушының нағыз адам екенін анықтауға арналған. Алғашқы CAPTCHA-ларда қараушыға жіберілген тапсырма бұрмаланған мәтін суреті болды, ал қараушы сол мәтінді теріп жауап берді. Бұл бұрмалау автоматты оптикалық таңбаларды тануды (OCR) қиындату және компьютер бағдарламасының адам ретінде қабылдануына бөгет жасау үшін жасалған.

Криптографиялық техникалар

Шифрлауға негізделмеген аутентификация, пайдаланушы парольді сұраған жүйенің өзіне қатысты қол жеткізуге тырысып жатқан жүйе екеніне сенімді бола алатын Интернетке дейінгі кезеңде жеткілікті болды, сондай-ақ ешкімнің пароль енгізілуін бақылап, байланыс арнасын тыңдау мүмкіндігі де төмен болды. Қауіпсіз канал мәселесін шешу үшін күрделірек тәсіл қажет. Көптеген криптографиялық шешімдер екі жақты аутентификацияны қамтиды, онда пайдаланушы да, жүйе де ортақ құпияны (парольді) білетінін бір-біріне сендіруі керек, ал бұл құпия ешқашан байланыс арнасы арқылы ашық түрде жіберілмейді, онда тыңдаушылар болуы мүмкін. Мұның бір жолы – парольді шифрлау кілті ретінде пайдаланып, кездейсоқ түрде жасалған ақпаратты сынақ ретінде жіберу болып табылады, ал екінші жақ жауап ретінде бастапқыда ұсынылған ақпараттың алдын ала белгіленген функциясы болып табылатын ұқсас шифрланған мәнді қайтарады, осылайша сынақты шифрлай алғанын дәлелдейді. Мысалы, Kerberos жүйесінде сынақ – шифрланған N бүтін саны, ал жауап – шифрланған N+1 бүтін саны, бұл екінші жақтың N бүтін санын шифрлай алатынын көрсетеді. Хэш функциясы пароль мен кездейсоқ сынақ мәніне қолданылып, жауап мәнін жасауға болады. Тағы бір нұсқасы модельдің кірісіне байланысты кездейсоқ сынақтарды ұсыну үшін ықтималдық модельді пайдаланады. Мұндай шифрланған немесе хэштелген алмасулар парольді тыңдаушыға тікелей ашпайды. Дегенмен, олар тыңдаушыға сөздік шабуыл немесе күш қолдану арқылы парольді анықтауға жеткілікті ақпарат бере алады. Әр алмасуда кездейсоқ түрде жасалған ақпаратты пайдалану (жауап сынақтан өзгеше болған жағдайда) қайталау шабуылдарына қарсы қорғаныс шарасы болып табылады, онда қаскөй аралық жүйе алмастырылған деректерді жазбаға алып, кейінірек оларды қайта жіберіп, бір жақты аутентификация жасалғанын қателеуге тырысады. Аутентификация протоколдары әдетте әрбір сынақ-жауап тізбегінің бірегей болуын қамтамасыз ету үшін сынақ ретінде криптографиялық нонс қолданады. Бұл тыңдау және одан кейін қайталау шабуылдарынан қорғайды. Шынайы нонсты енгізу мүмкін болмаса, күшті криптографиялық қауіпсіз псевдо-кездейсоқ сандар генераторы мен криптографиялық хэш функциясы бірнеше рет қайталанбас қиындықтарды жасай алады. Кейде уақытқа негізделген нонстарды қолданбау маңызды, өйткені олар әртүрлі уақыт белдеулеріндегі серверлерді және дұрыс емес сағаттары бар серверлерді әлсіретуі мүмкін. Егер қосымша кешіктірілген хабарлама шабуылдарына ұшыраса, уақытқа негізделген нонстар мен синхронды сағаттарды қолдану маңызды болуы мүмкін. Бұл шабуыл кезінде шабуылшы жіберілген хабарды көшіріп, оны баратын жерге жетуіне кедерілгі келтіреді, содан кейін оны өз қалауынша кешіктіріп қайта жібере алады. Бұл сымсыз арналарда оңай орындалады. Уақытқа негізделген нонс шабуылдаушының хабарламаны қайта жіберуіне шектеу қою үшін пайдаланылуы мүмкін, бірақ мерзімі біткен уақытпен шектеледі, мысалы, бір секундтан кем, бұл қосымшаға әсер етпейді және шабуылды жеңілдетеді. Өзара аутентификация екі бағытта жауап беру қол алысу арқылы жүзеге асырылады; сервер клиент құпияны білетінін қамтамасыз етеді, ал клиент сервердің құпияны білетінін қамтамасыз етеді, бұл нақты серверді жалған серверден қорғайды. Жауап беру аутентификациясы сеанс кілттерін шифрлау үшін алмасу мәселесін шешуге көмектеседі. Кілтті шығару функциясын пайдалана отырып, сынақ мәні мен құпияны сеанс үшін болжауға болмайтын шифрлау кілтін жасау үшін біріктіруге болады. Бұл, әсіресе, ортадағы адам шабуылына қарсы тиімді, өйткені шабуылшы құпияны білмей, сынақтан сеанс кілтін шығара алмайды, сондықтан дерек ағынын шифрлай алмайды.

Парольді сақтау

Парольдерді сақтаудан аулақ болу үшін, кейбір операциялық жүйелер (мысалы, Unix сияқты) парольдің өзін сақтаудың орнына, парольдің хэшін сақтайды. Растау кезінде, жүйеге енгізілген парольдің хэші, парольдер базасында сақталған хэшпен сәйкес келе ме екенін тексеру жеткілікті. Бұл шабуылшыға парольдерді алуды қиындатады, себебі парольдің өзі сақталмайды және белгілі бір хэшке сәйкес келетін парольді анықтау өте қиын. Дегенмен, бұл көптеген (бірақ барлығы емес) сұрақ-жауап алгоритмдері үшін мәселе тудырады, олар клиент пен сервердің екеуінің де ортақ құпияға ие болуын қажет етеді. Парольдің өзі сақталмағандықтан, сұрақ-жауап алгоритмі көбінесе парольдің орнына оның хэшін құпия ретінде пайдалануға мәжбүр болады. Бұл жағдайда, шабуылшы парольдің өзінің орнына нақты хэшті пайдалана алады, бұл сақталған хэштерді нақты парольдердей сезімтал етеді. SCRAM – бұл мәселенің алдын алатын сұрақ-жауап алгоритмі.