V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Heracles
V2EX  ›  Apple

iMessage 私钥存储位置推测

  •  
  •   Heracles · 2014-09-29 23:30:03 +08:00 · 3791 次点击
    这是一个创建于 3712 天前的主题,其中的信息可能已经有所发展或是发生改变。
    苹果说iMessage采用端到端加密,但iMessage又可以多平台同步,这意味着多个设备共用一个私钥。那么私钥是如何分发的?苹果有没有保存这个私钥?

    做了个实验,详情https://medium.com/@herac1es/imessage-9c28b7ed97a6

    我的结论是:iMessage私钥保存在设备上,苹果没有私钥,因此无法破解用户通信。

    不科学的实验,结论不一定对。
    10 条回复    2014-10-08 10:59:29 +08:00
    WernerLi
        1
    WernerLi  
       2014-09-29 23:39:08 +08:00
    有一个问题,设备间传输私钥是不是通过Apple服务器的?是的话理论上也是可以拦截的,不是的话又是怎么传输的?
    Heracles
        2
    Heracles  
    OP
       2014-09-29 23:42:05 +08:00
    @WernerLi 这个就不知道怎么验证了
    yyfearth
        3
    yyfearth  
       2014-09-30 03:37:13 +08:00
    @WernerLi 可以用非对称加密 只传递PubKey啊
    每个设备生成自己的Pub/Private Key Pair
    然后Apple服务器通过帐号分发PubKey不就好了
    拦截了 也是拦截PubKey 照样是加密了不可解密
    yishanhe
        4
    yishanhe  
       2014-09-30 04:37:48 +08:00
    http://support.apple.com/kb/HT4865

    @Heracles 我觉得设备之间应该是有共享的secret key
    这个 secret key 应该是 @WernerLi 说的这样,应该是每个设备有pub/private key pair,然后用Diffie–Hellman key exchange交换这么一个secret key,这个secret key是用来做对称加密得,比如AES128/256

    @WernerLi 拦截这种,对于中间人攻击,都是通过证书和CA来验证apple服务器,确认再协商key得阶段是再和真正得server通信,一旦key exchange顺利完成,可以认为接下来得通信是安全得
    wy315700
        5
    wy315700  
       2014-09-30 08:58:05 +08:00
    发现LZ文章里的几个逻辑错误。
    PGP加密方式是先用自己的私钥签名,然后用对方的公钥加密。

    如果先用对方的公钥加密,再用自己的私钥签名的话,攻击者获取消息以后,可以用你的公钥解密后再用他自己的私钥进行签名,发给对方。

    如果先用自己的私钥签名,再用对方的公钥加密后,攻击者拿到消息以后做不了任何事情。(重放除外)

    然后我想知道LZ是如何删除imessage的私钥的。

    端对端加密不需要共享私钥。

    端对端加密真正的意义是 A要和B发消息,先通过某种手段双方交换密钥,然后使用该密钥进行加密。
    而交互密钥的过程必须能够防御中间人攻击。有很多这种公开的密钥交互机制,比如ECDHE等。

    至于imessage支持多终端在线,你把他们看做是不同的人,发送端发消息的时候同时给多个人发而已,但是对每个人还是要单独进行一次密钥交换的。

    最后,苹果想要查看消息,压根不需要在加密上做文章。整个ios,Mac OSX都是他的,只要有某种手段将消息发给服务器就可以了。
    Heracles
        6
    Heracles  
    OP
       2014-09-30 09:58:10 +08:00 via iPad
    @wy315700 多谢指正。
    我好像没说要共享私钥吧。。。
    如果每个设备有不同的私钥,我打开Mac时应该收到那个时段发的信息,可是没有。
    wy315700
        7
    wy315700  
       2014-09-30 10:39:48 +08:00
    @Heracles Mac离线以后,不能交互密钥了把,所以收不到把
    yarshure
        8
    yarshure  
       2014-10-05 16:48:38 +08:00
    怎么可能共享私钥的? 密码学没学习过吧?
    多设备共享msg 是每个设备都发一次,用对应设备的公钥,设备收到用自己的private 解密。
    yishanhe
        9
    yishanhe  
       2014-10-08 10:33:04 +08:00
    我今天无意中读到这篇post,大家有兴趣可以看看

    http://blog.cryptographyengineering.com/2014/10/why-cant-apple-decrypt-your-iphone.html
    yishanhe
        10
    yishanhe  
       2014-10-08 10:59:29 +08:00   ❤️ 1
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1031 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 20:42 · PVG 04:42 · LAX 12:42 · JFK 15:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.