【问题标题】:How to ensure secure socket communication using Chrome Packaged App如何使用 Chrome 打包应用程序确保安全的套接字通信
【发布时间】:2014-04-25 13:37:34
【问题描述】:

我正在开发一个 Chrome 打包应用程序,它是一个通过 TCP 向外部 tcp 服务器发送数据的客户端应用程序。

如何确保我连接的套接字使用 TLS?在客户端连接中的什么时候,我需要添加一个参数来启用它?证书如何/在哪里存储?我需要手动处理还是 Chrome 会帮我处理?

这是我的代码示例:

chrome.app.runtime.onLaunched.addListener(function(launchData){
    chrome.sockets.tcp.create({persistent: false, name: 'my_socket'}, function(createInfo) {
        var socketId = createInfo.socketId;
        chrome.storage.local.set({socketId: socketId}, function(){
            chrome.sockets.tcp.connect(socketId, IP_ADDRESS, PORT, function(result){
                if (result < 0){
                    // There was an error.
                } else {
                    chrome.sockets.tcp.setKeepAlive(socketId, true, 60, function(result){
                        if (result < 0){
                            // There was an error.
                        } else {
                            chrome.sockets.tcp.send(socketId, myData, function(sendInfo){
                                if (!sendInfo || sendInfo.resultCode < 0){
                                    // There was an error.
                                } else {
                                    // Data Sent, await response in chrome.sockets.tcp.onReceive
                                }
                            });
                        }
                    });
                }
            });
        });
    });
});

【问题讨论】:

  • 据我所知,TLS 是应用层,所以你的问题不正确。要使用 TLS,您需要在您的应用中实现它。

标签: javascript sockets google-chrome tcp google-chrome-app


【解决方案1】:

chrome.socket 不提供内置 SSL 支持(无论如何,请参阅http://crbug.com/132896),您需要在应用程序中添加 SSL 编码/解码。一旦建立 TCP 连接,您就可以开始 SSL 协商(即在 chrome.sockets.tcp.connect 调用您的回调函数之后)。

我最近使用在 JS 中实现 SSL 的 forge javascript library 向 CIRC 添加了 SSL 支持。您可以在此处查看 CIRC 中 chrome 套接字连接的完整包装:https://github.com/flackr/circ/blob/master/package/bin/net/ssl_socket.js

请注意,我实际上并没有添加身份验证,请参阅verify: options.verify || function() { return true },但这可以替换为适当的验证功能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-07
    相关资源
    最近更新 更多