제목을 매우 명확하게 읽지 않아서 몇 가지 단어로 질문을 올릴 수 없으므로 먼저 질문을 읽으십시오.공개/비공개 키 쌍 만들기 및 서명 프로그래밍 방식으로
내 시나리오 : P2P 응용 프로그램을 만들고 있습니다. 피어는 설치 중에 공용 및 개인 키 쌍을 생성하고 공개 키를 중앙 서버에 업로드합니다. 피어 A가 피어 B와 통신하기를 원할 때, 피어 A는 B의 공개 키를 다운로드하고 정상적인 암호화 및 데이터 전송이 발생한다.
이 공용/개인 키 쌍을 프로그래밍 방식으로 생성하려면 약간의 머리말이 필요합니다. 다시 말하지만, 중앙 서버의 개인 키로 서명 된 피어의 공개 키가 해당 인증서의 진위 여부를 알아야합니다.
개인 CA 종류를 만들어야합니까, 아니면 다른 방법으로도 가능합니까? 누군가가 프로그래밍 관점에서 작성, 서명 등을 이해하도록 도와 줄 수 있다면 좋을 것입니다. 나는 구글 검색에서 개념을 많이 얻고 있지만 코딩에는 그다지 중요하지 않다. 나는 암호를 처음 사용하기 때문에 다른 것을 구현하는 것이 도움이 될 것입니다.
참고 : 타사 CA를 사용할 수 없습니다. 인증을 위해 인증서를 사용하는 것이 아니라 암호화에 사용합니다.
감사합니다.
고마워요. 이 구현과 비슷한 것을 생각하고 있었지만 다른 구현도 있었으므로 어떤 것을 구현해야하는지 알 수 없었습니다. 내가 생각한 또 다른 방법은 등록하는 동안 서버가 키 쌍과 인증서를 만들고 인증서에 서명하여 다시 피어에게 전송하는 것입니다. 그러나 나는이 구현과 함께 갈 것이라고 생각한다. 실제 CA와 같이 CA를 만들지는 않지만 중앙 서버에 자체 서명 된 인증서와 키 쌍이 있습니다. 그리고 그것을 사용하여 모든 피어 인증서에 서명하십시오. –
확립 된 CA 소프트웨어를 사용하지 않고 이러한 작업을 직접 수행 한 경우의 보안 관련 내용을 알려주실 수 있습니까? 서명 부분은 매우 단순한 것으로 보이며 이에 대한 CA 소프트웨어를 가지고 있지는 않습니다. –
... CA 소프트웨어 란 무엇입니까? ... openssl을 살펴 본다면 "작은 CA"가 포함됩니다 ... openssl의 기본 작업에 관한 스크립트 모음 ... CA의 빌드 ... 사실 ...당신 CA는 자체 서명 된 인증서를 가질 것입니다 ... 좋습니다 ... 다른 CA를보십시오 ... 브라우저의 모든 루트 CA에는 자체 서명 된 인증서가 있습니다 ... 유일한 차이점은 브라우저 나 운영 체제와 함께 제공되는 것입니다 ... 귀하의 응용 프로그램과 함께 전달됩니다 ...이 CA는 다른 어떤 실제처럼 될 것입니다 ... – DarkSquirrel42