
计网课程设计的一个要求是只能使用 socket ,即 TCP 以上需要自己实现,目前已经实现了一个类似 python 的 requests 的 HTTP 请求库,但我发现在访问我的博客时,因为开启了 HSTS ,自动 301 到 HTTPS ,导致无法访问
在网上搜索了一番,这方面的情况reddit 这篇帖子 总结的很好。不过我并没有找到那种能由我自己控制握手,协商等整个 HTTPS 流程的,基本上是提供加密后的 socket (暂时称呼它为 securit socket),如tokio-rustls,openssl 提供的一个例子我觉得比较接近答案了,但仍然有不符合课设要求的嫌疑
总的来说,需求如下
当然我也有点觉得课程的要求有点无理了,所以我会花有限的时间摸索一下
1 rrfeng 2024 年 3 月 14 日 via Android 不用 tls 库你手搓 RSA DH ECDSA ?扯淡呢。 |
2 vituralfuture OP @rrfeng 加密算法应该还是可以用库的,只要自己实现握手,协商这一系列流程,然后拿到秘钥,把 http 报文加密一下就行 |
3 zwy100e72 2024 年 3 月 14 日 不要难为你自己了,考虑到这个课程设计的范围,直接用 http 服务吧 |
4 libook 2024 年 3 月 14 日 课题没要求支持 HTTPS 的话,你就只做支持 HTTP 的是不是就行了。 除非你们老师就是想让你们自己实现 TLS 协议。 |
5 PTLin 2024 年 3 月 15 日 照着 rustls 抄一个吧,要不然 tls 的好几次握手,证书校验,密钥协商生成密钥等等,够你喝好几壶的了。 不过按照我的经验老师可能也半懂不懂你的意思吧,没想让你自己实现整个 tls 。 |
6 RTSmile 2024 年 3 月 17 日 via iPhone 有一说一,我感觉你老师压根没仔细看你写的那一段话,只是单纯的看了说要用第三方库就觉得不可以。 课设让自己实现 TLS 意义不大,不光繁琐,还没有任何的实用意义。实际生产使用的 tls 库都是要通过严格的安全审计的,课设这种就算自己设计出来了一个 tls 估计也是一堆漏洞。 |
7 bli22ard 2024 年 3 月 18 日 什么实力,自己实现 tls |
8 hanyuwei70 2024 年 3 月 22 日 如果只是作业,你可以用一个带 HTTP 的服务。 |
9 uiiytwyfsdtr 2024 年 4 月 19 日 自己原生撸一遍 TLS 你也是够勇气的少年... |