Атака с избран шифротекст (CCA): дефиниция, рискове и защита
Атака с избран шифротекст (CCA): научете дефиницията, реалните рискове и практическите методи за защита (RSA‑OAEP, Cramer‑Shoup, удостоверено симетрично криптиране).
Атаката с избран шифротекст (CCA) е модел на атака за криптоанализ, при който криптоаналитикът събира информация, поне отчасти, като избира шифров текст и получава неговото декриптиране под неизвестен ключ. В този модел атакуващият има достъп до „ор Oracle за декриптиране“ — възможност да подаде произволни шифротекстове и да получи обратно техните плейнтексти (или уведомен резултат за грешка). Целта обикновено е да се разкрие ключът, да се възстанови важна част от съобщението или да се фалшифицира съобщение, което да премине проверка. Много важен критерий за сигурност е понятието IND-CCA (indistinguishability under chosen-ciphertext attack) — схемите, които са IND-CCA сигурни, запазват конфиденциалността си дори при наличието на такъв декрипционен орeкъл.
Видове CCA и тяхната сложност
Обикновено се разграничават два основни варианта:
- CCA1 (non-adaptive chosen-ciphertext attack) — атакуващият има достъп до декрипционен орeкъл само преди да види целевия шифротекст. След като получи целевия шифротекст, не може да прави повече заявки.
- CCA2 (adaptive chosen-ciphertext attack) — по-силен модел: атакуващият може да прави декрипционни заявки и преди, и след като види целевия шифротекст, с изключение на самата целева заявка. Това е моделът, използван за дефиниране на IND-CCA сигурност и често е изискваната гаранция в практиката.
Защо това е проблем — практическите рискове
Когато дадена криптосистема е податлива на атака с избран шифротекст, изпълнителите трябва да внимават да избегнат ситуации, в които нападателите могат да декриптират избрани шифротекстове (т.е. да избегнат предоставянето на схема за декриптиране). Това може да се окаже по-трудно, отколкото изглежда, тъй като дори частично избрани шифротекстове могат да позволят фини атаки.
В практиката няколко известни примера демонстрират опасността:
- Атаки от типа припадане на пълен padding — например Bleichenbacher атака върху RSA PKCS#1 v1.5, където ореъл за грешки при падинга позволява възстановяване на плейнтекст.
- Padding oracle атаки (Vaudenay) в протоколи и уеб приложения — когато съобщения за грешки или времеви разлики разкриват дали падингът е бил валиден.
- Атаки по канали на изпълнение (side-channel), при които странични индикатори (време, грешки, кеш поведение) се използват като „декрипционен ореъл“.
- Комбиниране на една и съща примитив за подписване и декриптиране — някои реализации на RSA без коректно хеширане на подписваното съобщение позволяват атаки, които разкриват информация за плейнтекста или ключа.
Защита: криптографски схеми и практики
По-добрият подход е да се използва криптосистема, която е доказано сигурна при атака с избран шифротекст, включително (наред с други) RSA-OAEP, Cramer-Shoup и много форми на удостоверено симетрично криптиране. По-конкретно:
- Използвайте схеми с доказана IND-CCA сигурност: RSA-OAEP (за публично-ключово криптиране), Cramer–Shoup, както и модерни KEM/DEM конструкции, които комбинират ключово обменяне и симетрично шифроване.
- Използвайте AEAD (authenticated encryption with associated data): алгоритми като AES-GCM, ChaCha20-Poly1305 предоставят едновременно конфиденциалност и целостност и са проектирани да предотвратят CCA-подобни атаки. Общ принцип — предпочитайте encrypt-then-MAC или AEAD пред encrypt-then-sign или само шифроване без удостоверяване.
- Правилно подписване: при цифрови подписи не използвайте същия механизъм както за декриптиране; винаги хеширайте съобщението преди подписване (например RSA-PSS за RSA подписи).
- Строга обработка на грешките: не разкривайте подробни съобщения за грешки при неуспешно разпаковане/проверка — върнете унифициран отговор и използвайте константно време проверки, за да избегнете тайминг ореали.
- Ограничаване на ореъла: затруднете достъпа до всякакви декрипционни услуги — лимитирайте заявки, изисквайте автентикация, логвайте и следете аномалии.
- Използвайте утвърдени библиотеки и протоколи: не проектирайте собствени криптопротоколи. Възползвайте се от актуални стандарти и имплементации (TLS 1.3, libsodium, BoringSSL/LibreSSL/OpenSSL с правилна конфигурация).
Препоръки за разработчици и администратори
- Предпочитайте AEAD алгоритми (AES-GCM, ChaCha20-Poly1305) за нови приложения.
- За публично-ключово шифроване използвайте RSA-OAEP или KEM-базирани схеми и проверявайте параметрите и пъдинга коректно.
- Не показвайте подробности за причината за отхвърляне на криптографски операции в потребителски интерфейс или API (единен generic error).
- При уязвимости в криптографията, актуализирайте бързо библиотеките и конфигурациите (например преход към TLS 1.3, ако е възможно).
- Провеждайте кодови и сигурностни одити за странични канали и съобразявайте имплементациите с изискванията за константно време.
- Разделяйте функции: отделете подписване от декриптиране и не позволявайте едни и същи интерфейси да изпълняват незащитени декрипционни операции за външни потребители.
Бележки за теоретични гаранции и реалната сигурност
Доказателствата за сигурност (например IND-CCA) обикновено се формулират в математически модели (например ROM — Random Oracle Model) и зависят от правилната употреба на предположенията и параметрите. Дори схема, която е теоретично сигурна, може да бъде компрометирана чрез лоша имплементация, странични канали или нещателно обработване на грешки. Затова практическата сигурност изисква както избор на подходящи, доказани алгоритми, така и строго инженерно изпълнение и поддръжка.
Като обобщение: атаките с избран шифротекст са мощен модел, който показва защо е важно да се използват IND-CCA-резистентни конструкции, AEAD-схеми и добри практики при имплементацията — и да се избягва всяка форма на „декрипционен ореъл“ в производствени системи.
Разновидности на атаките с избран шифър текст
Атаките с избран шифровъчен текст, както и другите атаки, могат да бъдат адаптивни или неадаптивни. При неадаптивната атака нападателят предварително избира шифротекста или шифротекстовете, които да декриптира, и не използва получените явни текстове, за да се информира за избора си на повече шифротекстове. При адаптивната атака с избран шифротекст нападателят прави своя избор на шифротекст адаптивно, т.е. в зависимост от резултата от предишни декриптирания.
Нападения по време на обяд
Специално отбелязан вариант на атаката с избран шифър текст е атаката "по обед" или "в полунощ", при която атакуващият може да прави адаптивни заявки с избран шифър текст, но само до определен момент, след което трябва да демонстрира подобрена способност за атака на системата. Терминът "атака по време на обяд" се отнася до идеята, че компютърът на потребителя с възможност за декриптиране е на разположение на нападателя, докато потребителят е на обяд. Тази форма на атаката беше първата често обсъждана: очевидно е, че ако нападателят има възможност да прави заявки за адаптивно избран шифров текст, никое криптирано съобщение няма да е безопасно, поне докато тази възможност не му бъде отнета. Понякога тази атака се нарича "неадаптивна атака с избран шифротекст"; тук "неадаптивна" се отнася до факта, че нападателят не може да адаптира своите заявки в отговор на предизвикателството, което се дава, след като е изтекла възможността за извършване на заявки с избран шифротекст.
Много атаки с избран шифър текст с практическо значение са атаки по време на обяд, включително например когато Даниел Блейхенбахер от Bell Laboratories демонстрира практическа атака срещу системи, използващи PKCS#1; изобретен и публикуван от RSA Security.
Адаптивна атака с избран шифър текст
(Пълна) адаптивна атака с избран шифър е атака, при която шифрите могат да се избират адаптивно преди и след като на атакуващия е предоставен шифър на предизвикателството, с ЕДНО условие, че самият шифър на предизвикателството не може да бъде потърсен. Това е по-силно понятие за атака от атаката по време на обяд и обикновено се нарича атака CCA2 в сравнение с атаката CCA1 (по време на обяд). Малко са практическите атаки в тази форма. Този модел е важен по-скоро заради използването му в доказателствата за сигурност срещу атаки с избран шифър текст. Доказателство, че атаките по този модел са невъзможни, означава, че не може да се извърши никаква практическа атака с избран шифър текст.
Криптосистемите, които са доказано сигурни срещу адаптивни атаки с избран шифър текст, включват системата Cramer-Shoup и RSA-OAEP.
Свързани страници
- Атака само с шифротекст
- Атака с избран обикновен текст
- Атака с познат текст (Known-plaintext attack)
Въпроси и отговори
В: Какво представлява атаката с избран шифър?
О: Атаката с избран шифър текст (CCA) е модел на атака за криптоанализ, при който криптоаналитикът събира информация, поне отчасти, като избира шифър текст и получава неговото декриптиране под неизвестен ключ.
Въпрос: Защо изпълнителите трябва да внимават да избягват ситуации, в които нападателите могат да бъдат в състояние да декриптират избрани шифротекстове?
О: Когато криптосистемата е податлива на атака с избран шифър, изпълнителите трябва да внимават да избягват ситуации, в които нападателите могат да декриптират избрани шифри (т.е. да избягват предоставянето на схема за декриптиране), тъй като дори частично избрани шифри могат да позволят фини атаки.
Въпрос: Кои криптосистеми са уязвими на атаки, когато не се използва хеширане на съобщението, което трябва да бъде подписано?
О: Някои криптосистеми (като RSA) използват един и същ механизъм за подписване на съобщения и за тяхното декриптиране. Това позволява атаки, когато не се използва хеширане на подписваното съобщение.
Въпрос: Кой е по-добрият подход за избягване на атаки при модел на атака с избран шифър?
О: По-добрият подход е да се използва криптосистема, която е доказано сигурна при атака с избран шифър, включително (наред с други) RSA-OAEP, Cramer-Shoup и много форми на удостоверено симетрично криптиране.
В: Какво означава RSA-OAEP?
О: RSA-OAEP е съкращение от RSA Optimal Asymmetric Encryption Padding.
Въпрос: Какво е едно от последствията от това, че дадена криптосистема е уязвима към атака с избран шифър текст?
О.: Едно от последствията от уязвимостта на криптосистемата към атака с избран шифър е, че изпълнителите трябва да внимават да избягват ситуации, в които нападателите могат да декриптират избрани шифри (т.е. да избягват предоставянето на схема за декриптиране).
Въпрос: Какъв тип атаки могат да позволят частично избраните шифротекстове?
О.: Частично избраните шифрограми могат да позволят фини атаки.
обискирам