API不想使用SSL,握手耗费时间
谢谢
谢谢

1 wy315700 Apr 7, 2015 ECC 椭圆曲线。 SSL已经很快了,,,用ECC证书然后打开spdy或者keep-alive |
2 Tianpu OP 我还是使用对称加密吧 非对称开销太大 真不如使用openssl 算法使用aes-256-cbc 15k的文本 加密解密千次约0.095s 系统瓶颈应该不会是这块了 |
4 h4x3rotab Apr 8, 2015 用非对称比如椭圆曲线传递密钥,然后用AES做实际加密 |
5 Tianpu OP |
6 ryd994 Apr 8, 2015 有长连接的情况下开销应该不大啊 |
7 efi Apr 8, 2015 没有 |
8 NeoAtlantis Apr 8, 2015 via Android curve25519 |
9 lingxi27 Apr 8, 2015 SSL可以选择加密算法,自创加密机制的行为比裸奔好不了多少 |
10 wy315700 Apr 8, 2015 LZ是两台服务间吧,开启SPDY和KEE-ALIVE SSL速度很快的 |
11 zhujinliang Apr 8, 2015 via iPhone 两服务器之间架设VPN呢 |
12 janxin Apr 8, 2015 国密算法看文档说比RSA会快...不过我猜你们不会用... |
13 Tianpu OP 我造了俩脚本,target.php 输出连接信息 test.php通过curl读target.php http 0.001s- https 0.042s+ 域名解析部分都放在hosts里 两个机器是配置一样的闲时状态 也就是说https握手需要42ms 诸位看这个页面最下面 慢成渣滓的v2ex我现在看到的时间都只有49ms 一个API读取耗费这么久 实在不能忍受 所以 我再三犹豫 默认一定要是http协议来连接API 只不过返回内容加密下 加密解密加一起也用不了0.001s API和WEB同机房 延迟大致可以认为是0.2ms左右 也就是API部分最多耗费0.002秒 这样的性能损耗是可以接受的 |
15 Tianpu OP [root@v2ex temp]# curl -w "@time.txt" -o /dev/null -s https://localhost/test.php time_namelookup: 0.000 time_connect: 0.000 time_appconnect: 0.042 time_pretransfer: 0.042 time_redirect: 0.000 time_starttransfer: 0.042 ---------- time_total: 0.042 典型的时间消耗 |
16 Tianpu OP 还有https是ssllabs a+评分的配置 应该不存在太大的改进余地了 |
18 Tianpu OP @wy315700 ECC支持不够广泛 只找到commdo支持 更重要的是 反而变成0.044s了 有更大的坑 curl 7.36才支持ECC https://bugzilla.redhat.com/show_bug.cgi?id=1058776 libcurl没有细查 坚守centos 6.x 反对systemctl 好像没有比较好多办法 我还是http裸奔吧 |
19 wanliang1221 Apr 9, 2015 直接非对称传递密钥,然后对称加密呗。 |
20 wengebin Apr 9, 2015 自己用 private key 实现的加密,依旧走http协议的对称加密算法,不知道能不能帮到你,前后是这样的: Encrypted str: BeQEmA3fAuZTyQHnVrgF8AbxVbtWxlWFWuQJyQXAUiEAZAF0AShSPFNyDmsBJFc1BmAE61TXANlU6QvCBf5W4wWOBIUNEwJDUxEBc1Y1BSAGIlUsVi9VO1ouCXsFM1J0AGABewEzUjxTPg49ASRXdAYzBGlUNgA1VHsLeAUyVmoFbwQrDSUCaFM9ASRWAgU2BiNVO1ZyVWJaZgk9BW5SaABjATwBa1JgU2cOZAE9VzEGYARhVDcANlRsCyMFI1ZpBeQEtg33AuZTzgHaVroF7wbQVbpWw1Wk Decrypted str: 有更大的坑 curl 7.36才支持ECC https://bugzilla.redhat.com/show_bug.cgi?id=1058776libcurl没有细查 Consuming time: 0.00056600570678711 s 刚顺便整理了,需要摸这里: https://github.com/woondroo/EncryptAndDecrypt_php |
21 Tianpu OP @wengebin 天 你自己造了个轮子 我测试openssl_encrypt和openssl_decrypt,算法使用aes-256-cbc 速度还行 现在的问题是https协议的话API会有42ms的损耗 如果是http协议只有1ms左右 最终实在没有办法 目前我计划是这么干的: 所有读操作 使用http协议 传输加密后的据 所有写操作 使用https协议 传输加密后的数据 这样子的话 接口只有API地址不一样 |
22 wengebin Apr 9, 2015 @Tianpu 你说的方式属于标准协议了,其实自起炉灶也不是坏事,在某些角度上讲,对算法稍加修改就能防止其他人的解密,在算法封闭的情况下几乎不可能破解。 这个算法是参考网游的加密通讯写的,效率上和安全上都是有参考依据的。 |
24 wengebin Apr 9, 2015 @zhicheng 你说的很对,对于实时性要求更高、频率大的通讯数据来说,轻量、快速是要点,普通API完全足够,支付一类只能使用更高强度加密算法牺牲性能是对的。 |
25 free9fw Apr 17, 2015 openssl |