“支付安全体系全解析,筑牢电子支付防线。” 在电子支付广泛普及的当下,其安全体系涵盖哪些关键技术与环节?如何应对各类潜在风险,确保支付过程安全可靠?
对于支付安全我自认比绝大部分支付行业的同行都专业,当年为了做统一密钥管理和加解密加验签平台,啃了好几本密码学和信息安全的大部头书。但我今天以产品经理都能看懂的白话讲清楚支付安全体系,不涉及复杂的数学知识。
内容有点长,可以考虑使用电脑阅读,效果会好不少。
在电子支付的万亿级市场中,安全无疑是核心中的核心。大部分人都知道支付安全很重要,但支付安全具体包括哪些方面,面临的问题,以及有哪些具体技术或方案来应对,包括在支付行业从业多年的老支付人,却未必有全局而清晰的认知。
今天尝试从在线支付面临的主要安全问题,常见的技术手段如加密解密、签名验签、安全证书等入手,尝试讲清楚支付安全体系。
通过这篇文章,你可以了解到如下内容:
在线支付面临的安全问题主要包括:
账号或密码等敏感信息被盗用。
用户的账号和密码可能会被黑客获取,导致个人资金被盗用。这种情况是用户普遍感知较强的安全问题,常见于密码泄露导致资金损失的情况。
交易信息被篡改。
这个对于一般用户感知较少,常见就是支付金额被篡改,比如实付金额小于应付金额,还就是转账时的收账账号或金额被篡改。
比如在转账场景下修改收款账号或金额,当转账请求被黑客截获,把原收款账号修改为另一个账号,再发给支付平台。如果支付平台安全措施不到位,就可能把钱转到一个错误的账号上。
交易信息被抵赖。
这个比较少见。举个场景,支付平台请求银行扣款200元,银行实际扣款失败,但是通知支付平台成功,支付平台也通知商户发货了。但是银行说他们返回给支付平台是扣款失败,扣款成功的信息不是银行发出来的。这种行为是抵赖。
欺诈交易
包括套现、洗钱等违规交易,以及因为用户信息泄露导致盗刷等。
服务不可用攻击。
这个出现的频次非常高,只是一般人感觉不到。有兴趣的同学可以搜索分布式拒绝服务DDoS(Distributed Denial of Service),攻击者通过大量恶意流量占用支付系统的资源,使得合法用户无法正常访问支付平台,从而影响用户的交易体验甚至造成财务损失。
支付安全是一个很大的范畴,但我们一般只需要重点关注以下几个核心点就够:
敏感信息安全存储。
对个人和商户/渠道的敏感信息进行安全存储。
个人敏感信息包括身份证信息、支付卡明文数据和密码等,而商户/渠道的敏感信息则涉及商户登录/操作密码、渠道证书密钥等。
交易信息安全传输。
确保客户端与支付系统服务器之间、商户系统与支付系统之间、支付系统内部服务器与服务器之间、支付系统与银行之间的数据传输安全。这包括采用加密技术等措施来保障数据传输过程中的安全性。
交易信息的防篡改与防抵赖。
确保交易信息的完整性和真实性,防止交易信息被篡改或者被抵赖。一笔典型的交易,通常涉及到用户、商户、支付机构、银行四方,确保各方发出的信息没有被篡改也无法被抵赖。
欺诈交易防范。
识别并防止欺诈交易,包括套现、洗钱等违规操作,以及通过识别用户信息泄露和可疑交易来保护用户资产的安全。这一方面通常由支付风控系统负责。
服务可用性。
防范DDoS攻击,确保支付系统的稳定运行和服务可用性。通过部署防火墙、入侵检测系统等技术手段,及时发现并应对可能的DDoS攻击,保障支付服务的正常进行。
支付安全是一个综合性的系统工程,除了技术手段外,还需要建立健全的安全制度和合规制度,而后两者通常被大部分人所忽略。
下图是一个极简版的支付安全大图,包含了支付安全需要考虑的核心要点。
说明:
制度是基础。
哪种场景下需要加密存储,加密需要使用什么算法,密钥长度最少需要多少位,哪些场景下需要做签名验签,这些都是制度就明确了的。制度通常分为行业制度和内部安全制度。行业制度通常是国家层面制定的法律法规,比如《网络安全法》、《支付业务管理办法》等。内部安全制度通常是公司根据自身的业务和能力建立的制度,小公司可能就没有。
技术手段主要围绕四个目标:
1)敏感数据安全存储。
2)交易安全传输。
3)交易的完整性和真实性。
4)交易的合法性(无欺诈)。
对应的技术手段有:
下面详细讲解各技术手段。
加密和解密技术是数据安全的基础,在支付安全技术的核心技术之一,无论是支付平台与银行之间的通信,还是支付平台内部敏感数据的存储,都需要用到加解密技术。
我尽量避免加解密技术背后高深的数学知识。
在数字通信中,加密是将明文通过一定的算法和密钥转换成无法识别的密文的过程。这样即使数据被截获,未经授权的第三方也无法理解其内容。比如把明文“123”转成“aexyeffidfdfwsd”。
解密则是加密的逆向过程,通过一定的算法和密钥将密文转换成明文的过程。比如把密文“aexyeffidfdfwsd”转成“123”。
对称加密是使用相同的密钥(称为对称密钥)进行加密和解密。这意味着发送方和接收方必须在通信之前共享相同的密钥。对称加密算法使用简单且高效,但密钥分发和管理是其主要挑战之一。
以下是一些常见的对称加密算法、特点和应用场景:
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来加密。
非对称加密算法使用一对密钥(公钥和私钥)进行加密和解密。这两个密钥是相关联的,但不相同。公钥用于加密数据,私钥用于解密数据,一定不能反过来,因为公钥大家都有,如果使用私钥加密,公钥解密,大家都可以解密,就没有安全性可言。这种加密方式具有密钥分离的特点,即公钥可以公开分发,而私钥则保密保存。
另外,非对称加密算法也用于签名验签,拿私钥签名,公钥验签(不能反过来)。
以下是一些常见的非对称加密算法、特点和应用场景:
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比特或以上。
数字信封加密算法组合了对称加密、非对称加密、数字签名和验签等多种加密技术,用于在网络通信中保护数据的安全性和完整性。传输的数据就像放在信封里面,只有收件人才能打开信封查看明文,所以被形象称为数字信封加密。
它的原理是使用对称加密算法对要传输的数据进行加密,然后再使用接收方的公钥对对称密钥进行加密,再使用自己的私钥进行签名,最后将加密后的对称密钥和加密后的数据一起发送给接收方。接收方先使用对方的公钥进行验签,再使用私钥解密对称密钥,最后使用对称密钥解密数据。
不过大家日常听得更多的可能是PGP(Pretty Good Privacy)。PGP是一种加密软件套件,用于保护电子通信的安全性和隐私性。它由Philip Zimmermann于1991年创建,并成为了一种标准的加密工具,最开始用于保护电子邮件,后面被广泛用于保护文件传输,比如支付平台和银行之间的文件。
PGP通常推荐使用RSA 2048和AES 256,前者用于加密对称密钥和签名,后面用于加密大数据块。
下图是数字信封加解密算法的完整过程:
现在很多银行的打款文件要求使用PGP加密,因为文件里面有卡号等敏感数据。
在加密应用中,算法和密钥长度对安全性(破解难度)和性能(运算快慢)都有重要影响:
安全性:
非对称加密算法通常比对称加密算法更安全。比如RSA(非对称加密)好于AES(对称加密)。
同类算法,新算法通常比老算法更安全。比如AES和DES都是对称加密算法,但是AES的安全性优于DES。
相同算法,密钥越长,越安全,因为密钥越长,密钥空间越大,破解的难度就越大。比如AES 256(密钥长度)的安全性优于AES 128(密钥长度)。
性能:
对称加密算法通常比非对称加密算法运算更快。比如AES(对称加密)好于RSA(非对称加密)。
相同算法,密钥越长,运算越慢,性能越差。比如AES 256(密钥长度)就比AES 128(密钥长度)要慢。因为密钥长度增加了加密操作的复杂度和计算量,需要更多的计算资源和时间来执行加密和解密操作。
因此,在选择加密算法和密钥长度时,需要综合考虑安全性和性能之间的平衡。一般来说,应选择安全性较高的加密算法,并根据应用场景和性能要求选择适当长度的密钥。
当前支付行业推荐的算法和密钥长度如下:
前面我们介绍了对称加密和非对称加密算法,两者有不同的使用场景,在支付行业推荐的算法如下:
在一些场景里面,需要同时组合使用AES和RSA,比如大数据加密使用AES,AES密钥通过RSA加密后传输,并通过RSA进行签名,这样既解决了安全性,又解决了加密速度的问题。
特别强调一点:千万千万不要自己去发明一种【私有的】,【自己认为很安全】的算法,并应用到生产环境。因为业界推荐的这些算法的安全性是经过大量数字家和计算机科学家论证过的,也经过工业界持续地验证。
除了上面推荐的AES和RSA,各个国家基于特殊安全考虑,还有一些特别的加密算法,这些算法同样经过大量数字家和计算机科学家论证过,但是有一定的使用门槛,有兴趣的同学可以去找加密机厂家的资料了解。
支付系统做为一个安全系数非常高的系统,加解密技术在里面起到了极其重要的作用。
通常以下几个核心应用场景都会用到加解密技术:
1)传输加密;
2)存储加密。
传输加密:保护交易数据在互联网上传输过程中的安全,防止数据被窃听或篡改。
具体的实现通常有两种:
1)通道加密:比如使用HTTPS,或者VPN、专线等,实现数据传输端到端的加密。
2)报文数据加密:部分字段单独加密,比如把卡号等关键信息进行加密后再发出去。整体报文单独加密,先组装业务报文,然后对整个报文加密再发出去。
存储加密:对敏感数据比如信用卡信息、用户身份证信息、密码等需要进行加密后存储到数据库中,以防止数据泄露。
具体的实现通常也会分两种:
1)直接加密:原始信息直接加密。通常用于信用卡、身体证等常规数据的加密。
2)加盐值(SALT)后再加密:原始信息先加上盐值,然后再进行加密。通常用于密码管理。所谓盐值,就是一串随机生成的字符串,比如:329713kud3s,9ds9jd9sj3es。
登录和支付密码的传输和存储都比较特殊,值得单独说一说。
5.8.1. 登录与支付密码传输的特殊处理
登录和支付密码都是用户输入,如何保证在输入时不被盗取?如何保证传输的安全性?
输入时一般会有安全控件,直接获取输入,其它应用无法在输入盗取。然后使用公钥加密,传输到后端后,再使用私钥解密,再进行转加密,最后保存到数据库,或和数据库的密码对比判断。
5.8.2. 登录与支付密码存储的特殊处理
上一章节里,提到登录或支付密码需要加上盐值后,再进行加密存储。那为什么密码管理需要使用盐值?为了提高密码安全性。
防止彩虹表攻击。彩虹表是一种预先计算出来的哈希值数据集,攻击者可以使用它来查找和破译未加盐的密码。通过为每个用户加盐,即使是相同的密码,由于盐值不同,加密后的密文也是不一样的。
保护相同密码的用户。如果多个用户使用了相同的密码,没有盐值情况下,一个被破解后,就能找到使用相同密码的其它用户。每个用户不同的盐值,确保生成的密文不同。
增加破解难度。尤其是密码较弱时,显著增加攻击者难度。
在实现时,需要留意加盐策略:
如果要保存用户的卡明文数据(比如用户名和卡号),就一定要经过PCI(Payment Card Industry)认证,在PCI认证范围内的域叫PCI域。
PCI安全标准(PCI DSS)是由PCI安全标准委员会(PCI SSC)制定和管理的一组安全标准,旨在保护持卡人数据的安全性和机密性。
简单地说,PC规定了一个单独的区域(简称PCI域),可以处理用户的卡明文数据,包括加密后存储,或使用明文,这个区域的网络安全部署、数据访问控制、数据加密、日志打印、安全策略等全部都有由PCI DSS规定,并定期接受相关认证组织的审查。
特别注意的是,PCI标准要求所有的域都不能打印用户敏感信息,所有的域都不能存储明文用户敏感信息,比如卡只能打印前6后4,只有PCI域范围内的应用才能使用卡明文数据。5.10. 加解密在工程应用中的常见问题
防篡改与防抵赖一般也称为数据的完整性和真实性验证问题,通常使用签名验签技术解决。
签名验签是数字加密领域的两个基本概念。
下面是一个极简的签名验签数学公式。
假设被签名的数据(m),签名串(Σ),散列函数(H),私钥(Pr),公钥(Pu),加密算法(S),解密算法(S^),判断相等(eq)。
简化后的数学公式如下:
签名:Σ=S[H(m), Pr]。
验签:f(v)=[H(m) eq S^(Σ, Pu)]。
流程如下:
签名流程:
验签流程:
银行怎么判断扣款请求是从确定的支付平台发出来的,且数据没有被篡改?商户不承认发送过某笔交易怎么办?这都是签名验签技术的功劳。
签名验签主要解决3个问题:
如果无法校验完整性,那么我在公共场景安装一个免费WIFI,然后截获你的微信转账请求,把接收者修改成我的账号,再转发给微信,微信就有可能会把钱转到我的账号里。
防抵赖性:避免任何一方否则曾经进行过的交易,提供法律证据支持。
比如微信支付调用银行扣款100块,银行返回成功,商户也给用户发货了,几天后银行说这笔扣款成功的消息不是他们返回的,他们没有扣款。而签名验签就能让银行无法抵赖。
流程:
常见的数字签名算法包括:
目前主流的数字签名算法是RSA和ECDSA。RSA推出较早,且安全性足够,现在使用非常广泛。而ECDSA由于其较短的密钥长度和更高的安全性,逐渐成为新兴的数字签名算法,特别适用于资源受限环境和移动设备等场景。
在支付场景来说,RSA使用最为广泛,密钥长度推荐2048比特。RSA1024以前使用得多,但因为密钥长度较短,安全性不足,也已经不再推荐使用。
6.4.1. 数字摘要
数据摘要是一种通过对数据进行计算(也称为哈希、摘要、散列计算),生成固定长度的唯一数据串(通常称为摘要或哈希值),用于验证数据的完整性和一致性的技术。数据摘要通常用于验证数据在传输或存储过程中是否发生了更改。
上面有个缺陷,就是在传输过程中,报文被黑客截获,然后把100万字的文章和摘要报文全部替换,服务端发现不了的。这个缺陷在下面的HMAC算法中会解决。
常见的数据摘要算法包括:
当前在支付行业推荐的摘要算法是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、PKI等都相对比较专业的概念,这里只做入门介绍,有兴趣的同学可以找专业的文章深入学习,基本每个模块都可以写一本书。
在支付安全领域,身份认证就是确认支付交易的参与者是否是其声称的身份。简单地说,就是证明你是你。这个功能最重要的当然是保护用户账户安全,减少欺诈交易或盗刷,以及遵守合规要求。
身份认证通常分为个人身份认证和企业/机构身份认证。
常见的个人身份认证方法包括以下几种:
当涉及到企业或机构之间的身份认证时,常见的方法包括使用数字证书和双向TLS认证(也称为客户端证书认证)。数字证书可参考下一章节“数字证书”的说明,双向TLS认证可参考“TLS”章节的说明。
数字证书(Digital Certificate)是一种用于在网络通信中进行身份验证和数据加密的安全技术。它是由一家被称为证书颁发机构(Certificate Authority,CA)的可信任实体颁发的电子文档,用于证明某个实体(如网站、个人或组织)的身份和公钥。
数字证书包含以下主要信息:
在网络通信中,当客户端与服务器建立安全连接时,服务器会向客户端发送自己的数字证书。客户端收到服务器的数字证书后,会使用证书中的公钥来验证服务器的身份和证书的真实性。如果验证通过,客户端就可以使用服务器的公钥加密通信数据,并将加密后的数据发送给服务器。
比如你访问以https开头的网站,浏览器就会验证网站服务商的证书。
在支付系统中,某些银行在对接时会要求双向证书认证。
我们凭什么相信一个证书是可信的呢?那就是由CA来证明。那我们凭什么相信一个CA机构?通常由政府或大型组织联盟来做信用背书。
在数字证书领域,CA指的是Certificate Authority(证书颁发机构)。CA是一种可信的第三方机构,负责颁发、管理和验证数字证书,以确保数字证书的合法性和可信度。
CA的主要职责包括:
常见的CA包括全球性的CA,如VeriSign、GeoTrust、DigiCert等,以及国家或地区性的CA,如中国电子认证服务(CFCA)、中国互联网络信息中心(CNNIC)等。这些CA都遵循国际标准和行业规范,提供可信赖的数字证书服务,用于保障网络通信的安全和可信度。
上面有提到一个信任链管理,这个是一个很重要的概念。顶级的证书机构不可能为所有用户提供服务,但是它可以为下级机构签发证书,然后由下级机构再给终端用户签发证书。如果验证证书有效性,只需要依次验证签发的CA机构即可。
上面提到的数字证书的理论基础就是公钥基础设施(Public Key Infrastructure,简称PKI),是一种用于管理和验证公钥的框架和体系结构。PKI提供了一套标准化的方法,用于生成、存储、分发和撤销公钥,以确保安全的网络通信和身份验证。
PKI体系结构包括以下主要组件:
PKI通过数字证书和公钥加密技术,实现了安全的身份验证、数据加密和数字签名等功能,是保障网络通信安全的重要基础设施。也是支付安全体系的重要基础设施。
证书、CA、PKI等都是基于公私钥理论之上,有兴趣的同学可以去深入了解一下公私钥理论及背后的数字知识。
在互联网上,所有的数据都通过网络传输,在线支付的安全也绕不开数据传输安全。这里简单介绍一下各种常见的安全协议。
所有数据全部经过加密后再传输比较麻烦,能不能简单一点,我们直接把传输的管道进行加密,然后传输明文数据?答案当然没有问题,比如SSL,TLS,HTTPS,VPN,专线等都是这个范畴。
这部分内容大部分都是安全工程师关注的范围,大家只需要了解即可。
SSL(Secure Sockets Layer,安全套接层)是一种用于保护网络通信安全的协议。它最初由网景公司(Netscape)开发,并于1994年首次发布。SSL协议通过在应用层和传输层之间建立安全通道,提供了加密、完整性验证和身份认证等功能,用于保护网络通信的安全性。
SSL协议的主要功能包括:
SSL协议最初广泛应用于Web浏览器和Web服务器之间的安全通信,用于保护网页传输的敏感信息,如用户名、密码和信用卡信息等。随着SSL协议的发展和演进,它逐渐被TLS协议所取代,但人们通常仍将TLS协议统称为SSL。
TLS(Transport Layer Security,传输层安全)协议是一种用于保护网络通信安全的协议。它建立在SSL(Secure Sockets Layer,安全套接层)协议的基础上,并在SSL的基础上进行了改进和扩展。TLS协议提供了数据的加密、完整性验证和身份认证等功能,用于保护网络通信的安全性。
TLS协议的主要功能和SSL一致,这里不重复说明。另外,随着网络安全威胁的不断增加,TLS协议也在不断发展和完善,以提供更强大的安全保护机制。
HTTPS(Hypertext Transfer Protocol Secure)是一种用于安全传输超文本的通信协议。它是在HTTP协议的基础上加入了SSL/TLS协议进行数据加密和身份验证,用于保护网络通信的安全性。
HTTPS协议的工作原理如下:
简单地理解,就是HTTP全部是明文传输,HTTPS构建在SSL/TSL之上,所有传输的数据是经过加密的。
除了HTTPS之外,还有其它一些传输协议是构建在SSL/TSL之上的,比如文件传输协议FTP是明文传输,SFTP也是基于SSL/TSL之上的加密传输。
VPN(Virtual Private Network)和专线(Dedicated Line)都是用于建立安全、可靠的网络连接的技术,但它们之间存在一些区别。
VPN:
VPN是通过公共网络(如互联网)建立的虚拟私有网络,用于安全地连接远程地点或用户到企业内部网络。
VPN使用加密和隧道技术,将数据在公共网络上进行加密和传输,以确保通信的安全性和隐私性。
VPN通常依赖于软件或硬件设备(如VPN服务器、VPN客户端和VPN路由器)来建立和管理安全连接。
专线:
专线是一种物理连接,通常由电信提供商提供,用于在两个或多个地点之间建立私有的、专用的网络连接。
专线可以是光纤、电缆或其他物理媒介,通常具有固定的带宽和可靠的连接质量。
专线不依赖于公共网络,因此通常具有更高的安全性和稳定性,适用于需要高可靠性和低延迟的应用场景。
简单地说,VPN更灵活和成本更低,适用于远程访问、移动办公和跨地域连接等场景。专线则很贵,更适用于需要高带宽、低延迟和高安全性的应用,如数据中心互连、企业网络内部连接等。
像支付宝与银联、网联就是通过专线连接。以前一些大支付公司和大银行直连时,一般也是通过专线连接,而一些小银行因为成本考虑就会选择VPN,甚至直接公网走https解决。
需要终端用户参与的产品,一定是越简单越好,否则一定会被时代淘汰,比如SET协议。
SET(Secure Electronic Transaction)协议是由Visa和MasterCard等信用卡组织于1996年提出,并得到了IBM、Microsoft等大公司支持,旨在提供更安全、更可信的在线支付体验。
SET协议的设计目标是解决传统网络上的信用卡交易存在的安全隐患,如信用卡号被窃取、篡改、重放攻击等问题。为了实现这一目标,SET协议引入了许多安全机制和加密技术,包括数字证书、数字签名、对称加密和公钥加密等。
SET协议的主要特点包括:
如前面所说,尽管SET协议的起点很高,不但有Visa和MasterCard两大卡组联手推出,还得到IBM、微软等巨头支持,在安全性方面具有较高水平,但由于其复杂性和高成本,仍然败走麦城,并没有得到广泛采用,而是被后来出现的其他安全支付解决方案(如SSL/TLS协议和3D Secure)所取代。当然,它在在线支付安全技术的发展过程中仍起到了重要的推动作用,为后续安全支付标准的制定和实现奠定了基础。
网络安全和入侵检测是保护计算机网络和系统安全的重要组成部分,它们涉及各种技术和工具,包括防火墙、入侵检测系统(IDS)、入侵防御系统(IPS)、漏洞扫描器等。
这些内容通常归属于网络工程师、系统工程师、及安全工程师的工作范围,下面只做一个简单介绍:
这些工具更多的是从数据包的维度来处理安全问题。数据包处理完成之后,才会组装成业务数据,才能被用于加解密、签名验签等。
支付风控是针对支付系统中的风险进行管理和控制的一种措施,旨在降低欺诈交易和财务损失的风险。
风控系统最核心最宝贵的资源是风控策略,因为如果知道一家支付公司的风控策略,就意味着可以想办法绕过支付系统的风控系统,进行欺诈交易。所以一般来说,研发风控系统的研发工程师往往不知道风控策略是怎么配置的。
下图是一个极简的风控系统架构图。
虽然风控的策略是高度机密,但是有些公开的策略,大家可以了解一下,比如说下面这些就属于行为异常,大概率会被风控:
你一直在中国小额支付,突然在国外支付2万。
平时一直使用IPHONE(风控会保存你的设备详细信息),突然使用Android机器支付2000块。
一般都是10天买件商品,实然10分钟内支付50笔。
现代的风控系统不仅仅是策略,还有很多机器学习算法。但总的来说,仍然围绕:当次支付行为,历史交易数据,配置的规则策略,规则引擎,机器学习等展开。
明文数据被加密存储,安全了,那加密明文数据的密钥怎么办?
加密密钥有多重要呢?有一个公式是这样的:密钥的价值 = 密文的价值。比如你加密存储的密文价值10亿,那对应的密钥价值也有10亿。
密钥的管理涉及4个方面:密钥存储、更新、备份和恢复、废止和销毁。如果想要管好这些密钥,就需要建设一个统一的密钥存储服务,否则密钥很容易被泄露。
密钥存储:
安全存储环境:密钥保存在特殊的安全环境中,包括服务器、网络环境、硬件加密机等。
最小权限原则:管理密钥的人越少越好。
密钥分为主密钥和工作密钥,其中工作密钥用来加解密普通的业务数据,而主密钥用来加解密工作密钥。
一般来说主密钥应该存储在专门的硬件安全模块(HSM)中,俗称:硬件加密机,安全性极高。但是相对来说性能有限,且价格昂贵,管理复杂。
工作密钥一般由主密钥加密后保存在DB中,在需要的时候调用主密钥解密后,缓存在内存中,然后再去加解密普通的业务数据。
密钥更新机制:
需要定期更新,减少被破解的风险。
自动定时更新,减少人为失误。
版本控制和回滚:要有版本号,要能快速回滚。
说明:
需要使用硬件加密机HSM生成并保存主密钥。
工作密钥被主密钥加密后,保存到DB中。
各应用调用密钥管理系统进行加密解密、签名验签,保证密钥不被业务应用读取,减少泄露风险。
支付安全是一个很庞大且非常专业的领域,随便拿一个加解密或签名验签算法就可以写一本厚厚的书,但对于我们大部分人来说,不需要掌握密码学专家或专业安全工程师那么多知识,文章中介绍的知识点已经足以超过90%的支付行业从业人员对支付安全的理解。
如果一定要浓缩一下精华,只需要记住下面6点:
本文由人人都是产品经理作者【隐墨星辰】,微信公众号:【隐墨星辰】,原创/授权 发布于人人都是产品经理,未经许可,禁止转载。
题图来自Unsplash,基于 CC0 协议。