比如linus torvalds的公钥
https://github.com/torvalds.keys
公钥泄露了是没什么大问题,但是别人却可以这样鉴别你的身份,为什么github要这么设计,用处在哪?
1
typcn 2015-08-05 22:19:01 +08:00
|
2
jybox 2015-08-05 22:21:52 +08:00
只有公钥(里面不包含你在 Github 上的备注)没有任何危害的,不然你可以想一想攻击者可以用这些公钥做什么。
|
3
20150517 OP 2048位的公钥是真算不出私钥吗?云计算也不行?把linus私钥搞到,是不是可以植入代码到linux kernel里了,控制全世界了?
|
4
freeznet 2015-08-05 22:27:32 +08:00 1
今天刚好有人利用github的key数据和ssh的特性写了个PoC, 感兴趣的可以试试 ssh whoami.filippo.io 就能看到一些好玩的信息了
同时也可以看看 https://blog.benjojo.co.uk/post/auditing-github-users-keys 这篇文章 |
6
elvodn 2015-08-05 22:43:58 +08:00
公钥不就是为了让别人验证身份的吗
|
7
Tink 2015-08-05 22:46:35 +08:00 via iPhone
对啊,我也好好奇公钥不就是为了让别人鉴别的么。。?
|
8
TrustyWolf 2015-08-05 22:48:34 +08:00
@20150517 目前已知碰撞出来的最长位数貌似是700多,1024位的基本都是安全的,Github说明文档的推荐值是4096位,这已经是变态级别的了。
|
9
AstroProfundis 2015-08-05 22:49:39 +08:00
PUBLIC key
|
10
20150517 OP |
11
jetbillwin 2015-08-05 22:51:06 +08:00
You know, it's public key man.
|
12
iptux 2015-08-05 22:52:05 +08:00
已从 2048 位全面升级至 8192 位
|
13
qinix 2015-08-06 00:35:13 +08:00 via iPhone
公钥本来不就是应该公开发布出来的么,以前发pgp加密邮件的时候、验证签名、解密都是用公钥
|
18
ryd994 2015-08-06 01:18:56 +08:00 via Android
不公开叫什么公钥
|
20
20150517 OP |
21
shanigan 2015-08-06 01:53:41 +08:00
@20150517 https://en.wikipedia.org/wiki/Public-key_cryptography
加密的例子:我可以用你的公钥加密我的邮件,然后发给你,然后你可以用你的私钥来解密读取。 签名的例子:我想大众提供一个软件安装包,用我的私钥签名,你下载之后可以用我的公钥来验证你下载的安装包确实是我提供的。 |
22
Pastsong 2015-08-06 01:56:58 +08:00
这个问题问得有问题,要问的应该是公钥有什么用
|
23
kiritoalex 2015-08-06 01:59:40 +08:00 via Android
我一般用4096位的,感觉没什么压力啊
|
24
20150517 OP |
25
kiritoalex 2015-08-06 02:01:59 +08:00 via Android
@shanigan 正解
|
26
msg7086 2015-08-06 03:02:50 +08:00
|
27
20150517 OP @msg7086 好吧,我语文不好, 我问的不是为什么公钥要公开,我问的是,他做这接口派什么用处?
|
28
20150517 OP @msg7086 因为显然他做成这样一个http接口,而不是帖在你的profile上,不仅仅是为了公开显示,是为了提供api调用用的,但这功能 怎么用的?
|
29
msg7086 2015-08-06 03:12:32 +08:00
@20150517
发布帖里说得很清楚了。 Postmodern @postmodern_mod3 TIL @github exposes the ssh public keys for users. https://github.com/defunkt.keys Handy for adding devs to servers/repos. 下午6:57 - 2013年2月9日 [1]: https://twitter.com/postmodern_mod3/status/300438256200339456 |
30
msg7086 2015-08-06 03:14:38 +08:00 1
Today I learned from @postmodern_mod3 that GitHub exposes public ssh keys for its users. For example, if you wanted my public keys: https://github.com/adamstac.keys
So never again should you have to ask, “What’s your public ssh key?” You can just ※ curl -O https://github.com/<username>.keys their public keys from GitHub and move on. [1]: https://changelog.com/github-exposes-public-ssh-keys-for-its-users/ |
33
wuchizhitu1988 2015-08-06 09:18:20 +08:00
我天。。。好理直气壮的伸手党啊 google首页结果都看不到?
|
34
julyclyde 2015-08-06 10:29:48 +08:00
啊?提供下载的是ssh public key啊?这个好像没什么意义啊……
提供GPG public key还差不多 |
35
julyclyde 2015-08-06 10:35:26 +08:00
人家问的是,把SSH key公开并不能像GPG key一样提供“别人加密文件给key的主人”这种用途,因为目前并没有常见的用SSH key去做文件加密的软件,SSH public key的用途目前还仅仅限于ssh通信中的身份认证。而@msg7086 等几位却曲解为“公钥本来就没啥可保密的呀”。等有人出来回答之后,你们又开始说“只需要1分钟就能知道答案,你需要学会提问”
我建议你们还是多学学语文 |
37
msg7086 2015-08-06 11:39:14 +08:00 1
@julyclyde 我索性把整件事情讲讲清楚吧,免得睡觉了又断开对话。
首先楼主标题里写了「为什么会允许任何人下载你的 public key」,顶楼写了「公钥泄露了是没什么大问题 但是别人却可以这样鉴别你的身份」,很明显着重提到了安全性,所以下面所有的楼层都在围绕着楼主提到的安全性问题展开讨论。楼主真正想知道的问题,为什么GitHub做了这样一个接口来提供这个数据,只占了顶楼不到四分之一的内容。下面歪楼简直是无可厚非。 顺便你35楼的第一句话,「人家问的是,……」,说了2行却还是没把问题说清楚。建议你咨询语文老师,疑问句应该怎么写。 第二句话,你说我等曲解为「公钥本来就没啥可保密的」。然而我说的是「公钥的目的/作用就是公开」。前者你说的这句是公钥的性质,而后者我说的这句是公钥的用途,这都能让你混在一起我也是服了。 第三句话,「有人出来回答之后,你们又开始说……」抱歉,回答的人是我,回复这句话的人也是我。 另外这句话我也不觉得有什么问题。我把楼主贴的github地址扔进谷歌,搜索,点开结果,复制,粘贴,点下回复键。很难吗? 我不喜欢对人很mean。我尽可能在我的范围内用更温和的口气来回答问题。如果作为一个提问者,对着回答者就是一通「你们说的都是废话」,我也就呵呵了。至于你半途跳出来说了几句有的没的还让人「多学学语文」,我也就更呵呵了。 |
38
20150517 OP |
39
julyclyde 2015-08-06 16:24:11 +08:00
@msg7086 SSH public key那是给服务器鉴别用户的身份用的。如果某人要给别人开ssh登录权限,也应该直接找这个用户索取,而不是在公开渠道获得,因为并没有可靠的证据证明这个key就是这个人的。而SSH public key目前并不能用于其它密码术软件,所以也不存在加密文件或者签署数字签名的用法。
当然在github这种场景里确实有Handy for adding devs to servers/repos. 这种做法,但lz和我都没想到。你如果有心指点,就直接举出来,犯不着拿与此根本无关的人对人的身份鉴别来说事。 |
40
julyclyde 2015-08-06 16:25:14 +08:00
很多人都在回答:public key公开对安全无害。问题是lz根本就没问安全相关的问题,只是问这个看起来对外人没什么用的东西为什么被公开了,公开它的意义在哪儿
|
41
msg7086 2015-08-06 20:39:50 +08:00
@julyclyde 你还是没明白哪
公钥,不管是SSH公钥也好SSL公钥也好。公钥的目的就是鉴别身份。 比如我的公钥是AABB,那你怎么知道AABB这个公钥就是我的? 当然是公开传播以后你才知道。而且是公开范围越大,知道得人越多,才越能证明我的公钥的可信度。 最好是有著名网站、著名机构为公钥背书,这样公钥的可信度就越大。 比如GPG就是把公钥上传到GPG的服务器去。而且通常这还不够,还需要现实生活中的其他朋友为你背书,说,大家看,这个GPG公钥,真的就是某某他本人的公钥。 SSL证书也是这样,要各大SSL机构为其背书,说,大家看,这个SSL证书是我签的,我能证明这张证书背后的就是某某网站本身。 同理这里SSH公钥也是这样。用户把公钥保存在GitHub服务器上,本身GitHub与用户之间就有鉴权行为,保证公钥只能由用户本人上传。那么本质上来说GitHub就是在为用户公钥的真实性背书了。对于第三方来说,确权行为不再需要用户本人参与,而直接找GitHub背书过的公钥就行了。 以上这些就是我从17楼发言往下的推论。推出的结果和29楼没什么太大的区别。 另外你说的「如果有心指点,就直接举出来」,而我确实就是这么做了。27、28楼,楼主确认了提问的主题以后我在5分钟内就针对问题给出了结果,不知你有何不满意的。 楼主的提问明显的没有抓准重点,导致后面一排人歪楼。如果90%的读者都无法抓住你提问的重点,请问是90%的人语文水平都不合格,还是楼主没有好好表达清楚呢? |
42
julyclyde 2015-08-06 23:19:35 +08:00 via iPad
|