⑴ VC++ RC4,加密解密, 使用問題
#include "rc4.h"
void main()
{
char key[]="abcd";
RC4_KEY stKey;
BYTE d1[4]={0x11,0x22,0x33,0x44};
//加密
RC4Init(key,strlen(key),&stKey);
RC4Works(d1,4,&stKey);
//解密
RC4Init(key,strlen(key),&stKey);
RC4Works(d1,4,&stKey);
}
⑵ cve-2014-3566
掃描結果,看不懂還~~~
修復:
推薦使用 IIS crypto,畢竟圖形化界面要比手工改注冊表更直觀
禁用ssl 3.0 協議
修改注冊表:HKEY_LOCAL_s
目錄下應有:
SSL 2.0
SSL 3.0
TSL 1.1
TSL 1.2
每個目錄下添加Client、Server兩個子目錄,每個字目錄增加兩個鍵值:
DisabledByDefault:0x00000000(1);
Enabled:0x00000000(1);
其中:0為false;1為true;
禁用RC4 加密演算法協議
修改注冊表:HKEY_LOCAL_
目錄下應有:
RC4 128/128
RC4 40/128
RC4 56/128
每個目錄下添加鍵值:
Enabled:0x00000000(1);
其中:0為false;1為true;
修改完注冊表如果不想重啟生效的話,可以在任務管理器重啟 explorer.exe 生效
可通過HTTPS獲取遠端WWW服務信息的解決方案
還有好多要學習的啊~~~
⑶ RC4的漏洞
由於RC4演算法加密是採用的xor,所以,一旦子密鑰序列出現了重復,密文就有可能被破解。關於如何破解xor加密,請參看Bruce Schneier的Applied Cryptography一書的1.4節Simple XOR,在此我就不細說了。那麼,RC4演算法生成的子密鑰序列是否會出現重復呢?由於存在部分弱密鑰,使得子密鑰序列在不到100萬位元組內就發生了完全的重復,如果是部分重復,則可能在不到10萬位元組內就能發生重復,因此,推薦在使用RC4演算法時,必須對加密密鑰進行測試,判斷其是否為弱密鑰。其不足主要體現於,在無線網路中IV(初始化向量)不變性漏洞。
而且,根據目前的分析結果,沒有任何的分析對於密鑰長度達到128位的RC4有效,所以,RC4是目前最安全的加密演算法之一,大家可以放心使用!
分布式代碼管理網站Github從2015年1月5日將停止對RC4的支持,RC4作為一種老舊的驗證和加密演算法易於受到黑客攻擊。這意味著,用戶在使用Windows XP系統上的IE瀏覽器時將無法進入github.com網站
⑷ SSH&SSL弱加密演算法漏洞修復
一、SSH
SSH的配置文件中加密演算法沒有指定,默認支持所有加密演算法,包括arcfour,arcfour128,arcfour256等弱加密演算法。
修改SSH配置文件,添加加密演算法:
vi /etc/ssh/sshd_config
Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc
最後面添加以下內容(去掉arcfour,arcfour128,arcfour256等弱加密演算法):
ssh_config和sshd_config都是ssh伺服器的配置文件,二者區別在於,前者是針對客戶端的配置文件,後者則是針對服務端的配置文件。
保存文件後重啟SSH服務:
service sshd restart or service ssh restart
驗證
ssh -vv -oCiphers=aes128-cbc,3des-cbc,blowfish-cbc <server>
ssh -vv -oMACs=hmac-md5 <server>
二、SSL
修改SSL配置文件中的的SSL Cipher參數
1、禁止apache伺服器使用RC4加密演算法
vi /etc/httpd/conf.d/ssl.conf
修改為如下配置
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!RC4
重啟apache服務
2、關於nginx加密演算法
1.0.5及以後版本,默認SSL密碼演算法是HIGH:!aNULL:!MD5
0.7.65、0.8.20及以後版本,默認SSL密碼演算法是HIGH:!ADH:!MD5
0.8.19版本,默認SSL密碼演算法是 ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM
0.7.64、0.8.18及以前版本,默認SSL密碼演算法是ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP
低版本的nginx或沒注釋的可以直接修改域名下ssl相關配置為
ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES
256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GC
M-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
ssl_prefer_server_ciphers on;
需要nginx重新載入服務
⑸ 如何禁用的SSLv3在IIS和RC4加密演算法
為一個基於密碼學的安全開發包,OpenSSL提供的功能相當強大和全面,囊括了主要的密碼演算法、常用的密鑰和證書封裝管理功能以及SSL協議,並提供了豐富的應用程序供測試或其它目的使用。
1.對稱加密演算法
OpenSSL一共提供了8種對稱加密演算法,其中7種是分組加密演算法,僅有的一種流加密演算法是RC4。這7種分組加密演算法分別是AES、DES、Blowfish、CAST、IDEA、RC2、RC5,都支持電子密碼本模式(ECB)、加密分組鏈接模式(CBC)、加密反饋模式(CFB)和輸出反饋模式(OFB)四種常用的分組密碼加密模式。其中,AES使用的加密反饋模式(CFB)和輸出反饋模式(OFB)分組長度是128位,其它演算法使用的則是64位。事實上,DES演算法裡面不僅僅是常用的DES演算法,還支持三個密鑰和兩個密鑰3DES演算法。
2.非對稱加密演算法
OpenSSL一共實現了4種非對稱加密演算法,包括DH演算法、RSA演算法、DSA演算法和橢圓曲線演算法(EC)。DH演算法一般用戶密鑰交換。RSA演算法既可以用於密鑰交換,也可以用於數字簽名,當然,如果你能夠忍受其緩慢的速度,那麼也可以用於數據加密。DSA演算法則一般只用於數字簽名。
3.信息摘要演算法
OpenSSL實現了5種信息摘要演算法,分別是MD2、MD5、MDC2、SHA(SHA1)和RIPEMD。SHA演算法事實上包括了SHA和SHA1兩種信息摘要演算法,此外,OpenSSL還實現了DSS標准中規定的兩種信息摘要演算法DSS和DSS1。
4.密鑰和證書管理
密鑰和證書管理是PKI的一個重要組成部分,OpenSSL為之提供了豐富的功能,支持多種標准。
首先,OpenSSL實現了ASN.1的證書和密鑰相關標准,提供了對證書、公鑰、私鑰、證書請求以及CRL等數據對象的DER、PEM和BASE64的編解碼功能。OpenSSL提供了產生各種公開密鑰對和對稱密鑰的方法、函數和應用程序,同時提供了對公鑰和私鑰的DER編解碼功能。並實現了私鑰的PKCS#12和PKCS#8的編解碼功能。OpenSSL在標准中提供了對私鑰的加密保護功能,使得密鑰可以安全地進行存儲和分發。
在此基礎上,OpenSSL實現了對證書的X.509標准編解碼、PKCS#12格式的編解碼以及PKCS#7的編解碼功能。並提供了一種文本資料庫,支持證書的管理功能,包括證書密鑰產生、請求產生、證書簽發、吊銷和驗證等功能。
事實上,OpenSSL提供的CA應用程序就是一個小型的證書管理中心(CA),實現了證書簽發的整個流程和證書管理的大部分機制。
5.SSL和TLS協議
OpenSSL實現了SSL協議的SSLv2和SSLv3,支持了其中絕大部分演算法協議。OpenSSL也實現了TLSv1.0,TLS是SSLv3的標准化版,雖然區別不大,但畢竟有很多細節不盡相同。
雖然已經有眾多的軟體實現了OpenSSL的功能,但是OpenSSL裡面實現的SSL協議能夠讓我們對SSL協議有一個更加清楚的認識,因為至少存在兩點:一是OpenSSL實現的SSL協議是開放源代碼的,我們可以追究SSL協議實現的每一個細節;二是OpenSSL實現的SSL協議是純粹的SSL協議,沒有跟其它協議(如HTTP)協議結合在一起,澄清了SSL協議的本來面目。
6.應用程序
OpenSSL的應用程序已經成為了OpenSSL重要的一個組成部分,其重要性恐怕是OpenSSL的開發者開始沒有想到的。現在OpenSSL的應用中,很多都是基於OpenSSL的應用程序而不是其API的,如OpenCA,就是完全使用OpenSSL的應用程序實現的。OpenSSL的應用程序是基於OpenSSL的密碼演算法庫和SSL協議庫寫成的,所以也是一些非常好的OpenSSL的API使用範例,讀懂所有這些範例,你對OpenSSL的API使用了解就比較全面了,當然,這也是一項鍛煉你的意志力的工作。
OpenSSL的應用程序提供了相對全面的功能,在相當多的人看來,OpenSSL已經為自己做好了一切,不需要再做更多的開發工作了,所以,他們也把這些應用程序成為OpenSSL的指令。OpenSSL的應用程序主要包括密鑰生成、證書管理、格式轉換、數據加密和簽名、SSL測試以及其它輔助配置功能。
7.Engine機制 Engine機制的出現是在OpenSSL的0.9.6版的事情,開始的時候是將普通版本跟支持Engine的版本分開的,到了OpenSSL的0.9.7版,Engine機制集成到了OpenSSL的內核中,成為了OpenSSL不可缺少的一部分。 Engine機制目的是為了使OpenSSL能夠透明地使用第三方提供的軟體加密庫或者硬體加密設備進行加密。OpenSSL的Engine機製成功地達到了這個目的,這使得OpenSSL已經不僅僅使一個加密庫,而是提供了一個通用地加密介面,能夠與絕大部分加密庫或者加密設備協調工作。當然,要使特定加密庫或加密設備更OpenSSL協調工作,需要寫少量的介面代碼,但是這樣的工作量並不大,雖然還是需要一點密碼學的知識。Engine機制的功能跟Windows提供的CSP功能目標是基本相同的。目前,OpenSSL的0.9.7版本支持的內嵌第三方加密設備有8種,包括:CryptoSwift、nCipher、Atalla、Nuron、UBSEC、Aep、SureWare以及IBM 4758 CCA的硬體加密設備。現在還出現了支持PKCS#11介面的Engine介面,支持微軟CryptoAPI的介面也有人進行開發。當然,所有上述Engine介面支持不一定很全面,比如,可能支持其中一兩種公開密鑰演算法。
8.輔助功能
BIO機制是OpenSSL提供的一種高層IO介面,該介面封裝了幾乎所有類型的IO介面,如內存訪問、文件訪問以及Socket等。這使得代碼的重用性大幅度提高,OpenSSL提供API的復雜性也降低了很多。
OpenSSL對於隨機數的生成和管理也提供了一整套的解決方法和支持API函數。隨機數的好壞是決定一個密鑰是否安全的重要前提。
OpenSSL還提供了其它的一些輔助功能,如從口令生成密鑰的API,證書簽發和管理中的配置文件機制等等。如果你有足夠的耐心,將會在深入使用OpenSSL的過程慢慢發現很多這樣的小功能,讓你不斷有新的驚喜。
⑹ SSL/TLS 受誡禮;SSL/TLS RC4 信息泄露的問題
該IP地址啟動了SSL證書,目前啟動RC4加密屬於不安全協議,所以需要禁止!
嘗試收到處理漏洞:
禁止apache伺服器使用RC4加密演算法
vi /etc/httpd/conf.d/ssl.conf
修改為如下配置
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!RC4
重啟apache服務
關於nginx加密演算法
1.0.5及以後版本,默認SSL密碼演算法是HIGH:!aNULL:!MD5
0.7.65、0.8.20及以後版本,默認SSL密碼演算法是HIGH:!ADH:!MD5
0.8.19版本,默認SSL密碼演算法是 ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM
0.7.64、0.8.18及以前版本,默認SSL密碼演算法是ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP
低版本的nginx或沒注釋的可以直接修改域名下ssl相關配置為
ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES
256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GC
M-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
ssl_prefer_server_ciphers on;
需要nginx重新載入服務
其它解決辦法:升級伺服器環境到最新版,重新配置伺服器SSL證書就可以直接解決,詳情聯系伺服器環境技術人員處理。
⑺ 怎麼在伺服器端禁止使用rc4加密演算法
.版本 2.子程序 加密為rc4, 文本型, 公開, 用RC4演算法對文本進行加密.參數 加密的數據, 文本型, , 欲加密的文本.參數 加密密鑰, 文本型, 可空, 用作加密的密碼.局部變數 臨時, 位元組集.局部變數 s, 位元組型, , "256".局部變數 k, 位元組型, , "256"....
⑻ RC4 與信息安全問題
一樓說的不正確
RC4 1976年就出現了。不早了吧。。RC6都參加過AES的篩選你說怎麼回事
RC4-應用很廣泛。。SSL(包含),WEP等都是採用RC4演算法
以色列的那幫XX說的是RC4的加密演算法和密鑰系統有缺陷。
當密鑰小於128位的時候--這里說的是bit..也就是16位元組
強度不高很容易總結出規律。
原因是多方面的最關鍵的還是。密鑰系統過於簡單。復雜的話那速度不就慢了嘛。還有加密解密演算法過於簡單。。他是XOR演算法。在XOR一遍就是解密
密碼學家也說了。密鑰高於128還是比較安全的。
當然RC4演算法最高支持256位元組也就是2048位密鑰
最好採用復雜的密鑰生成器。。。
一般情況下..是輸入一段XX-然後Md5-HASH用HASH當做密鑰...
比如y0da protecter就是採用此類方法來加密的
關於安全性問題就出現在windows上了。windows下WIFI密鑰通常只能輸入13位元組。遠達不到16位元組的。安全性。
所以會產生重復和碰撞。--因為用了xor。所以出來混的總要還的。。:P
改進方法3種:
1.不需要改演算法。盡量的使用長密鑰
2.加強加密運算,比如原來是xor,你可以加點add拉,shr,shl,sub
雖然大作用起不到.但是在別人不知道你改進演算法的情況下還是可以起到一定作用的
3.改進密鑰系統...說實話.這個不太熟悉.因為加密演算法的問題所以這里不是很好改...
一般來說使用長密鑰在還是有一定的安全性的...
如果實在沒招的話可以採用其他演算法ECC雖然不錯但是也有漏洞可以攻破
推薦看<<經典密碼學與現代密碼學>>
從古典演算法到現在使用的演算法。。包括原理很攻破
⑼ SQL Server 鏡像不支持RC4加密演算法
SQL Server 鏡像不支持RC4加密演算法的原因:
後續版本的 Microsoft SQL Server 將刪除該功能。 請避免在新的開發工作中使用該功能,並著手修改當前還在使用該功能的應用程序。 我們建議使用 AES。
⑽ ssl安全 怎麼禁用RC4加密演算法
SCHANNEL\Protocols 子項
協議 的注冊表項下 SCHANNEL
鍵用於的控制項使用的協議支持由 Schannel.dll 文件,並限制該協議使用 TLS 伺服器或 TLS 的客戶端。
若要禁止使用的 SSL
3.0 或 TLS 1.0 之外的其他協議,請將 Enabled 值的 DWORD 鍊兼暟鎹改為 0x0 中下面的注冊表項,在 協議 鍵下的每個:
目前的 Microsoft 消息隊列使用的客戶端和伺服器之間只有 PCT 1.0
SCHANNEL\Ciphers 子項
密碼 的注冊表項下 SCHANNEL 鍵用於控制如 DES 或 RC4
對稱演算法的使用。 以下是在 密碼 鍵下的有效注冊表項。
SCHANNEL\Ciphers\RC4
128/128 子項:
rc4 128/128
此子項是指 128 位 RC4。
要允許此密碼演算法、 0xffffffff 到更改
啟用 值的 DWORD 值數據,否則更改為 0x0 的 DWORD
值數據。 如果不配置 啟用 值,啟用了默認值。 此注冊表項不能應用於不具備 SGC
證書
---------------------------------------------------------------------------------------
des:有好幾種:0xffffffff 到更改 啟用,否則更改為 0x0 ,不配置 啟用
值,啟用了默認值,但有很多不允許禁用的演算法。。。
TLS 1.0 和SSL 3.0
:{}是要在regedit里建的值:
ssl_rsa_export_with_rc4_40_md5
{0x00,0x03}
ssl_rsa_with_rc4_128_md5
{0x00,0x04}
SSL_RSA_WITH_DES_CBC_SHA
{0x00,0x09}
ssl_rsa_with_3des_ede_cbc_sha
{0x00,0x0A}
ssl_rsa_export1024_with_des_cbc_sha
{0x00,0x62}
ssl_rsa_export1024_with_rc4_56_sha
{0x00,0x64}
TLS_RSA_WITH_DES_CBC_SHA
{0x00,0x09}
tls_rsa_with_3des_ede_cbc_sha
{0x00,0x0A}
tls_rsa_export1024_with_des_cbc_sha
{0x00,0x62
tls_rsa_export_with_rc4_40_md5
{0x00,0x03}
tls_rsa_with_rc4_128_md5
{0x00,0x04}
1
。。。。SCHANNEL\Ciphers\Triple
DES 128/128 子項:
三重 DES 168/168
2
。。。。SCHANNEL\Ciphers\RC2 56/56
子項:
DES 56/56
3
SCHANNEL\Hashes\MD5
子項:
md5
=====
例子:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Hashes\MD5]
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Hashes\SHA]
"Enabled"=dword:ffffffff
SCHANNEL\Protocols\PCT 1.0\Client
SCHANNEL\Protocols\PCT 1.0\Server
SCHANNEL\Protocols\SSL 2.0\Client
SCHANNEL\Protocols\SSL 2.0\Server