大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
最近一段时间都在折腾安全(Security)方面的东西,比如Windows认证、非对称加密、数字证书、数字签名、TLS/SSL、WS-Security等。如果时间允许,我很乐意写一系列的文章与广大网友分享、交流。对于很多读者来说,今天讨论的可能是一个既熟悉、又陌生的话题——Windows认证。目录
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:主机域名、网络空间、营销软件、网站建设、吴起网站维护、网站推广。
一、Kerberos认证简介
四、凭票入场一、Kerberos认证简介Windows认证协议有两种NTLM(NT LAN Manager)和Kerberos,前者主要应用于用于Windows NT 和 Windows 2000 Server(or Later) 工作组环境,而后者则主要应用于Windows 2000 Server(or Later) 域(Domain)环境。Kerberos较之NTLM更高效、更安全,同时认证过程也相对复杂。Kerberos这个名字来源于希腊神话,是冥界守护神兽的名字。Kerberos是一个三头怪兽,之所以用它来命名一种完全认证协议,是因为整个认证过程涉及到三方:客户端、服务端和KDC(Key Distribution Center)。在Windows域环境中,KDC的角色由DC(Domain Controller)来担当。某个用户采用某个域帐号登录到某台主机,并远程访问处于相同域中另一台主机时,如何对访问者和被访问者进行身份验证(这是一种双向的验证)?这就是Kerberos需要解决的场景。接下来我尽量以比较直白的语言来介绍我所知道的Kerberos认证的整个流程。Kerberos实际上是一种基于票据(Ticket)的认证方式。客户端要访问服务器的资源,需要首先购买服务端认可的票据。也就是说,客户端在访问服务器之前需要预先买好票,等待服务验票之后才能入场。在这之前,客户端需要先买票,但是这张票不能直接购买,需要一张认购权证。客户端在买票之前需要预先获得一张认购权证。这张认购权证和进入服务器的入场券均有KDC发售。右图(点击看大图)一张图基本揭示了Kerberos整个认证的过程。二、如何获得“认购权证”?首先,我们来看看客户端如何获得“认购权证”。这里的认购权证有个专有的名称——TGT(Ticket Granting Ticket),而TGT的是KDC一个重要的服务——认证服务(KAS:Kerberos Authentication Service)。当某个用户通过输入域帐号和密码试图登录某台主机的时候,本机的Kerberos服务会向KDC的认证服务发送一个认证请求。该请求主要包括两部分内容,明文形式的用户名和经过加密的用于证明访问者身份的Authenticator(我实在找不到一个比较贴切的中文翻译没,Authenticator在这里可以理解为仅限于验证双反预先知晓的内容,相当于联络暗号)。当KDC接收到请求之后,通过AD获取该用户的信息。通过获取的密码信息生成一个秘钥对Authenticator进行解密。如果解密后的内容和已知的内容一致,则证明请求着提供的密码正确,即确定了登录者的真实身份。KAS成功认证对方的身份之后,会先生成一个用于确保该用户和KDC之间通信安全的会话秘钥——Logon Session Key,并采用该用户密码派生的秘钥进行加密。KAS接着为该用户创建“认购权证”——TGT。TGT主要包含两方面的内容:用户相关信息和Logon Session Key,而整个TGT则通过KDC自己的密钥进行加密。最终,被不同密钥加密的Logon Session Key和TGT返回给客户端。(以上的内容对应流程图中的步骤1、2)三、如何通过“认购权证”购买“入场券”?经过上面的步骤,客户端获取了购买进入同域中其他主机入场券的“认购凭证”——TGT,以及Logon Session Key,它会在本地缓存此TGT和Logon Session Key。如果现在它需要访问某台服务器的资源,它就需要凭借这张TGT向KDC购买相应的入场券。这里的入场券也有一个专有的名称——服务票据(ST:Service Ticket)。具体来说,ST是通过KDC的另一个服务TGS(Ticket Granting Service)出售的。客户端先向TGS发送一个ST购买请求,该请求主要包含如下的内容:客户端用户名;通过Logon Session Key加密的Authenticator;TGT和访问的服务器(其实是服务)名。TGS接收到请求之后,现通过自己的密钥解密TGT并获取Logon Session Key,然后通过Logon Session Key解密Authenticator,进而验证了对方的真实身份。TGS存在的一个根本的目有两点:其一是避免让用户的密码客户端和KDC之间频繁传输而被窃取。其二是因为密码属于Long Term Key(我们一般不会频繁的更新自己的密码),让它作为加密密钥的安全系数肯定小于一个频繁变换得密钥(Short Term Key)。而这个Short Term Key就是Logon Session Key,它确保了客户端和KDC之间的通信安全。TGS完成对客户端的认证之后,会生成一个用于确保客户端-服务器之间通信安全的会话秘钥——Service Session Key,该会话秘钥通过Logon Session Key进行加密。然后出售给客户端需要的入场券——ST。ST主要包含两方面的内容:客户端用户信息和Service Session Key,整个ST通过服务器密码派生的秘钥进行加密。最终两个被加密的Service Session Key和ST回复给客户端。(以上的内容对应流程图中的步骤3、4)四、凭票入场客户端接收到TGS回复后,通过缓存的Logon Session Key解密获取Service Session Key。同时它也得到了进入服务器的入场券——ST。那么它在进行服务访问的时候就可以借助这张ST凭票入场了。该Serivce Session Key和ST会被客户端缓存。但是,服务端在接收到ST之后,如何确保它是通过TGS购买,而不是自己伪造的呢?这很好办,不要忘了ST是通过自己密码派生的秘钥进行加密的。具体的操作过程是这样的,除了ST之外,服务请求还附加一份通过Service Session Key加密的Authenticator。服务器在接收到请求之后,先通过自己密码派生的秘钥解密ST,并从中提取Service Session Key。然后通过提取出来的Service Session Key解密Authenticator,进而验证了客户端的真实身份。实际上,到目前为止,服务端已经完成了对客户端的验证,但是,整个认证过程还没有结束。谈到认证,很多人都认为只是服务器对客户端的认证,实际上在大部分场合,我们需要的是双向验证(Mutual Authentication)——访问者和被访问者互相验证对方的身份。现在服务器已经可以确保客户端是它所声称的那么用户,客户端还没有确认它所访问的不是一个钓鱼服务呢。为了解决客户端对服务器的验证,服务要需要将解密后的Authenticator再次用Service Session Key进行加密,并发挥给客户端。客户端再用缓存的Service Session Key进行解密,如果和之前的内容完全一样,则可以证明自己正在访问的服务器和自己拥有相同的Service Session Key,而这个会话秘钥不为外人知晓(以上的内容对应流程图中的步骤5、6)以上的内容仅仅讲述的是基于Kerberos的Windows认证的大体流程,并不涉及到一些细节的东西,比如如何确保时间的同步,如何抵御Replay Attack等。此外,由于本文对Windows底层的知识有限,不能确保所有的内容都是完全正确,如有错误,还往不吝指正。Windows安全认证是如何进行的?[NTLM篇]
Windows端有哪些FTP客户端软件值得推荐?
Filezilla
FileZilla是一个免费的 FTP 客户端软件,虽然它是免费软件,可功能却一点也不含糊,比起那些共享软件来有过之而无不及,在新的版本中作者改进了手动下载的界面和功能等,不过该软件暂时还是不支持断点续传功能。总的来说是一款优秀的免费软件。
功能介绍:
1、易于使用
2、支持FTP, FTP并支持SSL/TLS (FTPS)协议,支持SSH文件传输协议(SFTP)
3、跨平台。在 Windows, Linux, *BSD, Mac OS X 和其它平台下运行 more
4、支持IPv6协议
5、多种可用的语言(包含中文)
6、断点续传且支持容量大于4GB的文件
7、多标签用户界面
8、功能强大的站点管理器(Site Manager)和传输队列管理
9、书签功能
10、拖拽功能支持
11、支持传输限速功能
12、文件名过滤器
13、文件夹比较功能
14、网络设置向导
15、远程文件编辑功能
16、保持链接功能
17、支持HTTP/1.1, SOCKS5 和 FTP代理(FTP-Proxy)
18、登录到文件功能
19、同步文件夹浏览
20、远程查找文件
LeapFtp
LeapFTP是一款小巧强大的FTP工具之一,友好的用户界面,稳定的传输速度,LeapFTP与FlashFXP 、CuteFTP堪称FTP 三剑客。FlashFXP传输速度比较快,但有时对于一些教育网FTP站点却无法连接;LeapFTP传输速度稳定,能够连接绝大多数FTP站点(包括一些教育网站点);CuteFTP虽然相对来说比较庞大,但其自带了许多免费的FTP站点,资源丰富。总之来说,三者各有所长。
功能介绍:
1、进行FTP、FXP、SSL的FTP、SFTP、HTTP和HTTPS传输
2、代理支持包括socks4代理/ 5时,HTTP,检查点,WinGate软件,以及其他软件。
3、多用户模式,适应本地,网络和便携式装置
4、上下文敏感和HTML帮助所有窗口和对话框
5、自动更新检查(只有注册用户)
传输功能:
1、多服务器传输引擎
2、基于规则的重复的文件处理
3、高速上传和下载限制
4、自动文件模式对UNIX服务器的可执行文件
5、跳过列表定义文件和文件夹都没有转移
6、保护自动恢复中断传输
7、内嵌压缩为FTP(模式Z)和SSH的
8、调度一次性和经常性转移
高级功能:
1、自定义命令
2、脚本语言
3、会议记录和传输
4、远程监控传输(密码保护的网络门户)
5、外壳扩展创建为上传服务器拖放目标
6、重新映射的端口与路由器端口重定向命令
7、多个界面结合
8、拨号网络接口自动拨号和关闭连接
9、远程目录搜索
10、可调式的TCP / IP缓冲区的大小
11、本地文件散列的CRC32 / MD5的/的SHA1
FlashFXP
FlashFXP是功能强大的FXP/FTP软件。融合了一些其他优秀FTP软件的优点,如像CuteFTP一样可以比较文件夹,支持彩色文字显示;像BpFTP支持多文件夹选择文件,能够缓存文件夹;像LeapFTP一样的外观界面,甚至设计思路也差相仿佛。支持文件夹 (带子文件夹)的文件传送、删除;支持上传、下载及第三方文件续传;可以跳过指定的文件类型,只传送需要的文件;可以自定义不同文件类型的显示颜色;可以缓存远端文件夹列表,支持FTP代理及Socks 45;具有避免空闲功能,防止被站点踢出;可以显示或隐藏“隐藏”属性的文件、文件夹;支持每个站点使用被动模式等。
FlashFXP可用于:
1、发布和维护你的网站。
2、上传和下载文件,照片,视频,音乐和更多!
3、本地和远程文件传输或备份。
4、共享您的文件与您的朋友和同事使用功能强大的站点管理器。
5、我们强大的传输调度安排和自动化文件传输。
软件特色:
1、完全绿色便携化
2、基于官方版本制作,保留中英语言
3、不需要任何注册码,启动就是授权版
4、完善官方没有汉化的一处字符
WinSCP
Winscp是一个windows环境下使用ssh的开源图形化sftp客户端。同时支持scp协议。它的主要功能就是在本地与远程计算机间安全的复制文件。
应用特性:
1、图形用户界面
2、界面多语言,包括简体、繁体中文
3、与Windows集成(拖拽、URL、快捷方式)
4、支持所有常用文件操作
5、支持基于SSH-1、SSH-2的SFTP和SCP协议
6、支持批处理脚本和命令行方式
7、多种半自动、自动的目录同步方式
8、内置文本编辑器
9、支持SSH密码、键盘交互、公钥和Kerberos(GSS) 验证
10、通过与Pageant(PuTTY Agent)集成支持各种类型公钥验证
11、提供Windows Explorer与Norton Commander两种界面
12、可以存储会话信息
13、可使用单独的配置文件,以取代注册表,可拷贝到U盘使用
Cute FTP Pro
Cute FTP Pro传输速度比较快,但有时对于一些教育网FTP 站点却无法连接;速度稳定,能够连接绝大多数 FTP 站点(包括一些教育网站点);CuteFTP 虽然相对来说比较庞大,但其自带了许多免费的 FTP 站点,资源丰富。
CuteFTP Pro通过构建于SSL或SSH2安全认证的客户机/服务器系统进行传输,为VPN、WAN、Extranet开发管理人员提供最经济的解决方案!企业再不需要为了一套安全的数据传输系统而进行破费了。
此外,CuteFTP Pro还提供了Sophisticated Scripting、目录同步、自动排程、同时多站点连接、多协议支持(FTP、SFTP、HTTP、HTTPS)、智能覆盖、整合的HTML编辑器等功能特点以及更加快速的文件传输系统。
XFTP
XFTP是一款灵活且便捷的SFTP/FTP客户端,让需要进行文件传输的用户操作更加方便。它能够提供强大的操作功能,如:直接编辑、多窗口打开、FXP支持、文件同步,服务器与服务器传输文件和第三方编辑器集成。
主要特点:
1、同步导航
网站管理员经常需要使用并共享相同目录结构的多个主机,然而一次浏览每个主机是非常耗时的,Xftp 5则引入了同步的导航功能来解决这个问题。 您可以在其中一台主机上导航,其他主机将会查找相同的目录并自动导航。
2、支持IPv6
最近越来越多的公司和国家正在采用IPv6。加入迁移到具有版本5的IPv6支持的最新网络平台。无论您是同时使用IPv4还是IPv6,还是完全在IPv6网络上,我们的软件都可以满足您的需求。
3、使用MIT Kerberos进行客户端验证
Kerberos广泛应用于当今使用的各种操作系统的企业环境中,需要集中的用户认证。 Kerberos的集中式身份验证方法为用户提供更安全、更方便的访问服务器。为了满足企业用户的需求,Xftp 5包括对MIT Kerberos认证的支持。
4、灵保持更快的更新
在当今快节奏和不断变化的IT行业中,运行最稳定和最安全的软件是必须的。我们定期发布我们的软件更新,其中包括错误修复,安全补丁和一些新功能。我们在Xftp 5中的新的Live Update功能检查新的更新,并在用户可用时通知用户。在保持更新方面,现在比以前更加快捷和方便了。
有专门的FTP软件的
客户端有flashfxp
服务端有Serv-U
FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。
TCP/IP协议中,FTP标准命令TCP端口号为21,Port方式数据端口为20。FTP的任务是从一台计算机将文件传送到另一台计算机,不受操作系统的限制。
需要进行远程文件传输的计算机必须安装和运行ftp客户程序。在windows操作系统的安装过程中,通常都安装了tcp/ip协议软件,其中就包含了ftp客户程序。但是该程序是字符界面而不是图形界面,这就必须以命令提示符的方式进行操作,很不方便。
启动ftp客户程序工作的另一途径是使用ie浏览器,用户只需要在ie地址栏中输入如下格式的url地址:ftp://[用户名:口令@]ftp服务器域名:[端口号]
(在CMD命令行下也可以用上述方法连接,通过put命令和get命令达到上传和下载的目的,通过ls命令列出目录,除了上述方法外还可以在cmd下输入ftp回车,然后输入open IP来建立一个连接,此方法还适用于linux下连接ftp服务器)
通过ie浏览器启动ftp的方法尽管可以使用,但是速度较慢,还会将密码暴露在ie浏览器中而不安全。因此一般都安装并运行专门的ftp客户程序。
1.在本地电脑上登陆到国际互联网。
2.搜索有文件共享主机或者个人电脑(一般有专门的FTP服务器网站上公布的,上面有进入该主机或个人电脑的名称,口令和路径).
3.当与远程主机或者对方的个人电脑建立连接后,用对方提供的用户名和口令登陆到该主机或对方的个人电脑。
4.在远程主机或对方的个人电脑登陆成功后,就可以上传你想跟别人分享的东西或者下载别人授权共享的东西(这里的东西是指能放到电脑里去又能在显示屏上看到的东西).
5.完成工作后关闭FTP下载软件,切断连接。