今天,我面对一个与政府有关的网站,该网站向我展示了我在一个组合框中的所有证书,以便在该网站上进行认证。
那些证书是什么?
我如何在asp.net网站上展示它们呢?
浏览器可以访问这些证书吗?
如果是,为什么会有这样的访问?
有人能把它们偷来,用在进攻中间的人身上吗?
我发现这是关于偷数字证书的:
请给我一些关于这个的建议。
发布于 2022-05-01 00:32:01
网站没有给你看任何东西。服务器调用SSL/TLS协议中的少用选项--现在是TLS1.2 RFC5246 7.4.4或TLS1.3 RFC8446 4.3.2 --要求客户机(即浏览器)使用证书进行身份验证。浏览器显示了一组合适的证书--这些证书安装在您的系统或浏览器中,您有私钥,并且来自服务器指定的CA (如果是这样的话) --供您从中选择。通常,如果只有一个合适的选择(并只使用它),浏览器可以被配置为跳过此对话框;如果没有合适的选择,浏览器总是跳过对话框并告诉服务器'no cert for you',然后服务器决定是否允许您不使用cert连接(在这种情况下可能只允许受限的功能),或者完全拒绝连接。
我如何在asp.net网站上展示它们呢?
您可以通过请求客户端身份验证(也称为客户端证书)使浏览器显示它们。我不使用asp.net,而且关于编程特定软件的问题无论如何都是不主题的,但是快速搜索可以找到微软文档和下面的“沿着大厅”:
https://stackoverflow.com/questions/53761660/net-core-web-api-with-client-certificate-authentication
浏览器可以访问这些证书吗?如果是,为什么会有这样的访问?
绝对一点儿没错。浏览器必须访问证书(包括与cert关联的私钥,但不是cert的严格意义上的部分),以便执行SSL/TLS协议中定义并由服务器请求的身份验证过程。这就是服务器决定你是谁的方式。
有人能把它们偷来,用在进攻中间的人身上吗?
不是靠他们自己。偷你的证书和私钥的人可以冒充你。例如,如果这个政府网站允许公民注册服兵役,有人可以在你不知情的情况下使用你的证书和钥匙来招募你,而当公共汽车在一天早上5点出现在你家,带你去参加基本培训时,你会感到不快。
但拥有证书并不能让人模仿任何网站,包括政府网站,这是MitM的目标。为此,他们必须在系统或浏览器中插入证书颁发机构(CA)证书,或者让您(或其他授权人员)插入证书。现在,任何有足够权限窃取您的证书的犯罪分子都可能有足够的权限插入CA证书,因此您面临的风险来自于攻击者,而不是您询问的攻击。
https://security.stackexchange.com/questions/261648
复制相似问题