Answers:
您必须在发送之前加密消息文本。
之前,PGP加密的消息直接包含在消息正文中。这很简单,允许使用缺乏内置PGP支持的程序,但有自己的问题。
将邮件正文(没有标题)放到body.txt
。
gpg --armor --recipient recipient@example.com --encrypt < body.txt > body.gpg
(或gpg -a -r .... -e
)
打开SMTP会话,发送通常的信封和标题,并简单地包含body.gpg
作为邮件正文的内容。
例:
DATA 354发送消息 主题:加密消息 内容类型:text / plain; 字符集= utf-8的 -----开始PGP消息----- 版本:GnuPG v1.4.11(GNU / Linux) owE7bZ3E4C / NHB6SkVmsUJ5YnKdeolCUmpiTU6mQmpdcVFlQkpqio5BUWqJQmV + Q kJ5aolCSkapQkJ + ZV6LHBQA = = JTcg -----结束PGP消息----- 。 250排队
现在,大多数邮件客户端都会创建一个如下所示的多部分MIME邮件:
Subject: Encrypted message
Content-Type: multipart/encrypted;
protocol="application/pgp-encrypted";
boundary="5mzSFVMjvq1PjxJCWywcUUnUEVIaXOtp"
--5mzSFVMjvq1PjxJCWywcUUnUEVIaXOtp
Content-Type: application/pgp-encrypted
Version: 1
--5mzSFVMjvq1PjxJCWywcUUnUEVIaXOtp
Content-Type: application/octet-stream
-----BEGIN PGP MESSAGE-----
Version: GnuPG v1.4.11 (GNU/Linux)
owE7bZ3E4C/NHB6SkVmsUJ5YnKdeolCUmpiTU6mQmpdcVFlQkpqio5BUWqJQmV+q
kJ5aolCSkapQkJ+ZV6LHBQA=
=JTcg
-----END PGP MESSAGE-----
--5mzSFVMjvq1PjxJCWywcUUnUEVIaXOtp--
不要为此烦恼,让MUA做。
Saying telnet
暗示了两件事之一
您正在使用telnet在Unix服务器上打开shell会话并使用它的命令行工具,例如mail
。
您正在使用telnet打开SMTP会话到SMTP服务器并手动键入SMTP命令。
我会假设前者。
在最简单的级别,您可以加密消息正文,并在必要时,在调用mail命令之前转换为合适的编码,如base64。
echo "Send reinforcements" \
| gpg -e -a -r 12345 \
| mail -s "C company" powell@example.com
更新:确定,以便您手动将SMTP命令键入SMTP服务器。
了解如何序列化附件。阅读RFC附件的MIME附件。使用Thunderbird查看具有小附件(Ctrl+ uIIRC)的短消息来源。查找二进制附件编码的各种方式,以便它们可以通过7位ASCII或8位通道。
您可以将附件创建为外部文件。即使是rot13也能充分证明这一过程。然后你只需要弄清楚要键入的MIME等标题以及如何在telnet会话期间粘贴到合适的编码加密附件中。
许多电子邮件客户端(如Microsoft Outlook)支持加密。加密和解密是电子邮件客户端的工作,而不是传输机制。
为了澄清,Telnet是一种网络协议(http://en.wikipedia.org/wiki/Telnet),就像TCP一样。该协议与加密无关。大多数邮件客户端使用TCP / IP通过互联网发送和接收电子邮件。邮件客户端用于向服务器发送电子邮件的一种常用协议是简单邮件传输协议(SMTP)。当发送加密的电子邮件时,必须在将消息交给协议之前进行加密。
您使用的是哪个电子邮件客户端 它支持加密吗?如果没有,也许你应该尝试使用不同的电子邮件客户端。
支持这一点的众多免费客户之一是Eudora。以下是有关如何设置的说明:http://www.ncsa.illinois.edu/people/hkhurana/mithril/Help-SecureEmail.htm
Mozilla Thunderbird是一个开源免费客户端,也支持这一点。