Download presentation
Presentation is loading. Please wait.
Published bySherilyn Woods Modified over 9 years ago
1
Защита ПО новые подходы и решения Белоконь Андрей Одесса www.softcomplete.com The business of security, is the business of paranoia
2
WWW.SOFTCOMPLETE.COM Бизнес модель ПроизводительПокупатель распространение оплата код регистрации Ограниченное использование Генерация кода регистрации Зарегистрированная копия
3
Уязвимости модели Модификация кода (crack) Использование ключа на > 1 компьютере Распространение ключа Создание KeyGen WWW.SOFTCOMPLETE.COM
4
Последствия атак Модификация кода (crack) модификация кода в новой версии Использование ключа на > 1 компьютере использование HardwareID Распространение ключа блокирование ключа в новой версии Создание KeyGen изменение схемы генерации ключей WWW.SOFTCOMPLETE.COM
5
Защита кода от модификации EXECryptor AsProtect PELock Armadillo WWW.SOFTCOMPLETE.COM
6
Шифрование кода AsProtect {$I reg_crypt_begin.inc} Mess := 'Registered version'; {$I reg_crypt_end.inc} EXECryptor {$I crypt_user_start.inc} Mess := 'Registered version'; {$I crypt_user_end.inc} Код исполняется только в зарегистрированной версии
7
WWW.SOFTCOMPLETE.COM EXECryptor дополнительные средства шифрования кода {$I crypt_start.inc} // Участок зашифрованного кода if TrialMode then ShowMessage(‘Unregistered’); {$I crypt_end.inc} {$I crypt_single_start.inc} // Однократно исполняемый участок. // Код разрушается после исполнения RegName:=SecureRead(‘RegName’); RegCode:=SecureRead(‘RegCode’); {$I crypt_single_end.inc}
8
WWW.SOFTCOMPLETE.COM EXECryptor Safe API function Safe_GetProcAddr(ModuleName,ProcName: PChar): TFarProc; function Safe_MessageBox(hWnd: HWND; lpText, lpCaption: PChar; uType: UINT): Integer; function Safe_LoadLibrary(lpLibFileName: PAnsiChar): HMODULE; stdcall; function Safe_GetModuleHandle(lpModuleName: PAnsiChar): HMODULE; stdcall; function Safe_FreeLibrary(hLibModule: HMODULE): BOOL; stdcall; function Safe_GetProcAddress(hModule: HMODULE; lpProcName: LPCSTR): TFarProc;
9
Надежные алгоритмы генерации ключей Криптография с открытым ключом M - регистрационная информация K - ключ регистрации F - алгоритм проверки ключа F(M, K) = 0 find K = G(M) is hard WWW.SOFTCOMPLETE.COM
10
Алгоритмы WWW.SOFTCOMPLETE.COM
11
Устойчивость алгоритмов WWW.SOFTCOMPLETE.COM
12
HFE x 1 x 2 + x 2 + x 3 = a 1 x 1 x 2 + x 1 x 3 + x 3 = a 2 x 1 + x 2 x 3 + 1= a 3 x i in 0,1 WWW.SOFTCOMPLETE.COM
13
HFE x 1 x 2 + x 2 + x 3 = a 1 x 1 x 2 + x 1 x 3 + x 3 = a 2 x 1 + x 2 x 3 + 1= a 3 x i in 0,1 hash of registration info WWW.SOFTCOMPLETE.COM
14
HFE x 1 x 2 + x 2 + x 3 = a 1 x 1 x 2 + x 1 x 3 + x 3 = a 2 x 1 + x 2 x 3 + 1= a 3 x i in 0,1 hash of registration info x 1 x 2 x 3 - registration key WWW.SOFTCOMPLETE.COM
15
HFE public key x 1 x 2 + x 2 + x 3 = a 1 x 1 x 2 + x 1 x 3 + x 3 = a 2 x 1 + x 2 x 3 + 1= a 3 x i in 0,1 hash of registration info x 1 x 2 x 3 - registration key WWW.SOFTCOMPLETE.COM
16
HFE: устойчивость EuroCrypt Nessie (New European Schemes for Signatures, Integrity and Encryption) HFE-based: Flash, Sflash, Quartz WWW.SOFTCOMPLETE.COM На практике HFE 80 бит эквивалентна (по стойкости) RSA 512 бит
17
Сравнение ПО генерации стойких ключей WWW.SOFTCOMPLETE.COM
18
Короткие ключи AsProtect ZhZShJt8ob4ffXI/Z0e2BQMM cn231YAXFasi1645ScnbB/NC qNlnS2GtPJVCgcsMysPxG6/X v3wXFCgtMdfY90I3mC4hM1d3 nyvP6OETOfbYpkV7PSztvboa YCKck2hwsnbp7aomNcxsdDv9 tUsl2+o1ggag6mobCSqkmesr KXY= HardKey EM6KX-LYHDE-43U8J-KNANS
19
WWW.SOFTCOMPLETE.COM Короткие ключи Удобство распространения (в печатном виде, по телефону, факсу …) Отсутствие вложений и связанных с этим проблем Не требует особых знаний у пользователя
20
WWW.SOFTCOMPLETE.COM HardKey System
21
WWW.SOFTCOMPLETE.COM HardKey System
22
WWW.SOFTCOMPLETE.COM HardKey System
23
WWW.SOFTCOMPLETE.COM HardKey System
24
WWW.SOFTCOMPLETE.COM HardKey System // Проверка ключа регистрации function VerifyRegCode(const RegName, RegCode: string; var LicType: integer; var LicName,LicInfo: string; var Expire: TDateTime): Boolean; // идентификатор оборудования function GetHardwareID: string; // защищенная работа с реестром function SecureRead(const Name: string): string; procedure SecureWrite(const Name,Value: string); // текущая дата function SecureGetDate: TDateTime;
25
ActivateSoft.net www.activatesoft.net License Management ServerUser PC User enters product key User prompted to activate (up to 14 days of grace period) Choice of activation method: Internet Automatic activation or Browser User manually submits hardware ID “2F75M” and product key 36JJW - XYAZ7 - L4UP7 –ABUJG - TQBAR License server looks up for the product key 36JJW - XYAZ7 - L4UP7 – ABUJG - TQBAR Verifies number of installations allowed by EULA, increases the counter and stores the hardware ID “2F75M” The server returns activation number to the user: 24M4X - NX3SQ - CT3WC-AWL7C - 6AKAH Internet Activation key is automatically applied Browser The user enters activation key into the activation wizard Activation successful An off-line certificate is automatically created; the activation wizard will no longer show up
26
ActivateSoft.net License Enforcement –License key generation, verification and activation based on strong HFE –All features of HardKey licenses –SDK source code (C/C++/Delphi/VB) –ASProtect & EXECryptor integration for code encryption www.activatesoft.net
27
ActivateSoft.net Online License Management –Block stolen keys online –Product key reminder –Online key generator for many registration services –Automatically blocks licenses with suspicious activity www.activatesoft.net
28
WWW.SOFTCOMPLETE.COM The business of security, is the business of paranoia ActivateSoft.net HardKey System EXECryptor Ваши вопросы - наши ответы
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.