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. legend---十、thinkphp中如何进行原生sql操作

    legend---十.thinkphp中如何进行原生sql操作 一.总结 一句话总结:query方法和execute方法 Db类支持原生SQL查询操作,主要包括下面两个方法: query方法 quer ...

  2. SpringBoot(四) Web开发 --- Thymeleaf、JSP

    Spring Boot提供了spring-boot-starter-web为Web开发予以支持,spring-boot-starter-web为我们提供了嵌入的Tomcat以及Spring MVC的依 ...

  3. Codeforces 930A. Peculiar apple-tree (dfs)

    题目: 代码: #include <bits\stdc++.h> using namespace std; ]; //b[i]表示距离1号花絮i步的花絮的个数 map <int, l ...

  4. 一个渣渣python脚本,用wol控制开机

    #!/usr/bin/env python #coding:utf8 import os,time d={} '''f = open('E:\info.txt','r') for ipmac in f ...

  5. django框架-DRF工程之权限功能

    1.相对于flask,原生而言django,DRF做的则更加的合理化,想要给予用户相应的权限,首先需要在settings中进行配置 REST_FRAMEWORK = { 'DEAFAULT_PERMI ...

  6. AC自动机笔记

    AC自动机 #include<iostream> #include<cstring> #include<cstdio> #include<cmath> ...

  7. nginx 多级7层代理安装配置

    编译安装 yum install zlib-devel -y wget https://nginx.org/download/nginx-1.15.12.tar.gz tar -zxf nginx-1 ...

  8. virt-install 创建虚拟机

    [root@kvm-server vm]# qemu-img create -f qcow2 centos69b-disk0.qcow2 10G Formatting 'centos69b-disk0 ...

  9. Angular 快速上手

    本文系 Angular 快速上手学习笔记 安装 CLI npm install -g @angular/cli 创建工作空间和初始应用 ng new my-app 启动开发服务器 cd my-app ...

  10. Adobe AIR and Flex - 保存序列化对象文件(译)

    创建任何桌面应用程序几乎总是需要在本地存储数据,通过Adobe AIR我们有几下面几个选择,一个是我们能够使用内置的 SQLite 数据库支持,对于少量的数据这是大材小用了.另外一个选择是我们通过把数 ...