Кіріспе
Криптографияда, шабуылдаушы көптеген парольдерді немесе құпия сөз тіркестерін дұрыс болжау үмітімен жібереді. Шабуылдаушы дұрыс парольді тапқанша барлық мүмкін парольдерді және құпия сөз тіркестерін жүйелі түрде тексереді. Сонымен қатар, шабуылдаушы кілт шығару функциясын қолдана отырып, парольден құрылған кілтті болжауға тырыса алады. Бұл толық кілт іздеу деп аталады. Бұл тәсіл интеллектуалды тактикаға емес, бірнеше рет әрекет етуге негізделген. Brute force attack – бұл криптоаналитикалық шабуыл, теориялық тұрғыдан кез келген шифрланған деректерді (ақпаратты теориялық тұрғыдан қауіпсіз түрде шифрланған деректерді қоспағанда) шифрлауға талпыну үшін қолданылуы мүмкін. Мұндай шабуыл шифрлау жүйесінің басқа да әлсіз жақтарын (егер бар болса) пайдалану мүмкін болмаған кезде қолданылуы мүмкін, бұл тапсырманы жеңілдетуге болар еді. Парольді болжау кезінде бұл әдіс барлық қысқа парольдерді тексеру үшін пайдаланғанда өте жылдам, бірақ ұзын парольдер үшін сөздік шабуыл сияқты басқа әдістер қолданылады, өйткені күшпен іздеу тым көп уақыт алады. Ұзын парольдер, құпия сөз тіркестері және кілттер көбірек мүмкін мәндерге ие, сондықтан оларды бұзу қиынырақ, себебі таңбалардың әртүрлілігі бар. Күшпен шабуылдар кодталатын деректерді жасырып, шабуылшыға кодтың бұзылғанын анықтауды қиындату арқылы немесе шабуылшыны әрбір болжамды тексеру үшін көп жұмыс істеуге мәжбүр ету арқылы тиімділігін төмендетуге болады. Шифрлау жүйесінің күшін өлшейтін шаралардың бірі – шабуылшыға оған қарсы күшпен шабуыл жасау үшін қанша уақыт қажет болатыны. Күшпен шабуылдар – бұл күшпен іздеудің бір түрі, барлық үміткерлерді тізімдеп, әрқайсысын тексерудің жалпы проблеманы шешу әдісі. "Соққылау" сөзі кейде күшпен шабуылды сипаттау үшін қолданылады, ал "соққылауға қарсы" шаралар қолданылады.
In cryptography, a brute force attack consists of an attacker submitting many passwords or passphrases with the hope of eventually guessing correctly. The attacker systematically checks all possible passwords and passphrases until the correct one is found. Alternatively, the attacker can attempt to guess the key which is typically created from the password using a key derivation function. This is known as an exhaustive key search. This approach doesn't depend on intellectual tactics; rather, it relies on making several attempts. A brute force attack is a cryptanalytic attack that can, in theory, be used to attempt to decrypt any encrypted data (except for data encrypted in an information theoretically secure manner). Such an attack might be used when it is not possible to take advantage of other weaknesses in an encryption system (if any exist) that would make the task easier. When password guessing, this method is very fast when used to check all short passwords, but for longer passwords other methods such as the dictionary attack are used because a brute force search takes too long. Longer passwords, passphrases and keys have more possible values, making them exponentially more difficult to crack than shorter ones due to diversity of characters. Brute force attacks can be made less effective by obfuscating the data to be encoded making it more difficult for an attacker to recognize when the code has been cracked or by making the attacker do more work to test each guess. One of the measures of the strength of an encryption system is how long it would theoretically take an attacker to mount a successful brute force attack against it. Brute force attacks are an application of brute force search, the general problem solving technique of enumerating all candidates and checking each one. The word 'hammering' is sometimes used to describe a brute force attack, with 'anti hammering' for countermeasures.
Негізгі түсінік
Brute force шабуылдары парольді құрайтын барлық мүмкін комбинацияларды есептеу және оның дұрыс пароль екенін анықтау үшін оларды тексеру арқылы жұмыс істейді. Парольдің ұзындығы артқан сайын, дұрыс парольді табуға кеткен орташа уақыт экспоненциалды түрде өседі.
Теориялық шектер
Қиындыққа қарсы шабуыл үшін қажетті ресурстар кілттің көлеміне қарай экспоненциалды түрде өседі, сызықтық емес. АҚШ-тың экспорттық ережелері тарихи түрде кілттің ұзындығын 56 биттік симметриялық кілттермен (мысалы, Data Encryption Standard) шектегенімен, бұл шектеулер енді жойылды, сондықтан қазіргі заманғы симметриялық алгоритмдер әдетте есептеу жағынан күшті 128-ден 256 биттік кілттерді қолданады. 128 биттік симметриялық кілт күшпен шабуылға қарсы есептеу жағынан қауіпсіз екендігіне қатысты физикалық аргумент бар. Физика заңдарымен түсіндірілген Ландауэр лимиті есептеуді орындау үшін қажетті энергияның ең төменгі шегін анықтайды, мұнда T – есептеу құрылғысының температурасы (кельвинде), k – Болцман тұрақтысы, ал 2-нің табиғи логарифмі шамамен 0,693 (0,6931471805599453) құрайды. Ешбір қайта емес есептеу құрылғысы принцип бойынша одан аз энергияны пайдалана алмайды. Демек, 128 биттік симметриялық кілт үшін мүмкін болатын барлық мәндерді қарау (оны тексеру үшін нақты есептеуді ескермей) теориялық тұрғыдан дәстүрлі процессорда 2128 – 1 битті ауыстыруды қажет етеді. Егер есептеу бөлме температурасына жақын (≈300 К) жүргізілсе, қажетті энергияны ≈1018 джоуль ретінде бағалау үшін Фон-Нойман Ландауэр лимитін қолдануға болады, бұл бір жыл бойы 30 гигаватт қуатты тұтынуға тең. Бұл 30×109 Вт×365×24×3600 с = 9,46×1017 Дж немесе 262,7 ТВт⋅сағатқа (жылдық әлемдік энергия өндірісінің шамамен 0,1%) тең. Толық есептеу – әр кілтті шешім табыла ма, жоқ па, соны тексеру – одан әлдеқайда көп энергияны қажет етеді. Бұдан бөлек, бұл кілт кеңістігін қарау үшін қажетті энергия ғана; әр битті ауыстыруға кеткен нақты уақыт ескерілмейді, ол әлбетте 0-ден жоғары (Бремерманның лимитін қараңыз). Алайда, бұл аргумент тіркелімдердегі мәндерді әдеттегі орнату және тазалау операциялары арқылы өзгертуді болжайды, бұл сөзсіз энтропия тудырады. Есептеу аппараттық құралдарының осы теориялық кедергіге тап болмайтындай етіп жасалуы мүмкін екені көрсетілді (қайталанатын есептеуді қараңыз), бірақ мұндай компьютерлер жасалғаны белгісіз. Үкіметтік ASIC шешімдерінің коммерциялық ұрпақтары қолжетімді болғандықтан, сонымен қатар арнайы аппараттық шабуылдар деп аталады, екі жаңа технология белгілі бір шифрларды күшпен шабуылдау қабілетін көрсетті. Бірі – қазіргі заманғы графикалық процессор (GPU) технологиясы, екіншісі – өрістегі бағдарламаланатын қақпалар массиві (FPGA) технологиясы. GPU-лар кеңінен қолжетімділігі мен бағалық тиімділігінен, ал FPGA-лар криптографиялық операциялар бойынша энергия тиімділігінен пайда көреді. Екі технология да параллель өңдеудің артықшылықтарын күшпен шабуылға жеткізуге тырысады. GPU-да бірнеше жүздеген, ал FPGA-да бірнеше мың өңдеу бірлігі бар, бұл оларды дәстүрлі процессорларға қарағанда парольдерді бұзуға жақсырақ етеді. Мысалы, 2022 жылы 8 Nvidia RTX 4090 GPU Hashcat бағдарламалық жасақтамасын пайдалану арқылы парольдің беріктігін сынау үшін байланыстырылды, нәтижесінде 200 миллиард сегіз таңбалы пароль комбинациясын 48 минутта қарауға болады. Криптографиялық талдау саласындағы түрлі жарияланымдар бүгінгі FPGA технологиясының энергия тиімділігін дәлелдеді, мысалы, COPACOBANA FPGA Cluster компьютері бір компьютермен бірдей энергияны тұтынады (600 Вт), бірақ белгілі бір алгоритмдер үшін 2500 компьютер сияқты жұмыс істейді. Бірқатар компаниялар FPGA PCI Express картасынан бастап арнайы FPGA компьютерлеріне дейін аппараттық негіздегі FPGA криптографиялық талдау шешімдерін ұсынады. WPA және WPA2 шифрлаулары жұмыс жүктемесін дәстүрлі CPU-мен салыстырғанда 50 есеге дейін, ал FPGA-мен салыстырғанда жүзге дейін азайту арқылы күшпен шабуылға ұшырады. Advanced Encryption Standard (AES) 256 биттік кілттерді пайдалануға рұқсат береді. 256 биттік симметриялық кілтті күшпен бұзу 128 биттік кілтке қарағанда 2128 есе көп есептеу қуатын қажет етеді. 2019 жылғы ең жылдам суперкомпьютерлердің бірі 100 петаФЛОП жылдамдыққа ие, ол теориялық түрде секундына 100 миллион (1014) AES кілттерін тексеруге болады (тексере 1000 операцияны болжап), бірақ 256 биттік кілт кеңістігін толық қарау үшін әлі де 3,67×1055 жыл қажет болады. Күшпен шабуылдың негізгі болжамы – кілттерді жасау үшін толық кілт кеңістігі пайдаланылды, бұл тиімді кездейсоқ сан генераторына негізделген және алгоритмде немесе оның іске асырылуында ақаулар жоқ. Мысалы, бастапқыда күшпен бұзу мүмкін емес деп ойланған бірқатар жүйелер бұзылды, өйткені іздеу үшін кілт кеңістігі бастапқыда ойланғаннан әлдеқайда кіші болып шықты, оның себебі псевдокездейсоқ сан генераторларында энтропияның жетіспеуі. Бұларға Netscape-тің Secure Sockets Layer (SSL) іске асырылуы (1995 жылы Иан Голдберг және Дэвид Вагнер бұзған) және 2008 жылы кемшілігі анықталған Debian/Ubuntu-ның OpenSSL нұсқасы кіреді. Энтропияның жетіспеуі салдарынан Энигма кодын бұзуға да мүмкіндік болды.
Құжаттарды қайта өңдеу
Кредиттік деректерді қайта пайдалану – бұрынғы күш қолдану шабуылдары кезінде жиналған пайдаланушы аты мен пароль комбинацияларын хакерлердің қайта қолдану тәсілі. Кредиттік деректерді қайта пайдаланудың ерекше түрі – «хэшті беру» (pass the hash), онда тұз қосылмаған хэштелген деректер ұрланып, күш қолдану арқылы бұзусыз қайта қолданылады.
Ажырамайтын кодтар
Кейбір шифрлау түрлері математикалық қасиеттеріне байланысты күш қолдану арқылы бұзылмайды. Мысалы, бір реттік жазба криптографиясында әрбір ашық мәтін битіне кілттің толығымен кездейсоқ тізбегінен алынған сәйкес кілт тағайындалады. 140 таңбалы бір реттік жазбамен кодталған тізбек күшпен бұзу әрекетіне ұшырағанда, барлық мүмкін 140 таңбалы тізбектер, соның ішінде дұрыс жауап та ашылады, бірақ ұсынылған барлық жауаптардың қайсысы дұрыс екенін анықтау мүмкін емес. Мұндай жүйені жеңу, Venona жобасында болғандай, көбінесе таза криптографияға емес, оның іске асырылуындағы қателерге байланысты болады, мысалы, кілт жазбаларының толығымен кездейсоқ болмауы, кілт жазбаларының ұсталғандығы немесе операторлардың қате жасауы.
Қарсы шаралар
Шабуылшы шифрланған материалға қол жеткізген офлайн шабуыл кезінде, жауаптылық немесе араласу қаупі болмай, кілт комбинацияларын сынап көруге болады. Онлайн шабуылдар кезінде дерекқор және каталог әкімшілері парольді сынауға болатын әрекеттер санын шектеу, бір-бірінен кейін келетін әрекеттер арасында уақыт кешіктірулер енгізу, жауаптың күрделілігін арттыру (мысалы, CAPTCHA жауабын талап ету немесе көп факторлы аутентификацияны қолдану) және/немесе сәтті емес кіру әрекеттерінен кейін тіркелгілерді құлыптау сияқты қарсы шараларды қолдана алады. Веб-сайт әкімшілері белгілі бір IP-адрестің сайттағы кез келген тіркелгіге қатысты белгіленген лимиттен артық парольді сынауын болдырмауға мүмкіндік алады.
Кері күшпен шабуыл
Кері күшпен шабуыл жасау кезінде, бір (әдетте жиі қолданылатын) құпия сөз бірнеше пайдаланушы есімдеріне немесе шифрланған файлдарға тестіленіп көріледі. Бұл процесс таңдалған бірнеше құпия сөздер үшін қайталана беруі мүмкін. Мұндай стратегияда шабуылшы нақты бір пайдаланушыға бағытталмайды.