作者 | Peter 李成仙
来源 | 汽车电子与软件
前言:
当前系统对攻击者的价值
当前系统与攻击者的关系
攻击者的心情
攻击者的兴趣
....
所以,从理性的角度上来讲“网络安全”就是一场“道高一尺,魔高一丈”、“无止尽”的攻防游戏。
而网络安全防护的目的与其他的攻防游戏一样,是“让攻击者付出的代价比攻破此系统带来的收益低”。这里,非常典型的例子,就是“人民币的造假”。人民币的造假现象现在相对比较少,是因为:
要想造出真的人民币,比如说仿制100元人民币,单张的制造成本要高于100元
央行不断推进新版人民币,采用新技术,始终将仿制成本高于安全线
造假的人民币,一旦被抓获,要处三年以上有期徒刑甚至无期徒刑
公钥基础设施这个名词讲起来比较拗口,要想把它彻底搞清楚,大家可以买一本书去看,从底向上,我将其分为5个层级。为避免过程过于枯燥,先从最常见的”数字证书“讲起。
现代电子商务或网络通信的一大问题在于,如何在不可信的环境中做到身份认证,即"如何证明我是我?”在中国,用“身份证”,在数字领域,用“数字证书”。
咱们可以随便打开一个网页,如果是chrome的话,可以点击网址左边的“锁”,打开其“证书”,主要可以看到如下信息。
数字证书的信息大概包含这么三类:
1、使用者信息
使用者:最重要的域,目前一般为域名,用户个人使用则为姓名。
公钥:非对称加密中用户公开的那个密钥,谁都能看到
有效期
颁发者:谁颁发的这个证书?
颁发者的签名:颁发者对该证书的所有信息的数字签名,表明他对这个证书的真实性负责。
非对称加解密就是指一种特殊的加解密算法,这种算法的加密密钥(公钥)和解密密钥(私钥)是不一样的,且由公钥是极难推断出私钥的,即使有大量的明文和密文对也一样。常见的有RSA算法,及椭圆曲线(ECC)算法。
那么公钥可以用于发送方加密,私钥可不可以用于发送方加密呢?也可以,只是不叫“加密”,叫签名,因为一发出去,大家都可以解密。下面是个例子:
公钥基础设施是一个包括硬件、软件、人员、策略和规程的集合,用来实现基于公钥密码体制的密钥和证书的产生、管理、存储、分发和撤销等功能。
其核心是证书的产生和分发层级:
全世界有大概几十家左右的根CA(Certificate Authority),计算机上都会预置这些CA的数字证书。比如Amazon、Verisign这种,他们有一整套的机制保证自己是可信的。基于此,他们有自己的数字证书,及与之匹配的私钥。
若想建立自己的子CA,则可向这些家申请,要每年付不菲的年费。那么这些根CA会给你的子CA生成一个私钥以及配对的数字证书(公钥)。
若普通用户要获取自己的数字证书,则向子CA申请即可,流程与上一步一样。
2、证书的信任流程:即我为什么相信你是你呢?简单的说,就是因为你手上拿了个证明信,上面有某某单位的公章,我因为相信这个单位,又相信这个公章不是伪造的,所以相信你是你。复杂的说(拿bing.com为例):
先查验DigiCert Baltimore Root的证书,是否与我本地预置的证书一致。
再检查Microsoft IT TLS CA 2的证书上的数字签名,是不是真的是由DigiCert Baltimore Root生成的?
再检测bing.com的证书上的数字签名,是不是真的由Microsoft IT TLS CA 2生成的?
证书的吊销——给某人发了证书后,这人用此证书从事非法经营怎么办?把他的证书吊销了。具体的方法有OCSP及CRL。
证书的更新——给某人发了证书后,这证书过期了咋办?如何更新呢?所以证书的有效期的选择也需要谨慎考虑,太短的话频繁失效,更新起来麻烦。太长的话,它又有可能出现私钥的保存问题。
私钥的存储——私钥是信任的核心,如果私钥被他人窃取或复制,那么整个信任体系就失效了,特别是ROOT CA的。所以,私钥最好不要离开生成的机器,且在物理上与外界隔绝,如使用加密机:私钥始终不可见,只可重新生成,不可拷贝等。
2.4 层级一:NPC问题(附加题)
1. 企业应该先行建立自己的PKI体系,即引入一个PKI供应商,将证书的颁发、申请、吊销等公用模块建立起来。接下来,在其之上,建立各应用的流程。
云端与车端由于交互较多,建议两端通过双向认证交换“会话密钥”(对称密钥)。因为对称加密要比非对称加密要快上千倍,根据密钥长度不同会稍有变化。交换会话密钥的流程可参考TLS的双向认证的握手流程。
手机端将车端指令发给云端,并使用自己的私钥进行签名。云端收到之后,使用手机A的数字证书,进行验签。
云端将车控指令用协商好的“会话密钥”加密后,发送给车端。车端验证后,即可在内部执行。
好了,这次先分享这么多,都是些基本概念,下次将继续讲讲汽车行业内的网络安全问题。
已完成
数据加载中