IT评测·应用市场-qidao123.com
标题:
【产物司理修炼之道】-一文搞懂付出安全体系建立
[打印本页]
作者:
篮之新喜
时间:
2025-2-21 17:42
标题:
【产物司理修炼之道】-一文搞懂付出安全体系建立
“付出安全体系全解析,筑牢电子付出防线。” 在电子付出广泛遍及的当下,其安全体系涵盖哪些关键技能与环节?如何应对各类潜伏风险,确保付出过程安全可靠?
对于付出安全我自认比绝大部门付出行业的偕行都专业,当年为了做统一密钥管理和加解密加验签平台,啃了好几本密码学和信息安全的大部头书。但我今天以产物司理都能看懂的白话讲清晰付出安全体系,不涉及复杂的数学知识。
内容有点长,可以思量利用电脑阅读,结果会好不少。
1. 前言
在电子付出的万亿级市场中,安全无疑是焦点中的焦点。大部门人都知道付出安全很重要,但付出安全详细包罗哪些方面,面临的标题,以及有哪些详细技能或方案来应对,包罗在付出行业从业多年的老付出人,却未必有全局而清晰的认知。
今天尝试从在线付出面临的主要安全标题,常见的技能本领如加密解密、签名验签、安全证书等入手,尝试讲清晰付出安全体系。
通过这篇文章,你可以了解到如下内容:
在线付出面临的主要安全标题。
常见的加密解密技能。
常见的签名验签技能。
安满身份认证体系。
常见的安全协议。
密钥存储与统一安全服务。
工程应用中的常见标题。
2. 在线付出面临的主要安全标题
在线付出面临的安全标题主要包罗:
账号或密码等敏感信息被盗用。
用户的账号和密码可能会被黑客获取,导致个人资金被盗用。这种情况是用户普遍感知较强的安全标题,常见于密码泄露导致资金丧失的情况。
交易信息被窜改。
这个对于一样平常用户感知较少,常见就是付出金额被窜改,比如实付金额小于应付金额,还就是转账时的收账账号或金额被窜改。
比如在转账场景下修改收款账号或金额,当转账哀求被黑客截获,把原收款账号修改为另一个账号,再发给付出平台。如果付出平台安全措施不到位,就可能把钱转到一个错误的账号上。
交易信息被抵赖。
这个比较少见。举个场景,付出平台哀求银行扣款200元,银行实际扣款失败,但是通知付出平台成功,付出平台也通知商户发货了。但是银行说他们返回给付出平台是扣款失败,扣款成功的信息不是银行发出来的。这种行为是抵赖。
欺诈交易
包罗套现、洗钱等违规交易,以及由于用户信息泄露导致盗刷等。
服务不可用攻击。
这个出现的频次非常高,只是一样平常人感觉不到。有兴趣的同砚可以搜索分布式拒绝服务DDoS(Distributed Denial of Service),攻击者通过大量恶意流量占用付出系统的资源,使得合法用户无法正常访问付出平台,从而影响用户的交易体验甚至造成财务丧失。
3. 付出安全焦点关注点
付出安全是一个很大的范畴,但我们一样平常只需要重点关注以下几个焦点点就够:
敏感信息安全存储。
对个人和商户/渠道的敏感信息进行安全存储。
个人敏感信息包罗身份证信息、付出卡明文数据和密码等,而商户/渠道的敏感信息则涉及商户登录/操纵密码、渠道证书密钥等。
交易信息安全传输。
确保客户端与付出系统服务器之间、商户系统与付出系统之间、付出系统内部服务器与服务器之间、付出系统与银行之间的数据传输安全。这包罗采用加密技能等措施来保障数据传输过程中的安全性。
交易信息的防窜改与防抵赖。
确保交易信息的完整性和真实性,防止交易信息被窜改或者被抵赖。一笔典范的交易,通常涉及到用户、商户、付出机构、银行四方,确保各方发出的信息没有被窜改也无法被抵赖。
欺诈交易防范。
辨认并防止欺诈交易,包罗套现、洗钱等违规操纵,以及通过辨认用户信息泄露和可疑交易来保护用户资产的安全。这一方面通常由付出风控系统负责。
服务可用性。
防范DDoS攻击,确保付出系统的稳定运行和服务可用性。通过摆设防火墙、入侵检测系统等技能本领,实时发现并应对可能的DDoS攻击,保障付出服务的正常进行。
4. 极简付出安全大图
付出安全是一个综合性的系统工程,除了技能本领外,还需要建立健全的安全制度和合规制度,而后两者通常被大部门人所忽略。
下图是一个极简版的付出安全大图,包含了付出安全需要思量的焦点要点。
说明:
制度是基础。
哪种场景下需要加密存储,加密需要利用什么算法,密钥长度最少需要多少位,哪些场景下需要做签名验签,这些都是制度就明确了的。制度通常分为行业制度和内部安全制度。行业制度通常是国家层面订定的法律法规,比如《网络安全法》、《付出业务管理办法》等。内部安全制度通常是公司根据自身的业务和能力建立的制度,小公司可能就没有。
技能本领主要围绕四个目标:
1)敏感数据安全存储。
2)交易安全传输。
3)交易的完整性和真实性。
4)交易的合法性(无欺诈)。
对应的技能本领有:
敏感信息安全存储:采用加密技能对个人和商户/渠道的敏感信息进行加密存储,限定敏感信息的访问权限,防止未授权的访问和泄露。
交易信息安全传输:利用安全套接字层(SSL)或传输层安全性协议(TLS)等加密技能,确保数据在传输过程中的机密性和完整性。
交易的完整性和真实性:采用数字签名技能和身份认证技能确保交易信息的完整性和真实性,对交易信息进行记载和审计,建立可追溯的交易日志,以应对可能出现的交易窜改或抵赖情况。
防范欺诈交易:通过付出风控系统,实时辨认和阻止可疑交易行为。
服务可用性:摆设流量清洗装备和入侵检测系统,实时发现并阻止恶意流量,确保付出系统的稳定运行和服务可用性,抵御DDoS攻击。
下面详细讲解各技能本领。
5. 数据安全:加密与解密技能
加密息争密技能是数据安全的基础,在付出安全技能的焦点技能之一,无论是付出平台与银行之间的通信,照旧付出平台内部敏感数据的存储,都需要用到加解密技能。
我尽量制止加解密技能背后高深的数学知识。
5.1. 什么是加密息争密
在数字通信中,加密是将明文通过肯定的算法和密钥转换成无法辨认的密文的过程。如许纵然数据被截获,未经授权的第三方也无法明白其内容。比如把明文“123”转成“aexyeffidfdfwsd”。
解密则是加密的逆向过程,通过肯定的算法和密钥将密文转换成明文的过程。比如把密文“aexyeffidfdfwsd”转成“123”。
5.2. 对称加密算法
对称加密是利用雷同的密钥(称为对称密钥)进行加密息争密。这意味着发送方和接收方必须在通信之前共享雷同的密钥。对称加密算法利用简单且高效,但密钥分发和管理是其主要挑战之一。
以下是一些常见的对称加密算法、特点和应用场景:
AES(Advanced Encryption Standard,高级加密尺度):
特点:安全性高,速度快,密钥长度可变。
应用场景:广泛应用于网络通信、文件加密、数据库加密等领域。也是付出行业利用的主流对称加密算法。
DES(Data Encryption Standard,数据加密尺度):
特点:较为古老,密钥长度较短(56位),安全性相对较弱。
应用场景:曾经广泛应用于保护数据传输和存储,但由于密钥长度较短和安全性较弱,现已根本被AES取代。
3DES(Triple DES,三重数据加密尺度):
特点:通过对数据利用三次DES算法加密来增强安全性,但速度较慢。
应用场景:曾被广泛用于替换DES,但由于速度较慢,已经根本被AES取代。
RC4(Rivest Cipher 4):
特点:速度快,简单易用。
应用场景:曾经用于保护网络通信和SSL/TLS协议中的加密,但由于安全性存在标题,已经不推荐利用。
IDEA(International Data Encryption Algorithm):
特点:速度快,安全性高。
应用场景:曾经用于网络通信和文件加密,但由于专利限定和更先辈的算法出现,应用逐渐淘汰。
AES目前被以为是最安全和最常用的对称加密算法,推荐在付出行业利用。密钥长度发起利用256比特或以上。
有些银行要求整个报文进行加密,这个时间一样平常都是利用AES 256来加密。
5.3. 非对称加密算法
非对称加密算法利用一对密钥(公钥和私钥)进行加密息争密。这两个密钥是干系联的,但不雷同。公钥用于加密数据,私钥用于解密数据,肯定不能反过来,由于公钥大家都有,如果利用私钥加密,公钥解密,大家都可以解密,就没有安全性可言。这种加密方式具有密钥分离的特点,即公钥可以公开分发,而私钥则保密生存。
另外,非对称加密算法也用于签名验签,拿私钥签名,公钥验签(不能反过来)。
以下是一些常见的非对称加密算法、特点和应用场景:
RSA(Rivest-Shamir-Adleman):
特点:安全性高,可靠性强,广泛应用。
应用场景:用于加密通信、数字签名、密钥互换等各种安全领域。付出行业用得非常多。
DSA(Digital Signature Algorithm):
特点:用于数字签名,验证速度快。
应用场景:主要用于身份验证和数字签名,比方在SSL/TLS协议中用于网站认证。
ECC(Elliptic Curve Cryptography):
特点:密钥长度短,安全性高,加密服从高。
应用场景:适用于移动装备和资源受限情况,比方智能手机、物联网装备等。
DH(Diffie-Hellman):
特点:用于密钥互换,实现安全的密钥协商。
应用场景:用于安全通信中的密钥协商,比方SSL/TLS协议中的密钥互换阶段。
RSA当前在付出行业应用最广泛,ECC则逐渐成为移动装备和物联网装备中的首选算法,因其在资源受限情况下的高效性能而备受青睐。RSA推荐密钥长度为2048比特或以上,ECC推荐密钥长度为256比特或以上。
5.4. 数字信封加密算法
数字信封加密算法组合了对称加密、非对称加密、数字签名和验签等多种加密技能,用于在网络通信中保护数据的安全性和完整性。传输的数据就像放在信封内里,只有收件人才气打开信封查看明文,以是被形象称为数字信封加密。
它的原理是利用对称加密算法对要传输的数据进行加密,然后再利用接收方的公钥对对称密钥进行加密,再利用本身的私钥进行签名,最后将加密后的对称密钥和加密后的数据一起发送给接收方。接收方先利用对方的公钥进行验签,再利用私钥解密对称密钥,最后利用对称密钥解密数据。
不外大家日常听得更多的可能是PGP(Pretty Good Privacy)。PGP是一种加密软件套件,用于保护电子通信的安全性和隐私性。它由Philip Zimmermann于1991年创建,并成为了一种尺度的加密工具,最开始用于保护电子邮件,后面被广泛用于保护文件传输,比如付出平台和银行之间的文件。
PGP通常推荐利用RSA 2048和AES 256,前者用于加密对称密钥和签名,后面用于加密大数据块。
下图是数字信封加解密算法的完整过程:
现在许多银行的打款文件要求利用PGP加密,由于文件内里有卡号等敏感数据。
5.5. 加密算法和密钥长度选择
在加密应用中,算法和密钥长度对安全性(破解难度)和性能(运算快慢)都有重要影响:
安全性:
非对称加密算法通常比对称加密算法更安全。比如RSA(非对称加密)好于AES(对称加密)。
同类算法,新算法通常比老算法更安全。比如AES和DES都是对称加密算法,但是AES的安全性优于DES。
雷同算法,密钥越长,越安全,由于密钥越长,密钥空间越大,破解的难度就越大。比如AES 256(密钥长度)的安全性优于AES 128(密钥长度)。
性能:
对称加密算法通常比非对称加密算法运算更快。比如AES(对称加密)好于RSA(非对称加密)。
雷同算法,密钥越长,运算越慢,性能越差。比如AES 256(密钥长度)就比AES 128(密钥长度)要慢。由于密钥长度增加了加密操纵的复杂度和计算量,需要更多的计算资源和时间来执行加密息争密操纵。
因此,在选择加密算法和密钥长度时,需要综合思量安全性和性能之间的平衡。一样平常来说,应选择安全性较高的加密算法,并根据应用场景和性能要求选择得当长度的密钥。
当前付出行业推荐的算法和密钥长度如下:
算法选择:对称加密算法(如AES)适用于对大量数据进行快速加密息争密,而非对称加密算法(如RSA)适用于密钥互换和数字签名等场景。
密钥长度选择:AES发起选择256比特或以上。RSA发起选择2048比特或以上。5.6. 常见加密解密算法推荐
前面我们介绍了对称加密和非对称加密算法,两者有差别的利用场景,在付出行业推荐的算法如下:
AES:当前最广泛利用的对称加密算法,速度快,适用于高速加密大量数据。密钥长度推荐256比特或以上。
RSA:广泛利用的非对称加密算法,安全性比AES更高,但是加密速度慢,适用于小量数据或做为数字签名利用。密钥长度推荐2048比特或以上。
在一些场景内里,需要同时组合利用AES和RSA,比如大数据加密利用AES,AES密钥通过RSA加密后传输,并通过RSA进行签名,如许既解决了安全性,又解决了加密速度的标题。
特别强调一点:千万千万不要本身去发明一种【私有的】,【本身以为很安全】的算法,并应用到生产情况。由于业界推荐的这些算法的安全性是经过大量数字家和计算机科学家论证过的,也经过工业界连续地验证。
除了上面推荐的AES和RSA,各个国家基于特别安全思量,尚有一些特别的加密算法,这些算法同样经过大量数字家和计算机科学家论证过,但是有肯定的利用门槛,有兴趣的同砚可以去找加密机厂家的资料了解。
5.7. 典范应用场景
付出系统做为一个安全系数非常高的系统,加解密技能在内里起到了极其重要的作用。
通常以下几个焦点应用场景都会用到加解密技能:
1)传输加密;
2)存储加密。
传输加密:保护交易数据在互联网上传输过程中的安全,防止数据被窃听或窜改。
详细的实现通常有两种:
1)通道加密:比如利用HTTPS,或者VPN、专线等,实现数据传输端到端的加密。
2)报文数据加密:部门字段单独加密,比如把卡号等关键信息进行加密后再发出去。团体报文单独加密,先组装业务报文,然后对整个报文加密再发出去。
存储加密:对敏感数据比如光荣卡信息、用户身份证信息、密码等需要进行加密后存储到数据库中,以防止数据泄露。
详细的实现通常也会分两种:
1)直接加密:原始信息直接加密。通常用于光荣卡、身段证等通例数据的加密。
2)加盐值(SALT)后再加密:原始信息先加上盐值,然后再进行加密。通常用于密码管理。所谓盐值,就是一串随机天生的字符串,比如:329713kud3s,9ds9jd9sj3es。
5.8. 登录与付出密码的特别处置惩罚
登录和付出密码的传输和存储都比较特别,值得单独说一说。
5.8.1. 登录与付出密码传输的特别处置惩罚
登录和付出密码都是用户输入,如何保证在输入时不被盗取?如何保证传输的安全性?
输入时一样平常会有安全控件,直接获取输入,其它应用无法在输入盗取。然后利用公钥加密,传输到后端后,再利用私钥解密,再进行转加密,最后生存到数据库,或和数据库的密码对比判断。
5.8.2. 登录与付出密码存储的特别处置惩罚
上一章节里,提到登录或付出密码需要加上盐值后,再进行加密存储。那为什么密码管理需要利用盐值?为了提高密码安全性。
防止彩虹表攻击。彩虹表是一种预先计算出来的哈希值数据集,攻击者可以利用它来查找和破译未加盐的密码。通过为每个用户加盐,纵然是雷同的密码,由于盐值差别,加密后的密文也是不一样的。
保护雷同密码的用户。如果多个用户利用了雷同的密码,没有盐值情况下,一个被破解后,就能找到利用雷同密码的其它用户。每个用户差别的盐值,确保天生的密文差别。
增加破解难度。尤其是密码较弱时,显着增加攻击者难度。
在实现时,需要留意加盐计谋:
随机和唯一:每个用户都是随机和唯一的。
存储盐值:每个用户的密码和盐值都需要配对存储。由于在加密密钥更新时,需要利用盐值一起先解密再重新加密。
盐值富足长:增加复杂性,推荐至少128位。
5.9. PCI认证
如果要生存用户的卡明文数据(比如用户名和卡号),就肯定要经过PCI(Payment Card Industry)认证,在PCI认证范围内的域叫PCI域。
PCI安全尺度(PCI DSS)是由PCI安全尺度委员会(PCI SSC)订定和管理的一组安全尺度,旨在保护持卡人数据的安全性和机密性。
简单地说,PC规定了一个单独的区域(简称PCI域),可以处置惩罚用户的卡明文数据,包罗加密后存储,或利用明文,这个区域的网络安全摆设、数据访问控制、数据加密、日志打印、安全计谋等全部都有由PCI DSS规定,并定期接受干系认证构造的检察。
特别留意的是,PCI尺度要求所有的域都不能打印用户敏感信息,所有的域都不能存储明文用户敏感信息,比如卡只能打印前6后4,只有PCI域范围内的应用才气利用卡明文数据。5.10. 加解密在工程应用中的常见标题
密钥管理不规范:把密钥加密后生存在数据库,但是加密密钥用的密钥是123456。
算法选择不合适:大批量数据选择利用速度极慢的非对称的RSA算法。
兼容性算法不对:尤其是模式、填充方式是直接影响加解密结果的。比如AES下面仍旧细分为:ECB,CBC,CFB,OFB,CTR,GCM等模式,以及PKCS7/PKCS5填充,零填充等填充方式。详细的可以找密码学干系资料参考。
异想天开地利用本身创造的私有算法:以为很安全,实在太傻太机动。
管理机制不美满:没有订定严格的规范,或有规范执行不严重,导致密钥能被轻易访问。
6. 防窜改与防抵赖:签名与验签技能
防窜改与防抵赖一样平常也称为数据的完整性和真实性验证标题,通常利用签名验签技能解决。
6.1. 什么是签名与验签
签名验签是数字加密领域的两个根本概念。
签名:发送者将数据通过特定算法和密钥转换成一串唯一的密文串,也称之为数字签名,和报文信息一起发给接收方。
验签:接收者根据接收的数据、数字签名进行验证,确认数据的完整性,以证明数据未被窜改,且确实来自声称的发送方。如果验签成功,就可以确信数据是完好且合法的。
下面是一个极简的签名验签数学公式。
假设被签名的数据(m),签名串(Σ),散列函数(H),私钥(Pr),公钥(Pu),加密算法(S),解密算法(S^),判断相等(eq)。
简化后的数学公式如下:
签名:Σ=S[H(m), Pr]。
验签:f(v)=[H(m) eq S^(Σ, Pu)]。
流程如下:
签名士程:
散列消息:对消息(m)应用散列函数(H)天生散列值(h)。
加密散列值:利用发送方的私钥 ( Pr ) 对散列值 ( h ) 进行加密,天生签名 ( Σ )。 Σ = S(h, Pr)
把数字签名(Σ)和原始消息(m)一起发给接收方。
验签流程:
散列收到的消息:利用同样的散列函数 ( H ) 对消息 ( m ) 天生散列值 ( h’ )。 h’ = H(m)
解密签名:利用发送方的公钥 ( Pu ) 对签名 (Σ ) 进行解密,得到散列值 ( h )。 h = S^(Σ, Pu)
比较散列值:比较解密得到的散列值 ( h ) 与直接对消息 ( m ) 散列得到的 ( h’ ) 是否一致。 验证成功条件: h = h’ 。
如果两个散列值相等,那么验签成功,消息(m)被以为是完整的,且确实来自声称的发送方。如果不一致,就是验签失败,消息可能被窜改,或者签名是伪造的。
现实中的算法会复杂非常多,比如RSA,ECDSA等,还涉及到填充方案,随机数天生,数据编码等。
6.2. 付出系统为什么肯定要做签名验签
银行怎么判断扣款哀求是从确定的付出平台发出来的,且数据没有被窜改?商户不承认发送过某笔交易怎么办?这都是签名验签技能的功劳。
签名验签主要解决3个标题:
身份验证:确认付出信息是由真正的发送方发出,防止冒名顶替。
如果无法做身份验证,付出宝就无法知道针对你的账户扣款99块的哀求是真实由你楼下小卖部发出去的,照旧我假冒去扣的款。
完整性校验:确认付出信息在传输过程中未被窜改,每一笔交易都是完整、准确的。
如果无法校验完整性,那么我在公共场景安装一个免费WIFI,然后截获你的微信转账哀求,把接收者修改成我的账号,再转发给微信,微信就有可能会把钱转到我的账号里。
防抵赖性:制止任何一方否则曾经进行过的交易,提供法律证据支持。
比如微信付出调用银行扣款100块,银行返回成功,商户也给用户发货了,几天后银行说这笔扣款成功的消息不是他们返回的,他们没有扣款。而签名验签就能让银行无法抵赖。
流程:
双方先互换密钥,可以通过线下邮件互换,也可以通过线上自助平台互换。
哀求方发出交易报文前利用本身的私钥进行签名,接收方接收报文后先辈行验签,验签通过后再进行业务处置惩罚。
接收方处置惩罚完业务,返回前利用本身的私钥进行签名,哀求方接收返回报文后先辈行验签,验签通过后再进行业务处置惩罚。
6.3. 常见数字签名算法及推荐算法
常见的数字签名算法包罗:
RSA(Rivest-Shamir-Adleman):RSA是一种基于大素数因子分解困难的非对称加密算法,被广泛应用于数字签名和密钥互换等领域。
DSA(Digital Signature Algorithm):DSA是一种基于离散对数标题的数字签名算法,主要用于数字签名领域。
ECDSA(Elliptic Curve Digital Signature Algorithm):ECDSA是一种基于椭圆曲线离散对数标题的数字签名算法,具有比RSA更短的密钥长度和更高的安全性。
EdDSA(Edwards-curve Digital Signature Algorithm):EdDSA是一种基于扭曲爱德华斯曲线的数字签名算法,具有高效性和安全性,被广泛用于加密货币等领域。
目前主流的数字签名算法是RSA和ECDSA。RSA推出较早,且安全性富足,现在利用非常广泛。而ECDSA由于其较短的密钥长度和更高的安全性,逐渐成为新兴的数字签名算法,特别适用于资源受限情况和移动装备等场景。
在付进场景来说,RSA利用最为广泛,密钥长度推荐2048比特。RSA1024以前利用得多,但由于密钥长度较短,安全性不足,也已经不再推荐利用。
6.4. 一些与防窜改有关的技能
6.4.1. 数字摘要
数据摘要是一种通过对数据进行计算(也称为哈希、摘要、散列计算),天生固定长度的唯一数据串(通常称为摘要或哈希值),用于验证数据的完整性和一致性的技能。数据摘要通常用于验证数据在传输或存储过程中是否发生了更改。
上面有个缺陷,就是在传输过程中,报文被黑客截获,然后把100万字的文章和摘要报文全部替换,服务端发现不了的。这个缺陷在下面的HMAC算法中会解决。
常见的数据摘要算法包罗:
MD5(Message Digest Algorithm 5): MD5是一种常用的哈希算法,产生128位的哈希值。然而,由于MD5存在严重的安全性缺陷,已经不推荐用于安全性要求较高的场景。
SHA-1(Secure Hash Algorithm 1): SHA-1是一种较为安全的哈希算法,产生160位的哈希值。然而,由于SHA-1也存在一些安全性标题,如碰撞攻击,因此在一些安全性要求较高的场景中也不推荐利用。
SHA-256、SHA-384、SHA-512: 这些是SHA-1的后续版本,分别产生256位、384位和512位的哈希值。它们提供了更高的安全性,通常被用于对安全性要求较高的数据进行摘要。
RIPEMD(RACE Integrity Primitives Evaluation Message Digest): RIPEMD系列是一组与MD4和MD5相似的哈希算法,产生128位、160位、256位和320位的哈希值。固然不如SHA系列算法流行,但在某些场景下仍旧有效。
BLAKE、Keccak、Whirlpool等: 这些是一些新兴的哈希算法,设计更加安全和高效,被广泛用于密码学和区块链等领域。
当前在付出行业推荐的摘要算法是SHA256。
需要说明的是,数字签名需要用到数字摘要算法,但是数字摘要算法不能替换数字签名。由于数字摘要只能证明数据是否完整,无法证明数据肯定是某个人或某个机构发出来的。但是在国外许多付出机构,仍旧利用MD5或SHA256这种摘要算法来取代验名验签。
6.4.2. HMAC算法
HMAC(Hash-based Message Authentication Code)是一种基于哈希函数(摘要)和密钥的消息认证码算法,通常用于验证消息的完整性和真实性。
HMAC算法结合了哈希函数和密钥,通过对消息进行哈希运算,并利用密钥进行加密,天生一个唯一的摘要。这个摘要就是消息的认证码,用于验证消息的完整性和真实性。
HMAC由于利用摘要算法和对称加密,运算简单而快速,以是许多场景下,HMAC是一种简单而有效的选择,也被用作消息的完整性保护和身份验证。以是在付进场景下,也经常用于签名验签。
但需要说明的是,HMAC解决了纯摘要算法的部门标题,但仍不是严格意义上的数字签名算法,由于HMAC利用的是双方都拥有的对称密钥,无法证明消息肯定是对方发出的,由于也有可能是某方伪造的。
6.4.3. 数字时间戳
数字时间戳是一种用于确定特定变乱发生时间的数字签名或哈希值,通常由数字时间戳服务(DTS:digital time-stamp service)颁发。数字时间戳将特定变乱的时间信息与数字签名或哈希值绑定在一起,以确保该变乱在特定时间之前已经存在,从而防止后续的窜改或伪造。
比如两个科学家都声称本身先于对方完成了某个证明或实行,如果双方把干系的材料通过数字时间戳服务进行了数字时间戳签名,那么就可以轻而易举解决这个标题。
数字时间戳的应用场景主要在文件证明,电子邮件,数字证书等,比如法律文件、条约、知识产权、证书等,以证明在某个时间之前就存在了这份文件。
不外在付出系统中,目前比较少利用数字时间戳。
6.4.4. 双重数字签名
双重数字签名是安全电子交易协议 (Secure Electronic Transaction, 简称SET协议)中引入一个概念。由于SET协议过于复杂,且互联网出现了新的更简便的安全协议,比如SSL(Secure Sockets Layer)/TLS(Transport Layer Security)/HTTPS(Hypertext Transfer Protocol Secure),SET实际没有大规模应用。所在当代付出系统中,目前比较少见双重数字签名。
双重数字签名原理有点绕,我尝试讲清晰:
说明:
用户、商户、银行分别向CA机构申请证书,这个在图中已经省略。
用户选购后,先把订单信息天生摘要,然后把付出信息也天生摘要,把两个摘要拼接起出新的摘要,最后利用本身私钥签名,也就是双重签名信息。
用户把“订单信息 + 付出信息摘要 + 双重签名串”发给商户,商户根据订单信息天生摘要,并与付出信息摘要拼接后,拿用户的公钥进行验签。
用户把“付出信息密文 + 商户信息摘要 + 双重签名串”发给银行(也可以通过商户发给银行),银行先利用本身的私钥解密出付出信息明文,天生摘要,再与订单信息摘要拼接后,拿用户的公钥进行验签。
上述过程中,商户不知道用户的付出信息,比如卡号等,银行不知道用户的订单信息,比如买了什么,但是商户和银行能判断对方是真实的。
7. 身份合法性判断:身份认证技能
在互联网付出中,怎么证明你是你?这就是身份认证技能。下面讲的证书、CA、PKI等都相对比较专业的概念,这里只做入门介绍,有兴趣的同砚可以找专业的文章深入学习,根本每个模块都可以写一本书。
7.1. 什么是身份认证
在付出安全领域,身份认证就是确认付出交易的参与者是否是其声称的身份。简单地说,就是证明你是你。这个功能最重要的固然是保护用户账户安全,淘汰欺诈交易或盗刷,以及服从合规要求。
7.2. 常见的身份认证方法
身份认证通常分为个人身份认证和企业/机构身份认证。
常见的个人身份认证方法包罗以下几种:
用户名和密码认证。这没什么好说的,最常见的身份认证方式,但安全性相对较低,容易受到密码推测、密码泄露等攻击。
多因素认证(MFA)。就是要求用户同时利用2种方式验证身份,包罗密码、短信验证码、指纹辨认、人脸辨认、硬件令牌等。一样平常是背景风控辨认有风险时,才会如许。也经常叫风控挑战。
生物特征认证。利用个体的生物特征(如指纹、虹膜、声纹、人脸等)来进行身份验证。这种认证方式通常需要专门的硬件装备来捕获生物特征,并利用算法进行比对。
单点登录(SSO)与Oauth。用户只需在一个系统登录,就可以授权访问其它系统。比如大家可以利用微信或付出宝来登录微博、小红书等。
数字证书。由CA机构颁发个人数字证书,这个比较少见。
当涉及到企业或机构之间的身份认证时,常见的方法包罗利用数字证书和双向TLS认证(也称为客户端证书认证)。数字证书可参考下一章节“数字证书”的说明,双向TLS认证可参考“TLS”章节的说明。
7.3. 数字证书
数字证书(Digital Certificate)是一种用于在网络通信中进行身份验证和数据加密的安全技能。它是由一家被称为证书颁发机构(Certificate Authority,CA)的可信任实体颁发的电子文档,用于证明某个实体(如网站、个人或构造)的身份和公钥。
数字证书包含以下主要信息:
公钥: 数字证书中包含了一个实体的公钥,用于加密息争密通信数据。
持有者信息: 数字证书中包含了证书持有者的身份信息,如姓名、电子邮件地点等。
颁发者信息: 数字证书中包含了颁发该证书的证书颁发机构的信息,包罗机构名称、联系方式等。
有效期限: 数字证书中包含了证书的有效期限,即证书的生效日期和失效日期。
数字签名: 数字证书中包含了颁发者对证书内容的数字签名,用于验证证书的真实性和完整性。
在网络通信中,当客户端与服务器建立安全毗连时,服务器会向客户端发送本身的数字证书。客户端收到服务器的数字证书后,会利用证书中的公钥来验证服务器的身份和证书的真实性。如果验证通过,客户端就可以利用服务器的公钥加密通信数据,并将加密后的数据发送给服务器。
比如你访问以https开头的网站,浏览器就会验证网站服务商的证书。
在付出系统中,某些银行在对接时会要求双向证书认证。
7.4. 数字证书颁发机构CA
我们凭什么相信一个证书是可信的呢?那就是由CA来证明。那我们凭什么相信一个CA机构?通常由政府或大型构造联盟来做光荣背书。
在数字证书领域,CA指的是Certificate Authority(证书颁发机构)。CA是一种可信的第三方机构,负责颁发、管理和验证数字证书,以确保数字证书的合法性和可信度。
CA的主要职责包罗:
颁发数字证书: CA颁发数字证书给证书申请者,并确保证书的有效性和真实性。在颁发数字证书之前,CA会对证书申请者进行身份验证,以确保其身份的合法性。
证书管理: CA负责管理已颁发的数字证书,包罗证书的更新、吊销和查找等操纵。CA会定期检查数字证书的有效性,并对已过期或失效的证书进行吊销操纵。
证书验证: CA提供数字证书的验证服务,用于验证数字证书的真实性和完整性。通过验证数字证书的签名和证书链,可以确保数字证书的合法性,并确认证书持有者的身份。
信任链管理: CA维护一个信任链,用于建立数字证书的信任关系。信任链包罗根证书、中间证书和终端证书,每个证书都由上级证书签名,直至根证书,确保数字证书的信任可靠性。
常见的CA包罗举世性的CA,如VeriSign、GeoTrust、DigiCert等,以及国家或地区性的CA,如中国电子认证服务(CFCA)、中国互联网络信息中心(CNNIC)等。这些CA都遵循国际尺度和行业规范,提供可信赖的数字证书服务,用于保障网络通信的安全和可信度。
上面有提到一个信任链管理,这个是一个很重要的概念。顶级的证书机构不可能为所有效户提供服务,但是它可以为下级机构签发证书,然后由下级机构再给终端用户签发证书。如果验证证书有效性,只需要依次验证签发的CA机构即可。
7.5. PKI
上面提到的数字证书的理论基础就是公钥基础设施(Public Key Infrastructure,简称PKI),是一种用于管理和验证公钥的框架和体系结构。PKI提供了一套尺度化的方法,用于天生、存储、分发和打消公钥,以确保安全的网络通信和身份验证。
PKI体系结构包罗以下主要组件:
数字证书: PKI利用数字证书来证明实体的身份,其中包含了实体的公钥以及其他干系信息,如证书的颁发者、有效期等。数字证书由证书颁发机构(CA)颁发,并通过数字签名保证其真实性和完整性。
证书颁发机构(CA): CA是负责颁发、管理和验证数字证书的可信机构。CA通过数字签名对数字证书进行签名,以证明证书的真实性,并提供证书打消服务(CRL或OCSP)来吊销已失效的证书。
注册机构(RA): RA是CA的辅助机构,负责用户身份验证和数字证书的申请处置惩罚。RA通常收集用户的身份信息,并将其提交给CA进行审批和颁发数字证书。
证书存储库: 证书存储库用于存储和管理已颁发的数字证书,以便用户和应用程序检索和验证证书。
密钥管理: PKI提供了密钥天生、分发和管理的功能,包罗公钥和私钥的天生、存储和互换。
PKI通过数字证书和公钥加密技能,实现了安全的身份验证、数据加密和数字签名等功能,是保障网络通信安全的重要基础设施。也是付出安全体系的重要基础设施。
证书、CA、PKI等都是基于公私钥理论之上,有兴趣的同砚可以去深入了解一下公私钥理论及背后的数字知识。
8. 数据传输安全:常见的传输安全协议
在互联网上,所有的数据都通过网络传输,在线付出的安全也绕不开数据传输安全。这里简单介绍一下各种常见的安全协议。
所有数据全部经过加密后再传输比较贫苦,能不能简单一点,我们直接把传输的管道进行加密,然后传输明文数据?答案固然没有标题,比如SSL,TLS,HTTPS,VPN,专线等都是这个范畴。
这部门内容大部门都是安全工程师关注的范围,大家只需要了解即可。
8.1. SSL
SSL(Secure Sockets Layer,安全套接层)是一种用于保护网络通信安全的协议。它最初由网景公司(Netscape)开发,并于1994年初次发布。SSL协议通过在应用层和传输层之间建立安全通道,提供了加密、完整性验证和身份认证等功能,用于保护网络通信的安全性。
SSL协议的主要功能包罗:
加密通信: SSL协议利用加密算法对通信数据进行加密,以防止被窃听者窃取敏感信息。它支持多种加密算法,包罗对称加密算法(如DES、3DES、AES)和非对称加密算法(如RSA、Diffie-Hellman)等。
完整性验证: SSL协议利用消息认证码(MAC)或数字签名来验证通信数据的完整性,以防止数据被窜改。接收方可以通过验证MAC或数字签名来确保收到的数据未被窜改。
身份认证: SSL协议支持服务器和客户端之间的身份认证,以确保通信双方的身份是合法的。服务器通常会提供数字证书来证明其身份,客户端可以利用证书来验证服务器的身份。SSL还支持双向身份认证,即客户端和服务器都可以进行身份认证。
会话管理: SSL协议支持会话复用,以淘汰握手过程的开销和提高通信服从。
SSL协议最初广泛应用于Web浏览器和Web服务器之间的安全通信,用于保护网页传输的敏感信息,如用户名、密码和光荣卡信息等。随着SSL协议的发展和演进,它逐渐被TLS协议所取代,但人们通常仍将TLS协议统称为SSL。
8.2. TSL
TLS(Transport Layer Security,传输层安全)协议是一种用于保护网络通信安全的协议。它建立在SSL(Secure Sockets Layer,安全套接层)协议的基础上,并在SSL的基础上进行了改进和扩展。TLS协议提供了数据的加密、完整性验证和身份认证等功能,用于保护网络通信的安全性。
TLS协议的主要功能和SSL一致,这里不重复说明。另外,随着网络安全威胁的不停增加,TLS协议也在不停发展和美满,以提供更强大的安全保护机制。
8.3. HTTPS
HTTPS(Hypertext Transfer Protocol Secure)是一种用于安全传输超文本的通信协议。它是在HTTP协议的基础上加入了SSL/TLS协议进行数据加密和身份验证,用于保护网络通信的安全性。
HTTPS协议的工作原理如下:
建立安全毗连: 客户端向服务器发送毗连哀求时,服务器会返回本身的数字证书,证明本身的身份和公钥。客户端收到服务器的数字证书后,会验证证书的真实性和有效性。
协商加密算法: 客户端和服务器在建立毗连时会协商利用的加密算法和密钥长度,以确保通信数据的机密性和安全性。
数据加密传输: 客户端利用服务器的公钥加密通信数据,并将加密后的数据发送给服务器。服务器收到加密数据后,利用本身的私钥解密数据。
身份验证: 在建立毗连时,服务器发送的数字证书可以用于验证服务器的身份。如果证书验证通过,客户端就可以信任服务器,并继续进行安全通信。
简单地明白,就是HTTP全部是明文传输,HTTPS构建在SSL/TSL之上,所有传输的数据是经过加密的。
除了HTTPS之外,尚有其它一些传输协议是构建在SSL/TSL之上的,比如文件传输协议FTP是明文传输,SFTP也是基于SSL/TSL之上的加密传输。
8.4. VPN与专线
VPN(Virtual Private Network)和专线(Dedicated Line)都是用于建立安全、可靠的网络毗连的技能,但它们之间存在一些区别。
VPN:
VPN是通过公共网络(如互联网)建立的虚拟私有网络,用于安全地毗连长途地点或用户到企业内部网络。
VPN利用加密和隧道技能,将数据在公共网络上进行加密和传输,以确保通信的安全性和隐私性。
VPN通常依赖于软件或硬件装备(如VPN服务器、VPN客户端和VPN路由器)来建立和管理安全毗连。
专线:
专线是一种物理毗连,通常由电信提供商提供,用于在两个或多个地点之间建立私有的、专用的网络毗连。
专线可以是光纤、电缆或其他物理媒介,通常具有固定的带宽和可靠的毗连质量。
专线不依赖于公共网络,因此通常具有更高的安全性和稳定性,适用于需要高可靠性和低延迟的应用场景。
简单地说,VPN更机动和本钱更低,适用于长途访问、移动办公和跨地区毗连等场景。专线则很贵,更适用于需要高带宽、低延迟和高安全性的应用,如数据中心互连、企业网络内部毗连等。
像付出宝与银联、网联就是通过专线毗连。以前一些大付出公司和大银行直连时,一样平常也是通过专线毗连,而一些小银行由于本钱思量就会选择VPN,甚至直接公网走https解决。
9. SET协议:过于复杂的设计
需要终端用户参与的产物,肯定是越简单越好,否则肯定会被时代淘汰,比如SET协议。
SET(Secure Electronic Transaction)协议是由Visa和MasterCard等光荣卡构造于1996年提出,并得到了IBM、Microsoft等大公司支持,旨在提供更安全、更可信的在线付出体验。
SET协议的设计目标是解决传统网络上的光荣卡交易存在的安全隐患,如光荣卡号被窃取、窜改、重放攻击等标题。为了实现这一目标,SET协议引入了许多安全机制和加密技能,包罗数字证书、数字签名、对称加密和公钥加密等。
SET协议的主要特点包罗:
双重身份认证: SET协议要求商家和消费者之间进行双重身份认证,以确保双方的身份是合法的。商家需要向光荣卡机构提供数字证书以证明其身份,而消费者需要利用数字证书和PIN码来验证其身份。
加密通信: SET协议利用加密算法对通信数据进行加密,以防止被窃听者窃取敏感信息。它采用了对称加密和公钥加密相结合的方式,保护交易数据的安全性。
数字签名: SET协议利用数字签名来验证交易的完整性和真实性,防止交易数据被窜改。商家在向消费者发送订单信息时利用本身的私钥进行签名,消费者在确认订单时可以验证商家的签名以确保订单的真实性。
安全证书管理: SET协议利用数字证书来验证交易参与者的身份,确保其合法性和可信度。商家和消费者都需要持有有效的数字证书,并通过信任的证书颁发机构(CA)进行验证。
如前面所说,尽管SET协议的起点很高,不但有Visa和MasterCard两大卡组联手推出,还得到IBM、微软等巨头支持,在安全性方面具有较高程度,但由于其复杂性和高本钱,仍旧败走麦城,并没有得到广泛采用,而是被后来出现的其他安全付出解决方案(如SSL/TLS协议和3D Secure)所取代。固然,它在在线付出安全技能的发展过程中仍起到了重要的推动作用,为后续安全付出尺度的订定和实现奠定了基础。
10. 网络流量安全:防火墙与入侵检测
网络安全和入侵检测是保护计算机网络和系统安全的重要组成部门,它们涉及各种技能和工具,包罗防火墙、入侵检测系统(IDS)、入侵防御系统(IPS)、漏洞扫描器等。
这些内容通常归属于网络工程师、系统工程师、及安全工程师的工作范围,下面只做一个简单介绍:
防火墙(Firewall): 防火墙是一种网络安全装备,用于监控和控制网络流量,阻止未经授权的访问和恶意流量进入网络。它可以根据预先界说的安全计谋过滤和阻止来自Internet或内部网络的流量,从而保护网络免受攻击和入侵。
入侵检测系统(IDS): 入侵检测系统是一种监视网络流量和系统活动的安全装备,用于检测和警报可能的安全威胁和入侵行为。IDS可以根据事先界说的规则或行为模式检测非常活动,并天生警报或采取措施来应对潜伏的威胁。
入侵防御系统(IPS): 入侵防御系统是一种进一步增强网络安全的装备,它不仅能够检测和警报安全威胁,还可以主动阻止和防御入侵行为。IPS可以根据IDS的警报主动采取措施,如阻止恶意流量、更新防火墙规则等,以增强网络的安全性。
漏洞扫描器(Vulnerability Scanner): 漏洞扫描器是一种用于检测计算机系统和网络中存在的安全漏洞和弱点的工具。它可以主动扫描系统和网络,发现潜伏的漏洞,并提供发起和修复措施,以淘汰系统受到攻击的风险。
这些工具更多的是从数据包的维度来处置惩罚安全标题。数据包处置惩罚完成之后,才会组装成业务数据,才气被用于加解密、签名验签等。
11. 防欺诈交易:付出风控
付出风控是针对付出系统中的风险进行管理和控制的一种措施,旨在低落欺诈交易和财务丧失的风险。
风控系统最焦点最名贵的资源是风控计谋,由于如果知道一家付出公司的风控计谋,就意味着可以想办法绕过付出系统的风控系统,进行欺诈交易。以是一样平常来说,研发风控系统的研发工程师往往不知道风控计谋是怎么设置的。
下图是一个极简的风控系统架构图。
固然风控的计谋是高度机密,但是有些公开的计谋,大家可以了解一下,比如说下面这些就属于行为非常,大概率会被风控:
你不停在中国小额付出,突然在国外付出2万。
平常不停利用IPHONE(风控会生存你的装备详细信息),突然利用Android机器付出2000块。
一样平常都是10天买件商品,实然10分钟内付出50笔。
当代的风控系统不仅仅是计谋,尚有许多机器学习算法。但总的来说,仍旧围绕:当次付出行为,汗青交易数据,设置的规则计谋,规则引擎,机器学习等展开。
12. 进阶扩展:统一密钥存储与安全服务
12.1. 为什么需要统一安全存储密钥
明文数据被加密存储,安全了,那加密明文数据的密钥怎么办?
加密密钥有多重要呢?有一个公式是如许的:密钥的代价 = 密文的代价。比如你加密存储的密文代价10亿,那对应的密钥代价也有10亿。
密钥的管理涉及4个方面:密钥存储、更新、备份和规复、废止和烧毁。如果想要管好这些密钥,就需要建立一个统一的密钥存储服务,否则密钥很容易被泄露。
密钥存储:
安全存储情况:密钥生存在特别的安全情况中,包罗服务器、网络情况、硬件加密机等。
最小权限原则:管理密钥的人越少越好。
密钥分为主密钥和工作密钥,其中工作密钥用来加解密普通的业务数据,而主密钥用来加解密工作密钥。
一样平常来说主密钥应该存储在专门的硬件安全模块(HSM)中,俗称:硬件加密机,安全性极高。但是相对来说性能有限,且代价昂贵,管理复杂。
工作密钥一样平常由主密钥加密后生存在DB中,在需要的时间调用主密钥解密后,缓存在内存中,然后再去加解密普通的业务数据。
密钥更新机制:
需要定期更新,淘汰被破解的风险。
主动定时更新,淘汰人为失误。
版本控制和回滚:要有版本号,要能快速回滚。
12.2. 统一密钥平台系统架构
说明:
需要利用硬件加密机HSM天生并生存主密钥。
工作密钥被主密钥加密后,生存到DB中。
各应用调用密钥管理系统进行加密解密、签名验签,保证密钥不被业务应用读取,淘汰泄露风险。
13. 竣事语
付出安全是一个很巨大且非常专业的领域,随便拿一个加解密或签名验签算法就可以写一本厚厚的书,但对于我们大部门人来说,不需要掌握密码学专家或专业安全工程师那么多知识,文章中介绍的知识点已经足以凌驾90%的付出行业从业人员对付出安全的明白。
如果肯定要浓缩一下英华,只需要记住下面6点:
大数据块加解密:利用对称加密算法AES,密钥长度256比特,简称AES256。
小数据块及签名验签:利用非对称加密算法RSA,密钥长度2048,简称RSA2048。
摘要算法:利用SHA256。且摘要算法不推荐用于需要签名验签的场景。
个人登录/付出密码:肯定要加盐值进行混淆。
网络传输和文件传输:需要利用HTTPS和SFP提高数据传输安全性。
团体的安全性,需要同时用到对称加密、非对称加密,数字签名,数字证书等。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/)
Powered by Discuz! X3.4