RSA密钥交换的问题

ypos 2005-01-29 06:12:22
我现在要开发一个C\S的程序,打算它们之间先用RSA交换AES的密钥,然后就可以安全通讯了.但是现在的问题是,我要为S和每个C分别生成公钥\私钥对,我考虑到安装程序的时候的问题,我先安装S,生成公钥\私钥对,然后去安装一个C,那么我必须将S的公钥拷贝一份,然后安装C的时候输入,然后我又必须把C生成的公钥拷贝一份,然后到S去输入一次,这样安装也太麻烦了,如果要安装100个C,真不知该怎么办.请问大家有什么好的方法,可以避免这么麻烦.
...全文
326 点赞 收藏 7
写回复
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
bjgxjob 2005-03-16
为何不借鉴CA数字证书的做法呢?
回复
wzg218 2005-03-15
xuexi
回复
zymoonstone 2005-02-28
你用DH密钥交换不就行了,为什么要用RSA呢??
回复
bzCpp 2005-02-25
就用 SSL/TLS 就可以了啊,你先生成一个 CA 根证书,然后用该CA证书生成 server 证书,CA证书就可以嵌到客户端用来验证服务器有效性。客户端启动时如果没有客户端证书,就在 Server 发送 Cert Request 消息的时候发送一个 空的Client Cert 消息建立一个没有客户端鉴权的安全连接,接着就可以让用户填写用户信息,产生一个新的客户证书请求,发送到服务器,由服务器使用服务器证书或者服务器信任的一个机构签名然后发送给客户端。以后服务器和客户端就可以相互验证对方身份了。

下个 openssl ,里面有 SSL2.0/SSL3.0/TLS1.0 的完整实现,也有一些工具管理证书啊什么的 ,看文档应该是 rfc2246 吧,我记不清楚了,自己实现一个简单的 TLS 协议也是比较简单的。
回复
ypos 2005-02-03
我想参考一下SSL,但是没有找到协议的资料,请问哪里有?

To: zjzsjm(奇玉)
其实如果只是为了建立安全通道的话,我可以采取简单的方式。C生成AES的密钥,并用S的公钥加密发给S,接下来双方就可以安全通讯了。
关键要有个双方身份验证的功能,就是说每个C的身份不同,而S如何知道这个C是哪个C,如果S的数据库里已经存储了C的公钥(或C的用户名/口令)到C的ID的映射,那么就可以了。
我想知道有没有什么技术上的解决方案或策略上的方法,因为软件安装的时候有一个部署C的问题,如何收集C的公钥(或C的用户名/口令),然后保存到S的数据库中的问题。
回复
奇玉 2005-02-03
可不可以这样,你在s上做好一对公钥与私钥,这对密钥中公钥只加密,私钥只解密,然后在C中程序中写一个也写一个加解密程序,每联一次s则c自动生成一对密钥,处理方法,公布s中的公钥,也既是让每个c都知道公钥,c中以s中的公钥加密自己生成的公钥发送到s,s接收以自己的私钥解密得到c的公钥并返回给c一个确认信息。c收到确认信息,以自己生成的私钥加密信息。发送到s,要接收到,以得到的c 的公钥解密,这样的传输我认为比较安全。也不需要人为干涉.
回复
wzg218 2005-02-01
up
回复
发动态
发帖子
云安全
创建于2007-08-27

4305

社区成员

云计算 云安全相关讨论
申请成为版主
社区公告
暂无公告