2013-05-28 3 views
-2

자체 인증서를 발급하는 인증 기관이되고 싶다고 상상해보십시오. 내가 원하는 분야로 자신의 인증서를 생성하고 싶습니다. 이것은 어쨌든 이루어질 수 있습니까? OpenSSL 또는 다른 라이브러리 사용? 더 이상 공개 키, 서명 및 ID가없는 매우 컴팩트 한 인증서를 만들 수 있기를 바랍니다. 최대 약 250 바이트가되는 내용으로 openSSL을 사용하여 생성 된 인증서 (약 950 바이트)와 비교하면 상당히 적습니다. 내가 가진 내 인증서를 싶습니다C에서 자체 인증서 구조 만들기

필드는 다음과 같습니다

, SHA 256, 만료 시간, 생성 시간과, ECDSA (224) OU 256 일 인증의 취소를 허용하고 확인을 수행해야 사용되는 알고리즘.

답변

2

보안에 대해 전혀 염려가 없거나 자신이 아닌 다른 응용 프로그램과의 호환에 관심이 있다면 원하는대로 할 수 있습니다.

일반적으로 "자신 만의"보안 솔루션을 사용하는 것은 나쁜 아이디어입니다. 이유에 대한 표준이 있습니다. 그들은 동료 평가를 거쳐 테스트를 거쳤으며 투명합니다.

그러나 호기심에 대한 질문에 필요한 사항을 살펴 보겠습니다.

먼저 공개 키가 필요합니다. 현재 보안 권장 사항은 약 2048 비트 또는 256 바이트입니다. 키만 있으면 최대 250 바이트를 이미 초과합니다.

다음으로 서명이 필요합니다. 표준 서명은 키 크기와 같습니다 : 2048 비트 (256 바이트).

그런 다음 식별이 필요합니다. 그 신원이 무엇인지는 말하지 않았습니다. 문자열이 "Identity 1"이라고 가정 해 봅시다. 이것은 약 10 바이트를 차지합니다. 또한 매우 제한적이며 잘 확장되지 않습니다.

발급자 ID를 원한다면 언급하지 않았지만이를 다른 10 바이트로 보냅시다.

그리고 일련 번호는 무엇입니까? 인증서가 손상된 경우 이러한 인증서를 철회하는 방법을 원하십니까? 서명 알고리즘을 확인 하시겠습니까? 아니면 항상 동일 할 것입니까? 인증서의 만료 날짜를 원하십니까? 사용법은 어떻습니까? certs가 가질 수있는 역할을 구분하고 싶습니까? 이 모든 것이 바이트 수에 추가됩니다.

이전 단락에서 아무 것도 원하지 않는다고 가정 해 봅시다. 그것없이, 우리는 이미 532 바이트 총에 있습니다.

서식을 지정하면 어떨까요? 우리는 아마도이 모든 바이트들을 하나로 묶을 수는 없습니다. 인증서 값을위한 구조화 된 형식이 있어야합니다 (X509에서 사용 된 ASN.1 인코딩과 유사). 그러면 합계에 추가 바이트가 추가됩니다.

OpenSSL로 생성 된 인증서가 왜 쉽게 650 바이트를 넘을 수 있는지 확인할 수 있습니다.

결의안은 당신이 이것을 사용하려는 의도에 달려 있다는 것입니다. 당신은 자신의 샌드 박스에서 놀고있을뿐, 호환성이나 보안에 관심이 없습니까? 그런 다음 직접 가서 자신의 인증서 형식을 만드십시오. 그러나 그렇지 않으면 표준에 충실하십시오.

+0

안녕하세요. 우선 감사드립니다. 나는 차량 통신의 보안 표준을 구현하려고 노력 중이다. 표준은 성능상의 이유로 압축 된 인증서를 만들어야한다고 정의합니다.사용 된 알고리즘은 SHA 256, 만료 시간, 생성 시간, 인증서 해지 허용, ID와 함께 ECDSA 224 ou 256이어야합니다. 나는 그것이 내가 기억하는 모든 것이 다라고 생각한다. – mmm

+1

ECDSA를 사용하는 경우 필요한 공개 키 크기가 현저히 줄어 듭니다. 그러나, 나는 여전히 자신의 인증서 표준 및 PKI 생성에 대해 매우주의해야합니다. 뭔가를 놓치기 쉽고, 뭔가를 놓치면 결과가 커질 수 있습니다. 예를 들어 Sony는 ECDSA 솔루션을 잘못 구현했습니다. 여기 [이야기] (http://www.exophase.com/20540/hackers-describe-ps3-security-as-epic-fail-gain-unrestricted-access/)가 있습니다. – gtrig

+0

알겠습니다. 이해합니다. 그러나 이것이 학업 목적을 이해하는 데 도움이됩니다. 내 자신의 인증서를 만들 수있는 프레임 워크 나 기타 항목이 있습니까? 감사합니다. 감사합니다. – mmm