c# - 两个应用程序之间的安全密码通信
问题描述
我正在编写一个程序,它就像我的同事在日常工作中需要的瑞士军刀。该工具的一个特点是能够远程连接到客户端并对其进行控制。我们已经有一个名为Dameware Mini Remote Control的应用程序,不是我们编写的,它可以完成这项工作。我的应用程序只是在一个进程中启动这个软件并交出用户名和密码,用户已经预先输入。
在 Dameware Tool 的文档中,它说应该使用以下参数调用该进程:“dwrcc.exe [-?|-?:] [-c:] [-h:] [-m:MachineName] [- u:UserName] [-p:Password | -p:"Password"] [-d:Domain] [-o:TCPport] [-s:SharedSecret] [-r:] [-vnc:] [-a:0 |1|2] [-prxa:MRCproxyAddress] [-prxp:MRCproxyPort] [-prxsMRCproxySecret] [-v:] [-md:] [-i:n] [-x:] [-bh:CentralServerHostAddress] [- bpn: CentralServerPortNumber] [-bu:CentralServerUserName] [-bps:CentralServerUserPassword]"
我担心在 -p 选项中提供密码是不安全的,因为它基本上是纯文本。
这是我提供命令行参数的代码部分:
proc.StartInfo.Arguments = $"-c: -h: -x: -m:{TxtHostname} -d:{MainUI.Credentials.DomainName} -u:{MainUI.Credentials.UserName} -p:{LoginCredentials.Decrypt(MainUI.Credentials.EncryptedPassword)}";
是否有一种安全的方式将密码移交给进程内的 Dameware 应用程序?
非常感谢任何建议。
解决方案
这一般是不可能的。如果唯一的选择是通过命令行参数传递密码,那么您只有这个选项。
但是,如果目标应用程序支持另一种接收密码的方式,那将是可能的。这是特定于应用程序的,并不适用于每个应用程序。
由于我对 Dameware Mini Remote Control 不熟悉,因此我无法判断在这种特定情况下是否存在这样的选项。
推荐阅读
- python - django.core.exceptions.FieldError:为 TblDetails 指定了未知字段(类别)?
- github - 如何使用 GitHub Actions 将标签部署到 Netlify?
- python - 如何在python中修复字符串长度
- react-redux - 如何与 Redux 一起在 react-testing-library 中传递来自 react-i18next 的 i18n 翻译对象?
- firebase - 有没有办法将外部 API 数据导入 Firebase 数据库?
- spring - Spring:FactoryBean 与 @Configuration
- javascript - 从可以单独打开和关闭的循环内创建多个模态
- python - 检测使用 Canny 边缘检测提取的边缘数量
- angular - 为什么变量没有被更新?
- webpack - 在 webpack 中添加第三方库