首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

iOS MDM详解(1)— 初识和深入

当企业大量的使用移动设备办公或涉及到一些安全限制时设备管理的作用就能明显的体现出来,通过MDM IT人员门能够在企业环境下安全地注册设备,无线配置和更新设置,监督公司政策的遵守情况,还能远程擦除或锁定被管理的设备...MDM工作流程 从上图可以看出要实现MDM服务须涉及到,苹果推送服务器APNs、自己的或者第三方提供的MDM服务器、受管理的设备。...另外设备和MDM服务器之间数据传输都是以XML格式形式,以PUT请求的方式进行的,所以发送指令时,服务器要把指令封装成一个XML的文件同时要实现PUT请求相关操作处理。...四、要做的操作及我遇到过的问题 通过以上了解可看出,要实现一个完整的MDM服务,我们需要:制作APNs推送证书、设备安装的配置文件、实现https通信、实现MDM相关协议、学习MDM协议相关命令及使用、...问题2、MDM服务器与APNs无法建立连接,造成一直推送不成功 推送命令时Java后台一直报错,*`javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException

3.6K30

基于APNs最新HTTP2接口实现iOS的高性能消息推送(服务端篇)

所以本文趁着最近对项目组的老苹果iOS推送进行升级修改机会,详细查阅了最新苹果的APNs接口文档,同时为了避免重复造轮子(懒),在调研了一些开源常用的库之后,选择了Turo团队开发和维护的pushy开源工程来实现在...Java服务端调用苹果最新的APNs HTTP/2接口进行消息推送,并借此文对Pushy的使用方法进行了总结和记录,希望对你用。...补充说明:网上目前能查到的有关iOS端APNs消息推送的Java服务端代码实现,多是介绍如何使用Java-APNS这个工程,但这个工程以及类似的其它工程都很久没有维护了,跟最新的苹果APNs服务已经很难匹配了...就算是微信和QQ这种用户级别的即时通讯app在程序没有启动或者后台运行过程中也是需要使用APNs的(当程序启动时,使用自己建立的长连接),只不过腾讯优化了整条从他们服务器到苹果服务器的线路而已,所以觉得推送要快...项目组老的苹果推送服务使用的是苹果以前的基于二进制socket的APNs,同时使用的是一个javapns的开源库,这个javapns貌似效果不是很好,在网上也有人有过讨论。

5.2K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    直播平台建设过程中不可或缺的推送功能

    App内的消息推送不仅能够给用户提供通知信息,提高用户活跃度,还能够起到召回一部分老用户的作用。那么在直播平台建设的过程中,关于第三方推送也就是我们所说的消息推送功能又该如何实现呢?...l 应用服务器会根据需要调用的推送服务端接口发起推送。 l 推送服务器收到推送请求后,根据请求中的devicetoken定位到具体的设备,然后下发推送通知。...5.jpg ios端 苹果的官方有专门的苹果推送通知服务,简称APNS,有很高的推送送达率。最早的APNS提供基于TCP协议的接口,但是这一接口的使用方式较为复杂,如果不注意就容易导致推送失败。...后来苹果又提供了一套新的基于HTTP2协议的推送接口,这一接口可以追踪到每个推送请求是被拒绝还是成功,所以应用的也比较多。...以上内容就是在直播平台建设的过程中,推送功能的实现方法及相关内容。推送功能虽然没有直播app内其他的主要功能那么重要,但却是每一个app内不可缺少的功能之一。

    1.7K00

    如何建立TLS连接?TLS握手失败可能这个原因!

    前面curl输出显示双方协商出来的是 ECDHE_RSA_AES_128_GCM_SHA256 但: 这是协商后达成的结果,只是个套件,不是套件列表 这密码套件是curl这客户端的,不是出问题的客户端...咋获得这Java库能支持的密码套件列表?最直接的, 抓包分析。回到前面那抓包文件,检查Client Hello报文。在那就有Java库支持的密码套件列表: 找到客户端的密码套件列表了。...换个思路 看服务端在TLS握手成功后用了哪个密码套件,而不是拿到它的全部列表。前面curl成功, 看curl那次协商出来的套件,看它是否被Java库支持,就能判定了。...至此,能确认问题根因:因为这Java库和API server 2之间没找到共同密码套件,所以TLS握手失败。 根因找到,下步就是升级Java库,让双方能协商成功。...这四类算法的组合,就形成了密码套件,英文叫Cipher Suite。这是TLS握手中的重要内容,我们的案例1就是因为无法协商出公用的密码套件,所以TLS握手失败了。

    1.4K40

    网络协议之:加密传输中的NPN和ALPN

    虽然HTTP2没有强制说必须使用加密协议进行传输,但是业界的标准包括各大流行的浏览器都只支持HTTPS情况下的HTTP2协议。 那么怎么在HTTPS之中加入HTTP2协议的支持呢?...server hello 服务器端收到client hello消息后,会向客户端返回一个server hello消息,包含如下内容: 使用的版本号 当前时间 服务器随机数 会话ID 使用的密码套件 使用的压缩方式...使用的版本号,使用的密码套件,使用的压缩方式是对步骤1的回答。...NPN和ALPN 上面我们介绍SSL/TLS协议的时候,最后一步是切换到应用数据协议,那么客户端是怎么和服务器端讨论协商具体使用哪种应用数据协议呢?是使用HTTP1.1?还是HTTP2?...他们主要用在TLS中,用来协商客户端和服务器端到底应该使用什么应用数据协议进行沟通。 其中NPN是SPDY使用的扩展,而ALPN是HTTP2使用的扩展。 他们两个有什么区别呢?

    1.4K21

    iOS 推送手机消息背后的技术

    iOS系统方法,远程消息推送的实现涉及到用户设备、我们自己的业务方服务器和苹果的APNs服务的交互。...不同于Android系统中远程消息推送的实现,需要App自身通过后台服务与业务服务器维持长链接通信,iOS中的消息推送是操作系统与苹果的APNs服务器直接交互实现的,App自身并不需要维持与服务器的连接...iOS客户端远程消息推送的实现可以分为以下几个流程: 用户的iphone通过iOS的系统方法调用与苹果的APNs服务器通信,获取设备的deviceToken,它是由APNs服务分配的用于唯一标识不同设备上的不同...苹果的APNs服务是基于deviceToken实现的,因此需要将设备的deviceToken发送到我们的业务服务器中,用于后续的消息推送。...在新闻类App出现事实热点新闻时,后台服务就可以携带消息内容和deviceToken等内容,向苹果的APNs服务发起消息推送请求,推送消息的实现是异步的,只要请求格式和deviceToken检查通过APNs

    4K103

    网络协议之:加密传输中的NPN和ALPN

    虽然HTTP2没有强制说必须使用加密协议进行传输,但是业界的标准包括各大流行的浏览器都只支持HTTPS情况下的HTTP2协议。 那么怎么在HTTPS之中加入HTTP2协议的支持呢?...server hello服务器端收到client hello消息后,会向客户端返回一个server hello消息,包含如下内容: 使用的版本号 当前时间 服务器随机数 会话ID 使用的密码套件 使用的压缩方式...使用的版本号,使用的密码套件,使用的压缩方式是对步骤1的回答。...NPN和ALPN 上面我们介绍SSL/TLS协议的时候,最后一步是切换到应用数据协议,那么客户端是怎么和服务器端讨论协商具体使用哪种应用数据协议呢?是使用HTTP1.1?还是HTTP2?...他们主要用在TLS中,用来协商客户端和服务器端到底应该使用什么应用数据协议进行沟通。 其中NPN是SPDY使用的扩展,而ALPN是HTTP2使用的扩展。 他们两个有什么区别呢?

    1.7K10

    腾讯Kona国密套件:从基础算法到安全协议

    KonaPKIX,它实现了国密证书的解析及其证书链验证,并可加载和创建包含国密证书的密钥库(Key Store)文件。...Kona,它没有直接实现任何功能,而是将KonaCrypto,KonaPKIX和KonaSSL中的特性进行了简单的封装,以方便用户仅使用这一个Provider就能够调用上述三个Provider中的全部功能...另外,每一方还需要有各自的ID,如果没有的话,就使用默认的1234567812345678。...需要了解的是,当使用ECDHE密码套件时,客户端也必须提供双证书,这是SM2密钥交换算法所要求的,也是与TLS协议中的ECDHE密码套件的一个明显区别。...KonaSSL还为TLCP实现了一些重要的TLS扩展,如,服务器名称指示(SNI),它会帮助服务器选择正确的证书;应用层协议协商(ALPN),它会用于在握手时协商使用HTTP/2协议。

    5.2K21

    逆向工程分析:iMessage如何利用硬件来保护软件

    写在前面的话 iMessage是苹果生态系统中广泛使用的安全消息应用程序和协议。...当前的解决方案 当前在苹果生态系统之外运行iMessage的实际解决方案需要一台Mac服务器,并依赖AppleScript脚本来实现自动化Messages.app UI活动,这样就不需要在客户机上重新实现消息发送协议了...NPN协议现在改名为了ALPN应用层协议协商,它是一种TLS的扩展,允许在安全连接的基础上进行应用层协议的协商。它可以告诉TLS服务器客户端希望使用哪个应用层协议。...考虑到使用额外的TLS扩展,明智的做法是使用tcpdump记录并检查通信量。但首先,我们需要重新启动apsd,因为连接是在启动时发生的。...参数中的哈希代表的是消息主题或使用了APN的服务。如果没有过滤器消息,客户端就无法通过(0x0a: 发送消息)来发送或接受APN消息了。因此,我们必须在发送消息之前调用过滤器命令。

    3K20

    iOS推送APNs

    在线推送:APP在前台时,消息通过自建的网络长连接从服务器推送到应用,常见应用:微信在前台时的消息推送。 APNs:APP未被唤起或者处于后台,通过苹果服务器远程推送消息给应用。...主要流程为: 服务器端将消息先发送到苹果的APNs; 由苹果的APNs将消息推送到客户的设备端; 由iOS系统将接收到的消息分发给相应的App。...3、APNs的安全架构 APNs使用两个“信任”来实施端到端、密码验证和身份验证:连接信任和设备令牌信任(connection trust and device token trust.)。...APN到设备的连接信任:可确保只有授权的设备才能连接到APN来接收通知。APNs会自动强制与每个设备建立连接信任,以确保设备的合法性。...安装应用后第一次打开APP获取deviceToken时必须联网。如果在获取时没有网络,在重新连接网络后会第一时间返回deviceToken。 不需要缓存DeviceToken。

    3.6K20

    关于JPush(极光推送)那些事

    红色部分是 APNs 推送,JPush 代理开发者的应用(需要基于开发者提供的应用证书),向苹果 APNs 服务器推送。由 APNs Server 推送到 iOS 设备上。...获取 APNs 推送内容 应用内消息 ---- 应用内消息:JPush iOS SDK 提供的应用内消息功能,在 App 在前台时能够收到推送下来的消息。App 可使用此功能来做消息下发动作。...对于两种消息的代码处理可以参考API 部分的描述。 JPush API v3 支持同时一次调用同时推送 APNs 通知与 JPush 应用内消息。这在某些应用场景里是有意义的。...7:核心代码: 添加初始化代码 ---- 添加初始化APNs代码 请将以下代码添加到 添加初始化JPush代码 注册APNs成功并上报DeviceToken 实现注册APNs失败接口(...可选) 添加处理APNs通知回调方法 下面这几个方法也是核心代码,这是对通知的回调方法,通知达到之后会调用这下面的方法,所以说也是必须要实现的.JPush考虑很周全,涉及到了各个版本,但是方法太多

    1.5K10

    详解 HTTP2.0 及 HTTPS 协议

    一、HTTP1.1 VS HTTP2 严格意义上HTTP2.0和HTTPS并没有什么必然的联系,只是搭配使用更香一些,HTTP2 是1999年HTTP1.1之后的第一次更新。...+ ALPN协商: 应用层可以协商在安全连接层之上使用什么协议, 避免了额外的往返通讯, 如上图 复制代码 Server-hello阶段 服务器收到浏览器发送来的 TLS 握手请求后, 存储浏览器发送的...Cipher-spec 阶段 经过Client Hello和Server Hello 客户端和服务端完成了加密套件的协商。...而HTTP2.0 标准中,虽然没有强制提出要使用加密(HTTPS)但是目前主流浏览器,chrome、火狐等都已经公开宣布只支持加密的HTTP2,所以目前互联网上能见到的HTTP2基本都是基于HTTPS协议的...,如果web服务端没有包含中间证书且使用的浏览器中也没有包含中间证书,就会导致信任问题。

    3.7K01

    Okhttp如何开启的Http2.0

    client 发起第一次client hello过程,请求 Https 连接,发送可用的 TLS 版本和可用的密码套件。...server 发起第一次server hello过程,返回证书,密码套件和 TLS 版本等信息。...ALPN支持任意应用层协议的协商,目前应用最多是HTTP2的协商。当前主流浏览器,都只支持基于 HTTPS 部署的 HTTP/2,因为浏览器是基于ALPN协议来判断服务器是否支持HTTP2协议。...从拦截器实现可以发现,Okhttp实现了一个连接池,当ConnectionInterceptor被调用的时候,先是判断连接池内有没有空闲并且健康的可用连接,然后再使用连接去调度下一个拦截器,那么也就是一个...简单的说Okhttp就是抽象了下所有Tls,SSLSocket相关的代码,然后通过一个Platform,根据当前使用环境的不同,去反射调用不同的实现类,然后这个抽象的类去调用Platform的实现类代码

    5.5K40

    APNs推送

    场景 即时通讯中需要对离线消息进行接收,此时就需要离线推送即当应用没有退出登录的情况下,被系统或者用户杀掉进程仍然能收到IMSDK消息提醒。...处理流程 1.申请APNs证书可参考文档:Apple 推送证书申请 2.上传证书到腾讯云控制台 注意:上传证书名最好使用全英文(尤其不能使用括号等特殊字符)。 上传证书生效时间为 10 分钟左右。...上传证书需要设置密码,无密码收不到推送。 注意生产环境的选择,发布 AppStore 的证书需要设置为生产环境,否则无法收到推送。 上传的 p12 证书必须是自己申请的真实有效的证书。...3.客户端实现APNs推送 客户端实现步骤 1....应用程序的服务器端把要发送的消息、目的iPhone的标识打包,发给APNS。

    2.2K21

    工作流调度器azkaban(以及各种工作流调度器比对)

    供业务调用使用。...(5):工作流调度实现方式:   a:简单的任务调度:直接使用linux的crontab来定义;   b:复杂的任务调度:开发调度平台,或使用现成的开源调度系统,比如ooize、azkaban等 (...它有如下功能特点:      Web用户界面,方便上传工作流,方便设置任务之间的关系,调度工作流,认证/授权(权限的工作),能够杀死并重新启动工作流,模块化和可插拔的插件机制,项目工作区,工作流和任务的日志记录和审计...1、先生成时区配置文件Asia/Shanghai,如果没有这个时区Asia/Shanghai,使用交互式命令 tzselect生成 即可,根据提示进行选择,这里省略。   ...hive或者azkaban数据表,应该是没有权限的问题,赋予一下权限即可: 如果出现没有权限的问题,在mysql授权(在安装mysql的机器上执行)     mysql -uroot -p123456

    3.3K111

    IMSDK离线推送

    系统要求 条件说明 APNs iOS iOS 系统推送通道,也是唯一的 iOS 推送通道 vivo 推送 FuntouchOS 并非所有 vivo 机型和版本都支持使用 vivo 推送,SDK 版本 vivo_pushsdk_v2.3.1...offline(终端主动调用logout接口断开连接),pushoffline(终端出于online状态时,因为网络异常、进程被杀原因,与后台断开了连接,并没有主动调用logout)。...2、ios用苹果官网推送可以收到离线消息,但是app发的离线消息收不到,使用调试工具发现未知错误 答:说明获取token没问题,有可能上报token错误、或者证书错误。...②、苹果官网的证书过期、密码错误等原因,未知错误可以先重新申请一个证书再运行看看 3、安卓点击通知栏,可以跳转到指定页面吗 答:暂时还不支持,只能按系统标准打开应用。...8、华为离线推送的独特点。 答、华为离线推送集成方式有三点比较独特: 1、华为离线推送sdk不只需要集成sdk远程库,还需要集成HMS Agent 套件。

    6.1K151

    App Store上架iOS App的详细流程

    然后将公司的详细资料准备好,当他们发邮件要资料时,需要快速的给到他们。申请通过后,我们会收到邓白氏码,但是要半个月后才能使用,因为苹果需要同步数据。...2.2.4.5 推送的P12证书的制作 双击刚下载下来的aps.cer文件,这时会在钥匙串中安装了APNs的证书,右键将它导出为p12的格式,设置密码,发给服务端人员推送使用,当服务端人员使用这个p12...证书时需要密码。...App-Store58.png 4.6 勾选全屏显示(iPad) 勾选 Requires full screen: 不勾选的话,上传时需要你实现iPad的多任务分屏。...七、发布过程中遇到的一些问题及解决 7.1 上传时遇到的错误 在使用Application Loader上传App时遇到了一下问题,如下: 经分析:如果主要是缺少一些支持iPad的图标、没有实现iPad

    1.6K10

    iOS中的Bark及Bark Server搭建、安装和使用全指南

    引言 最近在找一个能实时通知的消息的工具。想到了使用企业微信, 钉钉等办法申请一个key就可以实现。但个人的话还是有些困难。 突然发现了Bark这个神器,优点是 免费、轻量!...简单调用接口即可给自己的iPhone发送推送。 依赖苹果APNs,及时、稳定、可靠 不会消耗设备的电量, 基于系统推送服务与推送扩展,APP本体并不需要运行。...隐私安全,可以通过一些方式确保包含作者本人在内的所有人都无法窃取你的隐私。 但是缺点就是只支持苹果, 不过实现起来超级简单且方便 Bark官网 https://bark.day.app/#/?...到这里就可以实现在项目中出现问题时, 实时通知开发者的功能了。...如果没有其它要求就可以不往下看了 Bark Server部署 Bark Server是Bark的服务端组件。用户可以选择使用Bark官方服务器,或自行搭建私有服务器。

    3.3K20

    WEB加速,协议先行 ( 上)

    4.然后就可以在这个TCP连接上进行TLS握手了,首先完全握手阶段一,主要是协商协议版本,密码套件,返回证书。...5.客户端在获取到证书后,校验完证书的签名和时间都没有问题后,还是有可能要检查这个证书的状态,因为我们有可能主动撤销了这个证书,也有可能是CA本身数据库出了安全问题。...比如业务处理的整体时间,又比如跟协议相关的信息,包括是否TCP连接复用,TCP的RTT,是否TLS Session复用,TLS协议版本,密码套件,TLS非对称密钥交换计算的时间,握手时间,HTTP2的头部压缩比等...上述这些单一维度又可以进行多维度的整合,比如这行黄色的文字所示“腾讯X5内核浏览器在4G网络下使用HTTP2并且是TLS1.2协议并且使用ECDHE并且没有复用tls session的首屏时间是多少?”...我们清晰地看到它使用TLS1.1,1.0,以及其他密码套件的一些性能数据,为什么快,为什么慢,通过这样的多维度对比,一目了然。

    1.9K20

    《透视HTTP协议》:快速了解HTTPSHTTP2HTTP3 的变动改进点

    使用tls建立链接需要_选定一个加密套件进行安全通信*,同样*需要两端协商所以客户端会带上自己支持哪些加密套件clientsuites字段表示这些套件,serversuite是最终协商采用的加密套件。..._ ssl是权威标准,比较知名的实现是openssl(开源密码学工具包),一般nginx都是在openssl的基础上实现tls的功能 SSL加密 对称加密和非对称加密介绍,特点 tsl中使用的加密解密算法分为对称和非对称加密...首先_客户端向服务端发送自己_ 支持哪些密码套件和客户端使用的tls版本 *, *在带上一个_客户端的随机数(clientrandom)_ ****随着clienthello发出 _服务端收到密码套间和客户端使用的...,一是队头阻塞二是在下载文件时可以使用这种方式实现并行下载 (一个下载一个tcp链接但是1.1要求请求只能在上一个请求的响应回来后才能发送)开多个链接就可以间接并发发送多个请求了 由于http2有了stream...http3没有像1.0和2那样指定服务器的端口号,原因是需要先通过http2进行链接然后通过http2里面的扩展帧来进行使用http3进行链接

    65210
    领券