V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
feixchow
V2EX  ›  分享创造

常用的各种密码管理软件能信任吗?简单粗暴地撸了个密码管理的工具,求吐槽

  •  
  •   feixchow ·
    null · 2016-06-30 21:36:40 +08:00 · 8763 次点击
    这是一个创建于 2858 天前的主题,其中的信息可能已经有所发展或是发生改变。
    各种常用的密码管理软件能信任吗,尤其是带云存储功能,密码存在云端就安全吗?
    自己简单粗暴地撸了个密码管理的工具,欢迎大家来吐槽

    目前的想法:
    * 防止密码被社工
    大多数人设置的密码都包含个人隐私信息(姓名,生日等),而这些信息是有限的,防止黑客获取到隐私信息后猜解密码

    * 不同网站使用不同密码
    防止一个网站被脱库,导致所有网站账号都被攻破

    * 防止设置密码的习惯泄漏到互联网中
    每次设置密码的时候都要抓耳挠腮想半天

    Gayhub 地址 https://github.com/feix/Genpass
    第 1 条附言  ·  2016-07-01 11:04:29 +08:00
    很多人提到 LastPass 、 KeePass 这些工具
    不用这些密码工具的原因,不知道有没有人有同感:

    * LastPass :在服务器端集中存储所有人的密码,总感觉有哪里不对
    * KeePass: 存在密码文件,设备比较多时,会很麻烦
    第 2 条附言  ·  2016-07-01 11:16:35 +08:00
    密码工具解决的痛点:
    一是防止忘记密码
    二是可以多网站多密码
    三是不需要费力考虑如何构造密码
    82 条回复    2016-07-02 10:38:00 +08:00
    fcicq
        1
    fcicq  
       2016-06-30 21:51:55 +08:00   ❤️ 6
    世界上又多了一个不懂密码学就瞎折腾出来的作品
    feixchow
        2
    feixchow  
    OP
       2016-06-30 21:58:49 +08:00
    瞎折腾是真的,不懂密码学是真么看出来的呢,😂
    herozzm
        3
    herozzm  
       2016-06-30 22:00:57 +08:00
    keepass 挺好的,离线的
    niko
        4
    niko  
       2016-06-30 22:01:33 +08:00
    @herozzm +1024
    rekulas
        5
    rekulas  
       2016-06-30 22:01:37 +08:00
    http://git.oschina.net/splot/dopass/tree/lastpass_v3.2
    我也有和你一样的担心 不过我撸的是针对 lastpass 密码管理的二次加密,二次加密后再上传给第三方加密,安全性提高数倍
    国内也有个花蜜的可以实现高安全因为是动态生成不存在泄露问题,不过我经常用密码管理软件记录一些个人信息所以不适合我
    fcicq
        6
    fcicq  
       2016-06-30 22:01:45 +08:00
    给后来者看:
    shapass=$(echo -n ${username}${concat}${keyword}${concat}${passphrase} | sha256sum | awk '{print $1}')

    然后后面取值的时候竟然不是进制变换, 是每两位 hex 然后取可显示的部分.
    rekulas
        7
    rekulas  
       2016-06-30 22:03:03 +08:00
    看了下貌似也是和花蜜一样动态生成?
    lslqtz
        8
    lslqtz  
       2016-06-30 22:04:39 +08:00
    挂在内网就不怕不懂密码学了,明文都没事。
    @fcicq 你说是吧(滑稽
    fcicq
        9
    fcicq  
       2016-06-30 22:08:05 +08:00
    @lslqtz 所谓"挂内网"的最终解法其实是 HSM 对吧.
    lslqtz
        10
    lslqtz  
       2016-06-30 22:09:59 +08:00
    @fcicq 我的密码是维护在多台设备的文本上的。。 2333
    在 vps 上挂个 HTTP 认证然后放密码 只开放 80 也没啥问题。
    wevsty
        11
    wevsty  
       2016-06-30 22:57:55 +08:00
    keepass 还是值得信任的
    网站名+密码取 hash 的做法还是有些问题,要是某些要素忘记了就不好办,泄露了也不好改
    GhostFlying
        12
    GhostFlying  
       2016-06-30 23:05:24 +08:00 via Android
    @lslqtz 重放,至少得搞个证书吧。。
    lslqtz
        13
    lslqtz  
       2016-06-30 23:05:49 +08:00
    @GhostFlying HTTP 认证是得上 HTTPS 。
    GhostFlying
        14
    GhostFlying  
       2016-06-30 23:08:04 +08:00 via Android
    @lslqtz 不过这种 web based 的现在有 KeeWeb ,其实就是 KeePass 的 web 客户端
    rhin0
        15
    rhin0  
       2016-06-30 23:09:59 +08:00
    google 下 random symbol generator ,各种大小写、数字字符都勾选了,生成十几行随机密码。打印出来,狡兔三窟,存成 txt ,放开启两步验证 googledriver/ dropbox 里,安全得很。只要记住用随机密码阵列你选取的密码的坐标即可。
    feixchow
        16
    feixchow  
    OP
       2016-06-30 23:12:35 +08:00
    @wevsty 之前也用过 keepass ,有次忘记备份数据库文件,蛋疼的改了好久的密码
    alay9999
        17
    alay9999  
       2016-06-30 23:15:35 +08:00 via Android
    具有同样想法的神经病一枚。

    https://tools.appinn.com/mi-plus.html
    feixchow
        18
    feixchow  
    OP
       2016-06-30 23:21:27 +08:00
    @alay9999 😄,功能好多,看来花了不少心思;一对比,我这简直简陋
    feixchow
        19
    feixchow  
    OP
       2016-06-30 23:30:14 +08:00
    @fcicq 进制转换指的是?最后生成密码必须要转成可打印字符,要不没法用啊
    ```shell
    ((num=16#${shapass:$i:2}))
    ```
    alay9999
        20
    alay9999  
       2016-06-30 23:30:53 +08:00   ❤️ 1
    @feixchow 然而懒成了狗,各种扩展客户端虽然心里有想法,然而一直并没有做








    所以一直被人称作坑王……
    glancers
        21
    glancers  
       2016-06-30 23:54:49 +08:00
    我用花密~
    fcicq
        22
    fcicq  
       2016-06-30 23:57:46 +08:00
    @feixchow base64, 58, 36 之类本质是进制变换啊. 没有必要丢弃不能打印的数据
    lslqtz
        23
    lslqtz  
       2016-06-30 23:59:09 +08:00
    我看到你们说的,也在写一个页面进行加密。
    feixchow
        24
    feixchow  
    OP
       2016-07-01 00:11:43 +08:00
    @fcicq 撸代码时考虑过这个问题,因为 base64 生成的字符集有限,要想构成强密码需要再添加一些特殊字符;我就用了比较 dirty 的方法,其实完全有更优雅的实现方式 😅
    feixchow
        25
    feixchow  
    OP
       2016-07-01 00:13:27 +08:00
    @lslqtz 哈哈
    cmlz
        26
    cmlz  
       2016-07-01 00:26:31 +08:00 via Android
    自己设计一条公式在不同网站有不同密码,无关紧要的网站用个简单密码。有没人像我这样?
    RqPS6rhmP3Nyn3Tm
        27
    RqPS6rhmP3Nyn3Tm  
       2016-07-01 01:07:02 +08:00 via iPad
    1Password 用户表示,后悔当初没买 LastPass
    lslqtz
        28
    lslqtz  
       2016-07-01 01:27:44 +08:00
    暂时没写删除功能,很垃圾的一个 PHP ,主要是在 Cookie 上傻逼了半天。
    https://encrypt.acgn.xyz
    密码 testlogin
    lslqtz
        29
    lslqtz  
       2016-07-01 01:29:13 +08:00
    发现一个 bug 。。开修
    lslqtz
        30
    lslqtz  
       2016-07-01 01:38:01 +08:00
    效果如下。
    http://233.dog/f_65192565.png
    加密算法是,先进行 99 次的 MD5 加密,再将其进行 99 次的 SHA1 加密,再进行 99 次的 MD5 加密,最后进行 99 次的 SHA1 加密。
    lslqtz
        31
    lslqtz  
       2016-07-01 01:39:47 +08:00
    对了,也不要试图进行 SQL 注入了。
    他使用的是 txt 存储的。。
    遇到空白行会直接不显示该行。
    dejavu
        32
    dejavu  
       2016-07-01 02:24:59 +08:00 via iPad
    楼主加油,
    wojiaodaxiaxia
        33
    wojiaodaxiaxia  
       2016-07-01 02:36:27 +08:00 via Android
    keepass 有安卓版 chrome 还有插件能帮你保存网页密码 挺不错
    lightening
        34
    lightening  
       2016-07-01 03:33:43 +08:00
    只是生成密码?命令行的 pwgen 不好用吗?
    dynaguy
        35
    dynaguy  
       2016-07-01 06:19:55 +08:00
    Gayhub
    Gayhub
    Gayhub
    ( 三遍)
    233333333
    wolfan
        36
    wolfan  
       2016-07-01 06:25:04 +08:00 via Android
    一直用花蜜🌸,觉得挺好的。
    wingspread
        37
    wingspread  
       2016-07-01 07:05:57 +08:00
    keepass
    loading
        38
    loading  
       2016-07-01 07:10:33 +08:00 via Android   ❤️ 1
    为什么你们就不能协助改进 keepass ,要和你们一直骂的所谓自主产权一样?做一些破轮子!
    chenze
        39
    chenze  
       2016-07-01 08:24:38 +08:00
    https://github.com/chenze/his

    his: A command-line-based password management tool
    DT27
        40
    DT27  
       2016-07-01 08:25:45 +08:00
    密码管理工具的密码都是随机生成的 12 位大小写字母+数字+特殊字符混合。
    binux
        41
    binux  
       2016-07-01 08:34:57 +08:00
    @lslqtz
    「世界上又多了一个不懂密码学就瞎折腾出来的作品」

    1. 多次 hash 并不会增加强度
    2. 同时使用 MD5 和 SHA1 ,会降低 SHA1 强度,即使你最后用的是 SHA1 ,有效空间也只有 MD5 的 128 bits
    coffeecat
        42
    coffeecat  
       2016-07-01 08:41:49 +08:00
    自己撸了一个离线版,自己用。。。一站一密,缺点是需要手机才能登陆。
    ytpfxnj
        43
    ytpfxnj  
       2016-07-01 08:56:05 +08:00
    用这种办法生成随机密码,简单

    http://imgur.com/a/LeliZ
    loca1h0st
        44
    loca1h0st  
       2016-07-01 08:56:12 +08:00   ❤️ 1
    @lslqtz 没有 sql 注入要考虑 xss 啊, 2333
    loca1h0st
        45
    loca1h0st  
       2016-07-01 08:56:35 +08:00   ❤️ 1
    @lslqtz 简单测试下,勿怪
    3dwelcome
        46
    3dwelcome  
       2016-07-01 09:38:33 +08:00
    "1. 多次 hash 并不会增加强度 "

    我不认可这条说法,虽然多次 hash 并不会改变冲撞的概率,但黑客一般都是会先尝试字典攻击,而不是随机暴力概率攻击。

    进行单次 SHA1 和 99 次的 SHA1 计算,明显后者黑客的破解代价更高,也更安全。

    “安全"这个概念是相对的,让破解流程和代价足够复杂,比如 D 加密,也是变相增加安全系数。
    spongebobsun
        47
    spongebobsun  
       2016-07-01 10:10:23 +08:00
    咦,我也撸了一个,还没发布,正在打磨中~

    顺便问下各位大神,不懂密码学,直接上 bcrypt 去加密解密,这样有问题么~
    megatron
        48
    megatron  
       2016-07-01 10:14:11 +08:00
    多次 hash ,黑客一样可以使用字典攻击。
    3dwelcome
        49
    3dwelcome  
       2016-07-01 10:26:01 +08:00
    @megatron

    两者计算量不一样啊,同一份字典,多次 hash 计算量要大很多。这就是安全系数。
    feixchow
        50
    feixchow  
    OP
       2016-07-01 10:32:27 +08:00
    @lslqtz 哈哈,有意思
    feixchow
        51
    feixchow  
    OP
       2016-07-01 10:33:07 +08:00
    @dejavu 多谢
    Soar360
        52
    Soar360  
       2016-07-01 10:41:39 +08:00
    就不吐槽自己写加密算法和受迫害妄想症了。。。
    我用 LastPass ,多终端同步,一个主密码,网站、应用自动填充。
    感觉还好。是因为我没有被攻击过么?
    feixchow
        53
    feixchow  
    OP
       2016-07-01 10:50:28 +08:00
    @loading KeePass 目前的功能实现已经很完善了,有能力当然会协助改进;但是各种导出导入数据库文件,在设备比较多的时候感觉特别烦啊
    feixchow
        54
    feixchow  
    OP
       2016-07-01 10:52:10 +08:00
    @loading 而且这个应该还谈不上自主产权吧,仅仅是一个小尝试,😅
    ppwangs
        55
    ppwangs  
       2016-07-01 10:52:59 +08:00
    搞得好复杂,反正我所有普通网站密码一样,网银的不太一样。。
    我不担心被破解,只要不涉及到资产,就没什么。
    ---
    很多人吐槽网站输错密码提示“账户或密码错误”,这其实就是防止暴力
    bp0
        56
    bp0  
       2016-07-01 10:53:00 +08:00
    @3dwelcome 只要黑客的字典里面有你的密码,单次 HASH 和多次 HASH 是一样的,除非每次 HASH 的时候都加不同的盐。
    googlebot
        57
    googlebot  
       2016-07-01 11:05:55 +08:00 via Android
    密码软件主要功能是防止自己忘密码,不是为防黑客,
    feixchow
        58
    feixchow  
    OP
       2016-07-01 11:13:08 +08:00
    @googlebot 同感,一是防止忘记密码,二是可以多网站多密码,三是不需要费力考虑如何构造密码
    leloext
        59
    leloext  
       2016-07-01 11:14:49 +08:00
    Hash 就不是为安全性而出现的。不过我认为每次 hash 都会丢失掉原始的信息,数学渣无法算出极限下的情况,请数学大神来推理一下。
    3dwelcome
        60
    3dwelcome  
       2016-07-01 11:30:33 +08:00
    @leloext

    老外有测试的方法,就是随机生成一亿数据,然后对数据进行 md5()或者 md5(md5()),然后看结果集里相互冲撞的数量,越少证明对原始信息的保护性越好。

    老外提供了一个结果, md5 每递归一次,能保持 98%的原始数据信息。我也没验证过-_-
    lslqtz
        61
    lslqtz  
       2016-07-01 11:46:22 +08:00
    @feixchow 页面没看到回复,没考虑 xss ,是我的失误。
    个人表示,只要站不被拿下就 ok 。
    lslqtz
        62
    lslqtz  
       2016-07-01 11:47:01 +08:00
    艾错,@loca1h0st 。
    没收到提醒。。
    我的目的是站不被拿下,这是随手写的,懒得那么完善,
    lslqtz
        63
    lslqtz  
       2016-07-01 11:47:08 +08:00
    lslqtz
        64
    lslqtz  
       2016-07-01 11:49:21 +08:00
    @binux 是瞎折腾啊。。
    但是配合上这么多层加密,也不一定能那么容易撞开吧。
    lslqtz
        65
    lslqtz  
       2016-07-01 11:52:58 +08:00
    @loca1h0st 我的目的是只要密码不泄露,密码随机强度够安全,站不被拿下就 ok 。
    关于密码学啥的。。瞎折腾而已,只要加密时的随机密码字符串够安全就没事。
    并没考虑到 XSS ,一会给你发个感谢。
    lslqtz
        66
    lslqtz  
       2016-07-01 11:58:01 +08:00
    ok ,是我的忽疏,忘转义了。。
    <del>感觉自己就像个 sb 。。</del>
    http://233.dog/f_17550354.png
    SpicyCat
        67
    SpicyCat  
       2016-07-01 12:23:08 +08:00   ❤️ 1
    keepass 配合 dropbox 跨设备根本没问题。
    Lastpass 是存在云端,所以跟钱相关的密码我都不用它存。它胜在方便,所以存一些网站密码。
    因为密码在服务器上就担心,真有点受迫害妄想症了。
    3dwelcome
        68
    3dwelcome  
       2016-07-01 12:29:48 +08:00 via Android
    和钱相关的、我都自己算 hash,这种帐号也不多。安全第一。
    feixchow
        69
    feixchow  
    OP
       2016-07-01 12:34:56 +08:00   ❤️ 1
    @SpicyCat KeePass 配合 dropbox 同步密码文件确实是一个很棒的解决方案
    adamwang
        70
    adamwang  
       2016-07-01 12:43:25 +08:00
    @wojiaodaxiaxia 本人?看过你的直播= = #
    Clarencep
        71
    Clarencep  
       2016-07-01 13:45:05 +08:00
    @lslqtz 从数学上来说,多重 MD5 或多重 SHA 并没有更安全,而可能更不安全 -- MD5 算法本身就会有很多轮( 16 轮)的一个计算,这个轮数是精心挑选的,多一点其实并不会更安全
    pezy
        72
    pezy  
       2016-07-01 13:55:38 +08:00   ❤️ 1
    也来凑个热闹: http://pezy.github.io/password/, 只用了 SHA-1 加密.

    一直自用, 所以设计的很简单.
    lslqtz
        73
    lslqtz  
       2016-07-01 14:35:31 +08:00
    @Clarencep 只是防止撞库应该够了吧。。就是解出来也是另一个 MD5
    kamikat
        74
    kamikat  
       2016-07-01 14:36:19 +08:00
    附 KeePass KDBX 文件结构 https://gist.github.com/msmuenchen/9318327
    lslqtz
        75
    lslqtz  
       2016-07-01 14:36:40 +08:00
    @pezy 感觉很好
    loading
        76
    loading  
       2016-07-01 14:46:37 +08:00 via Android
    @feixchow 我没说你这个是主主产权,你这个是我上面话中的“轮子”…
    muziling
        77
    muziling  
       2016-07-01 15:15:59 +08:00
    @pezy 好像还是在访问网站的时候,需要进入密码生成页面,输入 user, app, 1pass ,生成一下密码,然后复制出来。
    感觉没有改进你说的如下问题。

    我依然采用自己设计的规则管理密码,如微博、 QQ 、知乎、豆瓣、百度等等,我不想每一次浏览器缓存失效时,都掏出手机,输入长长的主密码,然后翻到要找的网站,然后显示该密码。本来是一个直接登录的简单过程,却生生因为所谓的安全性,变得极其复杂。就如一台高效运转的新操作系统,偏偏要给它装上一大堆杀毒软件,各种安全卫士,让其生生变成一台“卡巴斯基”。真不知道这是否得当。
    pangliang
        78
    pangliang  
       2016-07-01 15:51:54 +08:00   ❤️ 1
    安全不安全, 不取决于你用了什么复杂的算法; 而在于是否会被别人轻易的知道你用的是什么算法;
    所以, 在你不会加壳, 不会反反编译等等情况下; 你用 100 次各种算法的组合什么的都是徒劳
    pezy
        79
    pezy  
       2016-07-01 15:53:29 +08:00
    @muziling 我抱怨的问题是, **我的 1Password 仅有手机端**, 而我最经常需要密码的时刻都是在 PC 端上网时, 麻烦之处在于:

    1, 掏出手机麻烦
    2, 对着手机上毫无规律的字符串, 照着抄都容易出错, 还慢.

    而我设计了网站之后, 可以通过收藏夹随时调出该页面, user, app, 1password 都是我极其熟悉的信息, 敲入过程非常快. 最后生成的密码, 也是一键复制, 粘贴即可. 省去了我大量的时间. 如果是手机上用密码, 也是一样, 网页的快捷方式可以直接固定在首屏, 打开之后, 输入三样信息, 然后就可以复制密码了. 某种意义上讲, 这也是一种跨平台的应用...

    当然这仅仅只是针对我个人的需求, 就像上面那么多人都用了基于云的 Lastpass, 或是用了 Dropbox 同步 keepass 的方式, 也都不存在我抱怨的问题, 只不过, 方便快捷与否, 因人而异了. 至少我觉得足够了.
    soratadori
        80
    soratadori  
       2016-07-01 19:11:21 +08:00
    我觉得 lastpass 很安全,完全搞不懂这种折腾的意义在哪
    zhangneww
        81
    zhangneww  
       2016-07-01 22:17:36 +08:00
    keepass 是文件,但是可以用坚果云同步啊
    msg7086
        82
    msg7086  
       2016-07-02 10:38:00 +08:00
    我只知道我在密码学上的水平肯定没 Lastpass 里的那堆大佬强,所以对我来说当然是放在 Lastpass 上更安全。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1228 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 17:49 · PVG 01:49 · LAX 10:49 · JFK 13:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.