2012-11-28 4 views
1

나는 실제적으로 사용되는 암호 기술의 세계를 이해하려고 노력하고있다. 나는 시작 발판을 얻기가 매우 어렵다는 것을 알았습니다. 그리고 아무도 모른다는 것을 전제로 설명하는 좋은 자원이 있는지 궁금합니다.PEM, DER, X509, ASN.1, Oh My. 어디서 시작하나요?

예를 들어, X509 인증서와 "SignatureValue"속성이있는 파일을 (제한된 이해로 인해) 믿습니다. 나는 이것이 SHA256으로 인코딩 된 것이라고 생각한다. 그러나 Timestamp Authority Message의 DER 표현을 포함하는 "Timestamp Response File"을 제공해야하므로 정확히 무엇을보고 있는지 이해하고 싶습니다.

것들 내가 어느 정도까지 파악 :

  • SHA256은 해시 알고리즘입니다. 일방 통행?
  • X509는 인증서 (보이는 그대로)를 정의하는 문서입니다.
  • ASN.1은 시스템간에 데이터를 전송하는 방법의 그룹입니까?
  • DER은 2 진수/8 진수 비트로 데이터를 표현하는 방법입니다.

저는이 생태계의 조감도를보고 싶습니다. 그래서이 퍼즐이 어떻게 어울리는 지 개념을 가지고 있습니다. 그렇다면 How-Things-Work의 핵심에 대해 더 깊이 파고들 수 있습니다.

답변

1

개발자가 "더 깊은"암호를 사용해야 할 때마다 슬프다. 나는 그들이 "코드를 작성할 수 있고, 암호는 안전한 것을 만드는 코드 일 뿐이다"라고 생각하고 있음을 알고 있습니다. 그리고 그것은 단지 잘못되었습니다. 견고한 또는 거의 확실한 보안 백 그라운드가 없으면 암호 해킹 (자체 코드 작성)이 실패합니다.

나는 당신이 그것을 올바르게한다면 괜찮을 것이기 때문에 꽤 열심히 공부할 것을 제안 할 것이다. 그러나 이것이 실패하고 어떤 취약점이 도입되면 당신은 그렇게 좋은 채팅을하지 못할 것이다. 그래서 우선 제안합니다 :

는 자바 사람이없는 경우에도 암호는 피할 수있는 것이므로 극도의주의를 기울여야 만 문제가 더 많이 제기 될 때만 사용됩니다. 디지털 인증서

  • DER 및 PEM있는 인증서 인코딩 형태의 설명 형식 - - 256 비트 출력을
  • X509을 생성하는 암호 학적으로 안전한 단방향 해시 함수는

    • SHA25 :

      그리고 당신의 질문에 대해

    그리고 마지막으로 내 생각에 당신은 "나는 이걸 보았다고 생각합니다."라고 생각하고 더 깊게 파고 들어보십시오. 무엇이 안전한지 이해하지 못한다.

  • 3

    많은 책을 읽는 데 많은 시간이 걸릴 것입니다. 이럴이 빠른 방법은 위키 백과를 검색하고 무엇을 읽을 것입니다 :

    • 해시 알고리즘을 (짧은에,이 (거의) 유일한이를 나타내는 고정 된 크기의 값, 해시, 긴 텍스트/데이터를 변환

    • 서명 알고리즘 - '서명'이라고하는 해시 값에서 무언가를 계산합니다. 중요한 생각은 비밀 키가있는 경우에만 올바른 서명을 계산할 수 있다는 것입니다. 그리고이 서명은 공개 키로 확인할 수 있습니다. 공개 키는 사람들 사이에서 공유되므로 서명을 확인할 수 있습니다.

    유효한 서명은 텍스트/데이터가 다른 사람에 의해 변경되지 않았 음을 증명합니다.

    • 인증서 : 소유자, 이메일, 주소, 이름, 어떤 다른 사람이이 키에 대한 정보를 사용자의 공개 키를 결합하는 데이터의 블록이다. 일반적으로 권한 (루트 인증서)으로 서명 한 인증서 - 따라서 권한을 신뢰하면이 인증서가 사람을 올바르게 대표한다고 판단해야합니다.

    • 타임 스탬프 : 타임 스탬프를 서명에 바인딩하고 다른 문서를 통해 만든 사람의 신뢰를받는 서명입니다. 그래서, 이것은이 서명 (그리고이 문서)이 그 당시에 옳았다는 것을 증명할 것입니다. 때로는 인증서가 취소되거나 오래된 상태가 될 수 있기 때문에 필요합니다. 타임 스탬프가 없으면 인증서가 만들어 졌는지 알 수 없기 때문에 서명이 올바른지 알 수 없습니다.

    • ASN.1 - 추상 구문 표기법, 일부 데이터 구조의 형식을 설명하는 텍스트 규칙을 정의합니다. 이것은 대부분의 암호화 표준에서 사용됩니다.

    • DER 인코딩 (고유 인코딩 규칙) : ASN.1 개체/레코드를 이진 데이터로 인코딩하는 방법에 대한 규칙 집합입니다. BER (Basic Encoding Rules)도 거의 동일하지만 동일한 값 (BOOL은 0이 아닌 값으로 인코딩 될 수 있음)에 대해 다른 인코딩을 허용하며, 동일한 메시지 이후에 암호화에 사용할 수 없습니다 다른 해시를 생성하면서 다른 방식으로 인코딩 될 수 있습니다.
    • X.509 : 공개 키 인증서의 형식 (ASN.1)에 대한 표준입니다.

    희망이 등, 모든 타임 스탬프/X.509/서명/검증을 구현하는 시장에 암호화 라이브러리의 숫자가, 조금 실제로 :)

    에 무슨 일이 일어나고 있는지 이해하는 데 도움이됩니다.

    관련 문제