2016-09-22 4 views
1

나는 시험판에 대한 질문을 생성하는 웹 응용 프로그램을 개발 중입니다. 따라서 보안은 프로젝트에서 매우 중요합니다. 재판에 대한 질문의 무승부가 완료되면 응용 프로그램은 PDF 문서를 만듭니다. 그리고 문서의 바닥 글에 암호화 된 문자열을 쓰기 :PDF 문서를 고유하게 만드는 방법은 무엇입니까?

public function Footer() 
{ 

    if ($this->logo != null) { 

     $this->Image($this->logo, 20, 278, 10, 10, 'PNG', '', 'C', false, 200, '', false, false, 0, false, false, false); 

    } 


    $this->SetY(-20); 


    $this->SetFont('helvetica', 'I', 8); 


    $this->Cell(0, 20, 'Page '.$this->getAliasNumPage().'/'.$this->getAliasNbPages(), 0, false, 'C', 0, '', 0, false, 'T', 'M'); 

    $this->Cell(0, 20, date("d/m/Y"), 0, 0, 'R', 0, '', 0, false, 'T', 'M'); 

    if ($this->text_crypter != null) { // this is the encrypted string 


     $this->SetY(-7); 

     $this->SetFont('helvetica', '', 6); 
     $this->MultiCell(0, 7, $this->text_crypter, false, 'L', false, 0, '', '', true); 

    } 

} 

당신이 암호화 된 문자열은 각 페이지의 바닥 글에 기록됩니다 볼 수 있듯이.

enter image description here

는하지만 유일하게 암호화 된 문자열을 복사하여 다른 문서에 붙여 넣을 수 있습니다 악의적 인 사람이있을 수 있기 때문에 문서가 내 응용 프로그램에서 만들어진를 식별 하는 것만으로는 충분하지 않습니다.

그렇다면 내 앱에서 제공되는 것으로 입증 될 PDF 문서를 만드는 방법은 무엇입니까? (질문에 대한 코멘트에서 수집 ...)

+6

앱에서만 사용할 수있는 개인 키를 사용하여 디지털 서명으로 서명하십시오. – mkl

+0

당신이 알고있는 masterpw로 pdf를 잠급니다. 누군가는 여전히 ID 문자열을 복사 할 수 있습니다. 그러나 pdf가 마스터 pw로 잠겨 있기 때문에 pw 보안/보안을 유지하면 암호를 복제 할 수 없습니다. –

+0

@pheromix "어떻게하는지"- PHP PDF 서명 라이브러리에 익숙하지 않아 Java 또는 .Net 컨텍스트의 옵션을 알고 있습니다. – mkl

답변

2

고유의 문서가 당신이 당신의 응용 프로그램이 디지털 서명이를 사용하여 문서에 서명해야 당신의 앱에서 만들어진 것을 확인하려면 개인 키는 앱에서만 사용할 수 있습니다.

Álvaro González는 TCPDF를 사용하여 디지털 서명을 적용하는 방법에 대한 예제로 Example 052 : digital signature certification을 지적했습니다.

Ryan Vincent는 서명에 PDF 문서의 해시 및 기타 세부 정보가 포함되어 있다고 설명했습니다. 체크되면 문서 해시도 검사됩니다. 서명을 다른 문서로 전송할 수 없습니다. 수표는 확실하게 실패합니다.

Adobe Reader에서 통합 PDF 서명을 확인할 수 있습니다. 실제로 인증서가 서명 확인 대화 상자의 서명자 인증서인지 확인하십시오.

Ryan Vincent는 디지털 서명이 일반적으로 어떻게 작동하는지에 대한 정보는 digital signatureCryptography Digital signatures 자습서를 참조했습니다.

특히 통합 PDF 서명에 대한 자세한 내용은 정보 보안 스택 교환에 대한 this answer과 여기에서 참조되는 문서를 참조하십시오.

관련 문제