홈페이지 운영팁

인천을 대표하는 IT 기업으로써 고객만족과 기업가치의 극대화를 실현합니다.

코드서명이란?

2024-03-27


 

코드서명이란?

코드서명 



코드서명이란?


 

코드서명이란 배포할 프로그램 코드에 대한 서명으로, 해당 프로그램이 정당하다는 것을 증명하기 위해 붙입니다. 

문서에 사인(서명)하는 것과 똑같습니다.



코드서명의 목적


 

코드서명은 보안 패치와 같은 업데이트 프로그램을 배포할 때 특히 중요합니다. 

업데이트 프로그램은 인터넷을 경유하여 배포되기 때문에 공격자가 정식 업데이트로 위장하여 멀웨어와 같은 프로그램을 삽입할 위험이 있습니다. 

이를 방지하기 위해 누가 그 프로그램 코드를 작성했는지를 검증하기 위해 코드서명을 사용합니다.



코드서명의 베이스가 되는 전자서명과 공개키 암호 방식


 

코드 서명의 베이스가 되는 것은 전자서명(p.52) 기술입니다. 

전자서명은 종이 대신 파일과 같은 디지털 데이터를 대상으로 다음의 두 가지를 검증할 수 있습니다.


두 가지 검증

- 데이터가 원본이라는 것을 보증(서명했을 때부터 그 콘텐츠가 바뀌지 않았다는 것을 보증)

- 누가 서명했는지를 보증


식에서는 누구나 암호화를 할 수 있도록 하기 위해 공개키를 사용하고, 특정한 사람이 복호화할 수 있도록 하기 위해 비밀키를 사용합니다.

전자서명에서는 특정한 사람만 서명을 할 수 있으며 또한 누구나 그 서명을 검증할 수 있도록 해야 합니다. 

이는 공개키의 성질을 반대로 한 것입니다.


그래서 전자서명에서는 서명에 '비밀키', 서명의 검증에 '공개키'를 사용합니다. 

전자서명과 공개키 암호 방식의 관계 그리고 비밀키와 공개키의 사용법에 주목한 전자서명 및 코드 서명의 구조를 이해해 두기 바랍니다. 



전자서명의 구조


 

종이 문서에 사인(서명)하는 것과 똑같이 전자문서에도 문서의 정당성을 증명하기 위해 전자서명을 합니다.



코드서명


 

코드서명은 프로그램 배포자가 배포한 것과 완전히 동일하다는 것을 증명하기 위해 붙입니다. 


프로그램 파일을 조금이라도 변조하면 해시 값이 달라지므로 코드서명(암호화된 해시 값)과 일치하지 않게 됩니다. 

또한 비밀키로 암호화된 것은 쌍이 되는 공개키로만 올바르게 복호화할 수 있으므로 서명을 가공해도 실패합니다.


[출처] 알기 쉬운 일러스트로 해설, 그림 설명으로 한 번에 이해할 수 있는 보안의 기본 Miyamoto Kunio, Okubo Takao 지음, 이영란 옮김

카카오톡 카카오스토리 블로그 인스타그램 페이스북
  • 상호 : 에이디커뮤니케이션
  • 대표 : 우세진
  • 사업자등록번호 : 130-39-21061
  • 고객센터번호 : 1566-8667
  • 팩스 : 02--6924-8414

  • 소프트웨어 사업자 : B11-43345
  • 이메일 : master@ad-com.kr
  • 주소 : 인천 남동구 선수촌공원로 5, C동 912호(구월동, 구월테크노밸리)