2013-04-11 21 views
17

Chúng tôi đang tạo chữ ký số (PKCS7) bằng cách sử dụng API bảo mật Java. Thuật toán phân loại là SHA-256 và thuật toán mã hóa là RSA (SHA256withRSA).WS 6.1 Nhà cung cấp IBMJCE tạo sai chữ ký sha256withrsa

Sử dụng nhà cung cấp SunRsaSign trong máy cục bộ, chữ ký được tạo trên một số nội dung. Sử dụng nhà cung cấp IBMJCE trong WAS 8.0.0.2, chúng tôi có thể tạo cùng một chữ ký trên cùng một nội dung.

Tuy nhiên, vấn đề là, chúng tôi phải di chuyển trở lại WAS 6.1. Bây giờ, chữ ký được tạo khác với chữ ký được tạo trong 2 trường hợp trên. Tôi đã kiểm tra các thông báo-tiêu hóa được tạo ra trong cả ba trường hợp, và nó là như nhau trong tất cả 3 trường hợp, nhưng chữ ký là khác nhau trong trường hợp của WAS 6.1.

Có bất kỳ vấn đề đã biết nào với nhà cung cấp IBMJCE của WAS 6.1 đối với mã hóa SHA256withRSA không? Bât cư thông tin được cung câp nao cung được la sự suât hiện tuyệt vơi. Cảm ơn

+3

+1 để kiểm tra các thông báo giống hệt nhau. –

+0

Bạn đã kiểm tra toàn bộ định dạng CMS hay chỉ là định dạng PKCS # 1? Bạn đã tạo băm trên cái gì? –

+0

Tôi đã kiểm tra toàn bộ định dạng CMS (PKCS # 7). Chỉ có 4 dòng cuối cùng khác nhau. Tôi hiểu rằng phần khác biệt trong chữ ký là thông báo được mã hóa, thông tin xuất hiện sau SIGNING_TIME. (Tôi đã sử dụng cùng ngày/giờ với tên SIGNING_TIME_OID). –

Trả lời

1

Có vấn đề gì không? Từ những gì tôi biết, điều này phải áp dụng

signature = sign(message) 
verify(signature) == message 

Không yêu cầu tất cả chữ ký phải giống nhau. Vì vậy, bạn có thực sự có vấn đề với xác minh của những chữ ký?

0

Chúng tôi đã gặp vấn đề tương tự và chúng tôi buộc Webspshere sử dụng SUNJCE. Đây là các bước.

So In IBM Websphere console đi đến máy chủ ứng dụng> Máy chủ> định nghĩa Process> Java Virtual Machine

Look cho các đối số Generic JVM và thêm những điều sau đây.

-DamCryptoDescriptor.provider=SunJCE -DamKeyGenDescriptor.provider=SunJCE 

Sau đó, sao chép

C:\JAVA\jdk1.6.0_34\jre\lib\ext\sunjce_provider.jar 

Để

C:\Program Files\IBM\SDP\runtimes\base_v7\java\jre\lib\ext\sunjce_provider.jar 

Thay đổi

C:\Program Files\IBM\SDP\runtimes\base_v7\java\jre\lib\security\java.security 

Bằng cách thêm vào các nhà cung cấp Sun sau vào danh sách các nhà cung cấp trong file java.security.

#This will help Websphere to load 
security.provider.13=com.sun.crypto.provider.SunJCE 
security.provider.14=sun.security.provider.Sun 
security.provider.15=sun.security.rsa.SunRsaSign 
security.provider.16=sun.security.jgss.SunProvider 

Hy vọng điều này sẽ hữu ích.