socks5认证过程

  • 过程
    • 客户端发起请求
      • 无认证客户端发送
      • 账户密码认证客户端发送
    • 服务端验证
    • 命令过程
  • 参考文章

过程

客户端发起请求

 客户端连到服务器后,然后就发送请求来协商版本和认证方法:**客户端** 请求第一步+----+----------+----------+ | VER|NMETHODS  | METHODS  |+----+----------+----------+ | 1  |    1     | 1 - 255  |+----+----------+----------+ VER 表示版本号:sock5 为 X'05'NMETHODS(方法选择)中包含在METHODS(方法)中出现的方法标识的数据(用字节表示)目前定义的METHOD有以下几种:X'00'  无需认证X'01'  通用安全服务应用程序(GSSAPI)X'02'  用户名/密码 auth (USERNAME/PASSWORD)X'03'- X'7F' IANA 分配(IANA ASSIGNED) X'80'- X'FE' 私人方法保留(RESERVED FOR PRIVATE METHODS) X'FF'  无可接受方法(NO ACCEPTABLE METHODS) **服务器** 响应第一步服务器从客户端发来的消息中选择一种方法作为返回服务器从METHODS给出的方法中选出一种,发送一个METHOD(方法)选择报文:+----+--------+ |VER | METHOD | +----+--------+ |0x05|  0x00 | +----+--------+

无认证客户端发送

  +----+--------+ |VER | METHOD | +----+--------+ | 1 |  0   | +----+--------+

账户密码认证客户端发送

  +----+------+----------+------+----------+|VER | ULEN |  UNAME   | PLEN |  PASSWD  |+----+------+----------+------+----------+|0x05|  1   | 1 to 255 |  1   | 1 to 255 |+----+------+----------+------+----------+

VERSION 认证子协商版本(与SOCKS协议版本的0x05无关系)
USERNAME_LENGTH 用户名长度
USERNAME 用户名字节数组,长度为USERNAME_LENGTH
PASSWORD_LENGTH 密码长度
PASSWORD 密码字节数组,长度为PASSWORD_LENGTH

服务端验证

  +----+--------+|VER | STATUS |+----+--------+|0x05|   1    |+----+--------+

VERSION 认证子协商版本,与客户端VERSION字段一致
STATUS 认证结果
0x00 认证成功
大于0x00 认证失败

命令过程

 一旦方法选择子商议结束,客户机就发送请求细节。如果商议方法包括了完整性检查的目的或机密性封装,则请求必然被封在方法选择的封装中。 SOCKS请求如下表所示:+----+-----+-------+------+----------+----------+ | VER| CMD | RSV   | ATYP |  DST.ADDR|  DST.PORT|+----+-----+-------+------+----------+----------+ | 1  | 1   | X'00' | 1    | variable |      2   |+----+-----+-------+------+----------+----------+ 各个字段含义如下:VER  版本号X'05'CMD:  1. CONNECT X'01'2. BIND    X'02'3. UDP ASSOCIATE X'03'RSV  保留字段ATYP IP类型 1.IPV4 X'01'2.DOMAINNAME X'03'3.IPV6 X'04'DST.ADDR 目标地址 1.如果是IPv4地址,这里是big-endian序的4字节数据2.如果是FQDN,比如"www.nsfocus.net",这里将是:0F 77 77 77 2E 6E 73 66 6F 63 75 73 2E 6E 65 74注意,没有结尾的NUL字符,非ASCIZ串,第一字节是长度域3.如果是IPv6地址,这里是16字节数据。DST.PORT 目标端口(按网络次序排列) **sock5响应如下:**OCKS Server评估来自SOCKS Client的转发请求并发送响应报文:+----+-----+-------+------+----------+----------+|VER | REP |  RSV  | ATYP | BND.ADDR | BND.PORT |+----+-----+-------+------+----------+----------+| 1  |  1  | X'00' |  1   | Variable |    2     |+----+-----+-------+------+----------+----------+VER  版本号X'05'REP  1. 0x00        成功2. 0x01        一般性失败3. 0x02        规则不允许转发4. 0x03        网络不可达5. 0x04        主机不可达6. 0x05        连接拒绝7. 0x06        TTL超时8. 0x07        不支持请求包中的CMD9. 0x08        不支持请求包中的ATYP10. 0x09-0xFF   unassignedRSV         保留字段,必须为0x00ATYP        用于指明BND.ADDR域的类型BND.ADDR    CMD相关的地址信息,不要为BND所迷惑BND.PORT    CMD相关的端口信息,big-endian序的2字节数据

参考文章

https://www.cnblogs.com/yinzhengjie/p/7357860.html
https://blog.csdn.net/suifengdeshitou/article/details/48782667
https://www.ddhigh.com/2019/08/24/socks5-protocol.html
https://www.ietf.org/rfc/rfc1928.txt
https://www.ietf.org/rfc/rfc1929.txt

socks5认证过程相关推荐

  1. SSL/TSL双向认证过程与Wireshark抓包分析

    原博文 1. SSL/TSL基本知识 (1)SSL/TLS协议运行机制:https://blog.csdn.net/fw0124/article/details/40873253 (2)图解SSL/T ...

  2. shiro登录认证过程讲解(转)

    先粘出登录的代码 @RequestMapping(value="/submitLogin",method = RequestMethod.POST)@ResponseBodypub ...

  3. aka鉴权 ims_ims 注册鉴权认证过程

    移动通信的安全问题正越来越多地受到关注.2G网络主要传输语音业务,采用的是单向的用户认证方案,即网络能够验证用户身份是否合法,而用户无法确认其所连接的网络服务是否可靠.然而,3G网络将会演变成一个覆盖 ...

  4. ASP.NET : Kerberos网络认证过程

    今天抽时间初略学习了一下kerberos网络认证过程,作为笔记整理如下,希望与大家分享. 一.Kerberos初步定义: Kerberos这一名词来源于希腊神话"三个头的狗--地狱之门守护者 ...

  5. ASP.NET Core Identity 实战(3)认证过程

    如果你没接触过旧版Asp.Net Mvc中的 Authorize 或者 Cookie登陆,那么你一定会疑惑 认证这个名词,这太正式了,这到底代表这什么? 获取资源之前得先过两道关卡Authentica ...

  6. 服务器双向认证 原理,什么叫SSL双向认证 SSL双向认证过程是怎样的

    我们都知道SSL认证能够分成SSL双向认证和SSL单向认证.那么,什么是SSL双向认证?SSL双向认证过程又是怎样的?小编就在接下来的内容为各位详细讲述. 什么叫SSL双向认证 SSL双向认证则是需要 ...

  7. H3C批量收集服务器信息,H3C设备服务器采集参数认证过程(包含redfish和restfull协议)...

    该脚本针对H3C服务器分别对redfish和restfull两种协议的认证方式进行测试,并合并. 有三个类,分别是redfish协议测试.restfull协议测试.以及两个合并测试 文章最后使用red ...

  8. Kerberos认证过程学习理解

    概念: Kerberos服务器:AS认证服务器,TGS服务授权服务器 Client 客户端,代表使用应用的用户 AppServer 服务端,应用提供各种服务的服务器 Client在Kerberos注册 ...

  9. wifi认证过程wpa/wpa2

    今天总结一下前段看协议,关于PSK(pre-shared key)方式下wpa/wpa2的认证过程. 1.RSNE 首先,在beacon或probe response帧中,带有RSNE字段,内容如下: ...

  10. android 除了webview 浏览器控件,android开发我的新浪微博客户端-OAuth认证过程中用WebView代替原来的系统自带浏览器...

    前面的文章的OAuth认证过程在获取oauth_verifier码是是通过调用android系统带的浏览器进行用户授权认证的, 具体见:android开发我的新浪微博客户端-用户授权页面功能篇(3.2 ...

最新文章

  1. Swift中依赖注入的解耦策略
  2. webpack 项目使用 html-webpack-plugin(3)
  3. checkbox选中和不选中_我的lt;input /gt;不可能这么可爱
  4. busybox filesystem httpd php-5.5.31 sqlite3 webserver
  5. onethink封装arclist调用文章列表!
  6. python3.6安装scrapy-python3.6 安装scrapy
  7. Spring-AOP 混合使用各种切面类型及不同切面总结
  8. gridcontrol 控件的用法
  9. 小汤学编程之JavaEE学习day08——Maven
  10. 防火墙上开放Oracle服务端口1521的方法
  11. Android BLE(2)---蓝牙学习
  12. android 33 对话框控件
  13. 记一次星环大数据tdh集群中因某节点systemd服务进程bug而引起大数据集群异常问题的排查与修复...
  14. echarts 世界地图标点_echarts中国地图3D各个城市标点demo
  15. 最强PostMan使用教程(7)postman做数字签名认证
  16. 最优化——阻尼牛顿法
  17. win10显示桌面计算机图标怎么删除,怎么设置显示或隐藏win10系统桌面上的我的电脑图标...
  18. 思科vPC (Virtual Por Channel)
  19. 如何屏蔽chrome浏览器内自带广告
  20. HCIP-IoT 芯片与模组

热门文章

  1. 郝斌C语言开篇 C语言简介
  2. 宏定义的黑魔法 - 宏菜鸟起飞手册
  3. 服务器机柜设备信息卡,信息机房标识标准V.doc
  4. MT7621芯片技术资料分析,MT7621数据表原理图
  5. ssh 登录linux xsell 登录Linux 提示用户密钥登录怎么解决
  6. 【第十届泰迪杯B题电力负荷预测代码】
  7. 海康威视4200服务器显示资源不足,硬盘录像机提示“资源不足”是什么原因 -
  8. excel查标准正态分布_利用Excel的NORMSDIST计算正态分布函数表
  9. 医院信息化建设(2)---医疗业务
  10. 一键删除越狱环境方法教程,uncOvre4.0.2发布了