1.一种基于多策略访问树的车联网细粒度访问控制方法,其特征在于,包括如下步骤:S1、可信认证中心TA初始化系统参数,其PKI机制采用Elgamal算法为车辆、RSU生成公私钥和证书;策略执行系统PES定义标准的属性集,并为注册车辆生成固定属性集;
S2、车辆定义其资源的访问策略,生成访问策略表,并将该访问策略表转化成对应多策略访问树结构,为访问树非叶子节点赋予秘密值,将秘密值与对应的访问策略绑定;车辆将多策略访问树递交给策略执行系统存储;
S3、车辆在接入车联网的过程中,先与区域RSU进行双向身份认证,获得会话密钥和临时假名,并向该区域RSU申报其可开放资源;
S4、车辆利用假名向RSU发送资源请求;RSU向策略执行系统转发该车辆的属性集和开放资源对象集;策略执行系统根据开放资源对象的假名获得其多策略访问树,执行MTRM匹配算法:将申请车辆的属性集和多策略访问树进行属性匹配,获得授权节点和对应的秘密值,根据秘密值,获取其对应的访问策略,从而获取其对应的开放资源;
S5、策略执行系统PES将可访问资源集发送给RSU;RSU根据车辆假名,分别告知主体客体车辆对应资源的访问控制状态。
2.根据权利要求1所述的基于多策略访问树的车联网细粒度访问控制方法,其特征在于,所述S1步骤包括:s
S11、系统参数初始化,TA随机选取素数q和s, 计算β=α (modq),并将s作为系统主密钥SMK,β作为系统公钥Ppub;TA选择三个单向抗碰撞的哈希函数:H0,H1,H2:TA公布系统参数Param={q,α,β,H0,H1},保留系统主密钥SMK;
S12、属性标准化定义,基于属性的访问控制以属性为基本单位对实体的权限进行控制,其中属性包括访问主体、访问的资源、访问操作、环境,环境属性包含车辆的网络状况、道路环境、历史信息;车辆的特性由一系列特定属性来描述,具体划分为固定属性和可变属性;固定属性即为在车辆生命周期中不发生变化或长期保持不变的属性;可变属性即周期性变化的属性;策略执行系统在初始化阶段,定义车联网系统中车辆实体的标准属性集A={a1,a2,...,an};
S13、实体注册,在本阶段,实现实体RSU和车辆Vi的线下初始化注册,RSU和车辆Vi分别向TA提交其基本信息,公私钥、身份信息,TA为RSU和车辆提供的公钥颁发证书,PES为车辆生成固定属性子集;
S131、在部署RSU前,车管所统一购进RSU设备并为其初始化,RSU选择随机数 作为其的私钥SR,计算RSU的公钥 其中τ是一个本原元;
S132、TA为RSU颁发证书CertR,证书包含:RSU的公钥、证书有效期、TA的私钥签名、RSU的位置信息,RSU将证书CertR、公钥存储在本地;
S133、车辆Vi注册由可信认证中心TA完成,车辆Vi向TA提交基本信息车牌号、车主身份信息、车辆登记信息、车辆违法信息,TA核实其真实性后,将IDi设置为车辆Vi的唯一身份标识;
S134、车辆Vi选择随机数 计算车辆Vi的公钥 并把xi设置为车辆Vi的私钥 存储于OBU的不可篡改设备中,其中 是一个本原元;
S135、TA为车辆Vi颁发证书 证书包括:车辆Vi的公钥 身份标识IDi、证书的有效期、TA的私钥签名,车辆Vi将证书存储在OBU的不可篡改设备中;
S136、TA选择随机数n为车辆Vi计算伪身份: 并将车辆Vi的伪身
份IDi'、身份标识IDi进行关联;
S137、策略执行系统PES根据车辆Vi提交的基本信息,映射到标准属性集A={a1,a2,...,an},产生本车辆Vi的属性子集 其中, 为车辆Vi在访问控制系统中授权的固定属性集。
3.根据权利要求2所述的基于多策略访问树的车联网细粒度访问控制方法,其特征在于,所述S2步骤包括:S21、生成访问策略表,车辆Vi对自己的不同的开放资源定义不同的访问策略,实现细粒度访问,具体为通过定义多个访问策略,将满足不同的属性集映射到不同的资源Rk,形成三元组访问策略
S22、多策略树生成的目的是将在S21步骤中车辆定义的访问策略表转化成对应多策略访问树结构;算法将传统的单策略生成树改进为多策略生成树,通过生成树不同节点的秘密值映射到不同策略,并将之和授权令牌绑定,访问策略表转化成对应访问树结构的方法为:假设车辆属性为(A,B,C,D,E),非叶子节点为门节点,存储秘密值,将车辆定义的策略表转化成访问树结构的过程为,若根据车辆定义的策略表,车辆开放相关资源需要满足以下5个属性集之一,表达为:属性集1:{属性A,属性B}
属性集2:{属性C}
属性集3:{属性D}
属性集4:{属性E}
属性集5:{属性B}
而生成的多策略树结构对应的逻辑表达式为:
(属性A&&属性B)||(属性C||属性D)||属性E
多策略生成树采用广度遍历中的中序遍历方式,叶子节点的值为属性值,而非叶子节点中包含门限值、结点索引值indexk,k∈{1,2,3,...}、秘密值secretk和令牌H1(indexk,secretk),只有满足门限值的限制才对该非叶子节点解密,从而获得该非叶子节点的秘密值,然后获得对应资源的授权令牌;生成多策略访问树;
S23、多策略访问树存储,车辆Vi向可信认证中心的策略执行系统递交多授权访问树,包括访问树Treei、假名Fi和令牌策略映射表T‑P‑map[][],其中,访问树Treei采用孩子表示法存储,即将每个节点的孩子节点都用单链表连接形成线性结构,策略执行系统PES将该多策略访问树根节点的地址和对应车辆伪身份IDi'建立映射关系。
4.根据权利要求3所述的基于多策略访问树的车联网细粒度访问控制方法,其特征在于,所述S22步骤中,多策略访问树生成的过程包括以下步骤:S221、定义访问树节点,包括属性值attr、门限值gate、索引值index、秘密值secret、非叶子节点的孩子节点列表children[]、非叶子节点的拉格朗日多项式f(x);
S222、初始化数据,为建立访问树,需要定义树的节点,节点分为叶子和非叶子两类,Node数据结构将两类节点均定义在内;利用Node数据结构初始化数组N,将访问树的n个节点的属性值、策略、门限值、孩子节点的索引编号分别存入N.atts、N.Policy、N.gates、N.children;
S223、建立生成树,利用数组N中的数据为生成树中每个节点赋值,若节点为叶子节点,则利用初始化数组N中的属性集atts为叶子节点赋属性值;若是非叶子节点,则根据初始化数组N中的门限值集合gates和孩子节点集合children为节点的门限值(kx,num)和孩子节点赋值;
S224、执行令牌策略绑定算法,实现访问树非叶子节点的秘密值和访问策略表的权限映射,从而将访问树定义成一棵多策略访问树;具体执行过程如下步骤:S2241、车辆选择随机数作为多授权访问树根节点n的秘密值,计算该秘密值和根节点的索引值的哈希值,将结果作为根节点的授权令牌;在授权令牌和访问策略表中该节点对应的策略之间建立映射关系;
S2242、以根节点的门限值减1为多项式f(x)的次数,随机数数组coef[]为多项式f(x)的系数,根节点的秘密值(secret)为多项式f(x)的常数项,x为变量,生成多项式f(x);并将该多项式作为根节点的节点多项式;
S2243、车辆将根节点孩子节点的索引值index作为自变量,代入根节点的多项式f(x)计算其孩子节点的秘密值;
S2244、车辆对孩子节点的秘密值和索引值进行哈希运算,并将哈希值作为其孩子节点的授权令牌;
S2245、车辆将访问策略表中节点n对应的访问策略Policy与节点n的授权令牌token进行映射,并将该映射存储在T‑A‑map[][]表中;
S2246、执行递归循环,在递归循环中,将该节点的孩子节点作为新的根节点,不再需要初始化根节点的秘密值和令牌;直至该根节点为访问树的叶子节点;
S2247、将令牌策略映射表T‑P‑map[][]作为返回结果,用于其他车辆访问时的授权凭证。
5.根据权利要求4所述的基于多策略访问树的车联网细粒度访问控制方法,其特征在于,所述S3步骤具体包括以下步骤:S31、双向认证,RSU周期性广播证书和签名,车辆Vi驶入RSU的通信区域时,获得证书CertR和RSU公钥,并利用该公钥验证RSU签名的有效性,从而确定RSU身份合法性,车辆Vi向RSU发送其证书、时间戳和签名,时间戳用于防止重放攻击;RSU获得车辆Vi的证书后,利用Vi公钥验证车辆Vi签名的有效性,从而验证车辆Vi身份合法性;
S32、会话密钥生成,双方验证身份合法性后,执行会话密钥生成操作,具体过程为:RSU和车辆Vi分别选择一个随机数a,b,RSU选择大素数p以及整数g,并将其公开,RSU计算K1=agmodp并发送 给车辆Vi,车辆Vi利用其私钥 对 解密,并计算会话密钥key=b b(K1) modp,然后,车辆Vi计算K2=gmodp并发送 给RSU,RSU对 解密,并计算会a话密钥key=(K2) modp;会话密钥计算完成后,RSU为车辆Vi计算临时假名Fi=H3(IDi'||Nonce),其中,Nonce为随机数,并发送 给车辆Vi,在本RSU区域中,车辆利用临时假名进行通信;
S33、申报可开放资源,客体车辆Vj利用会话密钥生成密文消息
发送给RSU,消息包含:假名Fj、资源集Rk、车辆Vj的位置 和时间戳TS,RSU利用会话密钥解密该消息后,首先根据时间戳TS验证时效性,若超时,重新验证;然后比较值是否大于ΔL,若是,说明车辆Vi已经驶离当前RSU的管辖区域,拒绝本次申报,否则将该车辆Vj相关字段值存入车辆的可用资源表中,表示该资源对本RSU区域的车辆开放申请。
6.根据权利要求5所述的基于多策略访问树的车联网细粒度访问控制方法,其特征在于,所述S4步骤具体内容包括以下步骤:S41、Vi申请资源,主体车辆Vi向RSU发送资源请求报文 其中,集合表示车辆Vi所需资源请求集,TS表示时间戳,用于防止重放攻击:
Vi→RSU:
定位客体车辆,RSU接收申请报文,解密验证时效性后,定位满足资源需求的客体车辆Vj,具体过程为:RSU为主体车辆Vi生成请求资源属性集 根据车辆Vi的资源请求集检索车辆可用资源表,并返回符合条件的客体车辆Vj假名,若存在多个匹配,返回符合条件的客体车辆假名集{F1,...,Fk};
S42、RSU向PES转发主体车辆Vi的资源访问请求 请求报文包含
如下字段:主体车辆Vi的属性集 满足条件的客体车辆的假名集{F1,...,Fk}和时间戳TS,利用系统公钥Ppub加密本请求报文:RSU→PES:
策略执行系统PES利用主密钥SMK解密该请求报文,并以请求报文字段中车辆假名集{F1,...,Fk}为多策略访问树的索引条件,确定多个假名Fj对应的多策略访问树,并针对每一棵多策略访问树按以下步骤,逐一进行授权匹配检查;PES利用RSU发来的资源请求信息确定多棵访问树treej后,执行多策略树资源匹配MTRM算法为主体车辆资源授权检查,生成最高权限资源集;
PES根据MTRM算法获得的PolicyList[]检索步骤S2中的三元组访问策略表,若PolicyList[]获得的策略分别为{P1,P2,...,Pk},访问策略表中对应的资源集应为{R1,R2,...,Rk},则生成最大策略资源集Rmax=R1∪R2∪...∪Rk;PES将Rmax作为主体车辆Vi可访问的资源集。
7.根据权利要求6所述的基于多策略访问树的车联网细粒度访问控制方法,其特征在于,所述S42步骤中,多策略树资源匹配算法包括:S421、PES从该树的最后一个节点依次向前遍历,直到根节点结束;
S422、PES根据每一个节点判断是否为叶子节点,如果是叶子节点,判断主体车辆的属性值是否满足该节点的属性值;如果是非叶子节点,对该非叶子节点的每一个子节点进行判断是否为有效节点,若是有效节点,则插入该节点可用孩子数组;
S423、PES判断该节点n用孩子数组中节点的个数是否达到门限值,确定是否可以恢复节点n的秘密值;
S424、PES遍历可恢复的非叶子节点n用孩子数组,计算有效子节点的拉格朗日插值因子,并利用有效子节点的拉格朗日插值因子和秘密值恢复该非叶子节点n的秘密值;
S425、PES将该非叶子节点n的秘密值和该节点索引值进行哈希运算,并将计算结果作为该节点n的令牌;
S426、PES利用该节点的令牌与该多策略访问树的资源拥有者产生的T_P_map[][]中的令牌属性列中的元素进行匹配,将满足令牌匹配条件的结果插入策略列表;
S427、PES返回策略列表PolicyList[],PolicyList[]中包含了多策略访问控制树中所有满足属性匹配的非叶子节点秘密值对应的访问控制策略。
8.根据权利要求7所述的基于多策略访问树的车联网细粒度访问控制方法,其特征在于,所述S5步骤包括以下步骤:S51、PES以RSU公钥加密授权通知报文后发送给RSU:
PES→RSU:
包括以下字段:主体车辆假名Fi、客体车辆假名Fj、Vi的可访问资源集Rmax和时间戳TS;
S52、RSU生成授权通知报文1给主体车辆Vi,该报文包含车辆Vi资源请求的状态和时间戳TS,并利用会话密钥keyi加密:RSU→Vi:
车辆Vi若接收到该报文,则表明资源请求授权成功;
S53、RSU生成授权通知报文2给客体车辆Vj:
RSU→Vj:
该报文包含Vj的访问资源集Rmax和时间戳TS,Vj开放资源等待主体车辆Vi的访问。