코드 서명이란 무엇입니까?
해커는 소프트웨어를 오프라인 또는 온라인으로 가져 와서 코드를 재 배열하고 변경하여 악성 코드로 만든 다음 온라인으로 업로드하여 사용자가 무료 프로그램 및 포함 된 악성 코드를 다운로드하도록합니다. 사용자가이 문제에 부딪치지 않도록하기 위해 코드 서명이 사용됩니다. 코드 서명은 프로그램을 만든 원래 프로그래머 나 회사가 프로그램에 서명하는 방법이며 프로그램이 설치 될 때 프로그램에 코딩이 추가되거나 변경되지 않았는지 인증합니다. 이것은 사용자 측에 특별한 소프트웨어가 필요하지 않으며, 사용자는 프로그래머의 신원을 확인할 수 있습니다. 이것은 보안의 한 형태로 만들어졌지만 프로그램을 만들거나 서명을 찾는 해커는 인공적이고 잘못 놓인 신뢰를 만들 수 있습니다.
프로그램은 온라인과 오프라인 모두에서 지속적으로 판매됩니다. 누군가 신뢰할 수있는 공급 업체 나 소매 업체로부터 오프라인으로 프로그램을 구매할 경우 해커가 프로그램에 악성 코드를 주입 할 염려가 거의 없습니다. 소프트웨어 개발자가 의도적으로 위험한 프로그램을 만들지 않는 한 누군가가 소프트웨어를 변조하여 악의적으로 만들 수있는 방법이 없기 때문입니다. 사용자가 인터넷에서 프로그램을 다운로드 할 때는 그러한 보장이 없습니다.
온라인으로 프로그램을 구매하거나 다운로드하는 사용자를 보호하기 위해 코드 서명이 구현됩니다. 코드 서명은 개발자와 최종 사용자의 두 부분으로 구분됩니다. 개발자는 프로그램 코드를 가장하는 단방향 작업 인 암호화 해시를 사용하고 개인 키를 해시와 결합합니다. 프로그램에 삽입 된 서명을 만듭니다.
사용자가 프로그램을 수신하면 코드 서명 프로세스의 두 번째 부분이 발생합니다. 프로그램은 프로그래머가 프로그램에 배치 한 인증서와 공개 키를 검사합니다. 공개 키를 사용하여 프로그램은 현재 프로그래밍에서 동일한 해시를 실행할 수 있으며 설치중인 현재 버전과 원본을 비교합니다. 설치된 프로그램과 원본이 모두 동기화되면 변경된 것이 없음을 사용자에게 표시합니다. 이 프로세스는 자동으로 수행되며이 인증에 필요한 프로그램은 컴퓨터 운영 체제 (OS)에 사전 설치되어 있어야합니다.
코드 서명은 보안을 보장하는 강력한 방법이지만 결함이 있습니다. 사용자가 해커로부터 프로그램을 다운로드하는 경우 인증은 원래 프로그램이 손상되지 않은 것으로 표시됩니다. 이로 인해 사용자는 잘못된 보안 감각을 갖게됩니다. 이 프로그램은 악의적 인 것으로 만들어 졌으므로 보안은 이러한 의미에서 달성되지 않습니다. 정교한 해커는 해시를 돌며 코딩을 주입하여 코드 서명을 쓸모 없게 만듭니다.