亲爱的,我有一些困惑,如果有人请你帮我解决这个问题.我的问题是:
每个人都说使用私钥对程序集进行签名,但是没有人说如何通过使用sn.exe来获取私钥意味着-KI可以创建私钥/公钥对,但如何从中提取私钥以对其进行签名.
如果我使用私钥签署我的程序集,然后将其发送给此程序集的用户,那么他将直接将此程序集添加到全局程序集和使用中,因此需要向他发送公钥以使用此程序集,或者公钥是否与assemblyl一起使用任何人都可以使用这个程序集,如果有人可以使用加密的意义,它将私钥.
Eri*_*ert 21
我有些困惑
这是一个令人困惑的话题.
如何从中提取私钥?
你不需要.签名工具获取密钥文件.如果需要,它足够聪明地提取私钥.
是否需要向他发送公钥才能使用此程序集?
公钥嵌入在程序集中.如果查看程序集的强名称,可以看到它.但是,如果您认为有人可能试图模仿您,则必须以某种方式与客户沟通正确的公钥是什么!有关详细信息,请参阅下一位.
如果有人可以使用私钥加密它的意义?
使用私钥对程序集进行签名的目的是产生证据.该证据是指"本次大会是由谁拥有这个公钥相关联的私钥的人产生".
例如,Microsoft的公钥令牌是众所周知的.这就是为什么它被称为"公共"密钥:因为它被公众所知.当您看到具有Microsoft公钥的程序集时,可以证明 Microsoft生成了该程序集,因为其签名可以使用Microsoft的公钥解密的程序集必须由有权访问Microsoft私钥的人生成.这个密钥在雷德蒙德的七号楼深处很重要,所以你有充分的证据表明真正在微软工作的人产生了这个组装.
此系统的目的是使人们能够设置将证据转换为权限的策略.您的客户可以制定一项政策,说明"如果我有证据表明此程序集是由Ashish生成的,那么请允许代码执行我允许执行的任何操作".
现在,您可以合理地问"客户如何知道给定的公钥是您的公钥?" 这就是"关键管理"问题,这是你的责任.如果你有一个邪恶的双胞胎谁告诉你的客户他的公钥是你的公钥,那么你的客户可能会相信你的邪恶双胞胎,认为他是你.在这种情况下,你有责任教育你的顾客,那里有一个邪恶的双胞胎试图欺骗他们,并告诉他们如何辨别好的Ashish的公钥和邪恶的公钥之间的区别双胞胎.
您还需要确保您的私钥保密.如果你的邪恶双胞胎知道你的私钥,那么显然他们可以随心所欲地冒充你; 记住,签名的程序集提供了证据,证明有权访问私钥的人生成了程序集; 如果不止一个人可以访问该密钥,则证据不能识别一个人.
您不提取私钥来签署程序集.您只需使用sn -k包含私钥和公钥的SNK文件(生成者)配置要签名的项目.您可以在程序集属性中指定它,但是现在首选方法是在项目选项中指定它(/keyfile相信csc.exe 上的标志,我相信).
我个人通常不会向GAC添加库 - 我更喜欢将程序集与正在使用它的项目一起保留.但不,你不需要向他发送公钥.
您不是使用私钥加密文件 - 您使用该密钥对其进行签名.公钥嵌入在程序集中,基本上你会说,"这个程序集的生产者肯定拥有这个公钥/私钥对,因为你可以验证它是否已使用与此公钥对应的私钥进行签名."
| 归档时间: |
|
| 查看次数: |
3873 次 |
| 最近记录: |