考虑到现代处理能力,这样做当然是可行的,但出于几个原因,这是个坏主意。
首先,您可以使用证书对服务器进行身份验证,但是客户端呢?您可以使用客户端证书 - 管理起来有问题,或者您可以每次在客户端生成一个密钥对(慢)并在建立安全会话后使用密码对客户端进行身份验证。另一方面,AES 只需要一个短密钥,并在现代 x86 和 AMD 处理器的指令集级别提供支持。
其次,从您正在寻找 RSA 的事实来看,因为您需要一个“非常安全的解决方案”,您应该知道 RSA-2048 实际上不如 AES-128 安全。2048 位的 RSA 密钥相当于大约 112 位的对称密钥强度。见这里。
最后,AES 等对称方案中的密钥交换问题通常使用 RSA 或 DHKE 等非对称方案来解决。所以你应该做的是使用公共加密方案来交换对称密钥,然后对其余数据使用强对称密码——这正是 TLS 所做的。
HTTPS 是最著名的应用层协议——它将 HTTP 堆叠在 TLS 之上。TLS 得到广泛支持,OpenSSL可能是当今使用最流行的库,并且在所有主要平台上都受支持,请使用它。
编辑 1:银行不只是应用 SSL 安全性,因为他们意识到 SSL 并不能解决所有问题 - 有些问题并不打算解决。例如,它对网络钓鱼或会话窃取毫无用处。银行身份验证机制的目的不是检查与之交谈的人是否知道密码,而是检查此人是否是您。这也意味着确保连接来自一个公认的 IP 地址,有时让您回答安全问题,并要求您使用所谓的 SiteKeys 确保您识别银行网站。
编辑 2:您无法确保信息没有被第三方截获。您可以期望的最好结果是它们无法将您的数据与完全随机的字节流区分开来,这是每个网络安全协议的目标。一些方案还尝试隐藏实际的源地址和目标地址,例如 IPsec,但这并不常见。