資源描述:
《橢圓曲線加密分析:flexlm ecc問答》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、標(biāo)題:【原創(chuàng)】橢圓曲線加密分析:FLEXLMECC問答[7月16日更新到第7部分]作者:readyu時間:2012-06-25,19:00:18鏈接:http://bbs.pediy.com/showthread.php?t=152615說明:我曾經(jīng)寫過ECCTool用于學(xué)習(xí)和研究橢圓曲線加密在軟件上的應(yīng)用。橢圓曲線密碼學(xué)工具?ECCTooL?v1.04原帖年代久遠不再更新。v1.05版本我放在本帖3#。FLexLM?ECC是橢圓曲線簽名的一個典型應(yīng)用,不可不察。我整理了一下FLEXLM?ECC方面的研究心得,?準(zhǔn)備把它完全寫出來。后面會有算法描述的例子代碼。FLEXLM?ECC問答?(1)
2、readyu?2012.61.?FLEXLM是個蝦米東西?FLEXlm是應(yīng)用廣泛的License管理工具。宣稱數(shù)千家EDA工具采用它管理授權(quán)。FLEXlm對廠商來說,它的優(yōu)點是證書管理功能強大,?支持平臺眾多。對最終用戶來說,它的缺點是不夠友好,?比如Windows下,經(jīng)常由于某些原因,flexlm服務(wù)啟動錯誤。對于破解者來說,它有著為數(shù)眾多的教本。維基百科上的條目為:http://en.wikipedia.org/wiki/FLEXlmFLEXLM本來屬于GLOBEtrotter。Macrovision曾經(jīng)收購GLOBEtrotter。2006年的時候,F(xiàn)LEXLM原來的開發(fā)組跑路,另起灶
3、頭,產(chǎn)品叫RLM。http://www.reprisesoftware.com/index.php2008年Macrovision把FLEXLM賣了?,F(xiàn)在叫FlexNet?Publisher。http://www.flexerasoftware.com/products/flexnet-publisher.htm2.?FLexLM?的ECC(橢圓曲線加密)怎么來的?早期的flexlm采用的常規(guī)加密,不安全,能被做出lic。這樣的教程是很多的。flexlm的安全性完全得不到保障,所以,自?v8(大約2001-2002)版本引入了公鑰加密算法:橢圓曲線加密。從此,它一直是flexlm的金鐘罩。包
4、括v9(2003-)?,?v10(2004-)?,?v11(2007-),?到最新的版本?v11.10?(2012)?。FlexLm的ECC沒有它自己的東西,完全采購自橢圓曲線加密系統(tǒng)的專利擁有者:Certicom公司。換而言之,?flexlm?ecc是購買自certicom的一套代碼,相當(dāng)于在腐朽的木門上套一層黃金甲。OK,?從此它是不破金身了。3.?Certicom公司是何方神圣?RSA和ECC是兩大主流的公鑰密碼算法體系。相比RSA,ECC晚出生10多年,推廣不如前者。Certicom公司是ECC的主要商業(yè)支持者,它擁有多項專利。其地位可與RSA公司匹敵(RSA于2006年被EMC公司
5、收購)。有一則消息說,2003年美國國家安全局(NSA)以2500萬美元支付了Certicom的26項技術(shù)許可。另外有一則消息,?Certicom?2007年起訴索尼公司,要求其支付PS3,DVD播放器等涉及加密技術(shù)侵權(quán)的專利費用。Certicom的創(chuàng)辦人Scott?Vanstone,是加拿大滑鐵盧大學(xué)的數(shù)學(xué)系教授和皇家科學(xué)院院士。以前是研究橢圓曲線加密的,后來創(chuàng)辦Certicom公司,努力把ECC從數(shù)學(xué)界推廣到工業(yè)界。Scott寫過一本《橢圓曲線密碼學(xué)導(dǎo)論》,?頗有名氣。4.?FLEXLM?如何用的ECC?說來話長。一句話說:FLexLM?在license驗證上,主要用的ECDSA(橢圓曲
6、線數(shù)字簽名算法)。具體的講:?flexlm針對ECDSA有一些自己定義的東西以抵抗破解。?后面我會說到,這些自定義的東西也不是那么牢固。5.?FLEXLM?ECC的通用破解方法?FLEXLM?ECC的通用破解方法就是:完全按照它的ECDSA算法簽名,?只替換公鑰和checksum,?寫一個keygen生成license。從邏輯上講,生成license的方法和原廠的完全一致。具體該怎么做呢:首先,?實現(xiàn)標(biāo)準(zhǔn)的ECDSA簽名算法。橢圓曲線的具體算法,可以用現(xiàn)成的miracl,cryptopp等加密庫代碼。?只需要搞清楚ECDSA的使用方法就可以。從早期版本?v9.2?(2004)?,?到最新版本
7、v11.10?(2012)?。它的ecc公鑰都是有checksum的。替換公鑰,首先得搞清楚checksum。它只有一個函數(shù),不算復(fù)雜,后面我會給出代碼。計算這個checksum,?對所有版本都是適合的。其次,?公鑰在文件里是加密打散的,有大量垃圾代碼。這些干擾使得flexlm可讀性很差。獲取公鑰需要調(diào)試。在我寫SlickEdit的patch?keygen,我曾經(jīng)采用調(diào)試的方法,非常不方便。那么,有沒有更方便