关键字 |
DLNA、链接保护、河豚、加密、OpenSSL, Libcrypto,流媒体应用安全 |
介绍 |
在当今快节奏的世界中,人们娱乐的需求,在指尖,在生产力和服务——走。智能手机有雕刻一个利基仅仅因为他们迎合大多数这样的需要在舒适的沙发上。但是我们都清楚,方便出现漏洞和安全风险 |
有许多标准的跨平台组织在三个电子行业即:消费电子产品,个人电脑和手持设备。但协议像DLNA标准提供这三个平台的集成。这个联盟是创新的视觉允许文件共享和无缝环境日益增长的新数字媒体和内容服务在有线和无线网络。所有这些标准已经发布了一组通用的行业标准,使得制造商能够使产品在日益增长的市场网络设备并允许这些产品可互操作的各种数字媒体开放的行业标准。 |
只要有可能,这些协议是指从建立标准,开放行业标准组织和提供CE、个人电脑和移动设备制造商的信息需要构建引人注目,可互操作的数字家庭平台、设备和应用程序。[1] |
随着IP使消费电子和移动设备和数字媒体的普及,消费者正在寻找方法以流高清晰度视频。 |
转让的内容是被称为“优质内容”。这意味着它是支付,可能授权。通常优质内容带有限制如何可以被使用,例如是否可以复制。当源和汇设备本身可以执行这些限制,当数据在网络上传输链接有可能绕过他们没有链接保护通过复制或修改数据直接从网络流。例如,使用现有的两个链接链接保护是实现的DLNA保护技术网络设备——DTCP-IP和WMDRM-ND。这些技术提供了一种方法来建立一个源和汇之间的安全通道。两种技术都使用不同的身份验证技术和内容转移,但他们基本上是非常相似的。使用这些方法 |
优质内容传输和流媒体在现有无线网络不提供应用程序级别的安全性。有必要开发一个链接保护技术。为了解决这个问题,我们提出一个链接保护应用程序可以安装在各种设备上启用。应用程序将执行加密和解密文件流媒体在网络上 |
二世。文献调查 |
据凯文•阿鲁达在他的论文题为“DLNA链接保护”,他解释说链接保护毯术语,指的是方法用来违反黑客试图“偷”数据传输链路的数据;而对于DLNA,通常这意味着以太网链接的媒体从源传输到显示设备。为一个不受保护的链接,交通是发送和接收“明文”,这意味着任何人谁能“看到”的网络流量是免费复制和使用上的数据链接。启用链接保护可以转移媒体呈现的内容源设备以一种安全的方式。[8]。解释的DLNA白皮书在家庭网络高清视频,今天,消费者使用的家庭网络主要是很短的目的。考虑与打印机共享消费者面临的问题。而消费者可以购买一个打印机服务整个家庭,最初配置的复杂性打印机和后故障排除后续网络问题导致很多用户多个打印机直接连接到个人电脑和笔记本电脑。 |
对于数字音频,设置的复杂性和缺乏通用连接性使得使用独立的停靠点首选替代在家庭网络流媒体音频从中央存储位置。如果共享打印机和音频消费者不够复杂,然后分享数字视频,尤其是高清视频,可以呈现一个更加艰巨的任务。大多数视频内容历来是存储在一个电脑或一个数字机顶盒。不仅个人电脑或机顶盒必须打开访问内容,但它们可能位于不同的房间,消费者希望坐,放松和手表。现实情况是,共享数字内容包括高清视频流是实际使用今天的家庭网络。可靠、质量流需要一个高带宽的基础设施,和许多消费者已经拥有一个广泛的家庭网络基础设施组成的各种证明技术如wi - fi, MoCA以太网。 |
虽然这些技术使强大的有线和/或无线连接,连接不仅仅涉及如此多的基础设施路由数据。在这个基础设施流无数的内容、链接、运输、管理、发现、控制和内容保护协议。其中,数字管道只有移动数据和其他没有直接促进连接设备之间共享内容 |
三世。方法 |
我们的方法是开发加密/解密协议,使用Libcrypto api,它是基于AES。这样的系统可以使用开源开发平台OpenSSL使用这个系统。加密的数字媒体被分解为缓冲区的源和流媒体在网络上的目的地。该算法使用OpenSSL的各种元素。Libcrypto,其中一个主要的OpenSSL库提供了高水平和低水平的接口加密算法。对于大多数使用高级接口是用于执行加密操作。包络函数提供了方法来执行端到端加密,签名和验证以及生成数字签名,哈希函数和MAC代码。 |
公共对称密钥加密 |
对称密钥算法使用一个密钥加密和解密数据使用。如图1所示,加密算法的密钥和明文作为参数来生成密文。然后密文被送到一个安全或不安全的媒介,只允许收件人原始密钥加密消息,这是通过将密文和解密算法的关键。显然,键必须是只有发送方和接收方知道。图1显示了对称密钥加密模型。 |
该算法的主要缺点是,关键要保持隐藏在,应该只有收件人知道。很难保持匿名的关键在同一介质的文件被转移。它让任何攻击者窃取的可能性和访问文件的关键。关键的分配问题的一种解决方案是使用一个密钥交换协议。Open-SSL提供diffie - hellman为此协议,它允许对关键协议实际上没有暴露在网络的关键。 |
公钥密码术可以给另一个解决上述问题。在这种方法中两个键发送一个公钥自由分布式和私钥是唯一已知的用户。 |
河豚算法 |
加密算法用于加密和解密的数据设计项目是“河豚”。河豚的,对称的,加密块密码由Bruce Schneier设计的。主要功能是16-round Feistel网络分组密码,64位块大小和可变密钥长度448位。河豚算法未获得专利权的,任何人都是可以免费使用的任何应用程序。实现由两部分组成:key-expansion和数据加密。算法使两个查寻数组:18-entry P-array S-boxes和四个256 -条目。Sboxes接受8位输入并生成32位的输出。一个条目的P-array每轮,最后一轮之后,每个数据块的一半xor剩下的两个未使用的P-entries。下图显示了河豚的f方程。函数将32位输入八位四个季度,并使用季度S-boxes作为输入。 The outputs are added modulo 232 and XORed to produce the final 32-bit output. Blowfish is one of the fastest block ciphers in widespread use, except when changing keys. This is well suited for our entry-level program. |
密码块链接 |
密码块链接提供服务的真实性和安全性。[2]这种模式描述了如何应用数据重复的密码大于块大小[3][4][5]。初始化向量确保不同的密文时产生相同的明文作为输入。[6]。第四是用来给随机加密效果,因为静脉是产生随机数,因此不能被复制。一个初始化向量比键有不同的安全需求,所以第四通常不需要保密。然而,在大多数情况下,是很重要的一个初始化向量是不会重用相同的关键。 |
在拟议的系统中,加密的密码块链接模式,一块纯文本、密钥和IV给出作为输入和密文获得作为输出。获得密文的过程用于每一个纯文本块和块密文获得使用过程中连续获得密文块。 |
同样的程序用于解密。返回纯文本的第一块,第四、关键(连同密文传输)和第一块使用密文。每个连续的纯文本块,使用相同的密钥和IV回来用在传输端(本地生成第一密钥和IV传播)和前一块纯文本检索。 |
在CBC加密,每个密码操作取决于前面的操作,除了第一个,因为它取决于原始参数。但是在解密端密码立即对逆操作。甚至一比特的改变明文或IV影响所有密码文本块。第四解密用不正确的原因第一块明文是腐败,但随后的明文块将是正确的。 |
因此,完成加密和解密过程由一个键,一个初始化向量(使用系统噪声生成),河豚算法加密算法和密码块链接的模式与缓冲区的数据结构被用作加密整个过程。 |
四、实现 |
呈现之间的流媒体设备和服务器可以使用于服务器-客户机的套接字函数模型。模拟工作中,我们使用套接字函数在两个电脑连接在一个局域网。 |
整个过程建立连接,发出请求,获取媒体文件,写入数据到缓冲块,加密缓冲区,流媒体,解密传入的缓冲块,建筑设备的媒体文件和拆除连接发生流程图所示(图2)。 |
下面解释技术的实现通过使用信封Open-SSL下(执行)方法。使用的执行加密过程是:EVP_Cipher_CTX_init, EVP_EncryptUpdate EVP_EncryptFinal。加密始于EVP_Cipher_CTX_init初始化的第一个缓冲区密文EVP_EncryptUpdate紧随其后,直到倒数第二个块纯文本。最后一块纯文本使用EVP_EncryptFinal加密和加密过程终止。同样完成解密使用EVP_DecryptInit EVP_DecryptUpdate EVP_DecryptFinal。 |
执行函数提供一个高水平界面Open-SSL加密功能。libcrypto图书馆内Open-SSL提供函数来执行对称加密和解密操作在一个广泛的算法和模式 |
演示的目的,我们使用一个128位的密钥。这是存储为字符数组的程序。我们也生成一个64位的程序初始化向量(IV)。我们将使用密码块链接(CBC)模式作为加密的模式。一个初始化向量的随机信息作为输入链接加密算法。4提供的第一个输入1的数据块加密,然后提供输入第二块等等。最后剩下的一点就会被丢弃。随机比特从字符特殊文件生成随机数的提供了一个很好的来源。我们还建立了一个缓冲的放置在密文。重要的是确保该缓冲区足够大的预期密文或程序可能会崩溃。比明文密文可能长(例如如果使用填充)。 |
对于加密,常规接受两个参数,输入文件和输出文件的文件描述符的加密数据保存。它总是一个好主意重置缓冲为零在使用他们的数据。这尤其需要如果缓冲区被重用,这是这里的情况。加密包括以下阶段:建立一个上下文,初始化加密操作,提供明文字节被加密并最终确定加密操作。在初始化期间,一个EVP_CIPHER对象信息。解密程序基本上遵循相同的步骤加密程序。这非常类似于加密和包括以下阶段:建立一个上下文,初始化解密操作,提供密文字节进行解密并最终确定解密操作。再通过参数我们将收到密文解密,密文的长度,密钥和IV。我们还将接收缓冲区将解密后的文本,并返回明文的长度我们发现。每次通过密文的长度。这是必需的 |
我们不能使用功能,比如“strlen”数据,因为它是二进制。同样,即使明文ASCII文本,Open-SSL并不知道。尽管这个名字,明文将二进制数据,因此没有零终结者将结束(除非零也是加密)。 |
加密和解密的过程中使用以下执行。 |
如果启用了填充(默认)然后EVP_EncryptFinal (ctx outbuf +克拉&tlen)加密的最终数据,也就是说,任何数据仍在最后部分(或全部)。加密后的最终数据写入哪些应该有足够的空间为一个块密码和ctx自动清理后调用。如果禁用填充EVP_EncryptFinal (ctx outbuf +克拉&tlen)将不再加密数据,它会返回一个错误如果任何数据保持在一个局部块,如果数据总长度并不是一个块大小的倍数。 |
EVP_DecryptInit (ctx EVP_bf_cbc(),钥匙,iv), EVP_DecryptUpdate (ctx、outbuf克拉,inbuff, n)和EVP_DecryptFinal (ctx outbuf +克拉&tlen)是相应的解密操作。 |
EVP_DecryptFinal()将返回一个错误代码如果启用了填充和最后一块不是正确格式化。参数和限制是相同的加密操作。 |
EVP_CipherInit (), EVP_CipherUpdate()和EVP_CipherFinal()函数,这些函数可用于解密和加密 |
所执行的操作的值取决于enc参数的函数。它应该为加密设置为1,0为解密和1离开价值不变。 |
EVP_CIPHER_CTX_cleanup()用来清除所有密码的信息环境和自由与之关联的任何分配的内存。它应该被称为使用密码的所有操作完成后,敏感信息不保存在内存中。 |
诉结果 |
从设计系统获得如下结果。 |
答:加密和解密 |
加密和解密操作上执行完整的文件。这个阶段不包含流媒体。图显示了源文件的源文件是一个形象。文件的名字是sendi.jpg及其大小是1 mb。 |
加密终端加密终端的图所示。输入程序应该包含源文件路径和目的地路径保存加密文件。 |
源文件:sendi目标文件:enci |
输出显示128位密钥和初始化向量生成 |
加密文件 |
“enci”创建加密的文件的加密程序没有任何可识别的格式。如果文本编辑器中打开,它看起来像这样: |
解密终端 |
解密的图显示终端。输入程序应该包含加密的文件路径和目的地路径保存解密文件 |
源文件:enci目标文件:recvi |
输出显示128位密钥和初始化向量生成。它可以验证密钥和IV是一样的那些生成的加密程序。 |
解密文件 |
jpg格式的解密文件与源文件相同。可以验证,没有任何决议或颜色属性的变化。 |
b与流从服务器端加密和解密 |
这个阶段包含流媒体加密和解密的程序。客户端和服务器终端必须开放为了建立的连接。 |
文本文件的源文件,文本文件的大小0.8 Mb。这是加密和流。 |
加密终端和缓冲终端 |
首先,客户端发送请求到服务器的连接。听力服务器接受请求,并结合客户的地址。打开套接字后,客户端向服务器发送指定的文本文件。缓冲区的大小1024字节加密和流直到到达文件结束 |
输入终端必须指定源文件路径“sendt”。文件路径的终端提示一旦套接字已被打开。 |
接收和解密终端 |
服务器终端加密生效前都必须运行。它连接到客户端后,程序会提示您输入目标文件名称和路径。进入,接待和解密缓冲区的开始。由此产生的数据附加到构建目标文件。 |
解密文件 |
接收到的文本文件建立和缓冲区到达时。数据写入到文本文件“recvt”。可能观察到源文件“sendt”和接收文件“recvt”有相同的内容和大小相同。 |
上面的表格显示了时间的完整文件传输不同的缓冲区大小。可以看出,随着缓冲区大小的增加文件传输所花费的时间减少。 |
上面的表格显示了时间为不同的文件加密和解密。 |
上面的表显示整个流程所花费的总时间为各种媒体文件完成 |
VI。应用程序 |
该算法的主要应用是加密数据在发送方的身边,传送它安全地在一个链接和接收机的尽头最后解密它。可以以不同的方式如下:它可以用于加密媒体(文本、图片、音频或视频)文件作为一个整体,他们安全地和解密传输接收器的结束。源文件的名字和加密文件的名字需要加密的时候提到我。使用该算法,生成密钥和IV。时解密,加密文件路径和目的地路径保存解密文件需要被提及。可以看出,生成的密钥和IV是相同的加密。 |
另一个应用程序的算法流可以合并的加密和解密程序。客户端和服务器终端必须开放为了建立的连接。首先,客户端发送请求到服务器的连接。听力服务器接受请求,并结合客户的地址。打开套接字后,客户端向服务器发送指定的文本文件。缓冲区的大小1024字节加密和流直到到达文件结束。服务器终端加密生效前都必须运行。它连接到客户端后,程序会提示您输入目标文件名称和路径。进入,接待和解密缓冲区的开始。由此产生的数据附加到构建目标文件。 |
这可用于实时应用程序像在远的地方的人聊天,但通过网络连接,分享完整的任何类型的文件(多媒体)安全(安全无线流媒体)通过电子邮件和共享的关键分别通过另一个电子邮件或短信。 |
七世。限制 |
该系统的一些限制,对加密的过程中,使用对称密钥算法。这种算法的主要缺点是,在接收机端密钥用于解密是一样的在发送端用于加密的密钥。因此,关键要传输到接收端通过相同或不同的网络安全。任何妥协的安全传输会导致系统的彻底失败。这个解决方案需要一些思考的另一个原因是对互操作性问题。DLNA,设备之间的解决方案只能与专有的解决方案从而实现互操作性成为困难。 |
该系统的一个缺点是算法的一个非常基本的水平,因此算法提供更高水平的安全可以用来增强该系统的性能。一些选择高级加密标准(AES), Twofish算法,Threefish算法,Salsa20,微小的加密算法(茶)和小脑模型和MacGuffin。Twofish算法以其广泛的速度和成本的权衡;它提供了一个独一无二的结合保守设计,速度和灵活性。三个鱼是一个对称密钥分组密码设计成绞哈希函数的一部分。三个鱼使用没有S-boxes或其他表查找为了避免缓存时间攻击。 |
Salsa20执行20轮的混合输入。然而,减少变异Salsa20/8和Salsa20/12分别使用8和12个回合也被引入。这些变异来补充介绍了原始Salsa20,不替换它,并执行甚至比Salsa20,虽然相应降低安全边际。茶算法很容易转化为组装。硬件实现并不难,DES的顺序相同的复杂性,考虑到双重密钥长度。 |
基于小脑模型是一个块密码算法和MacGuffin消息身份验证代码块密码用于这个实现。 |
未来可能的工作包括实现小脑模型用不同的分组密码(例如AES)。一个用户定义的标签长度为小脑模型可以在将来的版本中实现。这将允许用户管理性能和安全的权衡。 |
表乍一看 |
|
|
数据乍一看 |
|
|
引用 |
- “DLNA网络设备互操作性指南”,版权©2013年微软公司发布:星期一,2013年7月22日
- “提出模式”,NIST的计算机安全部门的(CSD)安全技术集团(STG) (2013)。加密工具。NIST的。检索2013年4月14日。
- ISO JTC 1 / SC 27 (2006)。ISO / IEC 10116:2006。ISO标准目录。
- Kuo-Tsang黄、赵Jung-Hui Sung-Shiou沈,“小说结构与动态对称密钥BlockCiphers操作模式”,国际期刊的网络安全与应用(IJNSA) 5(1): 2013年1月19日。
- “当前模式”,NIST的计算机安全部门(CSD)安全技术集团(STG) (2013)。加密工具。NIST的。2013年4月12日检索。
- “流密码重用:一个图形的例子”。Cryptosmith LLC。2013年3月27日检索。
- https://www.schneier.com/blowfish.html
- Open-SSL主页http://www.Open-SSL.org
- 马可Tiloca - marco.tiloca@iet.unipi.it Open-SSL实验室会话
- 阿尔弗雷德·j·塞斯保罗·c .持怀疑和斯科特·a·范斯通”信息技术——安全技术操作模式ann-bit块密码”,应用密码学的手册。CRC出版社。228 - 233页。ISBN 0-8493-8523-7, 1996
- 弗格森N。,Schneider, B. and Kohno, T, “Cryptography Engineering: Design Principles and Practical Applications”, Indianapolis: WileyPublishing, Inc., ISBN 978-0-470-47424-2, Vol 64, pp. 63, 2010.
- 凯文•阿鲁达“DLNA链接保护”,版权©2008七鳃鳗网络公司。
|