4

以前感觉 HTTPS 很安全,现在有一点点改变看法了。

 1 year ago
source link: https://www.v2ex.com/t/922534
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

V2EX  ›  SSL

以前感觉 HTTPS 很安全,现在有一点点改变看法了。

  tool2d · 9 小时 7 分钟前 · 5839 次点击
HTTPS 安全是因为有 SSL 加密,网管直接抓包是看不到具体内容的。

但是,我发现 chrome 会把很安全的 SSL 密钥导出到明文,仅仅只需要设置一个系统环境变量(SSLKEYLOGFILE),就能轻易做到!

这意味着,公司网管只要在我机器上简简单单配置一个环境变量,我电脑上 chrome 浏览的所有网站,用户密码,他都能直接看到。并且 chrome 浏览器毫无风险提示信息,让人非常没有安全感。
90 条回复    2023-03-09 20:06:12 +08:00
libook

libook      9 小时 2 分钟前   ❤️ 37

这压根不是 HTTPS 的职责范围。你都突破物理隔离了,即便不用环境变量装个抓包证书就可以吧,或者替换个加了后门的魔改版浏览器也可以吧。

HTTPS 有效的前提是你信任你的浏览器和操作系统。
Rrrrrr

Rrrrrr      8 小时 59 分钟前

不知道为什么我电脑上的 charles 好像不好用了,chrome 也会提示风险,有些还一直报
Rrrrrr

Rrrrrr      8 小时 59 分钟前

chrome 版本:110
tool2d

tool2d      8 小时 58 分钟前

@libook 公司的电脑,装 1 ~ 2 个普通的网管监控软件是很正常的。电脑算公司的财产,不是完全个人所有。

还有些公司用的是瘦客户端,更没有主导权了。

我是觉得 chrome 不应该把密钥那么重要的东西,就直接静默导出,至少弹出一个确认对话框吧。
benedict00

benedict00      8 小时 56 分钟前 via Android

@Rrrrrr charles 证书到期了吧,重新生成证书再安装,信任吧
tool2d

tool2d      8 小时 56 分钟前

@Rrrrrr charles 是代理,能看 HTTPS 明文我能理解。

但是 SSLKEYLOGFILE 这个变量,不用加代理都能看明文。
binux

binux      8 小时 54 分钟前 via Android

@tool2d 你都装监控软件了,不加这个变量,直接给你套个 Charles 不是一样的吗?
libook

libook      8 小时 53 分钟前

@tool2d #4 Chrome 确实有些设计不合理的地方,不过你要知道,它只是个浏览器,这就决定了它的安全性设计仅满足于浏览器本身的需求。
所以涉及到敏感信息的情况,我通常不会使用普通浏览器,比如密码管理。

不过不管怎么说,你讲的也都不属于 HTTPS 的功能范围。安全向来都是相对而言的,还是得自己了解其中的原理,然后再根据需求慎重决策。
locoz

locoz      8 小时 53 分钟前 via Android

@tool2d #4 设备都已经受控了,HTTPS 再牛逼也保不住你啊…
KSR

KSR      8 小时 51 分钟前

公司的电脑不属于你,你为什么要在不属于你的设备上登录你的账号?

如果是你个人的电脑,你可以拒绝网管的要求。
tool2d

tool2d      8 小时 49 分钟前

@KSR 说的对,我改用 IE 登录帐号。

IE 绝对不会把我的 SSL 密钥导出到明文,这点我相信微软。
cyrbuzz

cyrbuzz      8 小时 49 分钟前

一楼+1 。

能操控物理机啥 s 都不好使。

我都能操控给你电脑加环境变量了,在你证书里赛个其他证书也不是难事。
binux

binux      8 小时 45 分钟前 via Android   ❤️ 4

@tool2d IE 确实不会导出到明文,因为为了看你的通信内容,监控软件压根就不需要 SSL 密钥。。。
twl007

twl007      8 小时 42 分钟前 via iPhone

@tool2d 公司不需要这么 low 的手段
tool2d

tool2d      8 小时 41 分钟前   ❤️ 2

@binux 如果是中间人代理,我反倒不怕,在 chrome 看一下网站根证书就知道是被监控了。

我怕的是在自己不知情的时候,被监控。

以前看 HTTPS 文档有说到,内存里的握手密钥,在建立连接后,都是需要马上销毁的,chrome 怎么还能保存到明文呢,真是晕过去。
binux

binux      8 小时 40 分钟前 via Android   ❤️ 2

@tool2d 你不是去用 IE 了吗?
0o0O0o0O0o

0o0O0o0O0o      8 小时 40 分钟前 via iPhone

这不是 https 保障的范围。
iClass

iClass      8 小时 31 分钟前 via Android

最好的浏览器是自研浏览器。由于只有一个地球,基于能量守恒原则,谷歌今年必须趴下,让微软抬头。
dcsuibian

dcsuibian      8 小时 29 分钟前

用得着配置环境变量,公司直接给你装个证书,不行直接给你录屏

你连电脑的控制权都没有,赖我一个小工具,我也很无奈啊
tomczhen

tomczhen      8 小时 20 分钟前 via Android   ❤️ 19

ssl 确实不安全,只要有人拿刀架我脖子上,我啥都说了。
kop1989smurf

kop1989smurf      8 小时 14 分钟前

系统安全,是要有一个场景前提和既定目的的。
并不是所有的框架设计,首要目的都是“绝对安全”。因为这样成本太高,而且适应面太小。

书归正传,https 就是一个针对传输领域的安全协议,他只负责传输层面上的安全,而且是相对安全(破解成本大于破解后的收益)。

chrome 的部分设计确实相对比较激进,或者说懒散。但其依然遵循的是“相对安全”和“场景设计”这两个原则。
比如楼主举例的“明文密码”,“明文 ssl”,其安全逻辑和现实中的钥匙链没什么区别。

如果能接受裤兜里揣钥匙没问题,那么理应来讲 PC 中存明文也没什么问题。
mrcn

mrcn      8 小时 12 分钟前   ❤️ 8

你都装监控软件了,还费什么劲拿 SSL ,直接监控你屏幕,直接 hook 你浏览器拿网页,有的是办法搞你。
你能说出这话说明你完全没理解 HTTPS 安全在哪里。
tool2d

tool2d      8 小时 6 分钟前

@kop1989smurf "如果能接受裤兜里揣钥匙没问题,那么理应来讲 PC 中存明文也没什么问题。"

不是的,chrome 保存的是客户端随机数和服务器端随机数。

什么叫随机数?就是为了让黑客无法预测的数字,可 chrome 都明文保存到磁盘上了,就自然失去了“随机”的作用。

这种明显开发者向的工具,又比较数据敏感的功能,chrome 就不应该默认开启。

IE 这点就很好,SSL 握手密钥只存在内存里,用完就销毁,谁都别想存到硬盘上。
i863

i863      8 小时 4 分钟前

再说一个吓人的,据统计一半使用 CDN 的网站采用了 CloudFlare CDN 。HTTPS 端到端加密到 Cloudflare 这里就透明的,与国际间谍组织无缝共享数据 :P
tool2d

tool2d      8 小时 2 分钟前

@mrcn "说明你完全没理解 HTTPS 安全在哪里。"

在我眼里的安全,就类似苹果手机加密,官方来了也没办法解锁。

chrome 这种静默导 SSL 密钥,明显是给 https 破解留了一个后门。我不想要什么后门,要调试代码,可以用自签名证书。

我就希望 https 加密后的数据,谁都看不见,包括我自己!
adoal

adoal      7 小时 37 分钟前

文不对题,不安全的明明是 Chrome 这个具体浏览器的密钥日志行为,又不是 HTTPS 本身。
tool2d

tool2d      7 小时 28 分钟前   ❤️ 2

@adoal 因为不仅仅是 chrome ,包括 firefox 和一大堆套皮 chrome 浏览器,都会有类似行为,都用同一个环境变量名。

不知道 edge 加了 chrome 内核会有什么表现,还没尝试。反正我只知道 ie 内核是 100%安全的。
adoal

adoal      7 小时 27 分钟前

我倾向于认为是开发人员脑子抽筋导致的 bug ,而不是后门。这个是 Chrome 开发人员为了方便调试 Chrome 本身用的,不是给业务系统的 web 开发人员调试网站用的,跟你说的“要调试代码,可以用自签名证书”没关系。
LokiSharp

LokiSharp      7 小时 10 分钟前

都能设置环境变量了,也就没什么隐私了把
adoal

adoal      7 小时 7 分钟前

经过搜索,这个环境变量是来自 Netscape NSS 库。从 NSS 3.24 开始,用 Makefile 构建的默认关闭,用 build.sh 调用 gyp 构建的仍然启用。Firefox 官方版本重新启用了,而 Debian 拒绝启用。

有说 OpenSSL 也遵循了 NSS 的这个惯例。但是细节我还没搞清楚。
dqzcwxb

dqzcwxb      7 小时 3 分钟前

没有绝对的安全,只有相对的安全
levintrueno

levintrueno      7 小时 1 分钟前

你用 IE ,觉得 HTTPS 安全。IE 外,觉得 HTTPS 不安全。
那么,问题出在 HTTPS 上了嘛...
leonshaw

leonshaw      7 小时 0 分钟前   ❤️ 4

不来个 LD_PRELOAD 呢
lambdaq

lambdaq      6 小时 58 分钟前

https 是否安全是跟。。。。。http 比吧?

你 http 甚至都不需要 SSLKEYLOGFILE 呢,亲。
lambdaq

lambdaq      6 小时 57 分钟前   ❤️ 1

你可以打开 chrome.exe 二进制,找到 SSLKEYLOGFILE ,改成别的。
Helsing

Helsing      6 小时 56 分钟前 via iPhone

@i863 #24 你确定?那 CloudFlare 就是中间人了,谁还敢用?
Seanfuck

Seanfuck      6 小时 51 分钟前

@Helsing 中间人需要客户端安装和信任证书
hxy91819

hxy91819      6 小时 48 分钟前

我就觉得楼主考虑的有道理。现在很多所谓的“零信任”设计思路,也是不相信任何中间协议的安全性。
idontnowhat2say

idontnowhat2say      6 小时 47 分钟前   ❤️ 1

@Helsing cdn 基本都是这样的,或多或少,不然你 ssl 加密的请求了咋给你加速
kaedeair

kaedeair      6 小时 46 分钟前

@tool2d 25# 是真的苹果官方不能解锁,还是官方不想让公众知道他们能够解锁
没有绝对安全的系统
idontnowhat2say

idontnowhat2say      6 小时 40 分钟前   ❤️ 1

https 是个通信协议,跟你本地安全不安全和这个有啥关系,你能都在 client 端操作了,基本就是所见即所得。导出 SSLKEYLOGFILE 只不过是 ssl 库的一个方便本地抓包调试的特性罢了。 你认真说的话,在客户端那没啥安全的了,就算没有 SSLKEYLOGFILE 也能有 100 种方法获取到你的通信内容,用 epbf hook 系统调用,一切皆可见。
Helsing

Helsing      6 小时 40 分钟前 via iPhone   ❤️ 1

翻完帖子才明白楼主说的是 https 中的协商出来的对称加密密钥可以导出来

感觉楼主确实没太理解 https ,https 安全的前提是设备必须安全可信,没有这个前提,哪来的安全

你提的问题只能表明 Chrome 不安全,而不是 https 不安全

另外,苹果手机加密,如果加密过程中也像 Chrome 能导出密钥或者留有后门什么的,一样也是不安全的,并不存在什么绝对安全……
Helsing

Helsing      6 小时 36 分钟前 via iPhone

@Seanfuck #37 我知道啊,所以我很好奇 https 怎么到 CDN 就透明了,这不是很离谱吗
leoleoleo

leoleoleo      6 小时 33 分钟前

ssl 或者 tls 那是保证传输层面安全的技术啊,本地系统层面有问题,数据还没发出去就被拿走了,这能怪传输层面的安全技术吗。一旦系统层面不安全了,浏览器啥机制都不顶用啊,不管数据存在硬盘还是内存,一样能读取呀,23 楼 op 还在说存储机制和随机数的事,大哥了解一下 ssl 技术,随机值和协商出来的加密密钥都是一次性的,每一次通信完成后就没用了,这一点上你存在内存和存在硬盘上有什么区别啊。
yolee599

yolee599      6 小时 32 分钟前

SSL 可以保证“传输过程中”的安全,数据包已经到了你的电脑,那这个数据包已经不归 SSL 管了。就像运钞车,钱已经运到了银行,并且交到了银行手上,在银行被别人持枪抢劫了是不归运钞车管的。
Helsing

Helsing      6 小时 31 分钟前 via iPhone

@idontnowhat2say #39 看了一下 CDN 的原理,确实如此
newmlp

newmlp      6 小时 19 分钟前

chrome:别人都能改你环境变量,读你本地文件了,你告诉我没保障你的安全?
tool2d

tool2d      6 小时 14 分钟前

@leoleoleo "大哥了解一下 ssl 技术,随机值和协商出来的加密密钥都是一次性的,每一次通信完成后就没用了,这一点上你存在内存和存在硬盘上有什么区别啊。"

是一次性的,所以 chrome 把每一次通讯的 ssl 密钥都保存下来了。你客户端发起了 100 次请求,chrome 就老老实实保存 100 份密钥。以确保网管在出口网关上,抓取的所有加密数据包,都能正确解密。
CatCode

CatCode      6 小时 7 分钟前

你给 Chrome 启动套个娃呗,整个脚本启动 Chrome 前先把 SSLKEYLOGFILE 变量设为空,不就行了吗
AA5DE3F034ACCB9E

AA5DE3F034ACCB9E      6 小时 5 分钟前

我觉得 OP 讲得有道理,我对 HTTPS 了解不多,但如果提供容易获取 SSL Key 的方式,我觉得不应该,稍微加点门槛都好过随便获取吧
yannxia

yannxia      5 小时 59 分钟前

@AA5DE3F034ACCB9E 和 Chrome 有关系,和 HTTPS 有啥关系呢,Chrome 提供一个方便 Debug 的功能,你别开呗,但是你电脑被控制了,开了这个功能,但是主要问题是你的电脑被控制,就算 chrome 没提供这个功能也有其他办法搞定。
geelaw

geelaw      5 小时 51 分钟前

不太确定 OP 在期待什么。公司的电脑是公司控制的,公司可以不间断查看你的内存,那么 Chrome 记录不记录也没什么区别,你能做的就是不使用公司电脑做不能让公司知道的事情。
mrhhsg

mrhhsg      5 小时 40 分钟前

以前感觉飞机很安全,最近有一次我下了飞机扫了个共享单车骑回家居然摔了一跤。。。仅需要一辆共享单车就能引起飞机乘客的受伤,让人非常没有安全感
byte10

byte10      5 小时 38 分钟前

@tool2d 我也是醉了,跟你导出 ssl 有啥关系。网管直接让你安装 信任根证书就完事啦。思维还是没转过来。

之前还有一个同事说,浏览器的 cookie 被别人的导出去怎么办? 账号岂不是被别人登录上啦?你电脑都没有设置高强度密码,肯定会被偷看到啦。所以现在很多都是指纹解锁。很多支付都要二次确认。

太多这样无逻辑的担忧。。。
Ericcccccccc

Ericcccccccc      5 小时 25 分钟前

公司电脑装了监控软件可以做到 10s 截一次屏幕的. 你要担心的东西不应该限制在 https 上.
Promtheus

Promtheus      5 小时 23 分钟前

https 是防止的网络嗅探吧,你这直接在源点就被黑了这还搞个毛线
justfindu

justfindu      5 小时 22 分钟前

你这都已经跳出互联网范畴了呀.
8355

8355      5 小时 17 分钟前

linux 获取了 root 权限
windows 获取了 administrator 权限

还有什么是做不到的吗 做不到只是技术能力问题 不是限制问题
反向理解这是我个人电脑有 administrator 我想干啥计算机能做到非不让我干那对吗...

好像租了房东的房子换了把锁 房东就进不来了吗...
sujin190

sujin190      4 小时 57 分钟前

都能给你设 SSLKEYLOGFILE 环境变量了,直接给你搞个根证书不更好么,这下不管你是不是 chrome 都随便看了,所以都物理突破了既然已经有更容易使用的方法,那么 chrome 搞不搞还有啥意义,而且设置这个现实也确确实实会有这个需求啊
fregie

fregie      4 小时 45 分钟前

都能跑到你电脑上为所欲为了,这就跟网络协议没关系了
bing1178

bing1178      4 小时 44 分钟前

你觉得不安全 那就不安全吧
fields

fields      4 小时 41 分钟前

跟 https 有什么关系  https 是传输过程 浏览器是另外的领域了
newmlp

newmlp      4 小时 40 分钟前

@AA5DE3F034ACCB9E 在本地已经不安全的情况下,这种门槛毫无意义,人家不能在你系统里装一个自签名证书,一样抓你数据,甚至比环境变量还简单
Aixtuz

Aixtuz      4 小时 34 分钟前

再安全的锁,也挡不住劫匪架刀让我掏钥匙。
churchmice

churchmice      4 小时 31 分钟前

又是想搞个大新闻,还以为 ssl 被攻破了呢
你这问题恰好说明 https 的重要性
iX8NEGGn

iX8NEGGn      4 小时 16 分钟前   ❤️ 1

本地安全关 https 什么事,人家保障的通信链路的安全,退一万步讲,这是浏览器的策略,和 https 也完全不搭边
yaphets666

yaphets666      4 小时 12 分钟前

这和直接把你绑票了,问你信息有啥区别。你要这么说,密码这个东西根本就没用,我直接打开你浏览器,复制一份你的参数就可以了。
luoshuhui

luoshuhui      4 小时 11 分钟前

没明白“ssl 密钥”是指什么?
dobelee

dobelee      4 小时 5 分钟前

谷歌认为你的 PC 被网管入侵。
tool2d

tool2d      4 小时 2 分钟前

@luoshuhui "没明白 ssl 密钥是指什么?"

https 传输,底层一般会用 AES 这类的算法加密数据。

SSL 为了保证安全性,原则上每一次新的请求,都会要求客户端更换新密钥。

而 chrome 的 SSLKEYLOGFILE ,会把每一次更换的密钥,都保存下来。有了密钥后,就相当于网管在出口抓包,抓的是明文 http 。
JKeita

JKeita      3 小时 59 分钟前

你这话说的,你都电脑上被监控了,还有啥隐私可言,跟 https 有啥关系。
AA5DE3F034ACCB9E

AA5DE3F034ACCB9E      3 小时 58 分钟前

@yannxia 对,我想说的是 Chrome 。虽然有人拿刀架在脖子上做比喻,但我还是无法理解把钱放在电视抽屉的操作,假如有更好的保险箱的情况下,或者是暗格
JKeita

JKeita      3 小时 57 分钟前

@tool2d 你这话说的,及时苹果手机你把解锁密码跟别人说了不也一样。
bluedawn

bluedawn      3 小时 48 分钟前 via iPhone   ❤️ 3

草,点进来前还以为 https 这么多年了居然还能有漏洞
点进来以后“哦这样啊那没事了”。
hankai17

hankai17      3 小时 48 分钟前

让浏览器走代理 再加密一次
tool2d

tool2d      3 小时 43 分钟前

@JKeita "你这话说的,及时苹果手机你把解锁密码跟别人说了不也一样。"

两者完全不一样的。

1. 拿刀架脖子,让我交待苹果锁屏密码,我认怂。(公司让强制安装根证书)

2. 在办公室屋顶安装一百倍放大镜,偷看我解锁屏幕的密码,我不服。(用环境变量静默导出,大部分人都不知道还有这个参数)
LXGMAX

LXGMAX      3 小时 19 分钟前

我直接用 curl 上网,人脑渲染 page 再 post
neptuno

neptuno      3 小时 10 分钟前

可能后面的同事是卧底呢,偷偷看你电脑屏幕
Metre

Metre      2 小时 37 分钟前

https 不是做加密的吧? https 是防篡改
要加密 自己套代理
banmuyutian

banmuyutian      2 小时 30 分钟前

强盗都跑进家里了你怪管家放东西不够严实……
duanxianze

duanxianze      2 小时 28 分钟前

@tool2d 那我在你苹果上装个监控软件,你还安全吗?
n18255447846

n18255447846      2 小时 1 分钟前

ssl 防的是中间人攻击,防不了内鬼
bx0kpsmc4n

bx0kpsmc4n      1 小时 40 分钟前

有点像 KeePass 前段时间被人骂有漏洞,你运行环境本身都不安全了还纠结什么呢
kkocdko

kkocdko      1 小时 35 分钟前 via Android   ❤️ 1

你设置环境变量,甚至可以:

使用 LD_PRELODE 强行要求所有程序先执行你的代码。

那么你在说什么?
huijiewei

huijiewei      1 小时 29 分钟前

世界上有安全的东西么

加密?

打死也不说?
AlisaDestiny

AlisaDestiny      1 小时 28 分钟前 via Android   ❤️ 1

有点无语,你这有点像用微信和朋友语音,结果说的话全被你旁边的同事听见了,然后你说微信一点也不安全。
IvanLi127

IvanLi127      1 小时 27 分钟前 via Android

这关 https 啥事。。。。。这标题起得很引战啊
sl0000

sl0000      1 小时 19 分钟前

https 解决的不是你这个问题呀, 你这个问题是要装一个安全的系统和安全的应用环境才行
mangoDB

mangoDB      58 分钟前

- 管理软件定时截屏
busier

busier      51 分钟前

楼主脑子瓦特了,Chrome 的问题怪到 SSL/TLS 头上!

Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK