首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >授权XPC连接

授权XPC连接
EN

Stack Overflow用户
提问于 2012-07-21 16:29:49
回答 2查看 541关注 0票数 4

我的应用程序包含了一个内核扩展作为关键组件。该内核扩展由系统控制套接字控制。出于安全原因,该系统控制套接字仅接受来自超级用户的连接。

为了从常规的非超级用户应用程序进行通信,我有一个SMJobBless帮助器作为中介。问题是,我只希望我的应用程序(由我签名)能够连接到这个XPC服务。有没有办法验证连接另一端的可执行文件上的签名?如果我可以在另一端获得进程的PID,这就足够了,我知道如何从那里验证签名。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-22 13:08:34

如果我可以获得另一端进程的PID,则为

您可以使用xpc_connection_get_pid()

票数 2
EN

Stack Overflow用户

发布于 2021-10-28 00:00:44

对于在2021年阅读这篇文章的任何人来说,安全研究已经表明,由于PID的可重用性,它们不是值得信任的。这是一个关于这个问题的good presentation

从xPC11开始,可以使用SecCodeCreateWithXPCMessage功能来确定macOS消息的真正发送者。在较早版本的macOS中,存在未记录的函数void xpc_connection_get_audit_token(xpc_connection_t, audit_token_t *),只需多执行几个步骤,即可完成相同的任务。

我构建了一个名为SecureXPC的Swift XPC框架,它同时使用了这两个函数,所以如果您想了解如何使用它们,请看一下acceptMessage函数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11590681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档