最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

椭圆曲线加密分析:FLEXLM ECC问答

IT圈 admin 62浏览 0评论

2024年4月15日发(作者:濮阳怜南)

标 题: 【原创】椭圆曲线加密分析:FLEXLM ECC问答[7月16日更新到第7部分]

作 者: readyu

时 间: 2012-06-25,19:00:18

链 接: /?t=152615

说明:

我曾经写过ECCTool用于学习和研究椭圆曲线加密在软件上的应用。

椭圆曲线密码学工具 ECCTooL v1.04

原帖年代久远不再更新。v1.05版本我放在本帖3#。

FLexLM ECC是椭圆曲线签名的一个典型应用,不可不察。

我整理了一下FLEXLM ECC方面的研究心得, 准备把它完全写出来。

后面会有算法描述的例子代码。

FLEXLM ECC问答 (1)

readyu 2012.6

1. FLEXLM是个虾米东西?

FLEXlm是应用广泛的License管理工具。宣称数千家EDA工具采用它管理授权。

FLEXlm对厂商来说,它的优点是证书管理功能强大, 支持平台众多。

对最终用户来说,它的缺点是不够友好, 比如Windows下,经常由于某些原因,flexlm服务启动错误。

对于破解者来说,它有着为数众多的教本。维基百科上的条目为:/wiki/FLEXlm

FLEXLM本来属于GLOBEtrotter。Macrovision曾经收购GLOBEtrotter。

2006年的时候,FLEXLM原来的开发组跑路,另起灶头,产品叫RLM。

/

2008年Macrovision把FLEXLM卖了。现在叫FlexNet Publisher。

/products/

2. FLexLM 的ECC(椭圆曲线加密)怎么来的?

早期的flexlm采用的常规加密,不安全,能被做出lic。这样的教程是很多的。

flexlm的安全性完全得不到保障,所以,自 v8(大约2001-2002)版本引入了公钥加密算法:椭圆曲线加密。

从此,它一直是flexlm的金钟罩。包括v9(2003-) , v10(2004-) , v11(2007-), 到最新的版

本 v11.10 (2012) 。

FlexLm的ECC没有它自己的东西,完全采购自椭圆曲线加密系统的专利拥有者:Certicom公司。

换而言之, flexlm ecc是购买自certicom的一套代码,相当于在腐朽的木门上套一层黄金甲。

OK, 从此它是不破金身了。

3. Certicom公司是何方神圣?

RSA和ECC是两大主流的公钥密码算法体系。相比RSA,ECC晚出生10多年,推广不如前者。

Certicom公司是ECC的主要商业支持者,它拥有多项专利。其地位可与RSA公司匹敌(RSA于2006年被

EMC公司收购)。

有一则消息说,2003年美国国家安全局(NSA)以2500万美元支付了Certicom的26项技术许可。

另外有一则消息, Certicom 2007年起诉索尼公司,要求其支付PS3,DVD播放器等涉及加密技术侵权的

专利费用。

Certicom的创办人Scott Vanstone,是加拿大滑铁卢大学的数学系教授和皇家科学院院士。

以前是研究椭圆曲线加密的,后来创办Certicom公司,努力把ECC从数学界推广到工业界。

Scott写过一本《椭圆曲线密码学导论》, 颇有名气。

4. FLEXLM 如何用的ECC?

说来话长。一句话说:FLexLM 在license验证上,主要用的ECDSA(椭圆曲线数字签名算法)。

具体的讲: flexlm针对ECDSA有一些自己定义的东西以抵抗破解。 后面我会说到,这些自定义的

东西也不是那么牢固。

5. FLEXLM ECC的通用破解方法?

FLEXLM ECC的通用破解方法就是:

完全按照它的ECDSA算法签名, 只替换公钥和checksum, 写一个keygen生成license。

从逻辑上讲,生成license的方法和原厂的完全一致。

具体该怎么做呢:

首先, 实现标准的ECDSA签名算法。椭圆曲线的具体算法,可以用现成的miracl,cryptopp等加密库代

码。 只需要搞清楚ECDSA的使用方法就可以。

从早期版本 v9.2 (2004) , 到最新版本v11.10 (2012) 。它的ecc公钥都是有checksum的。

替换公钥,首先得搞清楚checksum。它只有一个函数,不算复杂,后面我会给出代码。

计算这个checksum, 对所有版本都是适合的。

其次, 公钥在文件里是加密打散的,有大量垃圾代码。这些干扰使得flexlm可读性很差。获取公钥需要

调试。在我写SlickEdit的patch keygen,我曾经采用调试的方法,非常不方便。

那么,有没有更方便的方法获取公钥呢?

ECC验证代码在它执行过程中有其自身的特点。正如游戏辅助工具可以搜索血量,我们也可以写一个辅助

工具从内存中获取公钥。

在很多次研究之后,我找出一个通用的方法。不需要再拘泥于具体的代码,可以dump出公钥 ,然后用

ecctool生成自己的公私钥对,替换公钥,然后可以就写keygen。

由此写了一个工具,对windows平台可直接操作。 对其它平台,把内存镜像出来操作即可。

对于非Windows平台,可以在VMware里面操作,制作一份snapshot,得到内存镜像。

算法上经过多次优化和排除错误数据,从2GB的内存镜像里找出正确的公钥,平均只需要6秒钟。

2024年4月15日发(作者:濮阳怜南)

标 题: 【原创】椭圆曲线加密分析:FLEXLM ECC问答[7月16日更新到第7部分]

作 者: readyu

时 间: 2012-06-25,19:00:18

链 接: /?t=152615

说明:

我曾经写过ECCTool用于学习和研究椭圆曲线加密在软件上的应用。

椭圆曲线密码学工具 ECCTooL v1.04

原帖年代久远不再更新。v1.05版本我放在本帖3#。

FLexLM ECC是椭圆曲线签名的一个典型应用,不可不察。

我整理了一下FLEXLM ECC方面的研究心得, 准备把它完全写出来。

后面会有算法描述的例子代码。

FLEXLM ECC问答 (1)

readyu 2012.6

1. FLEXLM是个虾米东西?

FLEXlm是应用广泛的License管理工具。宣称数千家EDA工具采用它管理授权。

FLEXlm对厂商来说,它的优点是证书管理功能强大, 支持平台众多。

对最终用户来说,它的缺点是不够友好, 比如Windows下,经常由于某些原因,flexlm服务启动错误。

对于破解者来说,它有着为数众多的教本。维基百科上的条目为:/wiki/FLEXlm

FLEXLM本来属于GLOBEtrotter。Macrovision曾经收购GLOBEtrotter。

2006年的时候,FLEXLM原来的开发组跑路,另起灶头,产品叫RLM。

/

2008年Macrovision把FLEXLM卖了。现在叫FlexNet Publisher。

/products/

2. FLexLM 的ECC(椭圆曲线加密)怎么来的?

早期的flexlm采用的常规加密,不安全,能被做出lic。这样的教程是很多的。

flexlm的安全性完全得不到保障,所以,自 v8(大约2001-2002)版本引入了公钥加密算法:椭圆曲线加密。

从此,它一直是flexlm的金钟罩。包括v9(2003-) , v10(2004-) , v11(2007-), 到最新的版

本 v11.10 (2012) 。

FlexLm的ECC没有它自己的东西,完全采购自椭圆曲线加密系统的专利拥有者:Certicom公司。

换而言之, flexlm ecc是购买自certicom的一套代码,相当于在腐朽的木门上套一层黄金甲。

OK, 从此它是不破金身了。

3. Certicom公司是何方神圣?

RSA和ECC是两大主流的公钥密码算法体系。相比RSA,ECC晚出生10多年,推广不如前者。

Certicom公司是ECC的主要商业支持者,它拥有多项专利。其地位可与RSA公司匹敌(RSA于2006年被

EMC公司收购)。

有一则消息说,2003年美国国家安全局(NSA)以2500万美元支付了Certicom的26项技术许可。

另外有一则消息, Certicom 2007年起诉索尼公司,要求其支付PS3,DVD播放器等涉及加密技术侵权的

专利费用。

Certicom的创办人Scott Vanstone,是加拿大滑铁卢大学的数学系教授和皇家科学院院士。

以前是研究椭圆曲线加密的,后来创办Certicom公司,努力把ECC从数学界推广到工业界。

Scott写过一本《椭圆曲线密码学导论》, 颇有名气。

4. FLEXLM 如何用的ECC?

说来话长。一句话说:FLexLM 在license验证上,主要用的ECDSA(椭圆曲线数字签名算法)。

具体的讲: flexlm针对ECDSA有一些自己定义的东西以抵抗破解。 后面我会说到,这些自定义的

东西也不是那么牢固。

5. FLEXLM ECC的通用破解方法?

FLEXLM ECC的通用破解方法就是:

完全按照它的ECDSA算法签名, 只替换公钥和checksum, 写一个keygen生成license。

从逻辑上讲,生成license的方法和原厂的完全一致。

具体该怎么做呢:

首先, 实现标准的ECDSA签名算法。椭圆曲线的具体算法,可以用现成的miracl,cryptopp等加密库代

码。 只需要搞清楚ECDSA的使用方法就可以。

从早期版本 v9.2 (2004) , 到最新版本v11.10 (2012) 。它的ecc公钥都是有checksum的。

替换公钥,首先得搞清楚checksum。它只有一个函数,不算复杂,后面我会给出代码。

计算这个checksum, 对所有版本都是适合的。

其次, 公钥在文件里是加密打散的,有大量垃圾代码。这些干扰使得flexlm可读性很差。获取公钥需要

调试。在我写SlickEdit的patch keygen,我曾经采用调试的方法,非常不方便。

那么,有没有更方便的方法获取公钥呢?

ECC验证代码在它执行过程中有其自身的特点。正如游戏辅助工具可以搜索血量,我们也可以写一个辅助

工具从内存中获取公钥。

在很多次研究之后,我找出一个通用的方法。不需要再拘泥于具体的代码,可以dump出公钥 ,然后用

ecctool生成自己的公私钥对,替换公钥,然后可以就写keygen。

由此写了一个工具,对windows平台可直接操作。 对其它平台,把内存镜像出来操作即可。

对于非Windows平台,可以在VMware里面操作,制作一份snapshot,得到内存镜像。

算法上经过多次优化和排除错误数据,从2GB的内存镜像里找出正确的公钥,平均只需要6秒钟。

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论