基于USBKey的软件保护增强策略研究
hasp hl 加密狗(USB Key) 软件保护技术 深度分析
1 The HASP-HL Crack SolutionHASP-HL is the current protection hardware by Aladdin Knowledge Systems. This document explains how to crack and bypass the security of HASP-HL – “their so-called Next Generation of Software Protection”.2 HASP-HL EnvelopeThe envelope encryption is done via a graphical user interface as shown in Figure 1. The encryption options are set by default to provide a high level of security. The selection of additional options (more encryption/anti debug modules, detection of user mode and system mode debuggers) has no influence on the analysis and mainly increases the size of the resulting executable and the startup time. Within the analysis there are no noticeable effects of these additional settings.Figure 1 Automatic encryption window of HASP-HLThe Encryption itself encrypts code and data. Resources are not encrypted even if the resource section is included in the list of sections to be encrypted. The Import Address Table (IAT) is encrypted and some APIs are redirected to the security engine (see also the detailed list of the redirected 633 APIs in the appendix). For the runtime check a separate thread is initiated. Anti debugging measures are in place which are mainly active at program startup time. Once the Security engine has decrypted the program it can be dumped to disk. After the IAT of the dump is restored and the program is reset to the Original Entry Point (OEP) the executable can be run without the HASP-HL.2.1 Locating the Original Entry Point (OEP)The OEP can be located using the standard hacker tool OllyDbg. Due to anti-debug measures some hardening of the debugger is required.2.1.1 Installing OllyDbg and the necessary pluginsOllyDbg is copied into a separate directory. There is no dedicated installation necessary. OllyDbg can be obtained from various websites including the homepage of OllyDbg:http://www.ollydbg.de/The current version 1.10 is the preferred version.To analyze HASP-HL it is necessary to install two plugins into OllyDbg: IsDebuggerPresent and OllyDump. These plugins are available from:/stuph/The plugins are simply copied into the same directory as OllyDbg.2.1.2 Hardening OllyDbgOllyDbg will be recognized by one of the several text references to OllyDbg inside the code. The usual way to evade this kind of debugger detection is to replace all occurrences of the string OllyDbg inside the executable to something else with the same length. Also the filename of the executable should be changed to this alternate name. Due to the structure of the plugins it is necessary to keep an original copy of OllyDbg in the same directory as the modified version. The string replacement can be done with any usual hex-editor.2.1.3 Setting the optionsStart the hardened OllyDbg (here for simplicity still referenced as OllyDbg) and choose from the menu Options / Debugging Options. In the options dialog select the SFX-tab and select “Extend code section to include extractor”, “Stop at entry of self-extractor”, and “Pass exceptions to SFX extractor” as shown in Figure 2.Figure 2: OllyDbg SFX DialogAs shown in Figure 3, in the tab Exceptions select mostly everything that can be selected. This will disarm some anti-debugging involving illegal opcodes, illegal memory accesses, and some more.Figure 3: OllyDbg Exceptions Dialog2.1.4 Tracing the OEPNow load the protected application into the debugger using the File / Open from the menu. Be sure to have the original HASP-HL dongle attached to the computer when loading the program. After a short analysis and two warnings about encrypted programs etc. the debugger should halt on the entry point of the application. Turn on the debugger hiding by selecting “Plugins / IsDebuggerPresent / Hide”. Alternatively you can set the “autohide” in Options Menu of the IsDebuggerPresent plugin. Switch to the hexdump section and go to the address of “ExitProcess” in Kernel32. To go to this Address use “<Ctrl> G” or the context menu. The entered Address is case sensitive. Select left topmost byte with the left mouse button. Then set a hardware breakpoint by clicking right, choosing “Breakpoint / Hardware on write / Byte”. Now run the program using <F9> until it hits the breakpoint. Switch to the memory window by hitting “<Alt> M” or selection “View / Memory” from the menu and highlight the code section (usually named “text”) of the protected program by left clicking it. Set a breakpoint on the section with <F2>. Your screen should look somewhat like Figure 4.Figure 4: OllyDbg with Breakpoint on code sectionIf you <F9> (Run) now the Debugger will put the program at the Original Entry Point (OEP). To get the relative entry point from the module start the module base (address of PE header) from the “Memory” window has to be subtracted. In this case 1,000,000. This OEP is needed in the next steps. Please leave the window open as it is still needed for the dump.2.2 Dumping the ExecutableOnce the program is halted at the Original Entry Point (OEP) the program can be dumped to disk. To do this click right into the disassembler window and select “Dump debugged process”. A dialog pops up in which you can save the program to disk. Please uncheck the “Rebuild Import” checkbox as this will not work correctly in this case. The entry point should be set automatically to the correct OEP. Otherwise please correct. The other setting should not be changed from the default values.2.3 Rebuilding the ExecutableTo rebuild the executable it is necessary to create a new Import Address Table (IAT). The original table has been destroyed by the encryptor and the links are rebuilt in real-time by the startup code of the protection engine. The rebuilding process can be managed using another standard hacker tool (Import Reconstructor, ImpRec).2.3.1 Installing ImpRecImpRec can be obtained from a number of pages including/mackt/projects/imprec/ucfir16f.zipImpRec does not require a dedicated installation. To install it copy it into an appropriate directory.Be sure to select the Option “Fix EP to OEP” in the options menu (Figure 5)Figure 5: ImRec Options Menu2.3.2 Rebuilding the IATStart the protected application. Once it is running start ImpRec. If ImpRec is running at program startup it will be detected as a Debugger. Do not forget to connect the dongle.Attach ImpRec to the running process by selecting the correct entry in the drop down list.Enter the OEP calculated above and hit the button “IAT AutoSearch”. The button “Get Imports” delivers the list of imported APIs with still some entries invalid. To see the invalid entries hit the button “Show Invalid”. This should result in a list similar to the list below (Figure 6) with some entries (in this case 74) are highlighted. As the following process might involve some iterations hit the “Save Tree” and store the results found so far in a text file. After restarting ImpRec and re-attaching to the executable this file can be loaded using “Load Tree”.Figure 6: ImpRec invalid entriesNow right click on an invalid API and select “Trace Level3 (Trap Flag)”. ImpRec should now resolve the invalid APIs one by one. Eventually the protected application will terminate or ImpRec is “unable to initialize the tracer”. In this case save the tree again, exit ImpRec, restart the application, restart ImpRec, Attach to the process, load the tree, hit “Show Invalid”, and manually deselect the first invalid entry (<Ctrl> <left click>) to stop ImpRec from resolving this entry again. If you have to restart multiply, you should successively deselect all problematic entries. With HASP-HL 1.20 there should be a maximum of 3 different problematic entries (out of several hundred redirected entries). The problematic entries are:1.GetVersion2.GetProcAddress3.ExitProcess2.3.3 Resolving the problematic 3 entriesResolving these three entries requires either a little trial and error or a short debugging session. For the invalid entries ImpRec offers the Address to which the API has been redirected. In the example below (Figure 7) it would be the address “011D368”. In a new debugger session (the old one will be detected as a debugger session because of the long delay) the address should be entered as a hardware breakpoint by calling <Ctrl G> in the disassembler window and than setting a hardware breakpoint on execution using a right click. A hardware breakpoint is needed here as the code has still to be decrypted. If a breakpoint occurs a short inspection reveals the correct entry. “GetVersion” is usually called at the beginning. “GetProcAddress” has the Address of an API and a module handle on the stack (lower right in the CPU windows, see Figure 8, were the entry “RegisterPenApp” and a reference to kerner32 is passed on the stack). “ExitProcess” is called to terminate the program. In Delphi-applications some of these APIs can be referenced multiply. If all APIs have been identified they can be entered in ImpRec by double clicking the respective invalid API. A list of possible APIs pops up and the correct one can be selected (see Figure 9). This leads to a completed import tree.Figure 7: Address of redirected functionFigure 8: Resolving additional APIsFigure 9: Selecting a resolved API2.3.4 Fixing the executableAfter all invalid entries have been fixed the dump can be adjusted to contain the correct OEP and a correct IAT. To fix the executable it is positively necessary to have ImpRec attached to the running program. Again due to debugger detection ImpRec has to be started after the protected program. If necessary load the completed tree file. Now hit the button “FixDump” and select the dump created in step 2.2 using OllyDebug. The new executable will contain an appended underscore and should be able to be run without a HASP-HL dongle.3 ConclusionThe automatic protection by HASP-HL from Aladdin knowledge systems provides a limited protection that can be removed with some experience and prior knowledge within a few minutes of time. If no dongle is available a restoration is not possible due to the encryption. The large number of redirected APIs (up to several hundred) and the considerable number of anti-debugging modules (50) seems to provide absolutely no security. Even after a closer look the purpose of the anti-debugging modules is unclear as they show no effect at all. The large number of redirects can be reduced to 3 by use of automatic tools. Here too the reason for the large number remains unclear as it has no effect on the security.4 Appendices4.1 List of redirected APIsSome APIs that are redirected by HASP-HL 1.20 are identified and are listed here for completeness4.1.1 Kernel32.dllkernel32.dll, WriteTapemark, WriteProcessMemory, WritePrivateProfileStructW, WritePrivateProfileStructA, WritePrivateProfileStringW, WritePrivateProfileStringA, WriteFileEx, WriteFile, WriteConsoleOutputW, WriteConsoleOutputCharacter, WriteConsoleOutputAttribute, WinExec, WideCharToMultiByte, WaitNamedPipeW, WaitNamedPipeA, WaitForDebugEvent, WaitCommEvent, VirtualUnlock, VirtualQueryEx, VirtualQuery, VirtualProtectEx, VirtualProtect, VirtualLock, VirtualFreeEx, VirtualFree, VirtualAlloc, VerifyVersionInfoA, VerSetConditionMask, VerLanguageNameA, UpdateResourceW, UpdateResourceA, UnlockFileEx, UnlockFile, TransmitCommChar, SystemTimeToFileTime, SuspendThread, SetupComm, SetWaitableTimer, SetVolumeLabelA, SetThreadPriorityBoost, SetThreadPriority, SetThreadExecutionState, SetThreadAffinityMask, SetTapePosition, SetTapeParameters, SetSystemTimeAdjustment, SetSystemTime, SetStdHandle, SetProcessWorkingSetSize, SetProcessPriorityBoost, SetPriorityClass, SetNamedPipeHandleState, SetMailslotInfo, SetLocaleInfoA, SetLocalTime, RestoreLastError, SetHandleInformation,SetFirmwareEnvironmentVaria, SetFileValidData, SetFileTime, SetFileShortNameW, SetFilePointerEx, SetFilePointer, SetFileAttributesW, SetErrorMode, SetEnvironmentVariableW, SetEnvironmentVariableA, SetEndOfFile, SetCurrentDirectoryW, SetComputerNameW, SetComputerNameA, SetCommTimeouts, SetCommState, SetCommMask, SetCommConfig, SearchPathW, SearchPathA, ScrollConsoleScreenBufferW, ScrollConsoleScreenBufferA, ResumeThread, ResetWriteWatch, RemoveDirectoryW, ReadProcessMemory, ReadFileEx, ReadDirectoryChangesW, ReadConsoleW, ReadConsoleOutputW, ReadConsoleOutputCharacterW, ReadConsoleOutputAttribute, ReadConsoleOutputA, ReadConsoleA, RaiseException, QueueUserAPC, QueryPerformanceFrequency, QueryPerformanceCounter, QueryDosDeviceA, QueryDepthSList, PurgeComm, ProcessIdToSessionId, PrepareTape, OutputDebugStringW, OpenWaitableTimerW, OpenWaitableTimerA, OpenThread, OpenSemaphoreW, OpenSemaphoreA, OpenProcess, OpenMutexW, OpenMutexA, OpenFileMappingW, OpenFileMappingA, OpenEventW, OpenEventA, MultiByteToWideChar, MapViewOfFileEx, MapViewOfFile, LockFileEx, LockFile, LocalReAlloc, LocalLock, LocalFree, LocalAlloc, LCMapStringW, LCMapStringA, IsValidLocale, HeapWalk, HeapValidate, HeapUnlock, HeapSize, HeapSetInformation, HeapReAlloc, HeapQueryInformation, HeapLock, HeapFree, HeapDestroy, HeapCreate, HeapCompact, HeapAlloc, GlobalWire, GlobalUnfix, GlobalUnWire, GlobalMemoryStatusEx, GlobalMemoryStatus, GlobalFix, GetWriteWatch, GetVersionExA, GetVersion, GetUserGeoID, GetUserDefaultLCID, GetTimeFormatW, GetTimeFormatA, GetThreadTimes, GetThreadSelectorEntry, GetThreadPriorityBoost, GetThreadPriority, _hwrite, GetTempPathA, GetTempFileNameW, GetTempFileNameA, GetTapePosition, GetTapeParameters, GetSystemWindowsDirectoryA, GetSystemTimeAdjustment, GetSystemTime, GetSystemPowerStatus, GetSystemInfo, GetSystemDirectoryA, GetStringTypeExW, GetStringTypeExA, GetStringTypeA, GetQueuedCompletionStatus, GetProfileStringW, GetProfileStringA, GetProcessWorkingSetSize, GetProcessTimes, GetProcessPriorityBoost, GetProcessId, GetProcessHeaps, GetProcessAffinityMask, GetProcAddress, GetPrivateProfileStructW, GetPrivateProfileStructA, GetPrivateProfileStringW, GetPrivateProfileStringA, GetPrivateProfileSectionW, GetPrivateProfileSectionA, GetPrivateProfileIntW, GetPrivateProfileIntA, GetPriorityClass, GetNumberFormatA, GetNumaHighestNodeNumber, GetNamedPipeInfo, GetNamedPipeHandleStateW, GetNamedPipeHandleStateA, GetModuleHandleW, GetModuleFileNameA, GetMailslotInfo, GetLogicalDrives, GetLogicalDriveStringsW, GetLogicalDriveStringsA, GetLocaleInfoA, GetLocalTime, GetHandleInformation, GetFullPathNameA, GetFirmwareEnvironmentVaria, GetFileType, GetFileTime, GetFileSizeEx, GetFileSize, GetFileAttributesW, GetFileAttributesExW, GetExitCodeThread, GetExitCodeProcess, GetEnvironmentVariableW, GetEnvironmentVariableA, GetEnvironmentStrings, GetDriveTypeW, GetDiskFreeSpaceW, GetDiskFreeSpaceExW, GetDiskFreeSpaceExA, GetDiskFreeSpaceA, GetDevicePowerState, GetDateFormatW, GetDateFormatA, GetCurrencyFormatW, GetCurrencyFormatA, GetComputerNameW, GetComputerNameA, GetCompressedFileSizeW, GetCommTimeouts, GetCommState, GetCommProperties, GetCommModemStatus, GetCommMask, GetCommConfig, GetCPInfoExA, GetBinaryType, FormatMessageW, FormatMessageA, FoldStringW, FoldStringA, FlushViewOfFile, FlushInstructionCache, FlushFileBuffers, FindNextFileA, FindFirstFileExW, FindFirstFileExA, FindFirstFileA, FindFirstChangeNotification, FillConsoleOutputCharacterW, FillConsoleOutputAttribute, FileTimeToSystemTime, FileTimeToDosDateTime, FatalAppExitW, FatalAppExitA, ExpandEnvironmentStringsW, ExpandEnvironmentStringsA, ExitProcess, EscapeCommFunction, EraseTape, EndUpdateResourceW, DosDateTimeToFileTime, DisconnectNamedPipe, DeleteFileW, DeleteFiber, DefineDosDeviceW, DefineDosDeviceA, DebugSetProcessKillOnExit, CreateWaitableTimerA, CreateThread, CreateTapePartition, CreateSemaphoreW, CreateSemaphoreA, CreateProcessW, CreateProcessA, CreatePipe, CreateNamedPipeW, CreateNamedPipeA, CreateMutexW, CreateMutexA, CreateMailslotW, CreateMailslotA, CreateIoCompletionPort, CreateFileW, CreateFileMappingW, CreateFileMappingA, CreateFileA, CreateFiberEx, CreateEventW, CreateEventA, CreateDirectoryW, CreateDirectoryExA, CopyFileExA, CopyFileA, ContinueDebugEvent, ConnectNamedPipe, CompareStringW, CompareStringA, ClearCommError, CancelIo, CallNamedPipeA, BuildCommDCBW, BuildCommDCBAndTimeoutsW, BuildCommDCBA, BeginUpdateResourceW, BeginUpdateResourceA, Beep, BackupWrite, BackupSeek, BackupRead, _hread, _hwrite, lstrcmpi, CreateWaitableTimerW4.1.2 User32.dllIsCharAlphaW, IsCharAlphaNumericW, IsCharAlphaNumericA, IsCharAlphaA, InsertMenuW, InsertMenuItemW, InsertMenuItemA, InsertMenuA, GrayStringW, GrayStringA, GetWindowThreadProcessId, GetUserObjectSecurity, GetUserObjectInformationA, GetThreadDesktop, GetTabbedTextExtentW, GetTabbedTextExtentA, GetMessageW, GetMessageA, GetMenuStringW,GetMenuStringA, GetMenuItemInfoW, GetMenuItemInfoA, GetKeyboardType, GetKeyboardLayoutNameW, GetDlgItemTextW, GetClipboardData, GetClassNameW, GetClassInfoW, GetClassInfoExW, GetClassInfoExA, GetClassInfoA, FillRect, ExitWindowsEx, EnableMenuItem, DrawTextW, DrawTextExW, DrawTextExA, DrawTextA, DrawStateW, DrawStateA, DrawIconEx, DrawEdge, DlgDirSelectExA, DlgDirSelectComboBoxExA, DlgDirListW, DlgDirListComboBoxW, DialogBoxParamW, DialogBoxParamA, DialogBoxIndirectParamW, DialogBoxIndirectParamA, DefFrameProcW, DefFrameProcA, CreateWindowStationW, CreateWindowStationA, CreateWindowExW, CreateWindowExA, CreateMDIWindowW, CreateMDIWindowA, CreateIconFromResourceEx, CreateIcon, CreateDialogParamW, CreateDialogParamA, CreateDialogIndirectParamW, CreateDialogIndirectParamA, CreateDesktopW, CreateDesktopA, CreateCursor, CopyImage, CopyIcon, CheckMenuRadioItem, CheckMenuItem, CharUpperW, CharUpperBuffA, CharUpperA, CharToOemBuffW, IsCharUpperA, CharPrevW, CharPrevExA, CharPrevA, CharNextW, CharLowerW, CharLowerBuffA, CharLowerA, ChangeMenuW, ChangeMenuA, IsCharLowerA, ChangeDisplaySettingsExA, CascadeWindows, CallWindowProcW, CallWindowProcA, CallNextHookEx, CallMsgFilterW, CallMsgFilter, BroadcastSystemMessageW, BroadcastSystemMessage, AppendMenuW, AppendMenuA, MessageBoxExW, MessageBoxIndirectA, MessageBoxIndirectW, ModifyMenuA, ModifyMenuW, MsgWaitForMultipleObjects, MsgWaitForMultipleObjectsEx, OemToCharBuffW, OpenClipboard, OpenDesktopA, OpenDesktopW, OpenWindowStationA, OpenWindowStationW, PeekMessageA, PeekMessageW, PostMessageA, PostMessageW, PostThreadMessageA, RegisterClassA, RegisterClassW, RegisterClipboardFormatA, RegisterClipboardFormatW, RegisterClipboardFormatA, RegisterClipboardFormatW, RemovePropA, RemovePropW, ScrollDC, ScrollWindow, ScrollWindowEx, SendDlgItemMessageA, SendDlgItemMessageW, SendMessageA, SendMessageCallbackA, SendMessageCallbackW, SendMessageTimeoutA, SendMessageTimeoutW, SendMessageW, SendNotifyMessageA, SendNotifyMessageW, SetClassLongA, SetClassLongW, SetClipboardData, SetDlgItemInt, SetMenuItemBitmaps, SetMenuItemInfoA, SetMenuItemInfoW, SetPropA, SetPropW, SetRect, SetScrollPos, SetScrollRange, SubtractRect, TabbedTextOutA, TabbedTextOutW, TileWindows, ToAscii, ToAsciiEx, ToUnicode, ToUnicodeEx, TrackPopupMenu, UnionRect, UnregisterClassA, UnregisterClassW, VkKeyScanA, VkKeyScanExA, WaitForInputIdle, WinHelpA, WinHelpW, keybd_event, mouse_event, wvsprintfA, wvsprintfW, IsCharUpperW, IsDialogMessageW, LoadBitmapA, LoadCursorA, LoadCursorFromFileA, LoadIconA, LoadImageA, LoadImageW, LoadKeyboardLayoutA, LoadMenuIndirectA, LoadMenuIndirectA, ChangeDisplaySettingsExW, IsCharLowerW, LoadStringA, LookupIconIdFromDirectoryEx, MapVirtualKeyExA, MessageBoxExA4.1.3 Advapi32.dllSetFileSecurityW, SetFileSecurityA, RevertToSelf, RegisterEventSourceW, RegisterEventSourceA, RegUnLoadKeyW, RegUnLoadKeyA, RegSetValueW, RegSetValueA, RegSetKeySecurity, RegSaveKeyW, RegSaveKeyExW, RegSaveKeyExA, RegSaveKeyA, RegRestoreKeyW, RegRestoreKeyA, RegReplaceKeyW, RegReplaceKeyA, RegQueryValueW, RegQueryValueExW, RegQueryValueExA, RegQueryValueA, RegQueryMultipleValuesW, RegQueryMultipleValuesA, RegQueryInfoKeyW, RegQueryInfoKeyA, RegOpenUserClassesRoot, RegOpenKeyExW, RegOpenKeyExA, RegNotifyChangeKeyValue, RegLoadKeyW, RegLoadKeyA, RegGetKeySecurity, RegFlushKey, RegEnumValueW, RegEnumValueA, RegEnumKeyW, RegEnumKeyExW, RegEnumKeyExA, RegEnumKeyA, RegDeleteValueW, RegDeleteValueA, RegDeleteKeyW, RegDeleteKeyA, RegCreateKeyExW, RegCreateKeyExA, RegCreateKeyA, RegConnectRegistryW, RegConnectRegistryA, ReadEventLogW, ReadEventLogA, PrivilegedServiceAuditAlarm, PrivilegeCheck, OpenEventLogW, OpenEventLogA, OpenEncryptedFileRawA, OpenBackupEventLogW, OpenBackupEventLogA, ObjectPrivilegeAuditAlarmW, ObjectPrivilegeAuditAlarmA, ObjectOpenAuditAlarmW, ObjectOpenAuditAlarmA, ObjectDeleteAuditAlarmW, ObjectDeleteAuditAlarmA, ObjectCloseAuditAlarmW, ObjectCloseAuditAlarmA, MakeAbsoluteSD, LookupPrivilegeValueW, LookupPrivilegeValueA, LookupPrivilegeNameW, LookupPrivilegeNameA, LookupPrivilegeDisplayNameW, LookupAccountSidW, LookupAccountSidA, LookupAccountNameW, LookupAccountNameA, LogonUserW, LogonUserExW, LogonUserExA, LogonUserA, IsTokenUntrusted, IsTokenRestricted, InitiateSystemShutdownW, InitiateSystemShutdownExW, InitiateSystemShutdownExA, InitiateSystemShutdownA, ImpersonateNamedPipeClient, ImpersonateLoggedOnUser, GetTokenInformation, GetSecurityDescriptorSacl, GetSecurityDescriptorOwner, GetSecurityDescriptorGroup, GetSecurityDescriptorDacl, GetPrivateObjectSecurity, GetKernelObjectSecurity, GetFileSecurityW, GetFileSecurityA, GetEventLogInformation,AbortSystemShutdownA, AccessCheck, AccessCheckAndAuditAlarmA, AccessCheckAndAuditAlarmW, AddAce, AddAuditAccessAce, AdjustTokenGroups, AdjustTokenPrivileges, AllocateAndInitializeSid, BackupEventLogA, BackupEventLogW, CheckTokenMembership, ClearEventLogA, ClearEventLogW, CreatePrivateObjectSecurity, CreateProcessAsUserW, FileEncryptionStatusA, EncryptFileA, DuplicateTokenEx, DecryptFileA, CreateRestrictedToken。
基于USB Key的注册码软件保护方案设计与实现
作者简 介: 赵路华 ( 1 9 8 1 一 ) , 男, 河 南安 阳人 , 安 阳工 学院电子信 息与电气工程学院讲师 , 硕 士研 究生 , 主要研究方向 : 信 息
处理与信息安全。
安 阳工学 院
2 0 1 4 正
( 2 ) 软件注册 码验证 程序段 没有受 到安全 保 护, 攻击者利用反汇编等破解方法就可以分析 出 注册码验证程序 的工作原理 , 进而可 以写出非法 注册机 , 使得注册码保护没有意义。 ( 3 ) 软件版权所有者处在对密钥数据库 的管理 和更新 中, 没有对数据库表进行安全存储 , 恶意攻 击者可攻破数据库或者恶 意内部人员泄露数据库 信息 , 将使得用户信息和注册码 生成算法 R S A私 钥公开 , 注册码 生成算法被攻破 , 攻击者可以写出 非法 注册程 序 。 ( 4 ) 将注册码写人系统注册表 , 攻击 者通过 跟 踪分析 , 可以分析 出注册码写入系统注册表 的位 置, 进而获知注册码 , 利于攻击者对软件程序的分 析, 实施破 解 , 存 在一 定安 全 隐患 。 3基于 U SB K e y的注册 码软件 保 护方 案 3 . 1方 案设 计思 想 针对文献[ 1 ] 方案的安全隐患 , 将U S B K e y 电子 钥匙 和注册码机制结合 , 来对本文针对特殊软件 实施保护。该方案的设计思想是将用户主机机器 指纹信息写入 U S B K e y , 避免文献【 1 ] 将注册码信息 写入系统注册表带来 的安全 隐患 ; 对整个 软件 二 进制代码的 h a s h 值写入 U S B K e y 作为完整性校验 码, 以便对软件进行完整性检验 , 克服文献[ 1 ] 忽略 的完 整性 验证 , 避免 软件 被非法 破坏 ; 同时 , 在 U S B k e y 中设计保 护函数对软件被保护功能进行 保护, 当正版注册用户使用软件被保 护的功能模 块时, 需要借助 U S B K e y 提供的保护函数方可正确 执行 , 使得恶意用户即使绕过软件验证程序 , 软件 被保护的功能模块也不能正常运行。 3 . 2方 案实施 过程 该方案具体实施过程包括用户注册过程和验 证过程。具体过程如下 :
一种USBKey的文件加密软件方案的设计_郭利芳
研究与设计 电 子 测 量 技 术 ELECTRONIC MEASUREMENT TECHNOLOGY第36卷第2期2013年2月 一种USBKey的文件加密软件方案的设计郭利芳 赵 凡 李小兵 汪成明(兰州交通大学电子与信息工程学院 兰州 730070)摘 要:随着信息技术的飞速发展,文件的安全性越来越被重视,防止个人信息文件被窃取已经成为一个重要的研究课题。
将以硬、软件结合的方式,硬件上基于磐石科技的NT119的USBKey,对其进行识别与密码读写,软件上以Microsoft Visual Studio 2008为平台,实现USBKey的识别与读写功能,最终硬软件结合保护文件。
达到只有在拥有相应USBKey和密码后才能打开文件看到相关的信息,实现文件的保护功能。
关键词:USBKey;Microsoft Visual Studio 2008;识别;C#中图分类号:TN402 文献标识码:A 国家标准学科分类代码:520.4060Design of USBKey file encryption software programGuo Lifang Zhao Fan Li Xiaobing Wang Chengming(School of Electronic and Information Engineering,Lanzhou Jiaotong University,Lanzhou 730070,China)Abstract:With the rapid development of information technology,document security is more and more important.Preventing personal information from documents stolen has become an important research topic.This article is to usethe combination of hardware and software.The hardware of the science and technology based on the rock NT119USBKey,which is carried on the identification and password to read.Software which use Microsoft visual studio 2008asthe platform to realize the function of the identification and the reading and writing,which finally protect documentswith hardware and software.Only with corresponding USBKey and password to open files can see relevant information,and realize the documents of the protection function.Keywords:USBKey;Microsoft Visual Studio 2008;identificatio;C# 收稿日期:2013-011 引 言当前软件加密的种类很多,在国外,电子授权和加密锁的占有率旗鼓相当;在国内,软件开发商使用加密锁的比率较高。
基于USBKey的网游数据加密技术的研究与应用
基于USBKey的网游数据加密技术的研究与应用随着互联网的迅猛发展,网游产业成为一个蓬勃发展的行业。
然而,随之而来的问题是网游数据的安全性问题,尤其是游戏账号和虚拟物品的盗窃问题。
为了保护玩家的利益和游戏的可持续发展,研究和应用基于USBKey的网游数据加密技术变得尤为重要。
基于USBKey的网游数据加密技术是一种通过使用USBKey 来加密和保护网游数据的技术。
USBKey是一种可移动存储设备,具有高度的安全性和可靠性。
通过将USBKey与玩家的游戏账号绑定,可以实现数据的加密和防篡改。
当玩家登录游戏时,系统会自动识别并验证USBKey的身份,确保只有合法的用户才能访问游戏数据。
该技术的核心是通过加密算法对网游数据进行加密。
只有在正确的USBKey插入的情况下,才能解密数据并进行游戏。
这种加密技术不仅可以保护游戏账号和虚拟物品的安全,还可以防止外部黑客攻击和数据泄露。
基于USBKey的网游数据加密技术在实际应用中有着广泛的应用前景。
首先,它可以有效地防止游戏账号的盗窃和虚拟物品的非法交易,维护游戏的公平性和玩家的利益。
其次,它可以提高游戏数据的安全性,减少黑客攻击和数据泄露的风险,保护游戏平台和玩家的隐私。
此外,基于USBKey的网游数据加密技术还可以为游戏平台提供更多的商业机会,例如推出特殊定制的USBKey,为玩家提供更多的选择和个性化服务。
当然,基于USBKey的网游数据加密技术也面临一些挑战。
例如,技术的成本较高,需要为每个玩家提供专用的USBKey,增加了运营成本。
此外,技术的可靠性和稳定性需要进一步的研究和验证。
综上所述,基于USBKey的网游数据加密技术是一项具有重要意义和广泛应用前景的研究领域。
通过应用该技术,可以有效地提高网游数据的安全性和玩家的体验,进一步推动网游产业的可持续发展。
基于USB Key身份认证在软件保护平台中的实现
每 一个 U BK v 具有 硬 件 PN码保 护 ,I 和硬 件 构成 数两 方 面 人 手 下 面 就 对这 两 个 技 术 给予 实 现 S e 都 I PN码 了用户 使 用 U BK v的两 个 必要 因 素 . S e 即所 谓 ” 因子认 证 ” 用 32 U B K y驱 动程 序 双 。 . S e 应 用 软 件 保 护 平 台 所 使 用 的 U B K v驱 动 程 序 由编 码 实 S e 现 . 共 有 1 文 件 , 件 的扩 展名 为.L . 一 2个 文 D L 文件 以及 服 务 器 端 的 U B K v管 理模 块 的驱 动程 序 安 装 方法 一 样 .详 细 的实 现 步 S e U B K y具 有 8 一 2 K 的安 全 数 据 存 储 空 问 . 以存 储 数 S e K 18 可 字 证书 、 户密 钥 等 秘密 数 据 . 该存 储 空 问 的 读 写操 作 必 须 通 骤 如 下 : 用 对 () 于 不 同 的 操 作 系 统 驱 动 程 序 的 安 装 路 径 不 同 . 里 以 1对 这 过 程 序 实 现 , 用 户 透 明 , 用 户私 钥 是 不 可 导 出 的 。 绝 了复 对 且 杜 Wi o sX (xeine操 作 系 统 为 例 . 所 有 的 驱动 程 序 复 制 n w PE p r c) d e 将 制 用 户数 字 证 书 或 身份 信 息 的可 能性 23硬 件实 现 加 密算 法 . 到” : N O k s m 2。 C\ WI D WSs t 3 ” ye U BK y内置 C U或 智 能 卡 芯 片 . 以实 现 P I 系 中使 S e P 可 K体 () 所 有 的 D L文 件 添 加 到 注册 表 里 面 , 样 就 完 成 了 所 2将 L 这 用 的数 据 摘 要 、数 据 加 解 密 和签 名 的各 种 算法 .加 解密 运 算 在 有 的 驱 动 程序 的安 装 当1 2个 U B K y驱 动 程 序 和 U BK v管 理 模 块 的 驱 动 程 S e S e U BK y内进 行 . 证 了用 户 密 钥 不 会 出现 在 计 算 机 内存 中 . S e 保 从 有 S e 的 而 杜 绝 了 用 户 密钥 被 黑 客截 取 的 可 能 性 。 持 R A, E 。S 3 序 都 安 装好 了 以后 , 关 U BK v 相 关 操作 才 可 以进 行 。 支 S D SSF3 3 U BK v 写 函 数 . S e 读 3 和 3E D S算法 『 8 1 3 U B K y身 份认 证 的 实 现 、 S e 在 驱 动 程序 安 装 好 之后 。 下来 要 完 成 的工 作 有 以 下 几点 : 接 f) 行 Mi" o i a C + ., 其 工 程 文 件 中 添 加 A , 1 运 cO fVs l + 6 在 1st u 0 c 31基 于 U BK v身份 认 证 过 程 . S e
基于USB KEY文件+密工具—USB key管理系统论文
基于USB KEY的文件加密工具—— USB key管理系统摘要随着信息技术的飞速发展,文件的安全性越来越被重视。
为了实现对个人重要信息的加密,防止别人窃取个人的文件信息,提高文件的安全性,文件加密成为了一个重要的课题。
本设计为了解决用户记忆烦琐的密码问题,以软、硬件相结合的方式,实现了文件加密和解密的功能。
具有操作简单、稳定性高、兼容性好、速度快等特点。
该系统使用Rockey2加密锁,用Delphi进行开发。
本系统分为两部分,一部分是文件的加密解密;另一部分是加密锁的管理工具。
后一部分由本人完成。
本文主要介绍了USB KEY文件加密工具的总体设计和详细设计思路以及应用和编码。
在总体设计中主要介绍了设计该工具的需求分析、系统的选型、以及Rockey2加密锁的介绍。
在详细设计中主要介绍了系统功能的分析、Rockey2加密锁的内存分配、以及数据库的相关设计。
在应用和编码部分主要介绍了硬件的安装,初始化、写用户名和密码的应用和编码,管理界面的设计以及数据库的相关操作。
最后介绍了系统的不足以及改进方案。
关键字:USB;加密;Delphi;管理The Files Encryption Tool Based on USB-KEY——USB -KEY Management SystemAbstractWith the rapid development of IT, the security of the files has been increasingly attention. To implement encryption for important personal information, preventing others that steal personal information, improving the security of the document, encryption has been a very important topic.This design aims to solve the problem that users passwords are remembered difficulty, implement the functions of encryption and decryption for documents by the combination of software and hardware. It has many characteristics, such as simple, stable, good compatibility, speed and so on. The system uses Rockey2 USB Key, developed with Delphi. This system has two parts, one part mark is the document encryption deciphering; another part of the administration implement being to encrypt a lock. The queen part is completed by me.This paper introduces the brief design, detailed design, the application and coding of USB KEY file encryption tool. It introduces the requirements analysis, the system selection for the design, and Rockey2 encryption in the brief design. And it introduces the main functions of the system analysis, the memory allocation of encryption Rockey2, and the related database design in the detailed design. Besides, in the aspect of application and coding, it main introduces the hardware installation, initialization, writing users’ name, passwords for application and coding, and design of management interface, operation of the database. Finally, it introduces the shortcomings of the system and how to improve it.Key word:USB; Encryption; Delphi; Management.目录论文总页数:22页1 引言 (1)1.1选题背景 (1)1.2国内外研究现状 (1)1.3本设计研究的意义 (1)1.4本设计研究的方法 (1)2 USB KEY文件加密工具总体设计 (2)2.1USB KEY文件加密工具需求分析 (2)2.2系统选型 (3)2.2.1设计语言:Delphi (3)2.2.2数据库的选择 (4)2.2.3开发工具的选择 (4)2.2.4开发硬件的选择 (5)2.3 ROCKEY2加密锁 (5)2.3.1 Rockey2加密锁简介 (5)2.3.2 Rockey2加密锁特点 (5)2.3.3 Rockey2加密锁优点 (5)2.3.4 Rockey2 加密锁要点说明 (6)3 USB KEY文件加密工具系统详细设计 (6)3.1 系统功能模块分析 (6)3.2ROCKEY2加密锁内存分配 (7)3.2数据库设计 (8)3.2.1数据库需求分析 (8)3.2.2数据库实体关系设计 (8)3.2.3数据库逻辑设计 (9)4应用以及编码 (10)4.1初始化以及写密码的过程的应用与编码 (10)4.2管理界面的设计 (12)4.2.1管理主界面设计 (12)4.2.2分类管理模块的设计 (13)4.2.3添加客户模块的设计 (14)4.2.4编辑客户模块的设计 (15)4.2.5查看客户模块的设计 (16)4.2.6 Rockey 初始化模块 (16)4.3数据库操作 (18)结论 (19)参考文献 (20)致谢 (21)声明 (22)1 引言1.1选题背景随着社会高科技,商品经济化突飞猛进的发展,计算机的应用已经普及到经济和社会生活的各个领域。
基于USBKEY的BIOS与系统安全解决方案
基于USBKEY的BIOS与系统安全解决方案关键字:USBKEY LinuxBIOS引导程序实时监控BootStrap目前,由于计算机技术的迅速发展,其相关产品越来越多地应用于社会的各行各业,因此随之而生的主机安全防护功能要求逐渐成为各个部门极为关心的问题。
针对不同的安全威胁,目前存在多种主机安全技术和相关安全产品,如防病毒技术、个人防火墙、安全应用程序(如文件加密程序)、安全操作系统等。
这些技术和产品在一定程度上满足人们的安全需求,却没有很好地解决以下两个问题:1.系统访问,即开机时的保护问题,目前普遍采用的是基于口令的弱身份认证技术,很容易被攻破而造成泄密;2.运行时保护(runtime protection),即在合法用户进入系统后因某种原因暂时离开计算机,此时任何人员均可在此系统之上进行操作,从而造成泄密。
本文采用BIOS和操作系统安全增强技术,利用USBKEY提供的高强度密码算法和独立于操作系统安全运算环境,实现了开机时的强身份认证和系统状态的实时监控和保护,有效解决了上述安全问题,目前已在“便携式专用嵌入式安全计算平台”系统中得到了应用。
本机安全解决方案在实际应用过程中,使用系统所带来的安全与性能问题主要集中在三个方面,即BIOS安全、系统本身安全与人为因素。
因此如何正确有效地将这三个问题予以解决是本机安全的关键所在。
考虑到正常的系统引导过程以及如何解决性能与安全的平衡,然后根据对这些相关难点的研究,我们认为将硬件引入到软件设计中来,可有效地增强系统本身的安全性,并可最大限度地防止软件运行所带来的安全隐患。
对于这些问题,主要的解决方法如下:1.基于USBKEY的BIOS安全机制BIOS安全是目前信息安全领域研究的一个热点。
BIOS作为固化在主板上ROM芯片中的一段软件代码,主要包括基本硬件驱动与初始化启动及引导部分代码,因此可在基本硬件检测完毕后,在初始化代码中要求插入正确的USBKEY,实现在BIOS层的身份认证。
一种基于USBKey加解密技术的软件保护方案研究
3 )脱壳 :将可执行文件进行反汇编 ,得到汇编代码 ,通 过 分析来 理解 代码 的算 法和功 能,逆 向分析 原软件 的思路,
然后用高级语言重新设计构造软件 ,这是一个 “ 逆向工程”的 过程 。第一 步,需找 O P O iia E t on) 第二步,抓 E ( r n l nr Pit; g y 取 内存 映像 ; 第三步,重建输入 表 ; 四步,处理 附加 数据 ; 第 第 五步,P E文件优化。经过这些步骤 ,原 来受保护的程序就
解和 逆向机 制 ,对 市场上 比较 成 熟的保护软件 功能及 特征进 行 了对比分析 ,在此基 础上 完成 了一种基 于 uS B
Ky P e 和 F加 壳的软件保 护 方案设计 , 实现 了针对 l 】 E可执行软 件 的加 壳保 护 、反调 试和反 逆 向的功能 ,并 引
入 了 US e B K y硬件授 权机制 ,提 高了软件保 护的可行性 和安全 性。最后 ,通过 测试数据验 证 了系统的功 能及
~
Байду номын сангаас
I
21 年第0 期 02 5
的强大工具。可识别 数千个被 Wid w 频繁使 用的函数 ,并 nos
能将函数参数 注释 出来。
全产 生影响 ,使得程 序的数据 和运 行机制暴露 ,授权软件还
面临着授权失效 的风 险。因此 ,有针对性地 采取 反逆 向的机 制是非常必要 的。 Wid w 平台上 逆 向技术包括 反} 编、调试 、抓取 内存 nos [ 映像等 ,而反逆 向的技 术就是 针对 性 的防护,是 对逆 向功 能 的限制。反 逆向模块 的主要手段就 是提高软件逆 向的门槛 和 难度 ,因此该模块 是反逆向技术 的叠加。
47G 盼 i J 、 ,
基于USBKey安全的现状研究
2 U S B K e y 的工作原理 与验 证
U S B K e y 是 一种 U S B 接 口的 , 内置 单片 机 或 者 智 能 卡 芯片 , 拥 示符 中, 进入v i r u s . e x e 所在 的目录 ; 3 ) 接 着使 用s i g n t o o1 . e x e
有一定 的存储空 间, 存储 着用户的私钥 以及数字证书 的硬件设 签名病毒或者木马程序 ( v i r u s . e x e ): s i g n t o o 1 . e x e s i g n/ n 备。 工作过 程为:
“ 1 3 5 7 9 . p 9 7 5 3 1 / p h v i r u s . e x e ” ; 4 ) U S B k e y 的 管 理 改 造 防范
性、 和不 可否 认性 。
( 2 b 3 e d c 7 7 5 7 4 d 7 3 a 2 a f c f 5 a 1 b 0 3 1 9 4 4 c 1 2 l
8 6 3 5 b b ) 的电脑上 : 1 ) 在证书管理 工具中找到该证书, 并复制 证书使 用者的字 符串, 比如 “ 1 3 5 7 9 . p 9 7 5 3 1 ” ; 2 ) 在c m d 命令提
近年来 , 网络及业 务系统应 用的逐步深入 , 人们 对网上信 从密码学 的角度 看, U S B K e y 的安全 性从公钥 密码体制 和数字
( 1 ) 网络数据 流: 当用户和银 行交易时, 第三方通 过各种方 得到公私密钥后, 公钥 被导 出到u s B K e y 外, 但私钥存储在密钥
( 1 ) U S B K e y 的持有者在 进行网上交易时, 银行会向持有者发 措施 。 某些方面 , U S B K e y 优 于动态密码技 术, 但一些安全 问题 送 由时间字 串, 地址字串, 交易信息字串, 防重放攻击字 串组合 是动态密码没有的, 此 安全 问题主要在客户端而 不是服务器, 在一起 进行加密之后 得到的字串A ; ( 2 ) U S B K e y 依据持有者 的个 因为U S B K e y 的P I N 码都是从 电脑上输入 , 黑 客依然可 以通 过木 人数字证书对银行发送过 来的字串进行某种不可逆运算 ; ( 3 ) 如 马程序截获用户P I N 码, 但动态密码锁采用随机一次性密码 , 此 果银行进行 的运算结果和持有者的运算结果一致, 银 行便认为 问题也就不存在 了。 合法, 交 易才可正常完成 。
USB Key保护进程的设计与实现
USB Key保护进程的设计与实现贾凡;谢蒂【期刊名称】《计算机工程与应用》【年(卷),期】2011(047)015【摘要】针对使用USB Key件进行身份认证和数据签名时,存在PIN码明文传输被窃听及待签名数据有可能会被其他恶意程序篡改等安全威胁,提出了一种基于保护进程的USB Key软件安全架构,从USB Key动文件的完整性、防止USB Key进程被动态DLL注入和进程内存数据的非法修改等方面,确保USB Key进程的真实性和可信性,可以有效地防止PIN码的截获和USB Key进程内存数据被恶意程序修改,进而提高USB Key在使用过程中的安全性.%PIN code may be revealed and transaction data may be intercepted and modified when USB Key used in electronic payment and identification. To avoid that,a security architecture based on protection process is proposed to set up a secure execution environment for USB Key in client. Protection process can ensure the security and trust of USB Key process by verifying the integrity of the driver files,preventing the malicious DLL files inject to USB key process and deterring the interception of data using anti-Hook.【总页数】4页(P72-74,118)【作者】贾凡;谢蒂【作者单位】北京交通大学,电子信息工程学院,北京,100044;信息产业部,计算机安全技术检测中心,北京,100083【正文语种】中文【中图分类】TN918【相关文献】1.基于USB Key的身份认证系统设计与实现 [J], 王飞龙;尹青;郭玉东;庄宽2.基于USB Key的注册码软件保护方案设计与实现 [J], 赵路华;李志瑞3.基于USB KEY及加密驱动的文件加密系统设计与实现 [J], 倪菊华4.基于FPGA数据采集的USBKey安全评估系统设计与实现 [J], 董攀;白长虹5.基于USB Key认证的VPN网络自动连接的设计与实现 [J], 王华;饶传新;马思锐;汪军因版权原因,仅展示原文概要,查看原文内容请购买。
【CN109840399A】基于UsbKey对软件的授权方法【专利】
(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号 (43)申请公布日 (21)申请号 201910156275.7(22)申请日 2019.03.01(71)申请人 浙江安点科技有限责任公司地址 313000 浙江省湖州市吴兴区区府路1188号总部自由港H幢8楼A(72)发明人 罗艳 (74)专利代理机构 杭州裕阳联合专利代理有限公司 33289代理人 姚宇吉(51)Int.Cl.G06F 21/12(2013.01)G06F 21/51(2013.01)(54)发明名称基于UsbKey对软件的授权方法(57)摘要本发明公开了一种基于UsbKey对软件的授权方法,在安装时,获取待授权计算机的第一计算机信息、UsbKey中存储的授权信息和软件包;根据第一计算机信息和授权信息将软件包安装到待授权的计算机中,同时将UsbKey中授权信息的已授权安装次数进行更新;在使用时,运行对应计算机中已经授权安装的软件包进行工作;在卸载时,获取待卸载计算机的第二计算机信息和UsbKey中存储的授权信息;根据第二计算机信息和授权信息将软件包从待卸载的计算机中进行卸载,同时将UsbKey中授权信息的已授权安装次数进行更新。
本发明能够降低UsbKey的使用频率,以降低出现硬件故障的几率,以延长使用寿命;并且能够避免重复安装卸载对已授权安装次数的影响,以降低维护成本,方便用户使用。
权利要求书2页 说明书6页 附图3页CN 109840399 A 2019.06.04C N 109840399A权 利 要 求 书1/2页CN 109840399 A1.一种基于UsbKey对软件的授权方法,其特征在于,包括以下步骤;在安装时,获取待授权计算机的第一计算机信息、UsbKey中存储的授权信息和软件包;根据所述第一计算机信息和授权信息将软件包安装到待授权的计算机中,同时将UsbKey中授权信息的已授权安装次数进行更新;在使用时,运行对应计算机中已经授权安装的软件包进行工作;在卸载时,获取待卸载计算机的第二计算机信息和UsbKey中存储的授权信息;根据所述第二计算机信息和授权信息将软件包从待卸载的计算机中进行卸载,同时将UsbKey中授权信息的已授权安装次数进行更新。
基于USBKey的应用安全解决方案
基于USBKey的应用安全解决方案基于USBKey的应用安全解决方案北京东方通科技公司金融方案中心2004-06目录1项目背景 (3)2方案介绍 (3)2.1 B/S应用USBKey安全解决 (4)2.2 C/S应用USBKey安全解决 (6)2.3 USBKey管理系统 (7)3应用USBKey安全改造 (7)3.1 新增应用的USBKey改造 (8)3.2 原有应用的USBKey改造 (8)4方案特点 (9)5方案总结 (10)1项目背景随着计算机网络通信技术和信息加密技术的快速发展,人们迫切需要一种具有高度安全性、小巧、灵活、易用及便携等特点的硬件设备来存储密钥等需要保密的安全信息。
USBKey 正是为了满足这种需求而设计的一种安全产品,其安全核心是智能卡技术。
USBKey又称电子钥匙,是基于USB接口的信息安全产品。
采用了国际上先进的智能卡技术,具有内部的操作系统和安全核心管理。
USBKey主要由微处理器、微型操作系统、USB通讯接口三部分组成,是将智能卡与智能卡读写器集成一体的便携式安全设备。
它体积小巧,式样美观高档,可以由用户随身携带。
USBKey作为用户身份认证时的核心凭证使用,由于借助了硬件(智能卡)的安全特性,所以极大地提高了身份认证安全强度,保障了应用安全性。
USBKey也能够和当今信息安全领域最尖端的PKI以及CA认证技术紧密结合,利用USBKey内极为安全的智能芯片来存储和使用用户的私有密钥和第三方认证机构所颁发的数字证书。
虽然现在有很多应用都把私有密钥和数字证书存储在计算机的硬盘或软盘当中,但出于安全性考虑,使用自动生成私有密钥和安全存储数字证书的USBKey 则会更好、更安全。
这样可以防止黑客通过植入病毒程序盗取合法用户的私有密钥,伪装成为合法用户的身份在网络上数字签名,进行诈骗和非法交易。
北京东方通科技公司为应用系统提供了一整套基于USBKey的安全解决方案,充分考虑到应用安全性的各个环节,从安全性和易用性出发,为多种应用系统(基于互联网的新兴B/S结构应用系统和传统基于C/S结构的应用系统)均搭建起强大的USBKey底层安全支撑平台。
基于USBKey的软件保护增强策略
基于USBKey的软件保护增强策略马征宇;严迎建【期刊名称】《计算机工程与设计》【年(卷),期】2017(38)1【摘要】To make sure computer software run in the trusted environment,through the software protection studied in the operating system of Linux,a strategy of software protection based on USBKey was BKey internal strong crypto-operation and secure storage capacity were combined,and identity authentication and trusted computing were introduced.Aiming at solving the deficiency in USBKey certification,the identity authentication scheme based on the blind was introduced,due to the blind factors participated,the freshness of certification was guaranteed and the replay attack was prevented.This strategy of software certification was modeled and the loopholes and defects existing in the strategy were illustrated from the enemy attack view point.A flow system model was proposed.Analysis verifies that this strategy of software protection satisfies the needs of security.%为使计算机软件在一个可信的环境中运行,通过对Linux操作系统下的软件保护进行研究,提出一种基于USBKey的软件保护策略.结合USBKey内部强大的密码运算和安全存储能力,注入身份认证和可信计算思想.针对USBKey认证中的不足进行改进,引入基于盲化的身份认证方案,盲化因子的参与保证认证的新鲜度,防止重放攻击,对软件认证策略进行建模,从敌手攻击上说明这种策略存在的漏洞和缺陷,提出一种流系统模型,协议分析验证了该增强保护策略满足安全性需求.【总页数】6页(P53-58)【作者】马征宇;严迎建【作者单位】信息工程大学密码工程学院专用芯片设计教研室,河南郑州 450001;信息工程大学密码工程学院专用芯片设计教研室,河南郑州 450001【正文语种】中文【中图分类】TP311.56【相关文献】1.基于USBKEY的网络存储用户数据保护的研究与实现 [J], 喻潇;田里;刘喆;王捷2.基于AES加密算法的USBKey解锁方案 [J], 邓明荣;刘进;李宇平;蔡梅松;孙玄;孟凡3.基于USBKEY的网络存储用户数据保护的研究与实现 [J], 喻潇;田里;刘喆;王捷;;;;;4.基于FPGA数据采集的USBKey安全评估系统设计与实现 [J], 董攀;白长虹5.基于指纹USBKEY和监控功能的强身份认证设计 [J], 张炜玲;林文畅;黄鸿因版权原因,仅展示原文概要,查看原文内容请购买。
基于USB Key的注册码软件保护方案设计与实现
基于USB Key的注册码软件保护方案设计与实现
赵路华;李志瑞
【期刊名称】《安阳工学院学报》
【年(卷),期】2014(000)002
【摘要】对一种基于RSA算法的注册码软件加密保护方案进行了分析,指出了原有方案中存在单纯考虑算法安全强度、忽略软件完整性检验和验证程序代码缺少安全保护等脆弱性问题,并针对这些安全隐患和本文需要保护的特殊软件,提出了一种基于USB Key的注册码软件保护方案。
借助USB Key电子钥匙,完整性技术和保护函数对软件进行保护,提高软件保护的安全性。
最后对软件保护方案的关键模块进行了设计和实现,并经过实验测试验证了设计方案的合理性和有效性。
【总页数】4页(P47-49,53)
【作者】赵路华;李志瑞
【作者单位】安阳工学院电子信息与电气工程学院,河南安阳455000;安阳工学院电子信息与电气工程学院,河南安阳455000
【正文语种】中文
【中图分类】TP391
【相关文献】
1.一种基于USB Key加解密技术的软件保护方案研究 [J], 王玮
2.基于RSA数字签名的注册码软加密保护方案在石油工控软件的应用 [J], 苏玉杰;杨飞;刘波涛
3.基于MD5的软件注册码的设计与实现 [J], 管丽娟
4.基于注册码的软件授权保护系统的设计与实现 [J], 何永瑾; 郭肖旺; 赵德政
5.基于注册码的软件授权保护系统的设计与实现 [J], 何永瑾; 郭肖旺; 赵德政因版权原因,仅展示原文概要,查看原文内容请购买。
二代Ukey调研报告
二代USBKey产品调研报告1.二代USBKey介绍二代USBKey(又叫增强型USBKey)在一代USBKey的基础上,增加了液晶屏和按键两项新功能,除了具备一代USBKey的功能外,还能将网银系统传入的要签名的信息根据银行系统自定义的规则,通过液晶屏显示给客户进行交易按键确认,用户所见信息就是要传给网银验签服务器真正进行交易的信息,所见即所签,防止数据在客户端被黑客程序、木马病毒等纂改而导致非法交易。
因此,二代USBKey 较一代USBKey能够真正确保数据在客户端的安全性,使整个交易过程无懈可击。
2.监管要求针对电子银行信息安全管理及风险防范,中国人民银行于2010年1月19日制订并印发了《网上银行系统信息安全通用规范(试行)》(银发【2010】19号),其中6.1.2.1 部分对USB Key产品的技术规范、性能参数及业务运作安全规范提出了明确的要求,同时在分析各金融单位网上银行系统曾经发生过的一些风险案例后提出了增强要求,且明确规定增强要求必须在文件下发之日起三年内达标。
关于二代USBKey具体要求摘录如下:【基本要求】e)应保证私钥在生成、存储和使用等阶段的安全:●USB Key在执行签名等敏感操作前应经过客户身份鉴别。
●USB Key在执行签名等敏感操作时,应具备操作提示功能,包括但不限于声音、指示灯、屏幕等显示形式。
【增强要求】a)USB Key应能够防远程挟持,例如具有屏幕提示、语音提示、按键确认等功能,可以对交易指令完整性进行校验、对交易指令合法性进行鉴别、对关键交易数据进行输入和确认。
b)未经过按键确认,USB Key不能签名和输出,在等待一段时间后,可自动清除数据,并复位状态。
c)USB Key应能够自动识别待签名数据的格式,识别后在屏幕上显示签名数据或对其进行语音提示。
按照人民银行要求,截止2013年1月18日之前,我行必须完成网上银行系统USBKey的升级改造工作,以达到人民银行上述增强要求。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
要简 要 阐释 。
1基于 USBk e y技术系统的软件保护安全架构 US B k e y技 术 系统 在 内部 技 术 结 构组 成 过 程 中 ,引 入运 用
了我 国解 放 军 信 息 工 程 大 学 独 立 自主 研发 形 成 的 国 产 S OC芯 片技 术 组 件 ,其 型 号 为 HX 6 8 0 1 ,以 及 由韩 国三 星 电子 公 司 生
技术交流
基于 US B K e y的软件保护增 强策 略研究
金超 广扑『 华夏 职业 学 院
摘要 :U S B K e y的引 入运 用 ,有 效 改善 和提 升 了我 国软件 保护 技 术 活 动 的综合 性 组 织 开展 水 平 ,是确 保 我 国现 代 软 件产 业 实现 良好 稳 定有序 发展 的重要 前提 ,本 文 围绕 基于 U S B K e y的软 件保 护 增 强 策略 ,择取 两个 具体 方 面展 开 了
高 速 接 口技术 组件 等 。
中完 成 应用 技 术软 件 的 安装 包 读取 技 术 环节 ,并 且 在 导入 运 用 系统 内部 配置 运 用的 S OC芯片 技术 组件 ,能够 实现 对具 备 U S B k e y技 术 条件 下 ,针 对 应 用软 件 安 装包 的 完 整性 水 平 展开 充 分基 础 性特 征的 哈希 、度 量 、 签名、 验 签等 基 础性 功能 要素 , 确认 。
产提供的 N a n d f a l s h存 储 芯 片 技 术 组件 。HX 6 8 0 1 芯 片 技 术 组
图 1基 于 US Bk e y技 术系 统的 软件 保护 安全 架构
通 过 对 图 1中列 示 的 有 关 技 术 信 息 要 素 战 卡 分 析 可 以 知
道 ,U S B k e y技 术 组件 内部 能 够全 面 存 储 系统 中全体 用户 群 体 件 中 ,本 身 同时 包含 对 称 算法 、非 对 称 算 法 ,以及 杂 凑算 法 弓 I 基础 性 身份 认 证数 据信 息 , 以及 P I N 码 数 据信 息 ,并 且能 够 在 擎 技 术 组 件 ,在 此基 础 上还 包 含安 装 在 片状 技 术 结构 之 上的 , 同时 调 动两 个 身份 认 证技 术 应 用模 块 的 条件 下 、完 成 双方 身 份 参数设定在 5 1 2 k标 准之 上 的 可 擦 除存 储 体 E f l a s h技 术组 件 、
强化 处置 过 程 中 ,顺 利获 取 到最 优 化 的技 术 效果 ,必 须 预 先实
C RB罗界 ,证 明 见文 献 [ 1 】 。
参 考文 献
4结束 语 [ 1 】 王永 良, 陈辉 , 彭应宁 , 万群 . 空 间谱估计理论 与算 法 【 M】 , 存 在 阵 列误 差下 MUS I C算 法 的性 能 严 重 下 降 ,基 于 波束 北 京 :清 华 大学 出版 社 ,2 0 0 4 空 间的 空 间 谱估 计 方 法 ,先将 物 理 空 间的 阵元 进 行 合成 为 一个 【 2 】 We i s s A J ,F r i e d l a n d e r B.E f f e c t s o f mo d e l i n g
以及 数据 密 码 资 源要 素 的安 全 性存 储 管理 控 制 ,从 而 能够 充 分 满 足 安装 在 US B k e y技 术 系 统 内部核 心 性技 术 构成 模 块 的功 能
性 使 用需 求 。
2基于 USB k e y技术强化软件保护的具体策略
想要 在 基于 US B k e y技 术 运 用背 景 下获 取 到软 件安 全 保 护
中天技 术 公 司生产 提 供的 C K8 1 O C P U 技 术组 件 、以及 US B 2 . 0
证 明技 术 处理 过 程 ;L i n u x操 作 系统 能 够在 运 用 内核 驱 动 技 术
功 能 形 态的 背 景之 下 ,从 计 算机 硬 盘 中 ,或 者是 从计 算 机 光驱
简要 的 分析 论述 。 关键词 :U S B k e y 软 件保护 增 强策略
为切 实 保 障 我 国现 有 的计 算机 软 件 产 品 ,能够 长 期 在安 全
为 确保 US B k e y技 术 系 统应 用 背景 下 ,软 件 安全 保护 工 作
稳定 的技 术环 境 中 运 行使 用 ,技 术 人 员可 以借 由对安 装 运行 在 的 综合 性 效 能获 取 水平 实 现程 度 显著 的 改 善优 化 ,这 里 给 出一
机 制 ,以 及可 信 计算 指 导 实施 思 想 的实 践 业务 背 景之 下 ,能 够
保证 和 促进 我 国 U S B k e y技 术 的现 有缺 陷 获取 到 充 分的 改 良优
化 ,在 借 由盲 化 因 子提 升 身份 认证 处置 过 程 中的 新鲜 度 实现 水
平 基础 上 ,能 够 显 著减 低 和避 免 重放 攻 击 事件 的 发 生可 能性 , 有鉴 于 此 ,本文 针 对强 策略 展开 简
码数 据 信 息要 素 运 算 处理 能 力 ,以 及安 全 性数 据 信 息要 素 存储 能 够实 现 对 US B k e y技 术 系统 ,以及 上层 应 用技 术组 件 之 间的
能 力 的实 践 背景 之 下 ,通 常在 借 由 引入 运 用 身份 认证 技 术 处理 相 互性 身份 认证技 术 处理 过程 。