Passpoint R1

自从 Android 6.0 支持从网络下载包含配置文件和凭据信息的特殊文件来配置 Passpoint R1(第 1 版)凭据,Android 就一直支持 Passpoint R1。客户端会自动启动用于 WLAN 信息的特殊安装程序,并允许用户先查看各部分信息,然后再决定接受或拒绝内容。

文件中包含的配置文件信息用于与从已启用 Passpoint R1 的接入点检索到的数据进行匹配,并且系统会自动将凭据应用于任何匹配的网络。

Android 参考实现支持 EAP-TTLS、EAP-TLS、EAP-SIM、EAP-AKA 和 EAP-AKA'。

下载机制

wifi-config 文件必须托管在网络服务器上,而且应使用 TLS (HTTPS) 进行保护,因为其中可能包含明文密码或私钥数据。内容由经过封装的多部分 MIME 文本(以 UTF-8 表示)组成,并按照 RFC-2045 第 6.8 节所述以 base64 编码形式进行编码。

客户端使用以下 HTTP 标头字段在设备上自动启动 WLAN 安装程序:

  • Content-Type 必须设置为 application/x-wifi-config
  • Content-Transfer-Encoding 必须设置为 base64
  • 不得设置 Content-Disposition

用于检索文件的 HTTP 方法必须为 GET。只要浏览器中的 HTTP GET 收到包含以上 MIME 标头的响应,系统就会启动安装应用。必须通过点按按钮(不支持指向下载网址的自动重定向)等 HTML 元素来触发下载。此行为仅适用于 Google Chrome;其他网络浏览器不一定会提供类似功能。

文件组成

以 base64 编码的内容必须由 Content-Type 为 multipart/mixed 的 MIME 多部分内容组成。以下部分构成了多部分内容的各个部分:

部分 内容类型(较少引用) 是否必需 说明
配置文件 application/x-passpoint-profile 始终必需 采用 OMA-DM SyncML 格式的负载,包含用于 HomeSP 和 Credential 且采用 Passpoint R1 PerProviderSubscription 格式的 MO。
信任证书 application/x-x509-ca-cert 可选(针对 EAP-TLS 和 EAP-TTLS) 一个以 base64 编码的 X.509v3 证书负载。
EAP-TLS 密钥 application/x-pkcs12 必需(针对 EAP-TLS) 以 base64 编码的 PKCS #12 ASN.1 结构,包含一个客户端证书链,其中至少具有客户端证书和关联私钥。PKCS 12 容器以及私钥和证书必须都是明文,没有密码。

“配置文件”部分必须以 base64 编码、UTF-8 编码的 XML 文本形式进行传输,这些文本会指定 Passpoint R2 技术规范版本 1.0.0 第 9.1 节中 HomeSP 和 Credential 子树的部分。

注意:Android 中用于 Passpoint R1 的配置文件 XML 格式借用了 Passpoint R2 格式,但不一定符合 R2 标准。这是一种设计上的选择,并非 Passpoint R1 的要求。

顶级节点必须是 MgmtTree,而直接子节点必须是 PerProviderSubscription。下面的附录中显示了一个示例 XML 文件。

以下子树节点在 HomeSP 下使用:

  • FriendlyName:必须设置;用作显示文本
  • FQDN:必需
  • RoamingConsortiumOI

以下子树节点在 Credential 下使用:

  • Realm:必须为非空字符串
  • UsernamePassword:对于具有以下节点集的 EAP-TTLS 是必需的:

    • Username
    • Password
    • EAPMethod/EAPType:必须设置为 21
    • EAPMethod/InnerMethod:必须设置为 PAPCHAPMS-CHAP 或 MS-CHAP-V2 中的一个
  • DigitalCertificate:对于 EAP-TLS 是必需的。必须设置以下节点:

    • CertificateType 设置为 x509v3
    • CertSHA256Fingerprint 设置为 EAP-TLS 密钥 MIME 部分中客户端证书的正确 SHA-256 摘要。
  • SIM:对于 EAP-SIM、EAP-AKA 和 EAP-AKA' 是必需的。EAPType 字段必须设置为适当的 EAP 类型,而 IMSI 必须与进行配置时设备中已安装的 SIM 卡之一的 IMSI 相匹配。IMSI 字符串可以完全由十进制数字组成以强制执行完全对等匹配,也可以包含零个或更多个十进制数字,后跟星号 (*) 以将 IMSI 匹配要求放宽为仅匹配前缀。例如,IMSI 字符串 123* 将匹配 IMSI 以 123 开头的任何 SIM 卡。

示例配置文件 OMA-DM XML

<MgmtTree xmlns="syncml:dmddf1.2">
  <VerDTD>1.2</VerDTD>
  <Node>
    <NodeName>PerProviderSubscription</NodeName>
    <RTProperties>
      <Type>
        <DDFName>urn:wfa:mo:hotspot2dot0-perprovidersubscription:1.0</DDFName>
      </Type>
    </RTProperties>
    <Node>
      <NodeName>i001</NodeName>
      <Node>
        <NodeName>HomeSP</NodeName>
        <Node>
          <NodeName>FriendlyName</NodeName>
          <Value>Century House</Value>
        </Node>
        <Node>
          <NodeName>FQDN</NodeName>
          <Value>mi6.co.uk</Value>
        </Node>
        <Node>
          <NodeName>RoamingConsortiumOI</NodeName>
          <Value>112233,445566</Value>
        </Node>
      </Node>
      <Node>
        <NodeName>Credential</NodeName>
        <Node>
          <NodeName>Realm</NodeName>
          <Value>shaken.stirred.com</Value>
        </Node>
        <Node>
          <NodeName>UsernamePassword</NodeName>
          <Node>
            <NodeName>Username</NodeName>
            <Value>james</Value>
          </Node>
          <Node>
            <NodeName>Password</NodeName>
            <Value>Ym9uZDAwNw==</Value>
          </Node>
          <Node>
            <NodeName>EAPMethod</NodeName>
            <Node>
              <NodeName>EAPType</NodeName>
              <Value>21</Value>
            </Node>
            <Node>
              <NodeName>InnerMethod</NodeName>
              <Value>MS-CHAP-V2</Value>
            </Node>
          </Node>
        </Node>
      </Node>
    </Node>
  </Node>
</MgmtTree>

Passpoint R1的更多相关文章

  1. PP66 EEPPPPMM SSyysstteemm AAddmmiinniissttrraattiioonn GGuuiiddee 16 R1

    ※★◆●PP66 EEPPPPMM SSyysstteemm AAddmmiinniissttrraattiioonn GGuuiiddee 16 R1AApprriill 22001166Conte ...

  2. P6 EPPM Installation and Configuration Guide 16 R1 April 2016

    P6 EPPM Installation and Configuration Guide 16 R1         April 2016 Contents About Installing and ...

  3. P6 EPPM 16 R1 文档和帮助系统

    P6 EPPM 16 R1 文档和帮助系统 https://docs.oracle.com/cd/E74894_01/ http://docs.oracle.com/cd/E68202_01/clie ...

  4. P6 Professional Installation and Configuration Guide (Microsoft SQL Server Database) 16 R1

    P6 Professional Installation and Configuration Guide (Microsoft SQL Server Database) 16 R1       May ...

  5. 位运算取第一个非0的位 r & (~(r-1))

    Single Number III Given an array of numbers nums, in which exactly two elements appear only once and ...

  6. Intersoft Mobile Studio 2013 R1 SP1 Crack

    Intersoft Mobile Studio 2013 R1 SP1 (iOS, Android & WinR) Leave a comment   tweet       inShare ...

  7. 洛谷3月月赛 R1 Step! ZERO to ONE

    洛谷3月月赛 R1 Step! ZERO to ONE 普及组难度 290.25/310滚粗 t1 10分的日语翻译题....太难了不会... t2 真·普及组.略 注意长为1的情况 #include ...

  8. SDOI 2019 R1游记

    $SDOI$ $2019$ $R1$游记 昨天才刚回来,今天就来写游记啦! Day -5: 做了一下去年省选的Day1,感觉很神仙. Day -4: 做了一下去年省选的Day2,感觉还是很神仙. Da ...

  9. SDOI2017 R1做题笔记

    SDOI2017 R1做题笔记 梦想还是要有的,万一哪天就做完了呢? 也就是说现在还没做完. 哈哈哈我竟然做完了-2019.3.29 20:30

随机推荐

  1. Codeforces 701E Connecting Universities 贪心

    链接 Codeforces 701E Connecting Universities 题意 n个点的树,给你2*K个点,分成K对,使得两两之间的距离和最大 思路 贪心,思路挺巧妙的.首先dfs一遍记录 ...

  2. Python基本语法(基于3.x)

    Python的两种运行模式: 命令行模式,运行python,然后在命令行中输入python命令 程序脚本, 在命令行中输入 ./hello.py运行 Python是解释形语言,但可以通过工具打包成二进 ...

  3. solarwinds之数据库

      1.              Orion配置向导     2.              连接数据库     3.              创建一个新的数据库     4.           ...

  4. Caffe 激励层(Activation)分析

    Caffe_Activation 一般来说,激励层的输入输出尺寸一致,为非线性函数,完成非线性映射,从而能够拟合更为复杂的函数表达式激励层都派生于NeuronLayer: class XXXlayer ...

  5. POJ 3273 Monthly Expense 【二分答案】

    题意:给出n天的花费,需要将这n天的花费分成m组,使得每份的和尽量小,求出这个最小的和 看题目看了好久不懂题意,最后还是看了题解 二分答案,上界为这n天花费的总和,下界为这n天里面花费最多的那一天 如 ...

  6. MariaDB GALERA 集群双节点部署

    节点1:10.2.2.41 节点2:10.2.2.42 软件: mariadb-galera-10.0.22-linux-x86_64.tar.gz #galera相关参数:(两个节点配置文件类似) ...

  7. jQuery获取单选框(复选框)选中的状态

    jQuery 获取单选框(复选框)选中的状态 <input type="checkbox" name="" id="choose"/& ...

  8. 搭建ss总结

    今天晚上做的事情: 1. https://www.vultr.com/ 购买vps 2. ssh连接到服务器 参照网上帖子安装 https://blog.csdn.net/littlepig19930 ...

  9. windows下matlab代码到ubuntu下中文注释出现乱码

    转自:https://blog.csdn.net/kouyi5627/article/details/81513329 环境:Ubuntu18.04,Matlab R2017b. 把matlab文件从 ...

  10. OpenJDK源码研究笔记(四)-编写和组织可复用的工具类和方法

    本篇主要讲解java.util.Arrays这个针对数组的工具类. 1.可复用的工具类和方法.  这个工具类里,包含很多针对数组的工具方法,如 排序.交换.二分查找.比较.填充.复制.hashcode ...