组织:中国互动出版网(http://www.china-pub.com/) RFC文档中文翻译计划(http://www.china- pub.com/compters/emook/aboutemook.htm) E-mail:ouyang@china-pub.com 译者:Radeon(Radeon bise@cmmail.com) 译文发布时间:2001-6-18 版权:本中文翻译文档版权归中国互动出版网所有。可以用于非商业用途自由转载, 但必须保留本文档的翻译及版权信息。 Network Working Group M. Leech Request for Comments:1929 Bell-Northern Research Ltd Category: Standard Track M. Ganis International Business Machines Y. Lee NEC Systems Laboratory R. Kuris Unify Corporation D. Koblas Independent Consultant L. Jones Hewlett-Packard Company March 1996 SOCKS V5 本备忘录状态: 本文档讲述了一种Internet社区的Internet标准跟踪协议,它需要进一步进行讨论和建议以 得到改进。请参考最新版的“Internet正式协议标准” (STD1)来获得本协议的标准化程度和状 态。本备忘录的发布不受任何限制。 知识背景 这个备忘录描述了从同一协议的前一版本(版本4[1])发展而来的一个协议。这个新的协议起 源于当前的一些讨论和原型的实现(active discussions and prototype implementations)。关键的贡 献人有:Marcus Leech: Bell-Northern Research, David Koblas: Independent Consultant, Ying-Da Lee: NEC Systems Laboratory, LaMont Jones: Hewlett-Packard Company, Ron Kuris: Unify Corporation, Matt Ganis: International Business Machines。 目录 1.介绍 2 2.现有的协议 2 3.基于TCP协议的客户 3 4.请求 3 5.地址 4 6.应答 4 7.基于UDP协议的客户 6 8. 安全性考虑 7 9. 参考书目 7 1.介绍 利用网络防火墙可以将组织内部的网络结构从外部网络如INTERNET中有效地隔离,这种方法 在许多网络系统中正变得流行起来。这种防火墙系统通常以应用层网关的形式工作在两个网络之 间,提供TELNET、FTP、SMTP等的接入。随着越来越多的使全球信息查找更容易的复杂的应用层协 议的出现,有必要提供一个通用框架来使这些协议安全透明地穿过防火墙。而且在实际应用中还需 要一种安全的认证方式用以穿越防火墙。这个要求起源于两个组织的网络中客户/服务器关系的出 现,这个关系需要得到控制并要求有安全的认证。 在这儿所描述的协议框架是为了让使用TCP和UDP的客户/服务器应用程序更方便安全地使用 网络防火墙所提供的服务所设计的。这个协议从概念上来讲是介于应用层和传输层之间的“中介层 (shim-layer)”,因而不提供如传递ICMP信息之类由网络层网关的所提供的服务。 2.现有的协议 当前存在一个协议SOCKS 4,它为TELNET、FTP、HTTP、WAIS和GOPHER等基于TCP协议的客 户/服务器程序提供了一个不安全的防火墙。而这个新的协议扩展了SOCKS V4,以使其支持UDP、 框架规定的安全认证方案、地址解析方案(addressing scheme)中所规定的域名和IPV6。为了实现 这个SOCKS协议,通常需要重新编译或者重新链接基于TCP的客户端应用程序以使用SOCKS库中相 应的加密函数。 注意: 除非特别注明,所有出现在数据包格式图中的十进制数字均以字节表示相应域的长度。如 果某域需要给定一个字节的值,用X'hh'来表示这个字节中的值。如果某域中用到单 词'Variable',这表示该域的长度是可变的,且该长度定义在一个和这个域相关联(1 – 2 个字节)的域中,或一个数据类型域中。 3.基于TCP协议的客户 当一个基于TCP协议的客户端希望与一个只能通过防火墙可以到达的目标(这是由实现所决定 的)建立连接,它必须先建立一个与SOCKS服务器上SOCKS端口的TCP连接。通常这个TCP端口是 1080。当连接建立后,客户端进入协议的“握手(negotiation)”过程:认证方式的选择,根据选 中的方式进行认证,然后发送转发的要求。SOCKS服务器检查这个要求,根据结果,或建立合适的 连接,或拒绝。 除非特别注明,所有出现在数据包格式图中的十进制数字均以字节表示相应域的长度。如果某 域需要给定一个字节的值,用X'hh'来表示这个字节中的值。如果某域中用到单 词'Variable',这表示该域的长度是可变的,且该长度定义在一个和这个域相关联(1 – 2个 字节)的域中,或一个数据类型域中。 客户端连到服务器后,然后就发送请求来协商版本和认证方法: VER NMETHODS METHODS 1 1 1 to 255 这个版本的SOCKS协议中,VER字段被设置成X'05'。NMETHODS字段包含了在METHODS字段中 出现的方法标示的数目(以字节为单位)。 服务器从这些给定的方法中选择一个并发送一个方法选中的消息回客户端: VER METHOD 1 1 如果选中的消息是X'FF',这表示客户端所列出的方法列表中没有一个方法被选中,客户端 必须关闭连接。 当前定义的方法有: ? X'00' 不需要认证 ? X'01' GSSAPI ? X'02' 用户名/密码 ? X'03' -- X'7F' 由IANA分配 ? X'80' -- X'FE' 为私人方法所保留的 ? X'FF' 没有可以接受的方法 然后客户和服务器进入由选定认证方法所决定的子协商过程(sub-negotiation)。各种不同的 方法的子协商过程的描述请参考各自的备忘录。 开发者如果要为自己的方法得到一个方法号,可以联系IANA。可以参考关于已经被分配号码 的文档以得到当前所有方法的列表和相应的协议。 符合本文档的SOCKS V5实现必须支持GSSAPI,并且在将来支持用户名/密码认证方式。 4.请求 一旦子协商过程结束后,客户端就发送详细的请求信息。如果协商的方法中有以完整性检查和 /或安全性为目的的封装,这些请求必须按照该方法所定义的方式进行封装。 SOCKS请求的格式如下: VER CMD RSV ATYP DST.ADDR DST.PORT 1 1 X'00' 1 Variable 2 其中 ? VER 协议版本: X'05' ? CMD ? CONNECT:X'01' ? BIND:X'02' ? UDP ASSOCIATE:X'03' ? RSV 保留 ? ATYP 后面的地址类型 ? IPV4:X'01' ? 域名:X'03' ? IPV6:X'04'' ? DST.ADDR 目的地址 ? DST.PORT 以网络字节顺序出现的端口号 SOCKS服务器会根据源地址和目的地址来分析请求,然后根据请求类型返回一个或多个应答。 5.地址 ATYP字段中描述了地址字段(DST.ADDR,BND.ADDR)所包含的地址类型: ? X'01' 基于IPV4的IP地址,4个字节长 ? X'03' 基于域名的地址,地址字段中的第一字节是以字节为单位的该域名的长度,没有结尾的NUL字 节。 ? X'04' 基于IPV6的IP地址,16个字节长 6.应答 一旦建立了一个到SOCKS服务器的连接,并且完成了认证方式的协商过程,客户机将会发送一 个SOCKS请求信息给服务器。服务器将会根据请求,以如下格式返回: VER REP RSV ATYP BND.ADDR BND.PORT 1 1 X'00' 1 Variable 2 其中: ? VER 协议版本: X'05' ? REP 应答字段: ? X'00' 成功 ? X'01' 普通的SOCKS服务器请求失败 ? X'02' 现有的规则不允许的连接 ? X'03' 网络不可达 ? X'04' 主机不可达 ? X'05' 连接被拒 ? X'06' TTL超时 ? X'07' 不支持的命令 ? X'08' 不支持的地址类型 ? X'09' – X'FF' 未定义 ? RSV 保留 ? ATYP 后面的地址类型 ? IPV4:X'01' ? 域名:X'03' ? IPV6:X'04' ? BND.ADDR 服务器绑定的地址 ? BND.PORT 以网络字节顺序表示的服务器绑定的段口 标识为RSV的字段必须设为X'00'。 如果选中的方法中有以完整性检查和/或安全性为目的的封装,这些应答必须按照该方法所定 义的方式进行封装。 CONNECT 在对一个CONNECT命令的应答中,BND.PORT包含了服务器分配的用来连到目标机的端口号, BND.ADDR则是相应的IP地址。由于SOCKS服务器通常有多个IP,应答中的BND.ADDR常和客户端 连到SOCKS服务器的那个IP不同。 SOCKS服务器可以利用DST.ADDR和DST.PORT,以及客户端源地址和端口来对一个CONNECT请 求进行分析。 BIND BIND请求通常被用在那些要求客户端接受来自服务器的连接的协议上。FTP是一个典型的例 子。它建立一个从客户端到服务器端的连接来执行命令以及接收状态的报告,而使用另一个从服务 器到客户端的连接来接收传输数据的要求(如LS,GET,PUT)。 建议只有在一个应用协议的客户端在使用CONNECT命令建立主连接后才可以使用BIND命令建 立第二个连接。建议SOCKS服务器使用DST.ADDR和DST.PORT来评价BIND请求。 在一个BIND请求的操作过程中,SOCKS服务器要发送两个应答给客户端。当服务器建立并绑 定一个新的套接口时发送第一个应答。BND.PORT字段包含SOCKS服务器用来监听进入的连接的端 口号,BAND.ADDR字段包含了对应的IP地址。客户端通常使用这些信息来告诉(通过主连接或控 制连接)应用服务器连接的汇接点。第二个应答仅发生在所期望到来的连接成功或失败之后。在第 二个应答中,BND.PORT和BND.ADDR字段包含了连上来的主机的IP地址和端口号。 UDP ASSOCIATE UDP ASSOCIATE请求通常是要求建立一个UDP转发进程来控制到来的UDP数据报。DST.ADDR和 DST.PORT 字段包含客户端所希望的用来发送UDP数据报的IP地址和端口号。服务器可以使用这个 信息来限制进入的连接。如果客户端在发送这个请求时没有地址和端口信息,客户端必须用全0来 填充。 当与UDP相应的TCP连接中断时,该UDP连接也必须中断。 应答UDP ASSOCIATE请求时,BND.PORT 和BND.ADDR字段指明了客户发送UDP消息至服务器的 端口和地址。 应答处理 当一个应答(REP值不等于00)指明出错时,SOCKS服务器必须在发送完应答消息后一小段时间 内终止TCP连接。这段时间应该在发现错误后少于10秒。 如果一个应答(REP值等于00)指明成功,并且请求是一个BIND或CONNECT时,客户端就可以 开始发送数据了。如果协商的认证方法中有以完整性、认证和/或安全性为目的的封装,这些请求 必须按照该方法所定义的方式进行封装。类似的,当以客户机为目的地的数据到达SOCKS服务器 时,SOCKS服务器必须用正在使用的方法对这些数据进行封装。 7.基于UDP协议的客户 在UDP ASSOCIATE应答中由BND.PORT指明了服务器所使用的UDP端口,一个基于UDP协议的 客户必须发送数据报至UDP转发服务器的该端口上。如果协商的认证方法中有以完整性、认证和/ 或安全性为目的的封装,这些数据报必须按照该方法所定义的方式进行封装。每个UDP数据报都有 一个UDP请求头在其首部: RSV FRAG ATYP DST.ADDR DST.PORT DATA 2 1 1 Variable 2 Variable 在UDP请求头中的字段是: ? RSV 保留 X'0000' ? FRAG 当前的分段号 ? ATYP 后面的地址类型 ? IPV4:X'01' ? 域名:X'03' ? IPV6:X'04' ? DST.ADDR 目的地址 ? DST.PORT 以网络字节顺序出现的端口号 ? DATA 用户数据 当一个UDP转发服务器转发一个UDP数据报时,不会发送任何通知给客户端;同样,它也将丢 弃任何它不能发至远端主机的数据报。当UDP转发服务器从远端服务器收到一个应答的数据报时, 必须加上上述UDP请求头,并对数据报进行封装。 UDP转发服务器必须从SOCKS服务器得到期望的客户端IP地址,并将数据报发送到UDP ASSOCIATE应答中给定的端口号。如果数据报从任何IP地址到来,而该IP地址与该特定连接中指 定的IP地址不同,那么该数据报会被丢弃。 FRAG字段指明数据报是否是一些分片中的一片。如果SOCKS服务器要实现这个功能,X'00' 指明数据报是独立的;其他则越大越是数据报的尾端。介于1到127之间的值说明了该分片在分片 序列里的位置。每个接收者都为这些分片提供一个重组队列和一个重组的计时器。这个重组队列必 须在重组计时器超时后重新初始化,并丢弃相应的数据报。或者当一个新到达的数据报有一个比当 前在处理的数据报序列中最大的FRAG值要小时,也必须重新初始化从组队列。重组计时器必须小 于5秒。只要有可能,应用程序最好不要使用分片。 分片的实现是可选的;如果某实现不支持分片,所有FRAG字段不为0的数据报都必须被丢 弃。 一个SOCKS的UDP编程界面(The programming interface for a SOCKS-aware UDP)必须报告 当前可用UDP数据报缓存空间小于操作系统提供的实际空间。 ? 如果 ATYP是 X'01' - 10+method_dependent octets smaller ? 如果 ATYP是X'03' - 262+method_dependent octets smaller ? 如果 ATYP是X'04' - 20+method_dependent octets smaller 8. 安全性考虑 这篇文档描述了一个用来透过IP网络防火墙的应用层协议。这种传输的安全性在很大程度上 依赖于特定实现所拥有以及在SOCKS客户与SOCKS服务器之间经协商所选定的特殊的认证和封装方 式。 系统管理员需要对用户认证方式的选择进行仔细考虑。 9. 参考书目 [1] Koblas, D., "SOCKS", Proceedings: 1992 Usenix Security Symposium. 作者地址 Marcus Leech Bell-Northern Research Ltd P.O. Box 3511, Station C Ottawa, ON CANADA K1Y 4H7 Phone: (613) 763 - 9145 EMail: mleech@bnr.ca RFC1929——SOCKETS V5 SOCKETS V5 RFC文档中文翻译计划
京东创始人刘强东和其妻子章泽天最近成为了互联网舆论关注的焦点。有关他们“移民美国”和在美国购买豪宅的传言在互联网上广泛传播。然而,京东官方通过微博发言人发布的消息澄清了这些传言,称这些言论纯属虚假信息和蓄意捏造。
日前,据博主“@超能数码君老周”爆料,国内三大运营商中国移动、中国电信和中国联通预计将集体采购百万台规模的华为Mate60系列手机。
据报道,荷兰半导体设备公司ASML正看到美国对华遏制政策的负面影响。阿斯麦(ASML)CEO彼得·温宁克在一档电视节目中分享了他对中国大陆问题以及该公司面临的出口管制和保护主义的看法。彼得曾在多个场合表达了他对出口管制以及中荷经济关系的担忧。
今年早些时候,抖音悄然上线了一款名为“青桃”的 App,Slogan 为“看见你的热爱”,根据应用介绍可知,“青桃”是一个属于年轻人的兴趣知识视频平台,由抖音官方出品的中长视频关联版本,整体风格有些类似B站。
日前,威马汽车首席数据官梅松林转发了一份“世界各国地区拥车率排行榜”,同时,他发文表示:中国汽车普及率低于非洲国家尼日利亚,每百户家庭仅17户有车。意大利世界排名第一,每十户中九户有车。
近日,一项新的研究发现,维生素 C 和 E 等抗氧化剂会激活一种机制,刺激癌症肿瘤中新血管的生长,帮助它们生长和扩散。
据媒体援引消息人士报道,苹果公司正在测试使用3D打印技术来生产其智能手表的钢质底盘。消息传出后,3D系统一度大涨超10%,不过截至周三收盘,该股涨幅回落至2%以内。
9月2日,坐拥千万粉丝的网红主播“秀才”账号被封禁,在社交媒体平台上引发热议。平台相关负责人表示,“秀才”账号违反平台相关规定,已封禁。据知情人士透露,秀才近期被举报存在违法行为,这可能是他被封禁的部分原因。据悉,“秀才”年龄39岁,是安徽省亳州市蒙城县人,抖音网红,粉丝数量超1200万。他曾被称为“中老年...
9月3日消息,亚马逊的一些股东,包括持有该公司股票的一家养老基金,日前对亚马逊、其创始人贝索斯和其董事会提起诉讼,指控他们在为 Project Kuiper 卫星星座项目购买发射服务时“违反了信义义务”。
据消息,为推广自家应用,苹果现推出了一个名为“Apps by Apple”的网站,展示了苹果为旗下产品(如 iPhone、iPad、Apple Watch、Mac 和 Apple TV)开发的各种应用程序。
特斯拉本周在美国大幅下调Model S和X售价,引发了该公司一些最坚定支持者的不满。知名特斯拉多头、未来基金(Future Fund)管理合伙人加里·布莱克发帖称,降价是一种“短期麻醉剂”,会让潜在客户等待进一步降价。
据外媒9月2日报道,荷兰半导体设备制造商阿斯麦称,尽管荷兰政府颁布的半导体设备出口管制新规9月正式生效,但该公司已获得在2023年底以前向中国运送受限制芯片制造机器的许可。
近日,根据美国证券交易委员会的文件显示,苹果卫星服务提供商 Globalstar 近期向马斯克旗下的 SpaceX 支付 6400 万美元(约 4.65 亿元人民币)。用于在 2023-2025 年期间,发射卫星,进一步扩展苹果 iPhone 系列的 SOS 卫星服务。
据报道,马斯克旗下社交平台𝕏(推特)日前调整了隐私政策,允许 𝕏 使用用户发布的信息来训练其人工智能(AI)模型。新的隐私政策将于 9 月 29 日生效。新政策规定,𝕏可能会使用所收集到的平台信息和公开可用的信息,来帮助训练 𝕏 的机器学习或人工智能模型。
9月2日,荣耀CEO赵明在采访中谈及华为手机回归时表示,替老同事们高兴,觉得手机行业,由于华为的回归,让竞争充满了更多的可能性和更多的魅力,对行业来说也是件好事。
《自然》30日发表的一篇论文报道了一个名为Swift的人工智能(AI)系统,该系统驾驶无人机的能力可在真实世界中一对一冠军赛里战胜人类对手。
近日,非营利组织纽约真菌学会(NYMS)发出警告,表示亚马逊为代表的电商平台上,充斥着各种AI生成的蘑菇觅食科普书籍,其中存在诸多错误。
社交媒体平台𝕏(原推特)新隐私政策提到:“在您同意的情况下,我们可能出于安全、安保和身份识别目的收集和使用您的生物识别信息。”
2023年德国柏林消费电子展上,各大企业都带来了最新的理念和产品,而高端化、本土化的中国产品正在不断吸引欧洲等国际市场的目光。
罗永浩日前在直播中吐槽苹果即将推出的 iPhone 新品,具体内容为:“以我对我‘子公司’的了解,我认为 iPhone 15 跟 iPhone 14 不会有什么区别的,除了序(列)号变了,这个‘不要脸’的东西,这个‘臭厨子’。