내가 사용하는 특별한 경우는 클라이언트에 저장된 디지털 인증서에 액세스하고이를 사용하여 클라이언트 측과 서버 측에서 서명, 확인, 암호화 및 암호 해독 작업을 수행해야한다는 것입니다. 후자의 경우 많은 솔루션이 있습니다. 가장 중요한 점은 클라이언트에 저장된 인증서에 액세스 할 수 있다는 것입니다.X.509 디지털 서명/암호화 워크 플로우/라이브러리 권장 사항?
"클라이언트에 저장된 인증서"는 의도적으로 모호합니다. 시스템 저장소, 사용자 저장소, 브라우저 저장소, 암호화 토큰, Java 키 저장소에 대한 생각을 제한하고 싶지 않습니다.
수년 동안 나는 다음과 같은 방법을 사용했습니다. 그 각각의 측면에서 저는 찬반 양론을 제공합니다.
- CAPICOM/ActiveX. 이 방법이 가장 쉬운 방법이지만 사용자를 Windows의 IE로 제한합니다. 더 나쁜 것은 더 이상 사용되지 않으며 32 비트에서만 작동합니다.
- 자바 애플릿. 이것은 크로스 플랫폼과 크로스 브라우저이지만, 브라우저의 자바는 일반적으로 존재하지 않으며 빠르게 사라지고 있습니다 (분명히 애플은 최근에 그것을 제거했습니다). 따라서 사용자가 JRE를 다운로드하여 설치하게하는 번거 로움이 추가됩니다. 또한 사용자는 서명자의 무제한 강도 암호화 확장을 설정하는 비교적 기술적 인 작업을 수행해야합니다.
상황이 난의 생각/들었하지만 난 지금까지
- 대부분의 자바 스크립트 솔루션을 진행하지 않았습니다. 그들은 RSA 알고리즘을 구현하지만 클라이언트 인증서 저장소에서 디지털 인증서에 액세스하는 방법이 없습니다. 대부분은 새 키 쌍을 생성합니다.
- 플래시/플렉스. Flash/flex는 가장 보편적 인 클라이언트 측 기술로 보입니다. 이미 카메라와 마이크 같은 클라이언트 하드웨어에 액세스 할 수 있습니다. 인증서 저장소에 액세스 할 수 있다면 정말 좋을 것입니다.
- Microsoft 웹 사이트에서 제공된 CAPICOM의 대안. CAPICOM에 대한 대안을 규정합니다. CAPICOM은 주로 .NET 프레임 워크를 사용하여 작업을 수행합니다. 이것은 데스크톱 클라이언트에게 유용합니다. 그러나 "스크립트"의 경우 사용자는 자신의 ActiveX 컨트롤을 작성해야한다는 "중요한 사항"에서 매우 명확하게 말합니다. 어느 것이 우리를 정사각형으로 되돌아 가게합니다.
내가 찾고있는 것은 클라이언트의 인증서 저장소에 액세스하는 주된 문제를 해결할 수있는 방법입니다. RSA 알고리즘이나 PKI가 왜 비대칭인지 또는 비대칭 암호화 또는 웹 애플리케이션이 아닌 다른 아키텍처의 사용에 대한 논의 나 Apple에 대한 논의는 찾고 있지 않습니다.
해결책을 찾았습니까? – Saber
우리는 여전히 자바 애플릿을 사용하고 있습니다. bouncycastle jar에 의존 –