爱意满满的作品展示区。
sNullp

做了一个基于 Google OAuth 的密码管理器雏形,求分析安全性

  •  
  •   sNullp ·
    sNullp · Jul 31, 2014 · 4002 views
    This topic created in 4484 days ago, the information mentioned may be changed or developed.
    Github: https://github.com/snullp/goPwd
    Demo: https://pwd.bigsquirrel.me

    希望回复有理有据,高质量的分割线----------------

    这个管理器的思路是通过OAuth获得一个Unique的MasterKey,然后用一个密码生成算法 根据(Entity name,MasterKey,Options)来生成密码。

    管理器不使用数据库,减少了被脱库的风险。

    假设服务器的filesystem content和memory content是安全的。

    整个环节,因为生成算法是公开的,所以唯一需要注意的就是MasterKey。目前MasterKey是存在php的session里的,可以被认为是安全的吧?
    MasterKey 是由Google的 UID(google account对应的唯一id)和 Google OAuth后端id(每个人都可以申请) 结合后哈希生成的。所以需要 Google OAuth后端id 保密(后端id需要存在config file里)。目前的设计上看在这点上是否有疏忽?
    11 replies  •  2014-07-31 13:16:33 +08:00
    yangqi
    yangqi
    Jul 31, 2014❤️1
    1
    sNullp
    sNullp
    OP
    Jul 31, 2014
    2
    @yangqi 感谢。
    不过 Google 的后端和我的代码里都做了相应的处理,文中的问题应该不会出现。
    sNullp
    sNullp
    OP
    Jul 31, 2014
    3
    @yangqi Google will verify redirect_url parameter and block unauthorized redirection in their side. Also, in my code, api/auth.php will also check if the token is returned by Google.
    shyrock
    shyrock
    Jul 31, 2014
    4
    最好有个示意图说明这个密码的生成方法和使用方法。。。
    sNullp
    sNullp
    OP
    Jul 31, 2014
    5
    @shyrock 呃。。什么是密码的使用方法。。
    生成方法,就是登录后输入网站名就吐给你一个密码。。
    shyrock
    shyrock
    Jul 31, 2014
    6
    @sNullp 然后呢,这个密码每次都不一样?怎么存储?
    sNullp
    sNullp
    OP
    Jul 31, 2014
    7
    @shyrock 。。。每次是一样的。。
    “用一个密码生成算法 根据(Entity name,MasterKey,Options)来生成密码”

    所以不需要存储
    mcfog
    mcfog
    Jul 31, 2014
    8
    http://www.passwordmaker.org/ 用户路过,表示根本不需要什么中心服务器
    sNullp
    sNullp
    OP
    Jul 31, 2014 via iPhone
    9
    @mcfog exactly这个思路,只是做成了php的版本
    rankjie
    rankjie
    Jul 31, 2014❤️1
    10
    看了下 https://github.com/snullp/goPwd/blob/master/include/Generators/naive.pwdGen.php ,所以就是对于但以用户而言,密码目前只是根据名称来计算出唯一值,那么就有以下问题需要改进:

    1:假设我要修改某站点的密码,那么我就必须改名称才行了,不过这是小问题... options 利用起来就好了

    2:公开的算法,然后唯一凭证就是 Google OAuth后端id 和 Google的 UID ,为什么你相信这两组数据是被保密的呢?我看不出这两个 id 对于 Google 而言有什么需要保密的地方
    sNullp
    sNullp
    OP
    Jul 31, 2014 via iPhone
    11
    @rankjie 感谢回复,想换密码必须要换算法,比如换个字典。。

    uid根本就不是保密的。但后端id配有一个secret,那个secret应该是保密的。。写在配置文件里。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1018 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 48ms · UTC 18:50 · PVG 02:50 · LAX 10:50 · JFK 13:50
    ♥ Do have faith in what you're doing.