空间信息网络的匿名快速漫游认证
系统模型:
SIN中存在的问题:传播延迟很长;安全性能低。
解决的方法:1. 首先运用了基于群签名的认证方案来保护用户的隐私以及漫游用户的快速漫游认证。 当有移动用户有访问SIN的请求时LEO作为移动用户的验证者(这大大降低了认证延迟以及交互信息)
- 同时使用群签名算法也可以保护用户的隐私,可以使得用户的信息不会泄露给外网实体(这得写出原因)
TTP负责管理和分发不同域的 NCC的公钥/私钥对。
这些密钥用于在这些 NCC之间进行身份验证,以便它们能够安全地交换信息。
NCC是对其网络域的管理。为用户提供登录国内外网络的注册和认证。
GS是NCC和LEOs之间的中间实体。
它通过地面网络连接到NCC,并为LEOs提供地面接口。
LEO是用户访问网络的接入点。
随着卫星制造技术的进步,目前LEO卫星已经具备了一定的计算能力来执行一些复杂的函数[2]
用户访问本域LEO网络的情况:系统初始化后,在每个域中,网关站(GS)都会提前向域内的每个LEO发送预协商消息,其中包含用于密钥协商的参数。 想要访问网络的移动用户首先需要请求其本地网络控制中心(HNCC)获得关联的访问密钥。当有用户想在本域内的LEO上网时,他/她首先将访问请求发送到网络的接入点(即LEO),其中包括可以验证用户合法性的签名。 如果验证通过,则LEO将同时向用户和GS发送访问响应。 访问响应包含两个关键协商参数,这些参数随后可用于在用户和GS之间建立安全通道。 此外,HNCC会定期向用户发布吊销列表,以便未吊销的用户可以将其私钥更新为最新。
卫星通信是指利用卫星作为中继,转发移动用户间或移动用户与固定用户间用于进行通信的无线电波,实现两点或多点之间的移动通信。
卫星在空中起中继站的作用,即把地球站发上来的电磁波放大后再反送回另一地球站。
卫星与基站复用同一频段,空中接口信号格式几乎相同,终端可以在卫星与地面基站间无缝切换。
用户访问外域网络的情况:系统初始化后,在每个域中,网关站(GS)都会提前向其域内的每个LEO发送预协商消息,其中包含用于密钥协商的参数。 想要访问外部网络的移动用户首先需要请求其本地网络控制中心(HNCC)获得关联的访问密钥。 当用户漫游到外部网络时, 移动用户首先将访问请求发送到外部网络的接入点(即FLEO),其中包括可以验证用户合法性的签名。 如果验证通过,则FLEO将同时向用户和FGS发送访问响应。 访问响应包含两个关键协商参数,这些参数随后可用于在用户和FGS之间建立安全通道。 此外,HNCC会定期向用户发布吊销列表,以便未吊销的用户可以将其私钥更新为最新。
为了验证漫游用户的合法性,在我们的方案中引入了组签名,其中HNCC充当组管理员,并授权FLEO作为验证者,以检查访问请求是否由授权的漫游用户(组成员)签名 。 因此,HNCC可以在身份验证过程中脱机。 因此,可以大大减少认证延迟和交互。 此外,组签名可以为漫游用户提供良好的匿名性,从而使不受信任的外部网络实体无法损害用户的隐私。除了验证漫游用户的合法性之外,安全协议还需要验证FLEO和FGS的合法性。 为此,我们利用常规的数字签名方案,即椭圆曲线数字签名算法(ECDSA)[30],与RSA签名[33]相比,效率更高。
安全性需求:
1. 交互认证:用户与FLEO的交互认证以及LEO与GS的交互认证主要通过基于挑战/应答方式的身份认证算法(基于挑战/应(Challenge/Response)方式的身份认证系统就是每次认证时认证服务器端都给客户端发送一个不同的"挑战"字串,客户端程序收到这个"挑战"字串后,做出相应的"应答",以此机制而研制的系统.认证过程为:
-
客户端向服务器发出认证请求;
-
认证服务器从用户数据库中查询用户是否是合法的用户,若不是,则不做进一步的处理;
-
认证服务器内部产生一个随机数,作为Challenge,发送给用户;
-
客户将口令和随机数合并,使用单向Hash函数 ( 例如MD5算法 ) 生成一个字节串作为Response;
-
认证服务器将Response与自己的计算结果比较,如两者相同,则通过一次认证,反之认证失败;
-
认证服务器通知客户端认证成功或失败。)
- 条件匿名性和无关联性:
在我们的协议中,访问消息MUi = {TIDUi || I DFLEO || I DHNCC || grUi || ts3}上的签名是组签名[30]的形式,它满足匿名性的安全要求,即,给定访问消息的组签名σUi,在计算上很难通过没有组管理器私钥gmsk的实体来标识实际的签名者。但是,这种匿名性是有条件的。 HNCC可以通过执行用户身份显示阶段来揭示签名的真实身份:给定签名σ= {T1,T2,T3,c,sα,sβ,sδ1,sδ2},HNCC使用其私钥gmsk =( ξ1,ξ2)通过计算A = T3-ξ1·T1-ξ2·T2来揭示用户的私钥A,并通过查找用户索引表来检索用户的真实身份IDUi。因此,实现了条件隐私。此外,实现了用户不可链接性:给定两个组签名σ1和σ2,根据验证过程,很难确定这两个有效签名是否由同一组成员计算。
- 密钥的建立与前/后向保密性:
在每个会话中,根据密钥协商参数grUi和grFGS计算会话密钥SK。 在不知道rUi和rFGS的情况下从这两个参数计算会话密钥SK等效于解决离散对数问题(DLP),这在计算上是不可行的[36]。 因此,会话密钥不能由任何敌手计算出。 此外,密钥前进/后退保密性主要是通过不同会话中会话密钥SK的独立性来实现的。 在我们的方案中,每个会话使用不同的新鲜随机数rUi进行密钥建立,这使得每个会话密钥都具有独立性,这意味着即使攻击者获得了当前会话,也无法获取下一个或上一个会话密钥键。
详细的过程介绍:
-
系统初始化阶段:在这个阶段,NCC被看作是密钥生成中心 该中心首先为其GS和LEO生成并分配ECDSA的签名/验证密钥对, 表示GS和LEO的密钥对分别是(skGS,pkGS)和(skLEO,pkLEO)。
算法1:主要就是生成群公钥(通过电磁波到域内所有的LEO)和群管理员私钥,当用户要注册时,管理员NCC会产生一个私钥元组,然后把用户的私钥元组、群公钥、GS的公钥、LEO的公钥,以及NCC自己的ID,最后NCC把用户的ID 以及私钥元组放在一起存储起来,以便后续查看用户的真实身份。除此之外 ,全球受信任的第三方(TTP)还会为不同域中的所有NCC生成ECDSA的签名/验证密钥对。 我们将FNCC和HNCC的密钥对分别表示为(skFNCC,pkFNCC)和(skHNCC,pkHNCC),用于在不同域之间交换信息。
首先FNCC把用自己私钥的签名和包含一些信息的消息发送给HNCC,如果时间戳在允许范围内且签名验证通过,HNCC就把包含信息的消息存储起来。如果用户有访问请求,HNCC需要在这个阶段把包含信息的消息发送给用户,然后HNCC把包含群公钥、时间戳以及自己ID 的信息和用自己私钥签名过的消息发送给FNCC,FNCC收到这个消息后先看看时间戳是否在允许范围内以及验证签名通过,那FNCC就把群公钥发送给域内所有的LEO。 -
预协商阶段:每个GS发送一个包含一个用于后续认证阶段会话密钥协商参数的预协商消息给LEO并且GS用私钥给消息签名一并发过去,LEO先验证时间戳,如果时间戳在允许范围内就用公钥验证签名,如果两个都通过了就把这个消息存储起来。
-
用户认证阶段:(用于一个移动用户想漫游到外网并获得服务的情景)
此阶段,FLEO需要从用户的访问请求中验证用户的合法性,如果验证通过的话,GS和用户之间就会建立一个安全通道。
算法2:用户产生一个访问请求(就是访问请求信息以及相应的签名)算法2是基于群签名算法的 (把文献35 看一下),用到了哈希函数和双线性映射。算法3:LEO收到访问请求消息及签名后,先检查时间戳再验证签名,如果两个都通过的话,LEO会看看在预协商阶段GS发给他的信息,然后产生相应的访问回应并用自己的私钥对信息进行签名,最后LEO把访问响应信息及相应的签名分别发给用户和GS。
算法4:用户和GS 收到访问回应后,先检查时间戳,然后用公钥验证签名,如果都验证通过的话,用户和GS计算出会话密钥。会话密钥(session key)也称为 数据加密密钥 或者工作密钥,是保证用户跟其它计算机或者两台计算机之间安全通信会话而随机产生的加密和解密密钥,它可由通信用户之间进行协商得到。它一般是动态地、仅在需要进行会话数据加密时产生。
-
用户身份揭示阶段:要想揭示用户身份,HNCC可以从FLEO那收集的用户访问请求信息和相应的签名。先检查请求信息是否合法有效,如果有效,再通过群公钥和管理员私钥计算出用户的私钥,这样就可以通过私钥找到用户的真实身份。
-
动态用户注册和注销阶段
公钥和私钥是成对的,它们互相解密。
公钥加密,私钥解密。
私钥数字签名,公钥验证
参考:
AnFRA: Anonymous and Fast Roaming
Authentication for Space Information Network