一直在电子认证领域做证书应用研究,一听说有某个技术和密码或者证书有关系就非常感兴趣,希望深入的了解了解看看有没有结合点。比特币老早就听过是因为新闻报道有投资者在上面栽跟头,后来被央行叫停。到了2016年中,参加了一个支付行业的讲座,里面有关区块链的讲座,听了之后发现其实区块链底层是密码技术比如非对称算法,散列算法,时间戳等,不过是将其创造性的应用在了一个去中心化的分布式环境中非常有意思。下面从安全可信这个角度与PKI对比来进行理解。
注:其中有些名词比如PKI、CA机构、数字证书等不再解释,如不理解请查看我之前的相关文章论述。
安全性
网络安全:
网络安全主要从获取内容以及攻击防护思路来说明。
区块链是由包含交易信息的区块从后向前有序链接起来的数据结构,它是存储在分布式数据库中的。对于攻击者来说用常规的攻击手段是没有意义的,目前最担心的问题是51%的算力攻击,也就是说算力达到全网的51%就可以发生双花也就是两次支付,从而控制自己的交易,完成对自己有利的做法就是骗取交易接收方的利益。攻击的手段是不断增加自己的算力。但是对于维护者来说确很好防护就是可以增加难度或者改变共识机制。
对于一个PKI它在国内是通过CA机构来对外提供的,CA机构的机房是完全按照工信部的要求,形成7层防护体系建设,物理的和逻辑的防护设备要达到要求才可以正式投产。对于攻击者来说,最有价值的是攻破防护体系,拿到CA机构的签发证书的密钥,进行证书的签发。攻击手段就是黑客的通用手段,比如嗅探、入侵、提权等等,防护手段也是常用的手段,比如防火墙、IDS、WAF、VPN、抗DDOS等等。
所以从网络安全的角度看,由于一个是中心化(PKI)的一个是去中心化(区块链)的,所以两种防护的思路是完全不同的。
信息安全:
信息安全主要从密码的种类以及应用场景来对比说明。
区块链的密码类型和用途如下:
1、非对称算法是采用椭圆曲线算法,比特币是基于secp256k1。交易发出方用私钥进行签名,将签名与原文发给整个网络,网络的所有节点用公钥对交易的有效性进行验证。
2、哈希算法是SHA-256算法,在比特币中主要是地址生成和工作量证明。
3、对称加密算法是AES-256-CBC算法,比特币官方客户端使用该算法来加密钱包文件,用户设置密码后,采用用户设置的密码通过AES算法对钱包私钥进行加密,确保客户端私钥的安全。
4、编码格式为BASE58编码,是比特币使用的一种独特的编码方式,对公钥的Hash160以及私钥进行编码,生成以1或者3开头的比特币地址及WIF格式的私钥。
国内CA机构使用的密码如下:
为了保证商用密码安全,由国家商用密码管理办公室制定了一系列标准密码标准,目前已经算法公开以及应用最广的是SM2、SM3、SM4算法。
1、非对称算法是SM2算法,主要是身份认证和对文件、文档的电子签名。
2、哈希算法是SM3算法,主要是保护内容的完整性。
3、对称加密算法是SM4算法,主要是保护内容的安全。
4、编码格式为BASE64编码,是CA系统内的一种标准的编码格式。
对于CA机构来说,发放数字证书是它的核心业务,而证书的主要应用场景就是身份认证和签名,那么它的重点保护对象就是如何保证非对称算法中的私钥的安全性,比如放在硬件的安全存储单元中。
从上面的描述来看,区块链是将这几种密码综合应用形成一个有机整体,而PKI是一套基础设置可以根据应用的场景将密码进行组合和拆分来应用。
信任体系
区块链应用和PKI的最大的区别是信任体系不同。一般网络的信任体系由身份认证、授权和责任认定几个部分组成。
区块链是去中心化、最小信任化的体系,它的信任基础是数学而不是国家或者某种机构,它将共识机制、密码学、分布式结构有机的结合在一起。而PKI是通过CA机构去应用和推广的,而CA机构是一种中心化的需要国家权威机构授权的第三方机构,在中国由工信部颁发电子认证牌照才可以合法运营的。
身份认证
区块链的身份认证是可以用匿名,它的交易用的是区块链的地址进行转账而不是现在的账户,所以可以做到强的隐私性。
PKI的身份认证是一般经过实名认证后颁发数字证书,通过数字证书进行网络的身份认证。
责任认定
区块链的责任认定,因为全网的每一个节点都有记录和验证,所以一旦信息进入区块链就无法篡改,从而是一个强有力的证明存在性的工具。当发生纠纷是上区块链进行查询记录即可。
PKI的责任认定,在中国是有《电子签名法》依据的,通过对数据的、对文档等网络传播的数据进行电子签名,形成签名结果之后保存在第三方,当发生纠纷时,使用第三方提供的签名结果记录验证,第三方或者第三方联合国家公信力机构出示证据,形成有效证据链。
展望
通过从安全可行的角度简单对比,发现区块链确实是一场互联网的技术革命,但是不能一味的说某种方式不好或者很好,这两者是可以优势互补一起利用的。就看在中国的现行法律和监管体系下如何形成落地应用,还需要同行们大胆尝试。我目前能看到的几个马上能应用的地方:
1、通过CA机构颁发的数字证书来保护区块链中的身份安全,
2、通过U盾来保护区块链客户端私钥的安全
3、区块链天然的存在性证明特性来保存签名结果
4、区块链与国产密码算法的结合
以上属于现阶段个人的理解,如有不到之处还请各位专家指正。
网友评论