본문 바로가기
프로그래밍 놀이터/보안

[도서 정리] 63. 코드 서명 - 보안의 기본

by 돼지왕 왕돼지 2019. 12. 12.
반응형

63. 코드 서명 - 보안의 기본



* 코드 서명의 목적


-

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

문서에 사인하는 것과 같다.



-

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

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

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





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


-

코드서명의 베이스가 되는 것은 전자서명 기술이다.

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


1. 데이터가 원본이라는 것을 보증(서명한 이후로 컨텐츠가 바뀌지 않았다는 것을 보증)

2. 누가 서명했는지를 보증



-

전자서명의 베이스가 되는 것은 공개키 암호 방식 기술이다.

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

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



-

전자서명의 경우는 문서 전체의 해시 값을 작성하여 비밀키로 암호화한다.

공개키 암호와 반대가 된다.





* 해킹은 범죄? 공격과 방어는 표리일체


-

고도의 기술을 갖고 있는 것 자체가 나쁜 것은 아니다.

일반적으로 공격이라고 간주되는 기술 중에는 보안 대책에 사용되는 기술도 있고, 반대로 보안 기술로 개발된 것이 공격에 악용되는 경우도 있다.

예를 들어 데이터를 보호하기 위한 공통키 암호 방식이 랜섬웨어와 같이 인질을 잡기 위한 암호화에 악용되어 버리는 경우도 있다.

공격자가 사용하는 이미지가 강한 포트스캔이나 페네트레이션 테스트도 자신의 네트워크나 시스템의 강도를 확인하는 수단으로 사용할 수 있다.



-

공격과 방어는 표리일체이다.

해킹 기술을 연마한다는 것 자체는 나쁜 것이 아니며, 해외에서는 해킹에 관한 국제 회의도 있다.




반응형

댓글