2014-09-09 5 views
0

방금 ​​내 도메인에 대한 SSL 인증서를 받았지만 제대로 작동하지만 bitcoin payment protocol을 사용하고 있습니다. 공개 키를 사용하여 메시지를 보내기 전에 서명해야하지만 SSL 인증서로 서명 된 메시지는 어떤 도구 사용해야합니까?https 공용 키 인증서로 메시지에 서명하는 방법은 무엇입니까?

편집

내가 실제로 내 SSL 인증서 발급자의 공개 키를 사용하여 메시지에 서명하기 만하면 무엇을 보인다.

미리 감사드립니다. :)

답변

2

프로토콜 사양이 잘못되었습니다. 디지털 서명은 개인 키로 서명됩니다.

인증서가 이고 메시지가이고 서명에 포함되어 있어야합니다. java.security.Signature 클래스를 비공개 키와 관련 지어 사용할 수 있습니다. 키 스토어로부터로드 할 수 있습니다.

서명 인증서를 구입해야 할 수도 있습니다. 비트 인증서에 SSL 인증서가 충분하지 않을 수 있습니다.

공개 키를 사용하는 서명은 완전히 쓸모가 없습니다. 누구나 할 수 있습니다. 개인 키로 서명하십시오. 이것은 법적으로 귀하의 서명과 동일합니다 : 귀하 만이 그것을 할 수 있으며 누구나 귀하의 공개 키로 확인함으로써 누구나 확인할 수 있습니다. 따라서 공개 키가 서명과 함께 제공되어야합니다; 동시에 서명에 첨부되어야하는 인증서를 통해 누구의 서명인지를 확인할 수 있습니다.

그렇지 않으면 비트 코는 근본적으로 안전하지 않습니다.

+0

나는 서명 필드 설명 ->'모든 필드가 숫자 순서로 직렬화 된 PaymentRequest 메시지의 프로토콜 버퍼 직렬화 된 변형의 해시를 통한 디지털 서명 (모든 현재 프로토콜 버퍼 구현 숫자 순으로 필드 직렬화),'공개 키 **'pki_data.'를 사용하여 서명하십시오. 가능하다면 파이썬 라이브러리도 알고 있습니까? :) – derrend

+1

잘못되었습니다. 공개 키를 사용하는 서명은 완전히 쓸모가 없습니다. 누구나 할 수 있습니다. 개인 키로 서명하십시오. 이것은 법적으로 귀하의 서명과 동일합니다 : 오직 당신 만이 할 수 있으며 누구라도 귀하의 공개 키로 확인함으로써 누구라도 * 확인할 수 있습니다. 따라서 공개 키가 서명과 함께 있어야합니다; 동시에 서명과 함께 있어야하는 인증서를 통해 * 서명이 누구인지를 확정 할 수 있습니다. 나는 파이썬에 관해 당신에게 조언 할 수 없다. – EJP

+0

나는 그것을 알아 냈다. 그러나 당신의 도움에 감사한다. – derrend

-1

수수께끼가 풀린 메시지는 signmessage "bitcoinaddress" "message" bitcoin 명령을 사용하여 bitcoin 공개 키를 사용하여 서명해야합니다.

+3

그러면 메시지가 서명되지 않고 암호화됩니다. 그것은 차이점입니다! – Manuel

+0

결국 이것은 정답이 아닙니다. 왜냐하면'프로토콜 버퍼의 해시를 통한 디지털 서명은 PaymentRequest 메시지의 일련 화 된 변형이며 pki_data의'** 공개 키 ** '를 사용하여 서명했기 때문입니다. – derrend