V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  mightybruce  ›  全部回复第 5 页 / 共 20 页
回复总数  386
1  2  3  4  5  6  7  8  9  10 ... 20  
看了这贴,表示原来计算机的民科这么多,v2ex 上不少人水平不如知乎, 如果连基本的密码学都没学过,真的没必要讨论了。


前端代码都是直接可以看到的"(即算法是公开的), 你再怎么加密, 如果服务器直接存前端加密后的结果和明文传输没有区别, 黑客并不需要知道你的原密码。md5, sha1 本身是 hash 散列函数,其信息熵本身就是下降的。

首先前端怎么知道这个服务器不是伪造的, 你直接发给伪造的服务器,加密的这一串直接就是白费功夫, 这是第一个要解决的问题就是 Authenticity.

我也不想太多费工夫,我就参考一下知乎密码学博士的文章再说一下。

Web 前端密码加密有意义,又没有意义。
密码学经典人物 Alice, Bob Oscar

Alice (浏览器前端)和 Bob (服务器后端)到底可以怎么幽会。这个问题又会涉及到以下这些问题:

Alice 怎么知道 Bob 是 Bob ?
Bob 怎么知道 Alice 是 Alice?
Alice 和 Bob 幽会中的窃窃私语如何不被 Eve 偷听到,甚至被 Oscar 串改呢?
密码学三兄弟 CIA 登场了
前两个问题被统称归为 Authenticity (认证),第三个问题可以被归为 Confidentiality (保密)和 Integrity

有兴趣的同学可以去搜搜基础的 Schnorr identification protocol ( Schnorr 鉴别协议)以及 Diffie–Hellman key exchange (迪菲-赫尔曼密钥交换)。后续的工作主要是在安全性和性能上的提升。对于一般人而言,以上三个问题的成熟解决方案实现现有 SSH 和 mTLS 。我相信这两项技术在当今已经普遍应用了。

有了这些基础设施和密码学协议,我们就能让 Alice 和 Bob 之间建立安全信道,并通讯。在安全信道的基础上,Alice 再对内容加密就毫无意义。或者你仔细想想,你在用 SSH 远程连接到服务器,输入数据库密码的时候你会在的笔记本上加密码?以上内容为 Mutual Authentication (双向认证)。我们一般遇到的是 HTTPS 即 HTTP over TLS (在 TLS 安全信道上 HTTP 通讯)。TLS 建立成功并通过 PKI 认可服务器证书后,对用于用户认证的用户密码进行加密操作并没有意义,如果只考虑通信安全。也就是说你你可以在 HTTPS 下安全使用 Basic Authentication 。

然而,HTTPS 还是有很多问题。

使用 TLS 会导致客户端和服务端的性能下降。这些性能瓶颈在 IoT 设备,RFID 设备上较为明显。
我们无法完全信任服务器。

对于问题 2 ,我们只保证了通讯的安全,并没有保证服务器端的安全,因为服务器的储存可能被攻陷。我们储存在服务器上的数据,特别是用户认证信息怎么办?用户数据可以加密存储(可以考虑 IND-CCA2 安全的混合加密)。用户认证信息可以使用加盐( Salt )的密码散列函数( Cryptographic Hash Function )。服务器窃取用户认证信息怎么办?可以考虑使用成熟的 OAuth2 方案。服务器不正确的计算我想要的内容怎么办?等等更多,等你成为密码学家来研究吧!

IND-CCA2 全称是 Indistinguishable chosen ciphertext attack 2 , 这个安全数学模型我就不展开了。
参考链接: https://www.zhihu.com/question/25539382/answer/547509246
56 天前
回复了 jgh004 创建的主题 程序员 微软的新项目 Garnet 碾压 Redis ?
现在吹比 redis 性能好的缓存多了去了,但是哪有一个有 redis 流行, 难道你才知道。
Rust 和 Go 语言轮番实现 redis 的 项目还少吗
这种还是 C# 和 windows 的就不用看了吧,难道你们公司都用的是 windows server
@ZE3kr 感谢分享 PassKey , 这又提供一个 安全协议可以分析,看了还是用了比较传统的验证身份信息以及 chanllenge response 模型。
这都能讨论这么久,一般场景下的前端加密不但愚蠢而且浪费性能。
你当前端代码用户端看不到吗?

有一种场景是另外,那就是前端代码是非常重要的资产,比如游戏,vr 视觉,那么前端代码和逻辑一般不想让别人看到,这时候代码加密并混淆以及 wasm 这些都是要用的。

还有人回答 RSA 、AES 这些, 这些已经是细枝末节了, 麻烦了解一些 Session key establishment protocols 和 一些 anthentication, https 主要是为了防止用户访问了假冒的网站,给你的网站信用背书。
安全不是仅仅靠加密算法,而是靠协议,要保证 key freshness 、effectiveness 、implicit key
authentication 、key confirmation 这几个条件。
cgi 是协议,和语言无关, 现在还用 cgi 的也是老古董了,可以参考这个试试
https://www.jianshu.com/p/62f0b9a3dd3e

然后要么参考一下分布式任务执行框架如 celery 。
脚本属于阻塞式执行, 你要么搞个异步执行任务,得到结果返回通知,否则没有办法。
这个不限于框架了,简单点用重定向,或者启动一个子进程通过管道把结果传过来,方法很多。
59 天前
回复了 zeromovie 创建的主题 Python 关于动态替换 import 内容的功能
可以做到,但是这简直就是可以直接攻击的点,最好还是不要干。
这个叫做 self modifying script
63 天前
回复了 michaelliuyang 创建的主题 程序员 Devin — 第一个 AI 软件研发工程师
AI 写代码 迟早会来的, 程序员大多数目前还是像手工业者或工匠。
在第一次蒸汽机时代到来的时候,大量纺织厂的机器熟练工人的确取代了大量手工业者,
这些出现不是偶然,去年就见过一些新奇的项目,比如 AI self healing code ,AI 写代码并通过单元测试来验证

写业务的程序员越来越不值钱, 做基础设施以及加入 AI 开发的程序员要好一些。
AI 也带来了机遇, 反正不少人通过 AI 大大提高赚钱的效率,要活在当下。
63 天前
回复了 anUglyDog 创建的主题 程序员 程序员第二门语言
语法这些根本不用记,越用越熟练。
这个话题只能说 OP 接触的语言实在太少了。
不同语言的 programming paradigm 是不太一样的, 如果是同一类型的 paradigm, 那么是分分钟钟上手的。
多学学没坏处,就不会思维定势了。
66 天前
回复了 seanwhy 创建的主题 程序员 基于 Webassembly 的一些问题
wasm 其实是非常有用的, 服务器计算挪动到客户端计算,大大减轻了服务端的压力和资源消耗。
66 天前
回复了 seanwhy 创建的主题 程序员 基于 Webassembly 的一些问题
https://mp.weixin.qq.com/s/1XmH55nqs7wavsWJNT-tSw
B 站 有 ffmpeg 编译成 wasm 的案例, 并有相关 git 地址
66 天前
回复了 keepRun 创建的主题 程序员 非运维学习 kubernetes 的重点是什么?
楼上真的是一个典型,dev 不懂 ops ,ops 不懂 dev, 最后都认为是 k8s 的问题。
66 天前
回复了 formonica 创建的主题 OpenAI 怎么指挥 GPT4 来写论文?
兄弟啊,去年就有人用 gpt-4 写了 115 页纸的小说并发出全部 prompt 和 生成的小说,到你这里就不行了, 说你什么好呢。
微信小程序搜快预约,我现在去的几个三甲医院内部放号用的就是这个。
你要明白,java 大多数程序员自己都不会 java 很多特性,都是 spring 程序员而已。

没有你的项目描述,无法做出判断

安卓开发、服务器开发、音视频会议开发?给出具体的项目才能判断
67 天前
回复了 keepRun 创建的主题 程序员 非运维学习 kubernetes 的重点是什么?
另外我强调一点 Kubernetes 不是运维需要学习的, 高级一点的业务开发和基础设施开发都是必须要会。上来不要看源码,
docker 和 kuberneets 是两回事,kubernetes 基本不带 docker 玩耍了
一堆人学不明白,麻烦就不要瞎说了。
先实操完了,在搞 Kubernetes 开发,最后结合开发看源码实现。
67 天前
回复了 keepRun 创建的主题 程序员 非运维学习 kubernetes 的重点是什么?
这贴充分暴露了 V2EX 上不少程序员的水平
kuberenetes 不是 docker, 没有那么快很上手的。

我建议你先学会操作 kubenetes 基础操作和 kubernetes 的各种资源以及概念
基于 kubernetes 的 部署 调试 和微服务,代码改造。

一步一步学习,一定要动手。
69 天前
回复了 javaisthebest 创建的主题 English 学了也快六个月的英语了
不要带着功利的目标去学英语,英语靠的是积累,欲速则不达, 要靠兴趣和毅力。

spotify 每天听听 podcast, 如果有感兴趣的,下载 transcript 来对照

medium 上好的科技和 IT 文章每天看看

多用用 chatgpt , 让 chatgpt 对照文章 看看你对文章的理解程度是否到位。


听和跟读 适合读一些英语读物,比如 audible 的有声读物
或者选择国内的 aboboo 上的读物 来 follow ,aboboo 可以声音对照,这个非常有用。
1  2  3  4  5  6  7  8  9  10 ... 20  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3261 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 31ms · UTC 13:36 · PVG 21:36 · LAX 06:36 · JFK 09:36
Developed with CodeLauncher
♥ Do have faith in what you're doing.