云foxy的tcp/restful代理-智能卡的云平台
foxyprox的Python项目详细描述
云狐-Foxyproxy
此代理将实现简单TCP请求的客户端与CloudFoxy连接起来 restful api。您可以通过gitlab问题发送任何支持请求,或者打开 支持票 https://keychist.freshdesk.com
外部依赖性
sudo yum安装gcc libffi devel python devel openssl devel
安装
安装应用程序
pip安装foxyproxy
或
pip install--upgrade--no cache dir foxyproxy
并创建文件夹/opt/cloudfoxy
,以便存储或相关文件和数据
为自动重新启动安装管理器
PIP安装主管
mkdir-p/etc/supervisord/conf.d
echo_supervisord_conf>;/etc/supervisord/supervisord.conf
echo[include]>;>etc/supervisord/supervisord.conf
echo"files=conf.d/*.conf">;>etc/supervisord/supervisord.conf
nano/etc/supervisord/supervisord.conf
找到一行inet_http_server并取消注释(节名称),然后 第一行,类似于"port=127.0.0.1:9001"
systemctl start supervisord
systemctl enable supervisord
重新启动后自动重新启动
nano/etc/supervisord/conf.d/foryproxy.conf
并填入以下内容
[program:foxyproxy]
directory=/opt/cloudfoxy
command=foxyproxy -s http://127.0.0.1:8081 -c ica
user=root
autostart=true
autorestart=true
stderr_logfile=/var/log/foxyproxy.log
stdout_logfile=/var/log/foxyproxy.log
您可以根据需要调整参数。
重新启动管理器:
systemctl restart supervisord
supervisortl
-是一个客户端,它显示进程的状态-它有如下命令:
- 开始<;名称>;
- 停止<;名称>;
- 重新启动<;名称>;
- 重新读取读取配置文件并显示更改
- 重新加载加载新配置以用于将来的命令
TCP接口
代理的TCP接口开始侦听端口4001。端口可以是
使用命令行参数调整-p<;port>;
。同样,地址
可以使用-s<;url:port>;
设置restful服务器
TCP客户端可以在服务器保持的一段时间内发送多个命令 连接打开,直到其客户端关闭。
每个请求至少包含2行:
- 读卡器标识
- 一个或多个命令-每一个命令在单独的行中
示例1-Abstrakt
><card reader name>"|"
><cmd ID1>:<command1>:<data>:<object>"|"
><cmd ID2>:<command2>:<data>:object"|"
<empty line>
对该请求的后续响应:
<cmd ID1>:<response 1>
<cmd ID2>:<response 2>
@@
示例2
>OMNIKEY AG 3121 USB|
>1:RESET|
>2:APDU|00 A4 00 0C 02 3F 00|
<empty line>
有后续响应
1:6F048400A5009000
2:9000
@@
例3
>*|
>1:ENUM|12
<empty line>
第一行创建一个正则表达式,用于选择一组读卡器, ENUM命令的可选数值参数限制终端数 返回给客户。
有后续响应
1:<base64 string of terminal names separated with "|">
TCP命令
目前有四个命令用于TCP接口:
- 重置-重置特定智能卡
- emptyLine—一个助手命令,它将使代理等待一个空的新行完成对客户端的侦听
- APDU-根据ISO7816规范发送命令
- 枚举-返回具有有效签名证书的智能卡读卡器列表-读卡器的名称为base64 编码,用""分隔
- list-返回所有智能卡读卡器的列表-读卡器的名称以base64编码,用""分隔
- 别名-返回已连接智能卡中证书的名称列表, 名称是base64编码的 包含UTF-8字符;名称用""分隔
- chain-返回特定别名的证书链
- 签名-请求特定智能卡的签名
前三个很低-级别命令,直接发送到智能卡,或 只需返回智能卡名称列表。别名、链和 符号是为特定智能卡定制的抽象命令-EIDAS智能卡 由[http://i ca.cz]出售(i.ca-一家捷克公司)。它们展示了api是如何实现的 扩展的,尽管cloudfoxy restful api也允许定义抽象的 通过协议的命令用简单的json符号定义。
CloudFoxy智能卡
CloudFoxy可以连接通过USB端口连接的智能卡,如 上面的例子,但是我们建造它的主要原因是为了 与CloudFoxy硬件平台的接口,该平台最多可承载120个智能卡。
cloudfoxy restful服务器可以连接到其中的多个服务器并提供访问 成千上万的智能卡。
CloudFoxy智能卡的名称格式如下:
"CloudFoxy " | <IP address> | "@" | <id> - example "CloudFoxy 192.168.42.10@120"
这是极客/<;IP address>;"@"<;ID>;
的丰富格式,例如/192.168.42.10@120
端到端数据流示例
虽然可以找到cloudfoxy restful api的详细描述 在这里,演示 整个数据流,其中包括:
- 您的应用程序/telnet/script/apduplay(Windows PC/SC库)
- 狐假虎威
- CloudFoxy服务器 < > >
- 响应1:
6f0484005009000
- 响应2:
9000
请求
客户机->;foxyproxy
>CloudFoxy 192.168.42.10@12|
>2342:RESET|
>2343:APDU:00A4040008A00000000300000000|
<empty line>
狐狸精->;云狐静谧
假设restful api在http://restful.cloudfoxy.com:8081 rel="nofollow">http://restful.cloudfoxy.com:8081上运行 地址:
http://restful.cloudfoxy.com:8081/api/v1/basic?复位=1&;端子=%2F192.168.42.10%4012
http://restful.cloudfoxy.com:8081/api/v1/basic?apdu=00a4040008a0000000300000000&terminal=%2f192.168.42.10%4012
*注意:对restful api的每个请求都必须有一个x-auth-token头。秘密 在每个cloudfoxy restful服务器的配置中定义。
响应
cloudfoxy restful返回对每个get请求的响应,它将
如果使用了/api/v1/basic
端点,则是一个简单的文本响应。
云狐静谧->;狐猴
上面有两个请求,它们可以提供单独的响应,如下所示:
FoxyProxy->;客户机
TCP代理将组合响应并将"一体式"消息发送回客户端:
[program:foxyproxy]
directory=/opt/cloudfoxy
command=foxyproxy -s http://127.0.0.1:8081 -c ica
user=root
autostart=true
autorestart=true
stderr_logfile=/var/log/foxyproxy.log
stdout_logfile=/var/log/foxyproxy.log
0
cloudfoxy restful-其他端点
这是关于使用cloudfoxy restful的其他选项的附带说明。如果您使用