Skip to main content

信任链

 

在信任链中,根证书(自签证书)、中介证书和终端实体(TLS服务器/客户端)证书的关系

信任链,或称数字证书链,是一连串的数字证书,由根证书为起点,透过层层信任[1],使终端实体证书的持有者可以获得转授的信任[2]以证明身份。基于信息安全的考虑,在进行电子商务或使用政府服务时,交易的另一方用户,以根证书为基础,凭借对签发机构的信任,相信当时持有信任链终端的证书持有者确为其人,并透过公开密钥加密确保通信保密、透过数字签名确保内容无误、以及保证对方不可否认

公开密钥基础建设已经在X.509RFC 5280指定了使用信任链的认证路径验证算法[3]。其中,会透过证书吊销列表OCSP检查手上得到的证书是否已被证书机构在到期前撤消。另一方面,证书机构签发新的证书时,也可能透过证书透明度公布签发证书的记录,让公众查核,避免有其他机构在未得到当事人同意下滥发欺诈证书伪冒身份。CA/浏览器论坛通过了DNS证书颁发机构授权协议,参与的证书机构会在签发证书前透过域名系统检查是否已获授权。

背景

互联网中,任何机构都可以登记域名以设立服务器,供大众连接沟通并进行电子商务或使用政府服务。虽然公开密钥加密可以确保通信保密、数字签名可以确保内容无误、以及保证对方无法抵赖;但如果数字证书未获得可供信任的数字证书认证机构数字签名(即自签证书),对方的真实身份仍然可疑[4](除非通信双方早已互相认识并预先透过安全渠道交换数字证书)。数字证书认证机构在公开密钥加密基建担任了非常重要的角色,电脑软件安装并信任了其根证书,根据其私钥签发的下层证书都可(基于数字签名)被自动信任,如果是中介证书,则再下层的终端实体证书也一样被自动信任,此即构成了一条信任链[5]

举例

维基百科使用的数字证书和信任链

维基百科为例,其信任链包含了三张数字证书:

  1. 维基百科网站因为使用HTTPS,故服务器已安装了数字证书。此证书的主体一栏列明系发给 *.wikipedia.org 所使用,故如果用户是连接任何 *.wikipedia.org 旗下的网站,此证书都适用。此即终端实体证书,亦是TLS服务器证书(由于使用了通配符,所以也是通配符证书)。
  2. 浏览器验证 *.wikipedia.org 的数字证书时,除检查其有效期外,还会再检查其上级签发证书,亦即“GlobalSign Organization Validation CA - SHA256 - G2”--这是中介证书,持有机构已根据组织验证确认 *.wikipedia.org 的拥有者--维基媒体基金会--在现实世界中的身份。
  3. GlobalSign Organization Validation CA - SHA256 - G2”是由“GlobalSign Root CA”所发出,由于“GlobalSign Root CA”没有再上级签发机构,它是自签证书。应用软件会检查此证书有否已预载于根证书清单上:如有,则 *.wikipedia.org 的终端实体证书确认为有效,维基百科网站被认为可信任;否则向用户警告网站未获信任。

总括来说,由于用户信任 GlobalSign,所以由 GlobalSign 所担保的维基百科可以被信任。而由于用户信任操作系统或浏览器的软件商,所以由软件商预载了根证书的 GlobalSign 都可被信任。

Comments

Popular posts from this blog

CKA Simulator Kubernetes 1.22

  https://killer.sh Pre Setup Once you've gained access to your terminal it might be wise to spend ~1 minute to setup your environment. You could set these: alias k = kubectl                         # will already be pre-configured export do = "--dry-run=client -o yaml"     # k get pod x $do export now = "--force --grace-period 0"   # k delete pod x $now Vim To make vim use 2 spaces for a tab edit ~/.vimrc to contain: set tabstop=2 set expandtab set shiftwidth=2 More setup suggestions are in the tips section .     Question 1 | Contexts Task weight: 1%   You have access to multiple clusters from your main terminal through kubectl contexts. Write all those context names into /opt/course/1/contexts . Next write a command to display the current context into /opt/course/1/context_default_kubectl.sh , the command should use kubectl . Finally write a second command doing the same thing into ...

OWASP Top 10 Threats and Mitigations Exam - Single Select

Last updated 4 Aug 11 Course Title: OWASP Top 10 Threats and Mitigation Exam Questions - Single Select 1) Which of the following consequences is most likely to occur due to an injection attack? Spoofing Cross-site request forgery Denial of service   Correct Insecure direct object references 2) Your application is created using a language that does not support a clear distinction between code and data. Which vulnerability is most likely to occur in your application? Injection   Correct Insecure direct object references Failure to restrict URL access Insufficient transport layer protection 3) Which of the following scenarios is most likely to cause an injection attack? Unvalidated input is embedded in an instruction stream.   Correct Unvalidated input can be distinguished from valid instructions. A Web application does not validate a client’s access to a resource. A Web action performs an operation on behalf of the user without checkin...