1
ggbond1989 2017-08-29 09:50:54 +08:00
那就只能自己实现密钥协商,加密传输的整个过程了,https 应该是最简单的办法了吧。
|
2
Famio 2017-08-29 09:51:20 +08:00 via iPhone
要不然怎么会有 https
|
3
nullen 2017-08-29 09:51:39 +08:00 1
|
4
XinLake 2017-08-29 09:57:25 +08:00
你要安全可以这样,自加密所有数据,使用 Socket 连接进行传输,绕开所有上层协议
|
5
paradoxs 2017-08-29 10:01:30 +08:00
可以参考 telegram 的开源传输协议 MTproto, 就可以不使用 HTTPS 完成安全传输.
|
6
baskice 2017-08-29 10:07:17 +08:00
PGP 加密,双因素传递公钥。但是这样还是没法解决中间人攻击
|
7
wwqgtxx 2017-08-29 10:07:52 +08:00 via iPhone
用 websocket 自己封装
|
8
clino 2017-08-29 10:17:33 +08:00
ssh 也可以啊
|
9
miaomiao0323 2017-08-29 10:18:57 +08:00
https 的主要功能是加密和签名,加密有两部分,对数据的对称加密,和对证书的非对称加密,用来防止数据泄漏;签名主要是做散列,用来做身份认证和防窃听,所以你只要自己实现了对数据的加密,并且添加个数字签名,基本就可以实现 https 的功能。
|
10
jlsk 2017-08-29 10:32:20 +08:00 5
不予置证书、密钥、乱码本等等是无法防中间人的
在经典世界这是常识 想要打破上面的桎梏,你只能去找潘建伟了,可以借他的量子卫星用用 那个不用预置,现用现传都可以 貌似很多小白连证书认证体系的关注点在哪儿都不知道就声称自己实现了一套安全传输,你在最开始就被中间人了你连传输的公钥都是被替换的你明不明白? 比如这货: http://www.williamlong.info/archives/4346.html 再强调一遍,你研究安全传输如果是在计算机科学领域那就不用浪费时间做无用功了,不予置的数字安全传输就是个永动机,根本不可能实现 想研究,请去量子力学领域找方法 |
11
Quaintjade 2017-08-29 10:35:55 +08:00
https 或者说公开的 pki 体系最大的好处是,你不必和每一个你访问的网站提前通过其他安全方式预先交换约定信息。其次是容易使用和性能高,你自己写的话需要考虑防范各种漏洞和性能优化。
|
12
porrat 2017-08-29 10:42:14 +08:00
TLS
|
13
jarlyyn 2017-08-29 10:43:02 +08:00
vpn?
|
14
AckywOw 2017-08-29 10:45:51 +08:00
那就脱裤子放屁,自己搞一套效果一样的
|
15
Sullivan 2017-08-29 10:46:39 +08:00
U 盘 手递手 给?
|
17
xiaoc19 2017-08-29 10:59:56 +08:00
按照 TLS 的过程实现一遍?那跟 TLS 有什么区别?
或者放到移动硬盘 私下见面传输? |
18
Quaintjade 2017-08-29 11:11:15 +08:00
|
19
mrsatangel 2017-08-29 11:11:45 +08:00
感觉是某厂的面试题
|
20
bumz 2017-08-29 11:14:27 +08:00
如果不用 https,那就自己实现一套和它一样的机制,最重要的是事先交换身份验证信息,以免中间人 233
|
21
Sullivan 2017-08-29 11:17:43 +08:00
@Quaintjade 有。。有道理。。。防不胜防啊 那就加个暗号 “江西佬在哪?” “江西佬在我家”
|
22
v9ox 2017-08-29 11:22:24 +08:00
自备 U 盘 快马加鞭
|
23
7654 2017-08-29 11:29:00 +08:00 1
--天王盖地虎
--宝马镇河妖 …… --你是 XX --你是 OO --这里有份东西你拿一下 |
24
hxndg 2017-08-29 11:32:10 +08:00
@Sullivan But where do u get that cipher? So the problem always exist.jlsk is right
|
25
ryd994 2017-08-29 11:34:25 +08:00 via Android
HTTPS 不过是 HTTP+TLS 而已。
如果你不想用 HTTP,还是可以用 TLS 的。TLS 可以配合 TCP 或 UDP 食用。 窃以为 TLS 是安全通讯的最基本实现。自己重造轮子,考虑各种问题后,就和 TLS 差不了多少了。还不说自己实现会遇到多少坑。 |
26
ryd994 2017-08-29 11:36:34 +08:00 via Android
|
27
wweir 2017-08-29 12:18:34 +08:00 via Android
sctp 走一波,如何
|
28
zhx1991 2017-08-29 12:23:55 +08:00
手动实现一遍 https 呗
|
30
tony1016 2017-08-29 13:03:07 +08:00
$$,你懂的
|
31
Firedoge 2017-08-29 13:15:52 +08:00 via Android
参考 L2TP/IPsec,Cisco IPsec,IKEv2
|
32
realfreesky OP @tony1016 这是啥意思....不太懂
|
33
XiaoFaye 2017-08-29 16:14:35 +08:00
这有什么难,直接 RAR 加密码分段压缩,然后二进制传输过去,再一个电话告诉对方密码就行。
|
34
andrewhxism 2017-08-29 16:24:27 +08:00
@XiaoFaye #33 所以电话如何防窃听?
|
35
andrewhxism 2017-08-29 16:25:47 +08:00
@XiaoFaye #33 以及如何确认电话那一端的身份,还有如何保证通信质量让对方能听到密码,这几个问题就是 https 的核心。
|
36
mengzhuo 2017-08-29 16:26:41 +08:00
可以用 QUIC 哦~
|
38
tabris17 2017-08-29 16:32:40 +08:00
SSL
|
41
silencefent 2017-08-29 17:07:53 +08:00
zip rar 加密传播
|
42
hxndg 2017-08-29 17:11:00 +08:00
@Sullivan
When u negotiating the code,u need to be sure the person is who u real want to meet. So u need another cipher to check the identity. In a another word,MITM always exist |
43
nodin 2017-08-29 17:27:40 +08:00 via Android
自己先封装加密,对方再解密。
|
44
paw 2017-08-29 17:29:14 +08:00
@tony1016 $$ 从最初设计的出发点开始就不是为了加密和安全... 不防篡改 /重放 /选择密文等好多已知的攻击方式。后来出了一个带 hmac 校验的版本,能防一点,后来又给移除了~~
|
45
w7938940 2017-08-29 17:33:06 +08:00
AES + RSA
|
46
XiaoFaye 2017-08-29 17:35:18 +08:00
@andrewhxism 尽量用苹果手机,还有移动的电话卡,基本就没问题了。:)
|
47
pexcn 2017-08-29 17:39:10 +08:00
楼主可以自己造一门自然语言来通信
|
48
andrewhxism 2017-08-29 17:51:17 +08:00
@XiaoFaye #46 666
|
49
williamx 2017-08-29 18:55:37 +08:00
有很多方法啊!但是,你想要干嘛?
|
50
realfreesky OP @williamx 只是突然开了个脑洞
|
51
Sullivan 2017-08-29 22:15:36 +08:00
@hxndg 这个。。。按照你的这个逻辑,只要用到了其他通讯方式就无解了,所以要跳脱这个死胡同,用要传递的东西本身作为验证,比如我要给你的 U 盘装的是几个什么片,你事先知道,这事只有我俩知道,那面交的时候悄悄地对一下内容就 ok 了,这样的话 即使是 事先用其他通讯工具交流过,也不过是交流面交的地点和时间,应该算是安全的,中间人不知道验证内容。
|
52
likuku 2017-08-29 22:19:46 +08:00
光纤拉物理点对点线路,收发依然端对端加密,密钥或许可用一对纠缠的量子状态,每一次发包都换一对密钥。
|
53
hxndg 2017-08-29 22:22:30 +08:00
@Sullivan 你还是没有明白楼上几位到底在说什么,你去搜一下 differ-helman,看一下它的历史就知道什么意思了。
任何预制的知识都可能是中间人的欺骗,这就是为什么我们需要 CA 的原因 |
54
datocp 2017-08-29 22:31:42 +08:00
去 stunnel.org 看看。3 张证书的加密过程。。。加密链路 /服务器验证客户端身份 /客户端验证服务器身份 ,偶尔线路不能访问的时候去掉 客户端验证服务器身份 就正常了,这难道就是传说中的 中间人 攻击?因为是基于 pki 的,所以可以动态变换证书。反正觉得蛮安全的。
客户端配置 cert = 1.pem verify=2 CAfile = stunnel.pem 服务器端 requireCert=yes verifyChain=yes verifyPeer=yes |
55
ryd994 2017-08-29 23:26:49 +08:00 via Android
@Sullivan #37 #39 那你怎么协商暗号呢?用咸鱼?那不就绕回来了么?
#51 这事只有我俩知道,这就很难实现。你怎么保证我俩就是我俩而不是别人?如果说我们从小相识,而且一直有联系,而且其他朋友能佐证,那确实不太可能是假的。如果我掏出身份证,而且能证明这张证是真的,而且照片对得上,那确实不太可能是假的。顺带一提,前者是 PGP 的思路,后者是 PKI 的思路。 两个原本不怎么熟的人,想要中间人有的是办法。看过碟中谍 4,毒贩在帆船酒店面交被中间人么? |
57
t6attack 2017-08-29 23:37:56 +08:00
非对称加密 发明出来的目的就是干这个用的。https 也是基于非对称加密。
最有名的两个,RSA、ECC 算法,你自己用它们加密解密数据就是了。 |
58
lights 2017-08-30 00:55:10 +08:00 via iPhone
今天刚听说 tls
|
59
lanwairen123 2017-08-30 07:08:01 +08:00 via Android
比较好奇微信
|
60
lanwairen123 2017-08-30 07:09:09 +08:00 via Android
比较好奇微信的消息是怎么加密的,发消息的接口是 http 的,截获的内容是加密的
|
61
cctrv 2017-08-30 07:13:47 +08:00 via iPhone
要先定義「安全」
在 5 天內安全?在 3 年內安全? RSA 之類的通信密文也可以通過暴力破解解密。 絕對安全就是脫離網絡。 相對安全有很多個辦法了,你要做對稱加密還是非對稱加密,多少位的加密,就是看你可以「相對安全」多久而已。 |
62
c4dfan 2017-08-30 08:15:05 +08:00
来个量子通信呗。。。。
外行瞎掺和。。。 (逃。。。 |
63
ryd994 2017-08-30 08:26:48 +08:00
@t6attack 实际加密通讯比单纯数据加密算法要复杂得多
数据加密是一环,密钥分发是一环,还有实现本身要抗旁通道分析,还有社工 所以这是一个工程整体,破了一个就全没意义了 防守比进攻难得多,因为进攻只要打通一条路就是成功 |
64
fox0001 2017-08-30 08:38:21 +08:00
@silencefent #41 哈哈,我也想到这个
|
65
ryd994 2017-08-30 08:52:25 +08:00
|
66
torbrowserbridge 2017-08-30 08:57:47 +08:00
@wwqgtxx websocket 只能实现部分安全
|
67
tempdban 2017-08-30 09:11:34 +08:00
kcp 啊
|
69
silencefent 2017-08-30 09:26:45 +08:00
@ryd994 “不过” “而已” 拜托先实现。广义来说,只要观察者存在,产生的密码都可能泄漏
|
70
hxndg 2017-08-30 09:39:37 +08:00
@cctrv Perfect forward secrecy help a lot.
And we are not talking about philosophy,his security should be same with others . |
72
flynaj 2017-08-30 10:31:05 +08:00 via Android
ssh 就可以了,他说安全传输又又没有说 http
|
73
bfbd 2017-08-30 13:48:23 +08:00
HTTPS 只是通过浏览器内置秘钥完成了秘钥预分发而已。你可以通过微信、短信等任意渠道分发你自己的秘钥,然后加密通信,原理是一样的。
|
74
jininij 2017-08-30 13:59:55 +08:00 via iPhone
客户端信任证书,由证书签署公钥,用公私钥交换对称秘钥,用对称秘钥通讯。这是 https 的通讯系统。http 下,客户端信任证书,第一条都无法实现,更别说用 http 实现 https 了。
在不安全的网络中,两个完全不知道对面任何私密信息的节点,想相互建立安全通讯是绝对不可能的。 有三种可能,一,两个要通讯的节点知道一条秘密,其他人都不知道。二,两个节点都至少相信一个第三方。三,数据到达对方未被篡改的概率大于 50%。 在 http 下建立安全通讯是不可能的。 实际应用时考虑绝对安全没有意义,根据需求,实际需求中,做一下非对称加密交换秘钥,已经可以抵御非针对性的监听和中间人了。 |
75
hjc4869 2017-08-30 14:04:28 +08:00
客户端可以,网页不行
|
76
Coxxs 2017-08-30 14:11:03 +08:00
@lanwairen123 微信预置了服务器的公钥,公钥的安全通过 apk 包签名、代码混淆来尽量保证。
|
77
lanwairen123 2017-08-30 14:53:33 +08:00 via Android
@Coxxs 如果是这样的话公钥应该早就被人找出来了吧,我没找见网上有微信消息的解密方法公布呀
|
78
Coxxs 2017-08-30 16:53:27 +08:00 via Android
@lanwairen123 我说的安全是指避免公钥被篡改.. 公钥本身当然可以找到
|
79
kobe1941 2017-08-30 17:04:02 +08:00
这个像是面试的问题。。。
HTTPS 是应用层的加密协议,光应用层的加密协议还有其他的,而且除了应用层,比如传输层,网络层,数据链路层,各有各的加密方式,见这里 |
80
Williamp 2017-08-30 17:08:21 +08:00
@realfreesky I don't think there is any other safe way except https to achieve safe transmission. And @porrat TLS is newer version of SSL only. This resource https://www.clickssl.net/blog/an-easy-to-understand-guide-ssl-tls-https-ssl-certificate-and-https will help you undersatand both terms in deeper.
|
81
inflationaaron 2017-08-31 07:11:23 +08:00
@ryd994 所以说交易的时候还是需要一个双方都信任的中间机构来建立信任链。这相当于把我对你的认证,转移到中间机构对你的认证,然后我再信任这一认证结果。
|
82
cortexm3 2017-08-31 08:32:20 +08:00 via iPhone
Ipse c
|
83
ryd994 2017-08-31 09:49:08 +08:00 via Android
@inflationaaron 但是这个中间机构不一定是中心化的,gpg 就是这个想法。通过人际关系网。主要是,如果所有通讯都一对一直接验证身份的话,成本太高了,甚至不可能。比如开源软件开发者,不可能和每一个用户面对面交换
|
84
Jennykale 2017-09-29 17:53:28 +08:00
I guess in place of https there is no such option available for safe transmission. HTTPS is the most secure way it works on SSL/TLS certificate. Both the certificate will work on PKI system. Anything which is encrypted via private key will be decrypted by public key only or vice versa. And as the price concerned, if you purchase SSL certificate from Reseller then you can get the certificate at the cheap price. You can check the below link.
https://www.safecyberssl.com/single-domain-ssl/ |