Ⅰ 密码技术是什么
如果一名间谍手中拥有一台先进的密码电台,但是没有配以密码软件,那么先进的密码电台只能说是一堆“废铜烂铁”。我国在两千多年前就发明了用密码暗语进行通信联络。古代斯巴达人也发明了一种加密和译码器。现代世界上流行的密码软件,通常有字典法、漏格法、苏联法、美国法、万能法、字母排列法等等。
Ⅱ 常见密码技术简介
##
密码技术在网络传输安全上的应用
随着互联网电子商务和网络支付的飞速发展,互联网安全已经是当前最重要的因素之一。作为一名合格的软件开发工程师,有必要了解整个互联网是如何来保证数据的安全传输的,本篇文章对网络传输安全体系以及涉及到的算法知识做了一个简要的介绍,希望大家能够有一个初步的了解。
###密码技术定义
简单的理解,密码技术就是编制密码和破译密码的一门技术,也即是我们常说的加密和解密。常见的结构如图:
其中涉及到的专业术语:
1.秘钥:分为加密秘钥和解密秘钥,两者相同的加密算法称为对称加密,不同的称为非对称加密;
2.明文:未加密过的原文信息,不可以被泄露;
3.密文:经过加密处理后的信息,无法从中获取有效的明文信息;
4.加密:明文转成密文的过程,密文的长度根据不同的加密算法也会有不同的增量;
5.解密:密文转成明文的过程;
6.加密/解密算法:密码系统使用的加密方法和解密方法;
7.攻击:通过截获数据流、钓鱼、木马、穷举等方式最终获取秘钥和明文的手段。
###密码技术和我们的工作生活息息相关
在我们的日常生活和工作中,密码技术的应用随处可见,尤其是在互联网系统上。下面列举几张比较有代表性的图片,所涉及到的知识点后面都会一一讲解到。
1.12306旧版网站每次访问时,浏览器一般会提示一个警告,是什么原因导致的? 这样有什么风险呢?
2.360浏览器浏览HTTPS网站时,点开地址栏的小锁图标会显示加密的详细信息,比如网络的话会显示```AES_128_GCM、ECDHE_RSA```,这些是什么意思?
3.在Mac系统的钥匙串里有很多的系统根证书,展开后有非常多的信息,这些是做什么用的?
4.去银行开通网上支付都会附赠一个U盾,那U盾有什么用呢?
##如何确保网络数据的传输安全
接下来我们从实际场景出发,以最常见的客户端Client和服务端Server传输文件为例来一步步了解整个安全体系。
####1. 保密性
首先客户端要把文件送到服务端,不能以明文形式发送,否则被黑客截获了数据流很容易就获取到了整个文件。也就是文件必须要确保保密性,这就需要用到对称加密算法。
** 对称加密: **加密和解密所使用的秘钥相同称为对称加密。其特点是速度快、效率高,适用于对较大量的数据进行加密。常见的对称加密算法有DES、3DES、AES、TDEA、RC5等,让我们了解下最常见的3DES和AES算法:
** DES(Data Encryption Standard): **1972年由美国IBM研制,数学原理是将明文以8字节分组(不足8位可以有不同模式的填充补位),通过数学置换和逆置换得到加密结果,密文和明文长度基本相同。秘钥长度为8个字节,后有了更安全的一个变形,使用3条秘钥进行三次加密,也就是3DES加密。
**3DES:**可以理解为对明文进行了三次DES加密,增强了安全程度。
** AES(Advanced Encryption Standard): **2001年由美国发布,2002年成为有效标准,2006年成为最流行的对称加密算法之一。由于安全程度更高,正在逐步替代3DES算法。其明文分组长度为16字节,秘钥长度可以为16、24、32(128、192、256位)字节,根据秘钥长度,算法被称为AES-128、AES-192和AES-256。
对称加密算法的入参基本类似,都是明文、秘钥和模式三个参数。可以通过网站进行模拟测试:[http://tool.chacuo.net/crypt3des]()。其中的模式我们主要了解下ECB和CBC两种简单模式,其它有兴趣可自行查阅。
** ECB模式(Electronic Codebook Book): **这种模式是将明文分成若干小段,然后对每一段进行单独的加密,每一段之间不受影响,可以单独的对某几段密文进行解密。
** CBC模式(Cipher Block Chaining): **这种模式是将明文分成若干小段,然后每一段都会和初始向量(上图的iv偏移量)或者上一段的密文进行异或运算后再进行加密,不可以单独解密某一断密文。
** 填充补位: **常用为PKCS5Padding,规则为缺几位就在后面补几位的所缺位数。,比如明文数据为```/x01/x01/x01/x01/x01/x01```6个字节,缺2位补```/x02```,补完位```/x01/x01/x01/x01/x01/x01/x02/x02```。解密后也会按照这个规则进行逆处理。需要注意的是:明文为8位时也需要在后面补充8个```/x08```。
####2. 真实性
客户端有了对称秘钥,就需要考虑如何将秘钥送到服务端,问题跟上面一样:不能以明文形式直接传输,否则还是会被黑客截获到。这里就需要用到非对称加密算法。
** 非对称加密: **加密和解密秘钥不同,分别称为公开秘钥(publicKey)和私有秘钥(privateKey)。两者成对出现,公钥加密只能用私钥解密,而私钥加密也只能用公钥加密。两者不同的是:公钥是公开的,可以随意提供给任何人,而私钥必须保密。特点是保密性好,但是加密速度慢。常见的非对称加密算法有RSA、ECC等;我们了解下常见的RSA算法:
** RSA(Ron Rivest、Adi Shamir、Leonard Adleman): **1977年由麻省理工学院三人提出,RSA就是他们三个人的姓氏开头字母拼在一起组成的。数学原理是基于大数分解。类似于```100=20x5```,如果只知道100的话,需要多次计算才可以试出20和5两个因子。如果100改为极大的一个数,就非常难去试出真正的结果了。下面是随机生成的一对公私钥:
这是使用公钥加密后结果:
RSA的这种特性就可以保证私钥持有者的真实性,客户端使用公钥加密文件后,黑客就算截获到数据因为没有私钥也是无法解密的。
** Tips: **
+** 不使用对称加密,直接用RSA公私钥进行加密和解密可以吗? **
答案:不可以,第一是因为RSA加密速度比对称加密要慢几十倍甚至几百倍以上,第二是因为RSA加密后的数据量会变大很多。
+** 由服务端生成对称秘钥,然后用私钥加密,客户端用公钥解密这样来保证对称秘钥安全可行吗? **
答案:不可行,因为公钥是公开的,任何一个人都可以拿到公钥解密获取对称秘钥。
####3. 完整性
当客户端向服务端发送对称秘钥加密后的文件时,如果被黑客截获,虽然无法解密得到对称秘钥。但是黑客可以用服务端公钥加密一个假的对称秘钥,并用假的对称秘钥加密一份假文件发给服务端,这样服务端会仍然认为是真的客户端发送来的,而并不知道阅读的文件都已经是掉包的了。
这个问题就需要用到散列算法,也可以译为Hash。常见的比如MD4、MD5、SHA-1、SHA-2等。
** 散列算法(哈希算法): **简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。而且该过程是不可逆的,无法通过摘要获得原文。
** SHA-1(Secure Hash Algorithm 1): **由美国提出,可以生成一个20字节长度的消息摘要。05年被发现了针对SHA-1的有效攻击方法,已经不再安全。2010年以后建议使用SHA-2和SHA-3替代SHA-1。
** SHA-2(Secure Hash Algorithm 2): **其下又分为六个不同算法标准:SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA512/256。其后面数字为摘要结果的长度,越长的话碰撞几率越小。SHA-224的使用如下图:
客户端通过上面的散列算法可以获取文件的摘要消息,然后用客户端私钥加密后连同加密的文件发给服务端。黑客截获到数据后,他没有服务端私钥无法获取到对称秘钥,也没有客户端私钥无法伪造摘要消息。如果再像上面一样去掉包文件,服务端收到解密得到摘要消息一对比就可以知道文件已经被掉包篡改过了。
这种用私钥对摘要消息进行加密的过程称之为数字签名,它就解决了文件是否被篡改问题,也同时可以确定发送者身份。通常这么定义:
** 加密: **用公钥加密数据时称为加密。
** 签名: **用私钥加密数据时称为签名。
####4. 信任性
我们通过对称加密算法加密文件,通过非对称加密传输对称秘钥,再通过散列算法保证文件没被篡改过和发送者身份。这样就安全了吗?
答案是否定的,因为公钥是要通过网络送到对方的。在这期间如果出现问题会导致客户端收到的公钥并不一定是服务端的真实公钥。常见的** 中间人攻击 **就是例子:
** 中间人攻击MITM(Man-in-the-MiddleAttack): **攻击者伪装成代理服务器,在服务端发送公钥证书时,篡改成攻击者的。然后收到客户端数据后使用攻击者私钥解密,再篡改后使用攻击者私钥签名并且将攻击者的公钥证书发送给服务器。这样攻击者就可以同时欺骗双方获取到明文。
这个风险就需要通过CA机构对公钥证书进行数字签名绑定公钥和公钥所属人,也就是PKI体系。
** PKI(Privilege Management Infrastructure): **支持公钥管理并能支持认证、加密、完整性和可追究性的基础设施。可以说整个互联网数据传输都是通过PKI体系进行安全保证的。
** CA(Certificate Authority): **CA机构就是负责颁发证书的,是一个比较公认的权威的证书发布机构。CA有一个管理标准:WebTrust。只有通过WebTrust国际安全审计认证,根证书才能预装到主流的浏览器而成为一个全球可信的认证机构。比如美国的GlobalSign、VeriSign、DigiCert,加拿大的Entrust。我国的CA金融方面由中国人民银行管理CFCA,非金融CA方面最初由中国电信负责建设。
CA证书申请流程:公司提交相应材料后,CA机构会提供给公司一张证书和其私钥。会把Issuer,Public key,Subject,Valid from,Valid to等信息以明文的形式写到证书里面,然后用一个指纹算法计算出这些数字证书内容的一个指纹,并把指纹和指纹算法用自己的私钥进行加密。由于浏览器基本都内置了CA机构的根证书,所以可以正确的验证公司证书指纹(验签),就不会有安全警告了。
但是:所有的公司其实都可以发布证书,甚至我们个人都可以随意的去发布证书。但是由于浏览器没有内置我们的根证书,当客户端浏览器收到我们个人发布的证书后,找不到根证书进行验签,浏览器就会直接警告提示,这就是之前12306打开会有警告的原因。这种个人发布的证书,其实可以通过系统设置为受信任的证书去消除这个警告。但是由于这种证书机构的权威性和安全性难以信任,大家最好不要这么做。
我们看一下网络HTTPS的证书信息:
其中比较重要的信息:
签发机构:GlobalSign Root CA;
有效日期:2018-04-03到2019-05-26之间可用;
公钥信息:RSA加密,2048位;
数字签名:带 RSA 加密的 SHA-256 ( 1.2.840.113549.1.1.11 )
绑定域名:再进行HTTPS验证时,如果当前域名和证书绑定域名不一致,也会出现警告;
URI:在线管理地址。如果当前私钥出现了风险,CA机构可以在线吊销该证书。
####5. 不可抵赖性
看起来整个过程都很安全了,但是仍存在一种风险:服务端签名后拒不承认,归咎于故障不履行合同怎么办。
解决方法是采用数字时间戳服务:DTS。
** DTS(digital time-stamp): **作用就是对于成功的电子商务应用,要求参与交易各方不能否认其行为。一般来说,数字时间戳产生的过程为:用户首先将需要加时间戳的文件用Hash算法运算形成摘要,然后将该摘要发送到DTS。DTS在加入了收到文件摘要的日期和事件信息后再对该文件进行数字签名,然后送达用户。
####6. 再次认证
我们有了数字证书保证了身份的真实性,又有了DTS提供的不可抵赖性。但是还是不能百分百确定使用私钥的就是合法持有者。有可能出现被别人盗用私钥进行交易的风险。
解决这个就需要用到强口令、认证令牌OTP、智能卡、U盾或生物特征等技术对使用私钥的当前用户进行认证,已确定其合法性。我们简单了解下很常见的U盾。
** USB Key(U盾): **刚出现时外形比较像U盘,安全性能像一面盾牌,取名U盾。其内部有一个只可写不可读的区域存储着用户的私钥(也有公钥证书),银行同样也拥有一份。当进行交易时,所有涉及到私钥的运算都在U盾内部进行,私钥不会泄露。当交易确认时,交易的详细数据会显示到U盾屏幕上,确认无误后通过物理按键确认就可以成功交易了。就算出现问题黑客也是无法控制U盾的物理按键的,用户可以及时取消避免损失。有的U盾里面还有多份证书,来支持国密算法。
** 国密算法: **国家密码局针对各种算法制定了一些列国产密码算法。具体包括:SM1对称加密算法、SM2公钥算法、SM3摘要算法、SM4对称加密算法、ZUC祖冲之算法等。这样可以对国产固件安全和数据安全进行进一步的安全控制。
## HTTPS分析
有了上面的知识,我们可以尝试去分析下HTTPS的整个过程,用Wireshark截取一次HTTPS报文:
Client Hello: 客户端发送Hello到服务端443端口,里面包含了随机数、客户端支持的加密算法、客户端的TLS版本号等;
Server Hello: 服务端回应Hello到客户端,里面包含了服务端选择的加密套件、随机数等;
Certificate: 服务端向客户端发送证书
服务端计算对称秘钥:通过ECDH算法得到对称秘钥
客户端计算对称秘钥:通过ECDH算法得到对称秘钥
开始用对称秘钥进行加密传输数据
其中我们又遇到了新的算法:DH算法
** DH(Diffie-Hellman): **1976年由Whitefield与Martin Hellman提出的一个奇妙的秘钥交换协议。这个机制的巧妙在于可以通过安全的方式使双方获得一个相同的秘钥。数学原理是基于原根的性质,如图:
*** DH算法的用处不是为了加密或解密消息,而是用于通信双方安全的交换一个相同的秘钥。 ***
** ECDH: **基于ECC(椭圆曲线密码体制)的DH秘钥交换算法,数学原理是基于椭圆曲线上的离散对数问题。
** ECDHE: **字面少了一个E,E代表了临时。在握手流程中,作为服务器端,ECDH使用证书公钥代替Pb,使用自身私钥代替Xb。这个算法时服务器不发送server key exchange报文,因为发送certificate报文时,证书本身就包含了Pb信息。
##总结
| 算法名称 | 特点 | 用处 | 常用算法名 |
| --- | :--- | :---: | ---: |
| 对称加密 | 速度快,效率高| 用于直接加密文件 | 3DES、AES、RC4 |
| 非对称加密 | 速度相对慢,但是确保安全 | 构建CA体系 | RSA、ECC |
| 散列算法 | 算出的摘要长度固定,不可逆 | 防止文件篡改 | SHA-1、SHA-2 |
| DH算法 | 安全的推导出对称秘钥 | 交换对称秘钥 | ECDH |
----
Ⅲ 什么是密码
额,我建议你直接上网络搜,不过我可以给你引用一下:
密码是一种用来混淆的技术,使用者希望将正常的(可识别的)信息转变为无法识别的信息。但这种无法识别的信息部分是可以再加工并恢复和破解的。密码在中文里是“口令”(password)的通称。
登录网站、电子邮箱和银行取款时输入的“密码”其实严格来讲应该仅被称作“口令”,因为它不是本来意义上的“加密代码”,但是也可以称为秘密的号码。其主要限定于个别人理解(如一则电文)的符号系统。
名称由来
公元前405年,古希腊雅典和斯巴达之间的伯罗奔尼撒战争已进入尾声。斯巴达军队逐渐占据了优势地位,准备对雅典发动最后一击。这时,原来站在斯巴达一边的波斯帝国突然改变态度,停止了对斯巴达的援助,意图使雅典和斯巴达在持续的战争中两败俱伤,以便从中渔利。在这种情况下,斯巴达急需摸清波斯帝国的具体行动计划,以便采取新的战略方针。正在这时,斯巴达
军队捕获了一名从波斯帝国回雅典送信的雅典信使。斯巴达士兵仔细搜查这名信使,可搜查了好大一阵,除了从他身上搜出一条布满杂乱无章的希腊字母的普通腰带外,别无他获。情报究竟藏在什么地方呢?斯巴达军队统帅莱桑德把注意力集中到了那条腰带上,情报一定就在那些杂乱的字母之中。他反复琢磨研究这些天书似的文字,把腰带上的字母用各种方法重新排列组合,怎么也解不出来。最后,莱桑德失去了信心,他一边摆弄着那条腰带,一边思考着弄到情报的其他途径。当他无意中把腰带呈螺旋形缠绕在手中的剑鞘上时,奇迹出现了。原来腰带上那些杂乱无章的字母,竟组成了一段文字。这便是雅典间谍送回的一份情报,它告诉雅典,波斯军队准备在斯巴达军队发起最后攻击时,突然对斯巴达军队进行袭击。斯巴达军队根据这份情报马上改变了作战计划,先以迅雷不及掩耳之势攻击毫无防备的波斯军队,并一举将它击溃,解除了后顾之忧。随后,斯巴达军队回师征伐雅典,终于取得了战争的最后胜利。[3]
雅典间谍送回的腰带情报,就是世界上最早的密码情报,具体运用方法是,通信双方首先约定密码解读规则,然后通信—方将腰带(或羊皮等其他东西)缠绕在约定长度和粗细的木棍上书写。收信—方接到后,如不把腰带缠绕在同样长度和粗细的木棍上,就只能看到一些毫无规则的字母。后来,这种密码通信方式在希腊广为流传。现代的密码电报,据说就是受了它的启发而发明的。
Ⅳ 什么是密码技术
如果一名间谍手中拥有一台先进的密码电台,但是没有配以密码软件,那么先进的密码电台只能说是一堆“废铜烂铁”。我国在两千多年前就发明了用密码暗语进行通信联络。古代斯巴达人也发明了一种加密和译码器。现代世界上流行的密码软件,通常有字典法、漏格法、苏联法、美国法、万能法、字母排列法等等。
Ⅳ 什么是秘密密钥密码技术
秘密密钥加密使用一个密钥,即秘密密钥,既进行加密又进行解密消息,这也称为对称加密。“私钥”一词常常不恰当地用于指秘密密钥。私钥是对称密码技术的公/私钥对中的一个密钥。在此方案中,用户有两个密钥,一个是公用的,一个是私人拥有的。
秘密密钥密码技术常常不恰当地称为私钥密码技术或对称密码技术。单个密钥用于加密数据。秘密密钥可能由一个人持有或在消息的发送者和接收者之间交换。例如,如果用户对存储在硬盘上的数据加密,要记住密钥,通常不把它给他人。但是如果想使用对称密码技术向商务伙伴发送保密信息,则需要确保商务伙伴知道解密此信息的密钥。
如果私钥密码技术用于在双方之间发送秘密信息,发送者和接收者都必须有秘密密钥的副本。但是,在传送过程中密钥可能被泄露。如果认识交换信息的对方,可以提前把密钥给他们。但是,如果需要给从来没有见过的人发送加密信息,则需要找一种安全的方法交换密钥。一种方法是通过另一条安全通道或甚至通过夜间快递发送密钥,但是如果怀疑某人正努力试图获取此密钥的情况下这也是冒险的。
对于具有n个用户的网络,需要n(n-1)/2个密钥,在用户群不是很大的情况下,对称加密系统是有效的。但是对于大型网络,当用户群很大,分布很广时,密钥的分配和保存就成了问题。对机密信息进行加密和验证通过随报文一起发送报文摘要(或散列值)来实现。私钥密码技术的最大优势是加/解密速度快,适合于对大数据量进行加密,但密钥管理困难。
如上所述,私钥密码技术常用于加密硬盘上的数据。加密数据的人私人持有此密钥,没有密钥分布问题。私钥密码技术还用于通信设备,如加密所有通过链路的数据的网桥。网络管理员用同一密钥对两台设备编程,然后亲自把它们传输到它们的物理位置。对称密码根据加密模式又可分为分组密码和序列密码。分组密码的典型算法有:DES,3DES,IDEA,AES,SKIPJACK,Karn,RC2和RC5等,分组密码是目前在商业领域比较重要使用较多的密码,广泛用于信息的保密传输和加密存储;序列密码的典型算法有:RC4,SEAL,A5等,序列密码多用于流式数据的加密,特别是对实时性要求比较高的语音和视频流的加密传输。
详见(引用)http://www.elecfans.com/ke/tongxingjishu/chungshuwang/20100320199759.html
Ⅵ 华中系统技术员密码是多少
最初密码是XZ0012。
不同的厂不一样,不是统一的。可以自行修改!
如果是忘记密码,进入网页后,在登录界面点击忘记登录密码,在跳转的界面输入用户名和验证码,确认提交。提交后,网站会给你注册时填的邮箱发一个连接。进入邮箱可以看到发送的连接,点击打开。打开后可以看到有个网址连接,点击打开。然后就跳转到重新设置密码的地方了,输入新的密码提交就可以了。
Ⅶ 密码是什么🤔
密码是一种用来混淆的技术,它希望将正常的(可识别的)信息转变为无法识别的信息。当然,对一小部分人来说,这种无法识别的信息是可以再加工并恢复的。密码在中文里是"口令"(password)的通称。登录网站、电子邮箱和银行取款时输入的"密码"其实严格来讲应该仅被称作"口令",因为它不是本来意义上的"加密代码",但是也可以称为秘密的号码。主要限定于个别人理解(如一则电文)的符号系统。如密码电报、密码式打字机。
密码是一门科学,有着悠久的历史。密码在古代就被用于传递秘密消息。在近代和现代战争中,传递情报和指挥战争均离不开密码,外交斗争中也离不开密码。密码一般用于信息通信传输过程中的保密和存储中的保密。随着计算机和信息技术的发展,密码技术的发展也非常迅速,应用领域不断扩展。密码除了用于信息加密外,也用于数据信息签名和安全认证。这样,密码的应用也不再只局限于为军事、外交斗争服务,它也广泛应用在社会和经济活动中。当今世界已经出现了密码应用的社会化和个人化趋势。例如:可以将密码技术应用在电子商务中,对网上交易双方的身份和商业信用进行识别,防止网上电子商务中的"黑客"和欺诈行为;应用于增值税发票中,可以防伪、防篡改,杜绝了各种利用增值税发票偷、漏、逃、骗国家税收的行为,并大大方便了税务稽查;应用于银行支票鉴别中,可以大大降低利用假支票进行金融诈骗的金融犯罪行为;应用于个人移动通信中,大大增强了通信信息的保密性等等。
Ⅷ 密码是什么
据网络知识解释:密码是一种用来混淆的技术,它希望将正常的(可识别的)信息转变为无法识别的信息。当然,对一小部分人来说,这种无法识别的信息是可以再加工并恢复的。密码在中文里是"口令"(password)的通称。登录网站、电子邮箱和银行取款时输入的"密码"其实严格来讲应该仅被称作"口令",因为它不是本来意义上的"加密代码",但是也可以称为秘密的号码。主要限定于个别人理解(如一则电文)的符号系统。如密码电报、密码式打字机。
中国是世界上最早使用密码的国家之一。而最难破解的"密电码"也是中国人发明的。
密码组成
密码是按特定法则编成,用以对通信双方的信息进行明密变换的符号。换而言之,密码是隐蔽了真实内容的黑客密码符号序列。就是把用公开的、标准的信息编码表示的信息通过一种变换手段,将其变为除通信双方以外其他人所不能读懂的信息编码,这种独特的信息编码就是密码。
密码是一门科学,有着悠久的历史。密码在古代就被用于传递秘密消息。在近代和现代战争中,传递情报和指挥战争均离不开密码,外交斗争中也离不开密码。密码一般用于信息通信传输过程中的保密和存储中的保密。随着计算机和信息技术的发展,密码技术的发展也非常迅速,应用领域不断扩展。密码除了用于信息加密外,也用于数据信息签名和安全认证。这样,密码的应用也不再只局限于为军事、外交斗争服务,它也广泛应用在社会和经济活动中。当今世界已经出现了密码应用的社会化和个人化趋势。例如:可以将密码技术应用在电子商务中,对网上交易双方的身份和商业信用进行识别,防止网上电子商务中的"黑客"和欺诈行为;应用于增值税发票中,可以防伪、防篡改,杜绝了各种利用增值税发票偷、漏、逃、骗国家税收的行为,并大大方便了税务稽查;应用于银行支票鉴别中,可以大大降低利用假支票进行金融诈骗的金融犯罪行为;应用于个人移动通信中,大大增强了通信信息的保密性等等。