Closed mariiasirenko2 closed 4 days ago
sm4-cbc Абревіатура SM4-CBC розшифровується як:
SM4 — це симетричний блочний криптографічний алгоритм, що був розроблений в Китаї як стандарт шифрування для захисту інформації. Він працює з блочним розміром 128 біт і використовує ключ довжиною 128 біт. CBC — це режим роботи блочного шифрування, який називається Cipher Block Chaining (Цепочка блочних шифрів). У цьому режимі кожен блок тексту шифрується з урахуванням попереднього зашифрованого блоку, що забезпечує підвищену стійкість до певних атак.
2006 (розсекречено; стандартизовано 21 березня 2012)
SM4 +: SM4 використовує 128-бітний ключ і блочний розмір 128 біт, що забезпечує достатній рівень безпеки для більшості застосувань. Відповідність стандартам: Алгоритм пройшов перевірку на стійкість до відомих криптографічних атак, таких як атаки на основі статистики або на основі ключа. Простота та ефективність: Алгоритм є простим і швидким у виконанні, що робить його підходящим для апаратних і програмних реалізацій, зокрема в пристроях з обмеженими ресурсами.
-: SM4 здебільшого використовують у Китаї, і його підтримка може бути обмежена в міжнародному контексті. Це може призвести до проблем сумісності в міжнародних системах.
CBC +:
Висока безпека: CBC надає високий рівень безпеки, оскільки кожен блок шифрується з урахуванням попереднього блоку, що ускладнює криптоаналіз. Це забезпечує стійкість до повторень або структурних атак. Рівномірність шифрування: Завдяки використанню ініціалізаційного вектора (IV), однакова інформація буде шифруватися різними результатами, що допомагає уникнути атак на основі повторюваних шаблонів у відкритому тексті.
-: Проблеми з паралельністю: CBC не підходить для паралельної обробки, оскільки кожен блок шифрується з урахуванням попереднього. Це може призвести до зниження швидкості в деяких високопродуктивних застосунках, де потрібна паралельна обробка. Уразливість до помилок: Якщо один блок шифрованого тексту пошкоджений або змінений, це може спричинити помилки в декількох наступних блоках. Це робить CBC більш чутливим до помилок під час передачі даних. Залежність від IV: Без правильного управління ініціалізаційним вектором (IV) безпека може бути порушена. Якщо IV використовується неправильно або повторюється, це знижує стійкість до криптографічних атак.
5 балів
Завдання No 1.1
Варіант 26 Назва ПЗ або програмної бібліотеки: PostgreSQL JDBC Driver URL-посилання: https://github.com/pgjdbc/pgjdbc
Бібліотека pgjdbc дозволяє програмам Java взаємодіяти з базами даних PostgreSQL через інтерфейс JDBC. Це важливо для будь-якої системи на основі Java, яка повинна виконувати операції з базою даних, використовуючи PostgreSQL як серверну частину.
Споживачі: Розробники Java використовують PostgreSQL як базу даних. Організації, які створюють корпоративні програми, яким потрібен доступ до бази даних
Запитання No 1.2
pgjdbc є офіційним драйвером PostgreSQL JDBC. Під час дослідження безпеки в драйвері jdbc для бази даних postgresql виявлено проблему в безпеці. Система, яка використовує бібліотеку postgresql, буде атакована, якщо зловмисник керує URL-адресою або властивостями jdbc. pgjdbc створює екземпляри плагінів на основі імен класів, наданих через властивості підключення
authenticationPluginClassName
,sslhostnameverifier
,socketFactory
,sslfactory
,sslpasswordcallback
. Однак драйвер не перевірив, чи клас реалізує очікуваний інтерфейс перед створенням екземпляра класу. Це може призвести до виконання коду, завантаженого через довільні класи. Користувачам, які використовують плагіни, рекомендується оновити. Немає відомих способів вирішення цієї проблеми.Запитання No 1.3
Фрагменти прикладів уразливого програмного коду: return (SocketFactory) ObjectFactory.instantiate(socketFactoryClassName, info, true,PGProperty.SOCKET_FACTORY_ARG.get(info)); authPlugin = (AuthenticationPlugin) ObjectFactory.instantiate(authPluginClassName, info, false, null);
Виправлення: return ObjectFactory.instantiate(SocketFactory.class, socketFactoryClassName, info, true, PGProperty.SOCKET_FACTORY_ARG.get(info));