V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
这是一个专门讨论 idea 的地方。

每个人的时间,资源是有限的,有的时候你或许能够想到很多 idea,但是由于现实的限制,却并不是所有的 idea 都能够成为现实。

那这个时候,不妨可以把那些 idea 分享出来,启发别人。
0gys
V2EX  ›  奇思妙想

如果 CPU 不考虑安全,性能会有多高

  •  1
     
  •   0gys · 2021-03-13 09:36:30 +08:00 via iPhone · 9000 次点击
    这是一个创建于 1345 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1,现在很多软件系统,甚至 cpu 都在聚焦安全这块。这是以前软件系统想都没想甚至忽略的内容。因为那时的竞争还没有因为利益如此不择手段。

    2,大家都知道如今的 Windows 都内置了杀毒。但其实在很多机器上跑起来很慢。所以都禁用了杀毒提高响应速度。连浏览器下载后也会扫描你的文件是否安全。甚至替你决定这个文件是否丢弃没得选择。

    3,现在的安全让我们很多操作变得缚手缚脚。连生活中很多事情都变得非常麻烦。如果大家都遵守君子协定,自觉去做不该做的内容,效率是不是更高。

    4,我觉得现在就是投机的社会,以前所不齿,现在却是认同。因为投机很多都是不择手段去钻漏洞,防范一个又一个,累了直接一刀切。牺牲便利换取安全。最后的结果都是小人胜利了。因为我们大多数妥协了。就像很多电影结局并非圆满,只是让你看得圆满。

    5,不要以为离题了,并没有。我想说的 cpu 只是象征意义。因为确实很多事情不考虑安全,效率确实提高了。
    63 条回复    2021-08-18 03:42:06 +08:00
    deorth
        1
    deorth  
       2021-03-13 09:39:25 +08:00   ❤️ 11
    共产主义好
    systemcall
        2
    systemcall  
       2021-03-13 09:43:12 +08:00 via Android   ❤️ 1
    那样就连一级地址转换也不用了,mmu 简单不少
    也不需要区分不同的 EL 。但是效率不一定变高,成本确实可以降到非常低
    uclinux 那样的东西吧,或者是嵌入式的其他系统,才可以支撑其运行。因为不会有什么东西把不同的进程的内存隔离,数据页和代码页的保护就更无从说起了。可能一个数组越界就会跑飞
    mcs-51 威力加强版
    flywall
        3
    flywall  
       2021-03-13 09:45:14 +08:00 via iPhone
    制造工艺的提升也很重要
    Blessing1
        4
    Blessing1  
       2021-03-13 09:48:22 +08:00
    一般厂商都首先是保障自己不出问题

    然后保障自己的利益

    再考虑绝大部分人的利益和能接受度找一个平衡点
    keyscrapper
        5
    keyscrapper  
       2021-03-13 09:51:20 +08:00 via iPad
    @deorth ?和共產主義有什麼關係
    surfish
        6
    surfish  
       2021-03-13 10:08:26 +08:00
    除了所谓的速度,还要确保不出问题(验证),这个就涉及策略,策略是人想出来的,但人是善变的。

    结论:没有绝对完美的东西。
    Justin13
        7
    Justin13  
       2021-03-13 10:55:42 +08:00 via Android   ❤️ 4
    不对投机做限制就是鼓励投机,如果人人都可以随意犯罪并免于惩罚,到最后所有人都会变成罪犯
    所谓的君子协定不过是一厢情愿罢了,劣币驱逐良币才是常态
    ttgo
        8
    ttgo  
       2021-03-13 10:57:15 +08:00
    说实话,还是因为你硬件没到位。不够用就升级。
    icyalala
        9
    icyalala  
       2021-03-13 11:08:51 +08:00   ❤️ 1
    大量安全特性都是以提升成本为代价额外做的专用逻辑,
    把他们去掉可以节省成本,但性能提升不会那么大。。
    0gys
        10
    0gys  
    OP
       2021-03-13 12:17:30 +08:00 via iPhone
    @systemcall 你这程序规范的话应该不会有这问题,说到底还是程序问题不是安全问题,加个安全最多程序不能运行
    0gys
        11
    0gys  
    OP
       2021-03-13 12:20:43 +08:00 via iPhone
    @Justin13 如果真是劣币逐良币我也认了。但有时候真的太过分。所以有时候我认为战争不是坏事。就像免疫反应一样,好的坏的全部重来
    0gys
        12
    0gys  
    OP
       2021-03-13 12:25:36 +08:00 via iPhone
    @ttgo 你没理解,不单单是硬件的问题。而是人们做产品思维变化了。一切向利益看齐了
    BugenZhao
        13
    BugenZhao  
       2021-03-13 12:28:47 +08:00 via iPhone   ❤️ 1
    事实上很多机制是为了 safe 而设计的,而不是为了楼主描述的 secure
    0gys
        14
    0gys  
    OP
       2021-03-13 12:47:55 +08:00 via iPhone
    @BugenZhao 保护与安全本质就是矛与盾。看对象是谁。到现在颠倒了。我不得不认历史是波浪前进的
    lihongming
        15
    lihongming  
       2021-03-13 13:26:10 +08:00 via iPhone
    所以 iOS 那样的封闭系统是不是天然有这个优势?
    shutan
        16
    shutan  
       2021-03-13 14:10:35 +08:00
    真敢想啊

    不错
    sillydaddy
        17
    sillydaddy  
       2021-03-13 14:47:11 +08:00   ❤️ 2
    举 2 个例子:
    1. 访问 http 网站与 https 网站,速度有区别吗?
    2. 用户在云平台的数据,有被云平台偷窥的可能。而现在已经有了全同态加密,可以 100%保护云数据不被云厂商偷窥。为什么全同态加密没有被业界应用呢? 参考: /t/700927

    对于懒得思考上述例子的人,我直接给出我的结论:现在的状态只是安全与效率的平衡,没有什么不择手段。“君子协定”太乌托邦了,也太脆弱了。
    limbo0
        18
    limbo0  
       2021-03-13 16:46:35 +08:00
    可以看看当年为了修正 Heartbleed bug 修正的补丁服务器性能下降了多少
    loveour
        19
    loveour  
       2021-03-13 16:52:04 +08:00   ❤️ 2
    前段时间在 V2 的一个回复里还感叹过,我们整个社会为小部分不守规矩的人付出了太大的代价。
    imn1
        20
    imn1  
       2021-03-13 16:52:19 +08:00
    我怎么会想到“隐私换便利”那句话?
    systemcall
        21
    systemcall  
       2021-03-13 20:34:54 +08:00
    @lihongming #15
    iOS 那样的系统,离不开 CPU 提供的安全功能
    不说别的,如果没有不同的 EL 也没有 MMU 提供的一级地址转换以及内核空间与用户空间的分离,你要怎么样维持这个沙盒呢?
    billccn
        22
    billccn  
       2021-03-13 20:38:51 +08:00   ❤️ 3
    @limbo0 那个是 Intel 作死,微构架上面投机取巧把构架里有的安全考量给优化没了,靠微码也无法完全修正,只能操作系统层面在切换进程的时候完全清空缓存。AMD 设计正确的就没有问题,安全又高速。

    另外 @0gys,可用性也属于安全范畴,一个进程死循环把整个系统锁死就是安全问题。因为停机问题是不可解的,CPU 层面必须设计出可以安全结束一个死循环进程而不破坏系统其他进程稳定性的方案,这就是内存保护,虽然有代价,但是比三天两头就死机重启、丢失之前的工作进度要高效的多吧。

    不知道你有没有体验过从 Windows 98 (或者 ME )过渡到 Windows 2000 那种革命性的稳定,98 时代是 IE 崩溃就可能把整个系统带蓝屏,因为内核内存没有被完全保护起来,同时渲染是在内核里跑的,这种就是为了一点性能牺牲了稳定性,对于大多数用户来说属于本末倒置。Windows NT 引入了严格的权限管理,只有驱动才可以读写内核,一个桌面系统连续工作几天不崩溃才成为可能。
    mxT52CRuqR6o5
        23
    mxT52CRuqR6o5  
       2021-03-13 20:43:43 +08:00   ❤️ 1
    @billccn 看到你举得例子我想到了 ios safari 之前的 bug,浏览器崩溃能直接把系统带崩
    0gys
        24
    0gys  
    OP
       2021-03-13 21:27:40 +08:00 via iPhone
    @lihongming 那倒不是,起码你很多自定义的事情做不了
    0gys
        25
    0gys  
    OP
       2021-03-13 21:29:03 +08:00 via iPhone
    @surfish 话是没错,只是觉得坏不应该如此被忍让
    0gys
        26
    0gys  
    OP
       2021-03-13 21:30:46 +08:00 via iPhone
    @sillydaddy 是啊!我只是想为什么不能想好的方面发展?可能利益在人的眼中永远是排第一吧
    0gys
        27
    0gys  
    OP
       2021-03-13 21:31:55 +08:00 via iPhone
    @limbo0 所以说安全是已牺牲性能为代价的。不然我为不会如此想法
    0gys
        28
    0gys  
    OP
       2021-03-13 21:33:09 +08:00 via iPhone
    @systemcall 如果都有君子协定,安全这块真的是可以不做的。唯一能做的是大家写程序都不越界即可
    0gys
        29
    0gys  
    OP
       2021-03-13 21:35:40 +08:00 via iPhone
    @billccn 这个按理不属于安全问题。只是程序与程序之间协调出了问题。如果向厂商提出意见,应该能解决
    0gys
        30
    0gys  
    OP
       2021-03-13 21:36:26 +08:00 via iPhone
    @loveour 目前不只这里出现,整个社会都有如此问题
    0gys
        31
    0gys  
    OP
       2021-03-13 21:38:15 +08:00 via iPhone
    @mxT52CRuqR6o5 程序设计运行问题。所以测试很有必要。再完美的程序都有 bug
    sbilly
        32
    sbilly  
       2021-03-13 22:30:19 +08:00
    这个世界要是没有坏人,社会效率会变得多高?
    0gys
        33
    0gys  
    OP
       2021-03-13 23:02:28 +08:00 via iPhone
    @sbilly 难,搞不好自己就成坏人了
    systemcall
        34
    systemcall  
       2021-03-13 23:33:49 +08:00
    @0gys #28
    那么,这个可以让大家遵守规矩的全知全能的上帝存在吗?上帝会维持这套秩序吗?
    连浏览器都可以用一些办法来塞满不得不用的 Spyware,还有什么不可以的呢?
    特洛伊木马行不通甚至可以通过行政的力量强制你去使用,市场那只看不见的手,还是需要在上帝的关爱下才可以生效吧
    feather12315
        35
    feather12315  
       2021-03-13 23:37:31 +08:00 via Android
    如上面说:
    安全是 security 还是 safety ?
    仅是 security,应该没有多大的提高
    FindHao
        36
    FindHao  
       2021-03-14 00:01:56 +08:00
    @0gys #28 “唯一能做的事,大家写程序都不越界。”这句话要做到付出的代价,远远比为了安全考虑降低性能带来的代价大多了。
    no1xsyzy
        37
    no1xsyzy  
       2021-03-14 02:27:59 +08:00
    C 的出入条件检验(防御性编程)变为 Rust 的编译期保证,提升了多少运行时效率?

    @sbilly 裸鼹鼠(
    0gys
        38
    0gys  
    OP
       2021-03-14 07:06:26 +08:00 via iPhone
    @systemcall 我知道这是不现实的。但不妨碍它的产生。只是一种想法,切莫带进现实。
    jinliming2
        39
    jinliming2  
       2021-03-14 08:31:32 +08:00 via iPhone
    举个例子,为什么会出现带备份机制的硬盘 RAID 方案? RAID 0 不是很香? n 块硬盘理论速度是单盘的 n 倍,那不是快到飞起?
    然而现实是重要数据不敢用 RAID 0,这并不是怕你感染上什么勒索病毒文件全被锁了,因为如果你感染了勒索病毒,RAID 1 都救不了你。
    不敢用 RAID 0 是因为硬盘会“自然损坏”,而一块硬盘坏了所有数据 GG 。(硬盘都是一样的,保存条件也是一样的,为啥单单坏其中一个?)

    另外再想想,ECC 内存的出现又是为了什么呢?

    所以,如果 CPU 不带安全机制,恐怕你在电脑前打个电话,电脑都会出错死机了……
    Halry
        40
    Halry  
       2021-03-14 08:57:41 +08:00 via Android
    可以看一下固态硬盘的加密
    大部分的 ssd 的控制器是带 aes 加密的,问题是给出来 tcg opal psid 的也没有多少家,主要就是为了和企业级分开所以只有几家的几款是消费级就支持 tcg opal 的

    amd 的现代 cpu 基本都支持 ecc 内存,而 intel 为了降低成本消费级的不支持 ecc 内存,而 intel 放出来说消费级内存不需要 ecc 可以加快速度和超频。但实际上超频内存的也只有一少部分人,到底了也就是为了成本而已
    systemcall
        41
    systemcall  
       2021-03-14 13:39:57 +08:00
    @Halry #40
    ECC 内存这块,如果你用的是服务器级别的主板,Intel 的 i3 是支持 ECC 的,但是再低一些的奔腾、赛扬和高一些的 i5 、i7 不支持
    AMD 关于内存的一些企业级的技术也是需要 Pro 系列的 CPU 的,比如内存加密(但是这个功能据说在游戏机 CPU 上面是强制开启的)。主板这边就比 Intel 乱多了,SR-IOV 、ECC 、甚至是 AMD-V,每张主板都可以不一样,哪怕是同一家的主板甚至是同一个系列
    luckykong
        42
    luckykong  
       2021-03-15 13:09:20 +08:00
    @keyscrapper #5 没有约束,没有制度性损耗,不就只有共产主义才能实现么。
    只有每个人的需求都得到满足,心想事成,物质精神极大丰富,才没有人想去寻求“更有效”的路径,也不可能存在这种优化。
    xiaoqiao24
        43
    xiaoqiao24  
       2021-03-16 13:44:46 +08:00
    如果世界上不考虑坏人,是不是连门都不需要了?
    DoctorCat
        44
    DoctorCat  
       2021-03-17 03:09:52 +08:00
    如果人人都献出一份爱,世界将变成美好的人间……
    jun771480011
        45
    jun771480011  
       2021-03-18 15:04:57 +08:00
    柏拉图的理想国
    AX5N
        46
    AX5N  
       2021-03-19 09:05:22 +08:00
    根据我的经验,也就百分之几十吧,百分之几十的效率换安全性值得么。
    0gys
        47
    0gys  
    OP
       2021-03-19 09:10:14 +08:00 via iPhone
    @AX5N 可以把它当极客产品^_^
    0gys
        48
    0gys  
    OP
       2021-03-19 09:12:01 +08:00 via iPhone
    @xiaoqiao24 如果人与人之间变成一致对外,我觉得可以。就像和熟人一样打交道
    systemcall
        49
    systemcall  
       2021-03-19 18:09:50 +08:00
    感觉对 CPU 的安全方面的功能是不是有什么误解,觉得设计上是为了防止恶意软件的
    CPU 的不少安全功能是为了防止一个小错误把整个系统给弄崩溃的,比如数组越界,安全功能齐全的电脑不会崩溃,只会把那个进程给结束掉。但如果是 C51 这样的没有虚拟内存、数据执行保护之类的功能的平台,可能就直接跑飞了
    0gys
        50
    0gys  
    OP
       2021-03-19 18:12:27 +08:00 via iPhone
    @systemcall 可能语言表达不善。大致是把不影响的条条框框去掉。并不是说把规则去掉。
    systemcall
        51
    systemcall  
       2021-03-19 18:18:06 +08:00
    @0gys #50
    那些安全风险正常情况下也不见得不会影响一般的程序
    shequ2046
        52
    shequ2046  
       2021-03-21 11:42:16 +08:00
    楼主的发言本质上还是半桶水不懂装懂的产物,IT 行业的现状中安全仍然是排在最后几位需要考虑的因素,所谓的 Exploit 绝大多数情况下都只是想办法控制随机发生的可能导致系统崩溃的情况。换句楼主这种小白能听懂的话来说就是,所谓的安全漏洞的本质就是一部分会导致系统崩溃的漏洞,而没有安全机制的结果就是天天死机丢数据。
    ERRASYNCTYPE
        53
    ERRASYNCTYPE  
       2021-03-22 17:57:35 +08:00
    我发明了一个最强的算法
    ()=>1
    虽然结果不一定对
    jhdxr
        54
    jhdxr  
       2021-04-09 22:17:05 +08:00
    @sillydaddy @0gys
    1. 如果你对于速度的定义局限在传输速度,那可能的确没有区别。但 https 对于服务器端是有额外的运算量的。我之前的某个业务评估过 https 能够承载的业务量是 http 的 1/8 (优化加密算法选择后)
    2. 对于同态加密,你的贴文中提到的是错的。同态加密只有加法和乘法。并不支持减法和除法。并且每次运算会使数据量极大量的膨胀。另外,『实际上可以针对加密数据执行任意程序』是一个完全错误的描述。如果你学过编,那你应该知道分支结构。在同态加密中无法实现比较操作。所以 HE 没有被应用,性能依然是个问题(已经不再是完全不可用的状态,但离个人应用还差的太多),此外特性的支持上也不够。
    wclebb
        55
    wclebb  
       2021-04-10 00:52:27 +08:00
    对于你发帖 https://www.v2ex.com/t/769272
    担忧 App 安全性而言
    你发了这个帖子不担忧 CPU 安全性的前提下会有多快的安全。

    要不你是故意钓鱼。
    要不你是无知过头。
    sillydaddy
        56
    sillydaddy  
       2021-04-10 22:47:22 +08:00 via Android   ❤️ 1
    @jhdxr 全同态加密可以对加密数据执行任意程序。因为加密是针对的单个 bit 。加法同态与乘法同态对应的分别是门电路中的异或门和与门。这两个门的组合是图灵完备的,也就是它们 2 个可以组合成任意电路,也即运算任意函数。
    jhdxr
        57
    jhdxr  
       2021-04-11 04:30:49 +08:00
    @sillydaddy 怎么说呢。。。你说的对!期待你早日**实现**(日常生活意义上的)可用的!加油!
    sillydaddy
        58
    sillydaddy  
       2021-04-11 08:05:03 +08:00 via Android   ❤️ 1
    @jhdxr >"同态加密只有加法和乘法。并不支持减法和除法。"
    > "另外,『实际上可以针对加密数据执行任意程序』是一个完全错误的描述。如果你学过编,那你应该知道分支结构。在同态加密中无法实现比较操作。"

    我反驳的是你上面提到的这些观点。如果自己不理解这方面的内容,请至少虚心听取别人的意见然后学习改进,而不是强辩。

    你从哪儿看到我说现有的性能足够日常使用全同态加密了,麻烦指出来?
    Cu635
        59
    Cu635  
       2021-04-11 10:33:01 +08:00
    @0gys
    “就像和熟人一样打交道”
    坑你坑的最狠的就是熟人……

    @jhdxr
    “我之前的某个业务评估过 https 能够承载的业务量是 http 的 1/8 (优化加密算法选择后)”
    不过这种测试在墙内都属于“真空中的球形鸡”情况。在测试环境下 http 数据挺好,真上生产环境了,因为运营商的各种操作,http 最终表现比不上 https 。

    “如果你学过编”
    是不是少写了几个字?
    jhdxr
        60
    jhdxr  
       2021-04-12 06:56:20 +08:00
    @Cu635 我们那时候是已经决定要上 https 了,所以只是评估从 http 迁移到 https 要加多少机器。


    @sillydaddy 我回顾了下我上面的发言我承认有很强的误导性。你在之前的帖子中已经明确表达了你好奇为什么 HE 没有在日常生活中应用,那我认为我们至少有一个讨论前提,就是在讨论目前可行的应用思路。然后我就把话题局限在了算数电路而忽略了布尔电路。当然实际上你后续发言说明你想的和我想的完全是两回事。btw,我现在至少在做 HE 的应用。
    junas7
        61
    junas7  
       2021-04-12 17:23:23 +08:00
    @flywall Intel:???
    xiangbohua
        62
    xiangbohua  
       2021-04-14 14:00:06 +08:00
    不考虑安全的东西再快,你敢用吗?
    问题没有实际意义,扯淡摸鱼还行
    kkocdko
        63
    kkocdko  
       2021-08-18 03:42:06 +08:00
    今天略微了解了 io_uring,发现它的诞生和当时 meltdown 和 spectre 漏洞有关。漏洞修复前,用户态到内核态的上下文切换开销比较小,用 epoll 性能就足够。修复漏洞后,上下文切换开销大幅增加,io_uring 优势凸显。
    我忽然又想到了 IOS 的强制 AOT 要求,这是否也是一种方案?
    如果能提前审核代码,尽量“确保”不出现异常,减少安全检查……这也正是 Rust 在做的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   909 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 20:25 · PVG 04:25 · LAX 12:25 · JFK 15:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.