RC4 (ARCFOUR) — потоков шифър: принцип, приложения и уязвимости

Подробен преглед на RC4 (ARCFOUR): принципи, приложения в SSL/WEP, известни уязвимости и практични съвети за откриване на рискове и алтернативи.

Автор: Leandro Alegsa

В криптографията RC4 (известен също като ARC4 или ARCFOUR, от английското Alleged RC4) е широко използван софтуерен поточен шифър, проектиран за бързо генериране на поток от псевдослучайни байтове, които след това се XOR-ват с данните за криптиране или декриптиране. Исторически е използван в популярни протоколи като Secure Sockets Layer (SSL) за защита на интернет трафика и в стандарта WEP за безжични мрежи.

Кратка история

RC4 е създаден от Рон Ривест (Ron Rivest) от RSA Security през 1987 г. Първоначално алгоритъмът е третиран като търговска тайна. През септември 1994 г. имплементация на RC4 е публикувана в пощенския списък Cypherpunks и впоследствие разпространена в другите новинарски групи и уебсайтове в интернет. Публикуваната версия е потвърдена като истинска, тъй като резултатите съвпадат с тези на собственически софтуер, използващ лицензиран RC4. След тази публикация алгоритъмът вече не е търговска тайна, но името "RC4" остава защитено с търговска марка. За да се избегнат търговски претенции, често се използват имената "ARCFOUR" или "ARC4" (Alleged RC4).

Принцип на работа

RC4 е потоков шифър, който работи в два етапа:

  • KSA (Key Scheduling Algorithm) — инициализира масив S с дължина 256 байта и го смесва, използвайки ключ с променлива дължина (често между 40 и 256 бита). Това създава начално състояние, зависещо от ключа.
  • PRGA (Pseudo-Random Generation Algorithm) — генерира безкраен поток от байтове, като при всяка стъпка актуализира индекси i и j и прави размяна в масива S; изходният байт се получава от текущото състояние на S и се XOR-ва с байта от открития текст, за да се получи шифротекст (или обратно).

На високо ниво алгоритъмът използва масив S[0..255] и два индекса i, j. При KSA масивът се инициализира с последователни стойности и се разбърква с байтовете на ключа; при PRGA индексите се инкрементират и се правят постоянни размени, от които се извлича байт от потока.

Причини за широкото разпространение

  • Простота: лесна реализация както в софтуер, така и в хардуер.
  • Бързина: малко операции на байт, ефективен при малки и големи обеми данни.
  • Гъвкавост: поддържа честно широк диапазон от дължини на ключа.

Уязвимости и известни атаки

Въпреки простотата и скоростта си, RC4 има няколко фундаментални слабости, които го правят неподходящ за съвременна криптография:

  • Начални пристрастия (biases) в ключовия поток: Първите байтове от потока не са криптографски независими и съдържат статистически пристрастия. Това е основата за много атаки.
  • Aтаки по WEP (Fluhrer, Mantin и Shamir — FMS): Определен начин на комбиниране на кратък IV с ключа в WEP позволява извличане на ключа чрез събиране на голям брой наблюдения. Това прави WEP практически несигурен.
  • Повторно използване на един и същ поток: Ако два различни текста се криптират със същия ключов поток (например поради повторно използване на ключ/IV), XOR на двете шифротекста дава XOR на двата открити текста, което често позволява възстановяване на съдържанието.
  • Дискриминиращи и отличителни атаки: Използвайки статистически пристрастия, атакуващ може да разграничи части от ключовия поток от случаен поток и в някои случаи да извлече информация за ключа или текстовете.
  • Проблеми в TLS/SSL: Поради описаните пристрастия и практически атаки срещу потока, използването на RC4 в TLS/SSL беше постепенно обезсилено и накрая официално забранено в TLS чрез стандарти (вж. по-долу).

Практически съвети и мерки

  • Отпадането на първите N байта от ключовия поток (т.нар. RC4-drop[N], например N = 768 или 1024) може да намали част от слабостите, свързани с началните пристрастия, но не може да гарантира сигурност срещу по-напреднали атаки.
  • Никога не повтаряйте (не рециклирайте) един и същ ключ или двойка ключ+IV за различни съобщения — това е фундаментално изискване за потоковите шифри.
  • Ако имате възможност, мигрирайте към съвременни и рецензирани алтернативи, като AES-GCM или ChaCha20-Poly1305, които предлагат по-добра сигурност и устойчивост на известни атаки.

Съвременно състояние и стандарти

Поради големия брой атаки и практическите проблеми, свързани с използването на RC4, през последните години мнозина експерти и стандарти за криптографиято го отклоняват от употреба. Например, използването на RC4 в TLS е забранено (вж. съответните стандарти и препоръки), а много софтуерни библиотеки и браузъри прекратяват или вече са прекратили поддръжката му. WEP е считан за несигурен и е заменен от WPA/WPA2 с по-сигурни методи.

Заключение

RC4 е важен исторически пример за потоков шифър — много прост и ефективен на практика през 90-те и началото на 2000-те години. Въпреки това не отговаря на съвременните стандарти за криптографска устойчивост поради ясни и експлоатируеми слабости. За нови проекти и продукти не се препоръчва използването му; вместо това е по-разумно да се избере добре изучен и поддържан модерен режим като AES-GCM или ChaCha20-Poly1305.

Криптосистеми, базирани на RC4

  • WEP
  • WPA
  • Криптиране на протокола BitTorrent
  • Криптиране от точка до точка на Microsoft
  • Secure Sockets Layer (по избор)
  • Secure Shell (по избор)
  • Клиент за отдалечен работен плот (RDC над RDP)
  • Kerberos (по избор)
  • Механизъм SASL Digest-MD5 (по избор)
  • Gpcode.AK, компютърен вирус за Microsoft Windows от началото на юни 2008 г., който взема документи като заложници за откуп, като ги криптира с RC4 и RSA-1024.

Когато дадена криптосистема е отбелязана с "(по избор)", RC4 е един от няколкото шифъра, които системата може да бъде настроена да използва.

Свързани страници

  • Разширен стандарт за криптиране
  • Стандарт за криптиране на данни (DES)
  • DES-X
  • eSTREAM - Оценка на нови поточни шифри, провеждана от ЕС.
  • TEA, Block TEA, известен също като eXtended TEA и Corrected Block TEA - семейство блокови шифри, които, подобно на RC4, са проектирани така, че да бъдат много лесни за изпълнение.
  • Троен DES (TDES)

Въпроси и отговори

В: Какво представлява RC4?


О: RC4 (известен също като ARC4 или ARCFOUR, което означава Alleged RC4) е софтуерен поточен шифър, използван в популярни протоколи като Secure Sockets Layer (SSL) и WEP.

В: Кой е създал RC4?


О: RC4 е създаден от Рон Ривест от RSA Security през 1987 г.

В: Как алгоритъмът става публичен?


О: Алгоритъмът става публичен, когато е публикуван в пощенския списък Cypherpunks през септември 1994 г., а след това се разпространява в много уебсайтове в интернет.

В: Защитен ли е RC4 като търговска марка?


О: Да, името "RC4" е защитено с търговска марка.

В: Кои са двете причини за широкото му използване?


О: Двете основни причини, които са спомогнали за използването му в толкова голям набор от приложения, са неговата скорост и простота. Използването на RC4 както в софтуера, така и в хардуера е изключително лесно за разработване.

В: Как работи алгоритъмът за криптиране?


О: Алгоритъмът за криптиране започва с различна дължина на ключа, обикновено между 40 и 256 бита, като се използва алгоритъмът за разпределяне на ключове (KSA). След като това бъде направено, се създава потокът от криптирани битове, като се използва алгоритъмът за генериране на псевдослучайни числа (PRGA).

Въпрос: Смята ли се, че RC4 е сигурен за нови приложения?


О: Не, тъй като има много методи за атакуването му, затова не се препоръчва за използване в нови приложения.


обискирам
AlegsaOnline.com - 2020 / 2025 - License CC3