犐犆犛35.040 犆犆犛犔80 中华人民共和国密码行业标准 犌犕/犜0087—2020 浏览器密码应用接口规范 犅狉狅狑狊犲狉犮狉狔狆狋狅犵狉犪狆犺狔犃犘犐狊狆犲犮犻犳犻犮犪狋犻狅狀 20201228 发布 20210701 实施 国家密码管理局 发 布 犌犕/犜0087—2020 目 次 前言 ………………………………………………………………………………………………………… Ⅲ 1 范围 ……………………………………………………………………………………………………… 1 2 规范性引用文件 ………………………………………………………………………………………… 1 3 术语 、定义和缩略语 ……………………………………………………………………………………… 1 3.1 术语和定义 ………………………………………………………………………………………… 1 3.2 缩略语 ……………………………………………………………………………………………… 1 4 概述 ……………………………………………………………………………………………………… 1 5 数据结构 ………………………………………………………………………………………………… 2 5.1 大整数 ……………………………………………………………………………………………… 2 5.2 密钥对字典 ………………………………………………………………………………………… 2 5.3 JsonWebKey字典 ………………………………………………………………………………… 2 5.4 算法字典 Algorithm ……………………………………………………………………………… 3 5.5 密码接口 Crypto …………………………………………………………………………………… 3 5.6 密钥算法 KeyAlgorithm ………………………………………………………………………… 4 5.7 密钥接口 CryptoKey ……………………………………………………………………………… 4 6 密码接口 ………………………………………………………………………………………………… 5 6.1 接口定义 …………………………………………………………………………………………… 5 6.2 加密方法 …………………………………………………………………………………………… 6 6.3 解密方法 …………………………………………………………………………………………… 6 6.4 签名方法 …………………………………………………………………………………………… 7 6.5 验证签名方法 ……………………………………………………………………………………… 7 6.6 杂凑方法 …………………………………………………………………………………………… 7 6.7 生成密钥方法 ……………………………………………………………………………………… 8 6.8 派生密钥方法 ……………………………………………………………………………………… 8 6.9 派生比特方法 ……………………………………………………………………………………… 9 6.10 导入密钥方法 ……………………………………………………………………………………… 9 6.11 导出密钥方法 …………………………………………………………………………………… 10 6.12 封装密钥方法 …………………………………………………………………………………… 10 6.13 解封密钥方法 …………………………………………………………………………………… 11 6.14 异常 ……………………………………………………………………………………………… 12 7 算法流程 ………………………………………………………………………………………………… 12 7.1 SM3 算法 ………………………………………………………………………………………… 12 7.2 SM2 加密算法 …………………………………………………………………………………… 13 7.3 SM2 签名算法 …………………………………………………………………………………… 16 7.4 SM4 算法 ………………………………………………………………………………………… 20 7.5 SM4ECB 算法 …………………………………………………………………………………… 22 Ⅰ 犌犕/犜0087—2020 前 言 本文件按照 GB/T1.1—2020《标准化工作导则 第 1 部分 :标准化文件的结构和起草规则》的规定 起草 。 请注意本文件的某些内容可能涉及专利 。 本文件的发布机构不承担识别专利的责任 。 本文件由密码行业标准化技术委员会提出并归口 。 本文件起草单位 :北京海泰方圆科技股份有限公司 、无锡江南信息安全工程技术中心 、格尔软件股 份有限公司 、成都卫士通信息产业股份有限公司 、吉大正元信息技术股份有限公司 。 本文件主要起草人 :柳增寿 、蒋红宇 、徐明翼 、郑强 、罗俊 、赵丽丽 。 Ⅲ 犌犕/犜0087—2020 浏览器密码应用接口规范 1 范围 本文件定义了浏览器执行网页中的密码操作的 JavaScriptAPI,包括加密 、解密 、杂凑 、签名 、签名 验证和随机数生成等操作 。 本文件定义的 API适用于浏览器中用户或服务的认证 、文档或代码的签名 、通信的机密性与完整 性保证等 。 2 规范性引用文件 下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款 。 其中 ,注日期的引用文 件 ,仅该日期对应的版本适用于本文件 ;不注日期的引用文件 ,其最新版本 (包括所有的修改单 )适用于 本文件 。 GB/T32918(所有部分) 信息安全技术 SM2 椭圆曲线公钥密码算法 GB/T32905 信息安全技术 SM3 密码杂凑算法 GB/T32907 信息安全技术 SM4 分组密码算法 3 术语 、定义和缩略语 3.1 术语和定义 下列术语和定义适用于本文件 。 3.1.1 字典 一种使用键值对作为元素的集合 。 3.1.2 承诺 一种JavaScript范式 ,承诺(promise)代表一个任务结果 。 通过本范式可以实现浏览器脚本程序的 异步功能 。 3.2 缩略语 下列缩略语适用于本文件 。 IDL 接口描述语言(InterfaceDescriptionLanguage) 4 概述 本文件用于为网络应用中浏览器JavaScript脚本提供密码操作能力 。 网络应用可以让用户利用浏 览器内置密码能力在浏览器端来保护其身份数据和隐私数据 。 直接使用JavaScript实现密码功能的方 式会导致安全缺陷和性能问题 。 因此有必要在浏览器上原生实现密码功能 ,并向 JavaScript程序提供 1 犌犕/犜0087—2020 密码支撑 。 安全接口 Crypto提供了 WCAPI的通用加密功能的接口 。 该接口定义一个 crypto 对象开放给浏 览器 ,在JavaScript中可以全局访问 。crypto 对象包含生成随机数的方法和一个 subtle 对象 。subtle 对象实现了 SubtleCrypto接口 。SubtleCrypto接口提供了对若干具体的密码计算的访问接口 。 用户JavaScript程序可以使用的密码资源的层次关系见图 1。 图 1 密码资源的层次关系 5 数据结构 5.1 大整数 IDL: typedefUint8ArrayBigInteger; 大整数 BigInteger定义为 Uint8Array 类型 ,保存任意长度的无符号整数 ,高字节在前 。 从 API读 取的数值应有最小的类型化数组的长度(即除了 0 之外 ,至多 7 个前导 0 比特 )。API应接受任意数目 的前导 0 比特 。 5.2 密钥对字典 IDL: dictionaryCryptoKeyPair { CryptoKeypublicKey; CryptoKeyprivateKey; }; CryptoKeyPair密钥对字典表示一对非对称密钥对 ,该密钥对由私钥和公钥两部分组成 。 5.3 犑狊狅狀犠犲犫犓犲狔字典 IDL: 2 犌犕/犜0087—2020 dictionaryRsaOtherPrimesInfo { DOMStringr; DOMStringd; DOMStringt; }; dictionaryJsonWebKey { DOMStringkty; DOMStringuse; sequence〈DOMString〉key_ops; DOMStringalg; booleanext; DOMStringcrv; DOMStringx; DOMStringy; DOMStringd; DOMStringn; DOMStringe; DOMStringp; DOMStrinβgq; DOMStringdp; DOMStringdq; DOMStringqi; sequence〈RsaOtherPrimesInfo〉oth; DOMStringk; }; JsonWebKey字典提供了一种表示和交换表示为 JSON 网页密钥机构的密钥的方法 ,同时允许在 浏览器密码 API应用中进行本地的高效调用 。 5.4 算法字典 犃犾犵狅狉犻狋犺犿 算法对象是一个网页IDL 字典对象 ,它用于为特定操作来指定算法和附加参数 。 IDL: typedef(objectorDOMString)AlgorithmIdentifier; typedefAlgorithmIdentifierHashAlgorithmIdentifier; dictionaryAlgorithm {requiredDOMStringname;}; 其中 name为待用的已注册算法的名字 。 5.5 密码接口 犆狉狔狆狋狅 IDL: [NoInterfaceObject] interfaceGlobalCrypto { readonlyattributeCryptocrypto; 3 犌犕/犜0087—2020 }; WindowimplementsGlobalCry
GM/T 0087-2020 浏览器密码应用接口规范
文档预览
中文文档
32 页
50 下载
1000 浏览
0 评论
0 收藏
3.0分
温馨提示:本文档共32页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 路人甲 于 2022-05-14 08:55:44上传分享