作者priv (邪恶松鼠)
看板Modchip
标题[Wii ] Wii软改观念解析(一) Hash/RSA/电子签章
时间Mon Jul 12 13:35:25 2010
从六月底才开始接触Wii软改,算是软改新手
不过个人背景的关系,相信应该比一般人容易抓到重点
最近会写一些文章,针对Wii软改的基本架构、观念来解析
本着抛砖引玉的心态,希望各方高手也能不啬指教
对一般软改单纯只是拿来备份游戏的人,相信也可以提升观念,减少盲试的次数
本文会以一般无资讯背景的板友为对象来说明
不过有可能还是会有点无趣,有兴趣的再看吧!
在进入实际软改的解说前,先讲一些相关的基本概念
1. Hash(杂凑函数)
我们一般在生活中,有许多Hash运用的实例
例如最常见的CRC32,以及MD5、SHA-1等等,广泛应用在档案检查的上面。
ZIP/RAR在解压缩的时候,会比对原始记录的CRC32码,和解出来的CRC32
以判断此档案是否有毁损的问题,而我们如果从网路上抓了档案,例如linux安装光碟
往往也会用md5码来确认此iso档是否正确无误
档案 ----------> Hash值
Hash演算法
那麽究竟什麽是Hash? 我以任意长度的档案,不管是64kb,或64MB,甚至64GB
都可以用很快的速度,计算出一个固定长度的Hash值
当原始档案变动任何一个位元,Hash值都会产生天翻地覆的变化
所以,两个档案得到同一个Hash值的机率是非常的小的
是以可以拿来当做检查档案的依据
2. RSA
RSA演算法普遍用於Wii上面的资料加解密和签章检查
内容对非本科系的人不是很容易理解,我用比较简单的方法来说明
传统的加密属於一对一的对应
举个不是很贴切但是比较容易理解的概念就是
今天你家的门,要关上和打开,用的都是同一把钥匙
我加密资料,加密和解密所用的'key'(钥匙),也是同一个
就好像ZIP/RAR的加密,你用abc123对档案上锁,那要解压缩的时候
同样也要用abc123把档案打开来
传统加解密
档案 ----------> 加密资料
abc123加密
加密资料 ----------> 档案
abc123解密
而比较现代的加密演算法如RSA,则改变了这个概念
这个演算法会有成对的两钥匙(key),这边先用A和B来称呼
用A钥匙加密的资料,必须用B钥匙才能打开,而且用B无法直接反推回A
RSA加解密
档案 ----------> 加密资料
A钥匙加密
加密资料 ----------> 档案
B钥匙解密
那麽,这样的加密方法,有什麽用处?
如果我今天有这对钥匙,A和B
那麽我用A加密的资料,传给别人
我不需要把A钥匙给别人,只需要B钥匙告诉别人
别人就可以解开这个资料,而且附加的优点是
可以确定这一定是我加密的资料,别人无法伪造我的身份发出
也就可以达到验证的功能
上面讲的A钥匙,必须好好保密,也叫做'private key'(私密金钥)
而上面讲的B钥匙,可以公开,也叫做'public key'(公开金钥)
3. 电子签章(Electronic Signature)
那麽,什麽是电子签章?
因为RSA很慢的缘故,所以如果要达到前述验证档案是由特定某人所发出
加密整个档案是很没效率的作法。所以,就有人想到,何不综合Hash和RSA的原理?
一个好的Hash演算法,如SHA-1
是不容易由人为的方法去创造出Hash重覆的档案的
所以我只要对档案做Hash,然後再用私密金钥加密这个Hash
那麽验证这个Hash的真实性,也就验证了这个档案的真实性
签章:
档案 ----------> Hash
Hash演算法
Hash ----------> 加密过的Hash(签章)
A钥匙加密
验证:
档案 ----------> Hash
Hash演算法
签章 ----------> Hash'
B钥匙解密
如果Hash = Hash' ---> 档案为真
4. Wii验证
後面讲到Wii系统架构的时候,会再详述
Wii在很多地方会使用电子签章的演算法来验证软体的真伪
不让人执行和安装非官方授权的软体
而实务上,每个被任天堂授权的官方的个人或公司,都有自己的金钥
在发行的软体中,会放入这家公司的签章,验证这套软体
当然也会随之附上供检查的公司公开金钥
但是,怎麽验证这家公司是官方授权的公司呢?
伴随着公开金钥,每个公开金钥会伴随着一个「凭证」
任天堂会用任天堂自己本家的金钥去帮个人或公司的凭证签章
被认可的凭证,里面的公开金钥才是有效的公开金钥
任天堂---->公司凭证---->Wii软体
签章 签章
以原始的设计概念来说
Wii的软体有两条路可以进入Wii里面,一是光碟机,二是网路
而光碟机还有硬体保护
就算用硬改的方式破解光碟机的硬体保护
基本上Wii还是只能执行有授权的游戏(因为签章需正确)
而就算骇客拦截网路,用私人的程式取代官方下载
因为签章不对的关系,所以还是无法进入Wii
不过就算看似万无一失的防护
却还是有不少漏洞,在接下来的文章会再做详细说明
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.23.102
※ 编辑: priv 来自: 140.113.23.102 (07/12 16:04)
1F:推 sd5566:先推 有空再认真看 07/12 16:50
2F:推 muscidae:上Modchip版长知识~(想讲这句话很久了) 07/12 17:34
3F:推 Modchip:好文! 07/12 20:28
4F:推 JohnGod21:膜拜 07/12 21:08
5F:推 jeff0811:priv兄好久不见 07/12 23:10
6F:推 shin9770:清楚~ 07/13 13:09
7F:推 X200: 了解~ 推用心~ 07/13 20:54
8F:推 kimuralin:推! 07/15 00:27
9F:推 watasiku:有看有推 07/15 08:34
10F:推 CKDo:解释很清楚..推 07/15 11:12
11F:推 alan514:推文..长知识 07/20 12:50
12F:推 minibamboo:好文推~ 07/22 02:42
14F:推 neil:大推! 08/06 18:16