数字签名

程序集强签名和安装程序数字签名

自古美人都是妖i 提交于 2019-12-03 09:21:51
一、程序集强签名 这个是.net 中的概念,为了保证程序集本身不被篡改,即保证这个程序集是你开发的,同时强命名使不同的程序可以指定不同的程序集版本,不影响其他应用程序。要对程序集进行强签名,无需使用购买的代码签名数字证书,用.NET提供的sn工具就可以生成snk文件,你只要保存好这个文件,就可以保证你的程序集的签名。 方法1:在SDK中创建强名称签名的程序集(Sn.exe),可以生成密钥对。我们使用如图9-4的命令生成一个新的密钥对并保存到本地文件test.snk中。 签名时使用编译器执行 CSC 、keyfile:f:test.snk Program.cs 方法2:使用VS项目属性页中的 二、安装程序数字签名 在window系统安装程序时,安装的执行程序,系统首先阻止,并提示用户是否要运行,这个时候,同时会提示这个应用程序的发行者。如果一个没有进行数字签名的应用程序,这个时候发行者就为“未知”,签名后,就可以告知用户这个应用程序是由你提供的。数字签名就是保证这个应用程序是由你发行,并未被第三方更改的。 来源: https://www.cnblogs.com/karl-F/p/7850161.html

公钥、私钥和数字签名的理解

夙愿已清 提交于 2019-12-03 06:54:31
/*--> */ /*--> */ 总的来说: 私钥来加密数据可以确定发送方的消息。 用公钥加密数据,只有使用自己的私钥才能看到数据,这样就保护了数据。 实例说明: 1代表我的公钥, 2代表我的私钥, 公钥与私钥是成对的,它们互相解密。 1.公钥加密 PeopleA用我的公钥 1来加密数据 a,将加密后的数据 b传递给我,只有我能够使用我的私钥 2将 b再恢复称 a,而其他人不知道我的私钥,所以 PeopleA与我之间就可以传输加密的数据,保护了数据。 RSA 算法是一种十分有效的公钥加密算法 2.私钥签名 我使用我的私钥 2加密了数据 a(只有我可以使用我的私钥),只有知道了我的公钥的人才能解密,能够确定这个数据是我发的 使用私钥来加密数据,用途就是数字签名 3.举栗 比如有两个用户 Alice和 Bob, Alice想把一段明文通过双钥加密的技术发送给 Bob, Bob有一对公钥和私钥,那么加密解密的过程如下: Bob将他的公开密钥传送给 Alice。 Alice用 Bob的公开密钥加密她的消息,然后传送给 Bob。 Bob用他的私人密钥解密 Alice的消息。 加深理解: 使用公钥与私钥的目的: 1. 我发送给你的内容必须加密,在传输过程中不能被别人看到。 2. 必须保证是我发送,不是别人冒充我的。 公钥,就是给大家用的,你可以通过电子邮件发布,可以通过网站让别人下载

Hyperledger Fabric中的Identity

匿名 (未验证) 提交于 2019-12-03 00:37:01
区块链网络中存在如下的角色:peers, orderers, client application, administrators等等。每一个这样的角色都有一个身份标识(Identity),该身份标识是通过X.509 数字证书来表示的。这些身份标识决定了该角色的对区块链网络上资源的权限,比如是否有权限访问区块链上的某种信息。 数字身份有很多附加属性,供fabric来判断权限。数字身份给出了一个身份的组合结构,与之相关的属性称之为principal。Principals 就像用户ID或者是群组ID,但是更加复杂,因为principal中包含了该角色的一系列属性信息。当我们谈论principal的时候,就是在说觉得角色权限的各种属性信息。 为了保证身份(identity)是可以被验证的,Identity必须来自于一个受信任的颁发机构。在Fabric中,这是通过membership service provider (MSP) 来实现的。MSP是Fabric中的一个组件,它定义了管理有效identity的规则。Fabric中默认的MSP实现是使用X.509证书作为identity,采用传统的PKI(Public Key Infrastructure )结构模型。 假设你正在逛超市买东西,在买单时发现收银台只支持银联和visa的银行卡。这时如果你想使用一张不属于银联和visa的卡来支付

三、比特币转账的原理

匿名 (未验证) 提交于 2019-12-03 00:32:02
◆比特币怎么转账? 生活中我们都有自己的银行账户,转账是在银行账户之间进行的,同样,比特币转账就是把比特币从一个比特币地址转移到另一个比特币地址上的过程。 如果想要转账比特币给别人,你需要在比特币交易平台(比特币钱包或者比特币客户端)中输入你的比特币地址、接收方地址、转账金额和手续费金额,确定支付后交易信息会在比特币网络进行全网广播。矿工每隔10分钟会将比特币网络中未被记账的交易打包进一个区块,这就完成了一次确认,此时,比特币已转到对方账户。通常需要经过6次确认,确保交易记录不能被任何人篡改,转账才算真正完成。 ◆比特币转账手续费 是交易者付给矿工的一笔费用,用于激励矿工竞争记账,为比特币提供足够的算力从而确保比特币网络的安全。 有的地方也叫 “矿工费” ,用户在比特币网络发起一笔转账时,一般需要支付给矿工一定的转账手续费。 转账手续费一般为0.001-0.0015个比特币。由于区块能容纳交易记录的容量有限,矿工会优先打包手续费高发交易,所以多付手续费可以更快地被记账。比特币交易手续费的存在能提高转账门槛,有效防止区块链中充斥垃圾信息,并且能够保证在比特币被挖完之后矿工仍有动力维护比特币网络。 ◆区块链转账按字节收费 银行间转账手续费一般是按照转账金额的一定比例收取,比如跨行转账手续费约5‰;异地转账的手续费为1‰―1%不等;而跨过转账除了支付以上手续费以外,还需支付50

关于数字签名简要原理

匿名 (未验证) 提交于 2019-12-03 00:32:02
数字签名(签名)则是根据消息内容生成一串 “只有自己才能计算出来的数值”, 因此数字签名(签名)的内容是随消息的改变而改变的。 生成消息签名: 根据消息内容计算数字签名的值,这个意味着 “我认可该消息的内容”。、 验证数字签名: 检查该消息的签名是否真的属于Alice,验证结果可以是成功或者失败,成功意味着这个签名属于Alice, 失败意味着这个签名不属于Alice的。 数字签名对签名密钥和验证密钥作了区分,使用验证密钥是无法生成签名的。 这一点至关重要。 签名密钥只能由签名的人持有,而验证密钥 则是任何人需要验证签名的人 都可以持有! 数字签名中也同样会使用公钥和私钥组成的密码对,不过两个密钥的用法和公钥密码 是相反的,即用私钥加密x相当于签名,而公钥解密则相当于验证签名。 数字签名意义 只有持有该密钥的人才能够生成的消息。 这样的信息一般称为认证符号(authenticator),消息认证码也是认证符号的一种。 数字签名也是通过私钥进行加密来 产生认证符号的。 文章来源: 关于数字签名简要原理

带你揭开区块链中密码学的神秘面纱

匿名 (未验证) 提交于 2019-12-03 00:26:01
一、什么是区块链技术? 区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点公式算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式 。狭义来讲, 区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本 。我们对此做一个总结,可以发现区块链中有四项不可缺的核心技术,分别是分布式存储、共识机制、密码学原理和智能合约。而我将主要从密码学的角度来解析区块链技术。 图片来源(中国工控网) 二、区块链中的密码学 数字签名 ,每一位所有者通过对前一次交易和下一位拥有者的 公钥 签署一个 随机散列 的数字签名,并将这个签名附加在这枚电子货币的末尾,电子货币就发送给了下一位所有者。而收款人通过对签名进行校验,就能够验证该链条的所有者。这里就涉及了非对称加密算法以及数字签名技术。 非对称密码学 非对称密码学由一对不同的公钥和私钥对组成,如果用公钥对数据进行加密则只能用对应的私钥才能进行解密,反之如果用私钥进行加密,那么只有用对应的公钥去进行解密。由于可以对密钥进行公开,因此也叫公开密钥加密算法。 目前常见的非对称密码算法有RSA算法、ECC(椭圆曲线加密算法)、 Diffie-Hellman 算法、Elgamal算法等

数字签名

匿名 (未验证) 提交于 2019-12-03 00:25:02
数字签名 (又称 公钥数字签名 , 英语: Digital Signature )是一种类似写在 ֽ 上的普通的物理,但是使用了领域的技术实现,用于鉴别数字信息的方法。 一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证,但法条中的电子签章与数字签名,代表之意义并不相同, 电子签章用以辨识及确认电子文件签署人身份、资格及电子文件真伪者。 而数字签名则是以数学算法或其他方式运算对其加密,才形成电子签章,意即使用数字签名才创造出电子签章。 数字签名不是指将签名扫描成数字图像,或者用获取的签名,更不是。 数字签名了的文件的完整性是很容易验证的(不需要、 骑缝签名 ,也不需要 笔迹鉴定 ), 而且数字签名具有不可抵赖性(即不可否认性),不需要笔迹专家来验证。 类似在纸质合同上签名确认合同内容,数字签名用于证实某数字内容的 完整性 (integrity)和 来源(或 不可抵赖 ,non-repudiation)。 一个典型的场景是,A 要发给 B 一个文件(一份信息),B 如何获知所得到的文件即为 A 发 出的原始版本? A 先对文件进行摘要,然后用自己的私钥进行加密,将文件和加密串都发给 B。 B 收到后文件和加密串,用 A 的公钥来解密加密串,得到原始的数字摘要,跟对文件进行 摘要后的结果进行比对。 如果一致,说明该文件确实是 A 发过来的,并且文件内容没有被修 改过。

数字证书

匿名 (未验证) 提交于 2019-12-03 00:25:02
数字证书用来证明某个公钥是谁的,并且内容是正确的。 对于非对称加密算法和数字签名来说,很重要的一点就是公钥的分发。 一旦公钥被人替换 (典型的如中间人攻击),则整个安全体系将被破坏掉。 怎么确保一个公钥确实是某个人的原始公钥? 这就需要数字证书机制。 顾名思义,数字证书就是像一个证书一样,证明信息和合法性。 由证书认证机构 (Certification Authority,CA)来签发,权威的 CA 包括 verisign 等。 数字证书内容可能包括版本、序列号、签名算法类型、签发者信息、有效期、被签发人、签 发的公开密钥、CA 数字签名、其它信息等等, 一般使用最广泛的标准为 ITU 和 ISO 联合制 定的 X.509 规范。 其中,最重要的包括 签发的公开密钥 、 CA 数字签名 两个信息。 因此,只要通过这个证书就能 证明某个公钥是合法的,因为带有 CA 的数字签名。 更进一步地,怎么证明 CA 的签名合法不合法呢? 类似的,CA 的数字签名合法不合法也是通过 CA 的证书来证明的。 主流操作系统和浏览器里 面会提前预置一些 CA 的证书(承认这些是合法的证书),然后所有基于他们认证的签名都会 自然被认为合法。 PKI 体系提供了一套完整的证书管理的框架。 在非对称加密中,公钥则可以通过证书机制来进行保护,如何管理和分发证书则可以通过 PKI(Public Key

密码体制(加密算法)

匿名 (未验证) 提交于 2019-12-03 00:19:01
密码体制分类方法有三种: 根据密码算法所用的密钥数量一般分为两类:非对称密码体制,对称密码体制 根据对明文信息的处理方式可将对称密码体制分为分组密码(DES、AES、IDEA、RC6)和序列密码(RC4、A5、SEAL) 根据是否能进行可逆的加密变换可以分为单项函数密码体制(MD4、MD5、SHA-1)和双向变换密码体制 对一个提供保密服务的密码系统,他的加密密钥和解密密钥相同,或者虽然不相同,但是其中一个的任意一个可以很容易的导出另外一个,那么这个系统采用的就是对称密钥体制 优点: - 加解密速度快 - 效率高 - 算法安全性高 缺点: - 密钥分发过程复杂,所花代价大 - 密钥管理量困难(实现n个用户两两保密通信,每个用户需要安全获取并保管(n-1)个密钥) - 保通信系统开放性差 - 存在数字签名的困难性(通信双方拥有相同的秘密信息,接收方可以伪造数字签名,发送方可以抵赖) DES、AES、IDEA、RC6 对一个提供保密服务的密码系统,他的加密算法和解密算法分别用不同的密钥实现,并且加密密钥不能推导出解密密钥,那么这个系统采用的就是非对称密钥体制。 每一个用户有一对密钥,用公钥加密,私钥解密 优点: - 密钥分配简单 - 密钥量少,容易管理 - 系统开放性好 - 可以实现数字签名 缺点: - 加密、解密运算复杂 - 处理速度较慢 - 同等安全强度下

SMB Signing not Required

匿名 (未验证) 提交于 2019-12-03 00:09:02
SMB是一个协议名,全称是Server Message Block(服务器消息快协议),用于在计算机间共享文件、打印机、串口等,电脑上的网上邻居由它实现。SMB签名是SMB协议中的安全机制,也称为安全签名。SMB签名旨在帮助提高SMB协议的安全性,为了防止在传输过程中修改SMB数据包,SMB协议支持SMB数据包的数字签名。所有Windows操作系统都支持客户端SMB组件和服务器端SMB组件。要利用SMB数据包签名,通信中涉及的客户端SMB组件和服务器端SMB组件必须启用或需要SMB数据包签名。如果服务器启用此设置,Microsoft网络服务器将不与Microsoft网络客户端通信,除非该客户端同意执行SMB数据包签名。同样,如果需要客户端SMB签名,则该客户端将无法与未启用数据包签名的服务器建立会话。默认情况下,在工作站,服务器和域控制器上启用客户端SMB签名。 SMB签名在性能上有一些权衡。如果网络性能对部署方案很重要,建议您不要使用SMB签名;如果要在高度安全的环境中使用SMB,建议您使用SMB签名。当启用SMB签名时,SMB将停止使用RDMA远程直接数据存取,因为最大MTU限制为1,394字节,这会导致邮件碎片和重组,并降低整体性能。 SMB服务上不需要签名。未经身份验证的远程攻击者可以利用此攻击对SMB服务器进行中间人攻击。 # 返回有关SMB确定的SMB安全级别的信息