2013-07-31 170 views
1

在C++應用程序中使用openssl 0.9.8。openssl erro機器重啓後解密失敗或壞記錄mac

事情工作正常,突然遇到錯誤。 代碼,證書或對等應用程序沒有變化。

error:1408F119:SSL routines:SSL3_GET_RECORD:decryption failed or bad record mac:s3_pkt.c:426: 
error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number:s3_pkt.c:288: 
error:1408F096:SSL routines:SSL3_GET_RECORD:encrypted length too long:s3_pkt.c:346: 

M/C Details:Linux awtah.dispatchserver1 3.6.11-1.fc16.i686 #1 SMP Mon Dec 17 21:36:23 UTC 2012 i686 i686 i386 GNU/Linux 

這些錯誤是隨機的。 即使應用程序使用它自己的opnesssl 0.9.8和M/C也有1.0.0j-fips。

-bash-4.2# openssl version -a 
OpenSSL 1.0.0j-fips 10 May 2012 
built on: Tue May 15 18:44:01 UTC 2012 
platform: linux-elf 
options: bn(64,32) md2(int) rc4(8x,mmx) des(ptr,risc1,16,long) blowfish(idx) 
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DKRB5_MIT -DL_ENDIAN -DTERMIO -Wall -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -Wa,--noexecstack -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DRMD160_ASM -DAES_ASM -DWHIRLPOOL_ASM 
OPENSSLDIR: "/etc/pki/tls" 
engines: aesni dynamic 

重新安裝此機器上的1.0.0j-fips錯誤得到修復。

現在對於Fedora 14上的同樣的應用程序,重啓後我們遇到了上述問題。

Linux 3UPCAWT605 2.6.35.6-45.fc14.i686 #1 SMP Mon Oct 18 23:56:17 UTC 2010 i686 i686 i386 GNU/Linux 

任何指針這個問題的根本原因是什麼或如何解決這個問題。 /安裝在第2M 打開SSLÇ

built on: Wed Sep 7 18:59:14 UTC 2011 
platform: linux-elf 
options: bn(64,32) md2(int) rc4(8x,mmx) des(ptr,risc1,16,long) blowfish(idx) 
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DKRB5_MIT -DL_ENDIAN -DTERMIO -Wall -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -Wa,--noexecstack -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DRMD160_ASM -DAES_ASM -DWHIRLPOOL_ASM 
OPENSSLDIR: "/etc/pki/tls" 
engines: aesni dynamic 

回答

0

的CBC填充檢查似乎是failing.That可以通過一些要素改變網絡中的數據被觸發,或圖書館期待的東西,得到了別的東西。對於多線程環境,鎖的回調應該在openssl庫中註冊。

例如,這是一個庫行爲,除非重新創建ssl上下文,並且從此錯誤的開始處開始,否則您無法執行任何操作。

有些機器還支持用於加速庫加密/解密的指令集,您可能希望通過導出openssl環境變量來禁用這些指令。

相關問題