KR20230122152A - 암호화 시크릿의 동일성을 확인하는 방법 - Google Patents

암호화 시크릿의 동일성을 확인하는 방법 Download PDF

Info

Publication number
KR20230122152A
KR20230122152A KR1020237025535A KR20237025535A KR20230122152A KR 20230122152 A KR20230122152 A KR 20230122152A KR 1020237025535 A KR1020237025535 A KR 1020237025535A KR 20237025535 A KR20237025535 A KR 20237025535A KR 20230122152 A KR20230122152 A KR 20230122152A
Authority
KR
South Korea
Prior art keywords
salt
determined
secrets
secret
hash value
Prior art date
Application number
KR1020237025535A
Other languages
English (en)
Inventor
빅토르 프리젠
빅토르 파블로비치
필립 베베르
Original Assignee
메르세데스-벤츠 그룹 아게
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 메르세데스-벤츠 그룹 아게 filed Critical 메르세데스-벤츠 그룹 아게
Publication of KR20230122152A publication Critical patent/KR20230122152A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0877Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 시크릿들 중 적어도 하나가 보안 시스템에 읽기 보호되는 방식으로 저장된, 암호화 시크릿의 동일성을 확인하는 방법에 관한 것이다.
본 발명에 따른 방법은 적어도 하나의 보안 시스템이 암호화 해시 값 인터페이스(2, 4)를 구비하고, 검사하는 경우 솔트 또는 솔트의 해시 값을 제공하는 시크릿들의 해시 값이 상기 인터페이스(2, 4)를 통해 솔트 또는 솔트의 해시 값을 제공하는 다른 시크릿들의 상응하는 해시 값과 비교하도록 출력되는 것을 특징으로 한다.

Description

암호화 시크릿의 동일성을 확인하는 방법
본 발명은 시크릿(secret)들 중 적어도 하나가 보안 시스템에 읽기 보호되는 방식으로 저장된, 암호화 시크릿의 동일성을 확인하는 방법에 관한 것이다.
오늘날 현대의 자동차는 거대한 정보 기술적 차량 생태계의 일부이다. 이러한 차량 생태계의 핵심 부분은 소위 차량 백엔드(vehicle backend), 줄여서 백엔드이다. 이는 일반적으로 차량이 연결되어 있고 예를 들어 인터넷과 네트워킹되거나 상호 네트워킹되는, 차량 제조사에 의해 운영되는 서버이다. 백엔드와 차량 간 통신 연결은 공지되어 있는 표준 정보 보안 절차를 이용하여 보호된다. 표준 정보 보안 절차는 대부분 TLS이고 많은 경우 IPSec이기도 하다. 이러한 모든 표준 절차는 예를 들어 ECC 또는 RSA와 같은 소위 비대칭 암호화를 기반으로 한다. 차량 생태계는 추가적인 구성 요소, 예를 들어 개별적으로 차량들에 장착된 제어 유닛 및 예를 들어 차량 제조사로부터 제공되는 앱이 구동되고 차량 또는 제어 유닛뿐만 아니라 백엔드와도 통신하는 스마트폰을 포함할 수 있다. 차량 내부 통신은 예를 들어 WLAN 또는 블루투스를 통해, 차량 외부 통신은 일반적으로 통상적인 이동 무선 네트워크를 통해 이루어질 수 있다. 제조사 별 외부 장치, 예를 들어 대체로 하드웨어 인터페이스를 통해 전적으로 차량과 통신하는 소위 OBD 동글(dongle)도 차량 생태계의 추가적인 구성품일 수 있다. 이러한 통신 관계들도 일반적으로 비대칭 암호화 절차를 이용하여, 예를 들어 TLS 또는 IPSec를 통해 보호된다.
그러나 이 외에, 공유 시크릿을 기반으로 하는 암호화 절차, 일반적으로 소위 대칭 암호화를 이용하여 차량 생태계의 둘 이상의 참여자 간의 통신을 보호하는 데 사용될 수 있는 공유 시크릿을 참여자들이 안전한 방식으로 구비하는 것이 더 효율적이거나 보안 요구로 인해 필요한 경우도 있다. 공유 시크릿 및 이를 기반으로 하는 암호화 절차에 대한 예는 예를 들어 암호화를 위한 AES가 있는 공유 128 비트 키, 인증 또는 무결성을 위한 HMAC가 있는 256 비트 키 또는 비밀번호 인증을 위한 개별 비밀번호가 될 수 있다.
이러한 공유 시크릿은 이 시크릿을 사용하는 시스템에서 무단 접근, 및 본원에서 특히 무단 읽기 접근으로부터 가능한 한 보호된다. 이는 이러한 시크릿을 사용하는 암호화 작업의 로컬 호출용 인터페이스만 제공하고, 시크릿 자체를 읽기 위한 인터페이스는 제공하지 않음으로써 달성될 수 있다. 또한 예를 들어 소프트웨어 기반 난독화 기술(obfuscation) 또는 시크릿이 저장되는 보안 시스템으로서 하드웨어 보안 모듈(hardware security module, HSM)을 이용함으로써 이러한 시크릿은 역공학(reverse engineering)으로부터 가능한 한 보호된다. 시크릿이 더 이상 시스템을 떠나지 않는다.
이러한 절차의 이점은 하드웨어 보안 모듈을 사용하는 경우 누구도, 특히 시스템에 대해 전체 접근 권한(full access)이 있는 공격자도 시크릿 값에 접근할 수 없고, 이는 합리적인 비용으로 일반 텍스트로 얻어질 수 있다는 점에 있다. 키가 사용되는 모든 암호화 작업 역시 보안 시스템, 예를 들어 HSM 내에서 수행된다. 그러나 이 절차의 단점은 암호화 조작 실패 시 오류 탐색이 어렵다는 점이다. 이러한 오류는 예를 들어 메시지 인증 코드(message authentification codes, MAC) 또는 비밀 번호의 해독 또는 검사 시 수신자에서 발생할 수 있다. 예를 들어 수신자에게서 해독, 무결성 검사 또는 인증에 실패하면, 당연히 발신자가 사용한 시크릿, 예를 들어 메시지를 암호화하고/하거나 인증할 때 사용한 키 및 수신자가 메시지를 해독하고/하거나 무결성을 검사할 때 사용한 키가 서로 다르다는 의심이 떠오른다. 시크릿이 정기적으로 갱신, 예를 들어 새로 교체되거나 새로 합의되고 이러한 갱신이 보안을 위해 합리적인 경우에 특히 이러한 의심이 떠오른다. 최근에 갱신된 시크릿으로 이 시점까지 성공적인 조작이 수행되지 않은 경우, 시크릿에 오류가 있다는 의심이 매우 빠르게 생긴다. 그러나 해당 시크릿이 관련 통신 파트너들 중 적어도 하나에 의해 상기 언급한 HSM과 같은 보안 시스템에 보관되는 경우, 모든 관련 파트너들이 동일한 시크릿을 사용하는지 즉각 검사할 수 없다. 시스템에 보안 저장된 이러한 시크릿의 값은 쉽게 읽어낼 수 없고 그렇게 의도된 것이다. 그 결과 디버그 상황에서도 시스템 또는 장치에 대한 전체 접근 권한이 있음에도 불구하고 일반적으로 읽어내기가 불가능하다.
이러한 동일성 검사를 위해 가능한 접근법은 암호화 해시 함수를 사용하는 것일 수 있다. 이 경우 시크릿 자체 대신 이러한 시크릿의 해시를 읽어낼 수 있다. 이런 방식으로 동일한 시크릿의 다양한 인스턴스의 해시 값들을 다양한 보안 시스템들에서 또는 그들 중 적어도 하나는 보안되는 시스템들에서 읽어내어 해시 값들을 비교하여 동일성을 검사할 수 있다. 이는 키 또는 시크릿 자체를 읽어낼 수 없고 일반적으로 암호화 해시 값을 통해서도 키 또는 시크릿 자체를 역추론할 수 없다는 이점을 갖는다.
미국 공개특허공보 US 2017/0366527 A1호는 프로비저닝 시 시크릿을 보호하기 위해 해시 값들을 형성하고 이들을 비교하여 외부에서 생성된 해시 값과 키로부터 생성된 해시 값의 디폴트 값이 동일한 경우 "보안 플래그"(safe-flag)를 활성화하는 보안 지표를 생성할 수 있다.
그러나 이 방식은 특히 해당 시크릿, 예를 들어 비밀번호가 너무 짧거나 알려진 특정 패턴을 구비하지 않아 충분한 엔트로피를 갖추지 못한 경우에 문제가 된다. 이 경우 예를 들어 IT 분야에서 통상적으로 알려진 공격 방법, 예를 들어 무차별 대입 공격(brute-force attack), 사전 공격(dictionary attack) 또는 해시 값으로부터 시크릿을 추론할 수 있는 레인보우 테이블(rainbow table)을 사용한 공격 등이 가능하다.
본 발명의 목적은 시크릿 자체는 기밀로 유지되고 외부 공격에 대한 보안은 높은 상태에서 시크릿들의 비교가 가능한, 암호화 시크릿의 동일성을 검사하기에 적합한 방법을 제공하는 것이다.
이러한 목적은 본 발명에 따른 청구항 1, 특히 청구항 1의 특징부의 특징을 지닌 방법을 통해 달성된다. 바람직한 구성과 추가 실시예들은 이 청구항의 종속 청구항들로부터 나타난다.
본 발명에 따른 방법의 특히 바람직한 실시예에 따르면, 암호화 시크릿의 동일성을 검사하는 본 발명에 따른 방법은 하드웨어 보안 모듈(HSM)로 형성될 수 있는 보안 시스템에 읽기 보호되는 방식으로 저장된 적어도 하나의 시크릿을 사용한다. 적어도 하나의 보안 시스템, 즉 예를 들어 HSM은 해시 값 인터페이스를 구비한다. 이 인터페이스를 통해 보안 시스템에 저장된 시크릿의 암호화 해시 값을 읽을 수 있다. 추가로 보안 시스템은 해시 값을 생성하기 전에 소위 솔트(salt) 또는 이러한 솔트의 해시 값을 제공할 수 있다. 암호화 해시 값은 시크릿 및 추가된 솔트 또는 이의 해시 값에 의해 생성되고, 이러한 생성이 외부에서는 복잡하고 비용이 많이 들어 그러한 노력이 이익이 되지 않으므로, 이러한 시크릿에 대해 예를 들어 레인보우 테이블을 통한 공격이 어려워진다.
일반적인 정의에 따라 비밀 값이 아닌 솔트가 외부에서 결정되지 않고 바람직하게는 모든 쿼리에 대해 고정되지 않은 경우 특히 효율적이다. 솔트는 가능한 한 보안 시스템에서 생성되고 이때 자유롭게 선택된다. 이런 방식으로 읽기에 대해 시크릿이 보안 저장된 보안 시스템이 항상 보안 솔트만 사용하도록 보장된다. 이때 솔트가 항상 충분한 길이를 갖고 충분히 구분된다는 점이 본질적이다. 그러나 이런 경우 다양한 시스템에서 반드시 동일하지는 않고 솔트가 각각 시스템 자체에 의해 설정되는 경우 일반적으로 동일하지 않은 어떤 것이 솔트에 의해 저장될 시크릿에 추가되는 것이 문제이다. 그 결과 높은 보안성이 동일성 검사를 위태롭게 만든다.
따라서 본 발명에 따른 특히 바람직한 추가 실시예에 따르면, 솔트는 다수의 요소로 이루어진 솔트로 구성되고, 하나의 솔트 요소는 적어도 하나의 보안 시스템에 의해 결정되고 다른 솔트 요소는 보안 시스템에 전송되는 것이 제공된다.
따라서 한편으로, 알려진 공격과 관련하여 보안 시스템을 통해 매우 안전한 솔트를 생성할 수 있고, 본 발명에 따른 방법의 특히 바람직한 추가 실시예에 따르면, 이러한 안전한 솔트는 항상 새롭게 그리고 특히 항상 보안 난수 생성기를 통해 자체적으로 결정된 솔트 요소로서 생성될 수 있다. 그런 다음 다른 솔트 요소는 보안 시스템에 전송된다.
또한 본 발명에 따른 방법의 추가의 매우 바람직한 구성은, 시크릿의 해시 값이 형성되기 전에 보안 시스템에 의해 자체 결정된 솔트 요소가 공개되는 것이 제공될 수 있다. 이로 인해 바람직하게는 예를 들어 외부에서 결정된 요소를 재차 보안 시스템에 전송할 수 있는 비교 인스턴스에 대해 각각의 상황에 맞게 생성된 보안 시스템의 솔트 요소가 각각 알려진다.
또 다른 매우 바람직한 구성은, 솔트의 요소 및 시크릿이 연결되는 순서가 보안 시스템에서 결정되거나 외부로부터 지정되는 것을 제공한다. 시크릿 및 솔트 요소의 이러한 순서는 솔트와 시크릿의 조합의 해시 값에 결정적인 영향을 끼친다. 이 순서는 예를 들어 외부로부터 지정될 수 있고, 이때 이론적으로 항상 동일한 순서, 예를 들어 한 시스템에서는 자체적으로 결정된 솔트, 외부에서 결정된 솔트 및 시크릿이, 다른 시스템에서는 솔트 요소가 역순인 구조가 사용될 수 있어서 두 시스템에 의해 시크릿과 솔트 요소로 이루어진 조합에 대해 동일한 암호화 해시 값이 생성되고 안정적으로 비교될 수 있다.
매우 바람직한 구성은 솔트 자체가 자체적으로 결정된 솔트 요소 및 외부에서 결정된 솔트 요소를 갖는 2-요소 솔트로 형성되는 것을 제공한다. 이 경우 두 시크릿의 비교가 가능하고, 예를 들어 다수의 관련 인스턴스의 다수의 시크릿을 특히 디버깅 프로세스의 범위에서 서로 비교하기 위해 본원의 방법이 원하는 만큼 반복될 수 있다.
본 발명에 따른 방법의 특히 바람직한 추가 실시예에 따르면, 다양한 보안 시스템에 저장된 다수의 시크릿들의 동일성이 검사될 때, 제1 시스템에서 자체적으로 결정된 솔트 요소가 조회되고, 그에 이어서 조회된 이 솔트 요소는 자체적으로 결정된 자신의 솔트 요소를 자신의 시크릿 및 두 솔트 요소의 해시 값과 함께 전송하는 다른 시스템으로 전송되고, 이 다른 시스템의 자체적으로 결정된 솔트 요소는 외부에서 결정된 솔트 요소로서 자신의 시크릿 및 두 솔트 요소의 해시 값을 자기 측에서 결정하는 제1 시스템에 다시 보고되고, 그에 이어 두 시스템으로부터 전송된 해시 값이 비교될 수 있다. 따라서 특히 이미 여러 번 언급한 디버깅 절차에서 시크릿의 동일성이 안전하고 효율적으로 검사될 수 있다.
특히 이 절차에서, 본 발명에 따른 해법의 매우 바람직한 추가 실시예에 따르면, 솔트 대신, 연결된 솔트 요소의 해시 값이 사용될 수 있다. 이 경우 시크릿은 이미 연결되고 해시된 솔트 요소의 이 해시 값과 함께 제공되고 다시 해시된다. 이러한 제2 해시 값을 기초로 비교가 이루어진다. 이는 선택 평문 공격(chosen plaintext attack)에 대한 보안을 높일 수 있다.
본 발명에 따른 방법의 추가 실시예에 따르면, 제1 시스템의 연결 순서에서 솔트 요소가 다른 시스템의 솔트 요소로 교환될 수 있어서, 적어도 제1 시스템은 외부 지정인 순서를 수신한다. 즉 순서는 항상 각각의 보안 시스템에서 "목격된" 순서이다. 고정된 연결 순서가 결정되어 있는 한, 이는 추가의 조치 없이 수행될 수 있다. 바람직하게는 이러한 개념의 매우 바람직한 추가 실시예에 따르면, 다른 시스템이 순서를 직접 결정 및 공개하고, 예를 들어 자신의 자체적으로 결정된 솔트 요소 및 시크릿과 두 솔트 요소의 해시 값과 함께 이 순서를 전송할 수 있다. 다른 시스템이 자체적으로 결정한 이 순서는 외부에서 결정되어 제1 시스템에 전송되는 순서로 이용된다. 각각의 보안 시스템의 관점에서 솔트 요소의 순서가 서로 바뀌고 또한 두 보안 시스템에서 시크릿들이 솔트 요소의 순서를 바꾼다면, 생각할 수 있는 가장 높은 보안 수준에서 시크릿들의 암호화 해시 값들이 두 개의 솔트 요소와 일치하는 것이 보장된다. 따라서 고정된 값들 및 완전히 외부에서 유래된 설정이 솔트에 대해 허용되지 않도록, 자체적으로 결정된 솔트 요소, 바람직하게는 충분한 길이 및/또는 엔트로피의 솔트 요소가 항상 생성 및 사용되어, 말하자면 한 시스템에 대한 외부 결정된 솔트 요소가 다른 시스템의 자체 형성된 솔트 요소이며, 이는 본원의 방법의 안전성을 더욱 높인다.
자체적으로 결정된 솔트 요소의 이러한 사용에 의해, 소위 선택 평문 공격 범주를 저지하는 것이 가능한 바, 이러한 잠재적인 선택 평문 공격이 자체적으로 결정되는 솔트 요소의 사용에 의해 어려워지기 때문이다. 다른 공격 가능성, 예를 들어 레인보드 테이블을 통한 공격 또한 크게 제한되는 바, 이러한 각각의 솔트에 대해 자체적인 레인보우 테이블이 필요하기 때문이며, 이는 특히 사용되는 솔트 또는 솔트 요소가 충분한 길이 또는 엔트로피를 동반하는 경우 경제성만 생각해도 거의 실현되기 어렵다.
본 발명에 따른 방법의 특히 바람직한 추가 실시예에 따르면, 시크릿 및 솔트 요소의 해시 값을 결정하기 위한 전통적인 암호화 해시 함수 대신 해시 함수를 기반으로 하는 암호화된 복잡한 일회용 함수, 예를 들어 HMAC 또는 소위 키 유도 함수(key derivation function, KDF)가 사용될 수 있다. 이 경우 이 함수를 통해 상응하게 해시 값이 계산되고, 이는 예를 들어 SHA-256을 통한 종래의 해시 값 계산에 비해 추가적인 보안 이점이 있다.
각각 두 개의 시크릿이 각각의 시크릿 및 솔트의 해시 값을 통해 서로 비교된다. 시크릿이 더 많은 경우 이 방법이 되풀이하여 반복된다. 그러나 이 방법으로 세 개 이상의 시크릿을 직접 비교하는 것도 가능할 것이다. 시크릿의 수가 증가하면서 시크릿 및 솔트 또는 솔트 요소를 연결하는 방법이 증가하므로, 여기서 바람직하게 결정된 연결 순서 및 각 관련 보안 시스템에서 이러한 연결의 이행이 점차 중요해지고 있다.
또한, 본 발명에 따른 방법의 매우 바람직한 추가적인 구성에서, 적어도 후속 설정에서 변조 방지 방식으로 구성될 수 있는 보안 시스템, 예를 들어 HSM에서 암호화 해시 인터페이스의 개별 하위 기능에 대해 안전한 구성 방법이 제공된다. 이러한 설정은 이하의 질문을 적어도 하나 또는 바람직하게는 모두 포함한다:
- 자체적으로 결정된 솔트 요소가 사용되는가?
- 자체적으로 결정된 솔트 요소가 해시 값이 생성되기 전에 주위에 공개되는가?
- 외부에서 결정된 솔트 요소가 사용되는가?
- 외부에서 결정된 솔트 요소가 몇 개 사용되는가?
- 보안 시스템에서 연결 순서가 결정되거나 연결의 순서가 외부에서 지정될 수 있는가?
- 연결 순서에서 시크릿이 항상 지정된 위치, 특히 제일 앞에 오는가?
- 연결된 솔트 요소들로 구성된 솔트가 미리 해시되는가?
- 시크릿이 미리 해시되는가?
이러한 다양한 결정들을 통해 본 발명에 따른 방법을 사용하는 시스템이 예를 들어 서로 조정되거나 사전 결정된 검사 전략에 맞추어 조정된다. 상응하는 인터페이스의 구성에 따라 동일하게 구성된 시스템들이 오로지 구성만으로 다르게 형성될 수 있어 보안성을 더욱 높인다. 특히 예를 들어 일반적인 방식보다 사전에 시크릿 해싱이 결정되는 경우 마지막 질문은 생략될 수 있다.
본 발명에 따른 방법의 추가의 바람직한 구성들은 이하에서 도면과 관련하여 더욱 상세하게 설명되는 실시예로부터도 알 수 있다.
도 1은 차량 생태계에서 공유 시크릿을 도시하는 개략도이다.
도 2는 본 발명에 따른 방법의 제1 실시예의 절차를 도시하는 개략도이다.
도 3은 본 발명에 따른 방법의 대안적인 절차를 도시하는 개략도이다.
도 1의 도면에 차량 생태계(1) 또는 차량 생태계의 부분이 개략적으로 도시된다. 도시되는 부분은 각각이 두 개의 제어 유닛(ECU1 및 ECU2)을 갖는 두 대의 예시적인 차량(V1 및 V2)을 포함한다. 줄여서 백엔드로도 종종 지칭되는 차량 백엔드(B)가 그 옆에 도시된다. 백엔드(B)는 차량들(V1, V2) 또는 이들의 제어 유닛(ECU1, ECU2)과 통신할 수 있다. 이를 위해 백엔드는 이 실시예에서 두 개의 시크릿(SEC3 및 SEC4)이 저장되어 있는 하드웨어 보안 모듈(HSM) 형태의 보안 시스템을 구비한다. 두 대의 차량(V1, V2)에서 이에 상응하는 시크릿들(SEC5 및 SEC6)은 예를 들어 각각 제2 제어 유닛(ECU2)의 하드웨어 보안 모듈(HSM3 및 HSM4)에 저장되어 있다. 본 도면에 도시된 차량 생태계(1)의 부분의 실시예에서 두 대의 차량(V1, V2)은 서로 간에도 통신할 수 있다. 이를 위해 순전히 예시적으로 제1 차량(V1)에서는 하드웨어 보안 모듈(HSM1)을, 제2 차량(V2)에서는 하드웨어 보안 모듈(HSM2)을 가진 두 개의 제1 제어 유닛(ECU1)이 사용된다. 상응하는 시크릿들은 SEC1 및 SEC2로 표시된다.
암호화 절차로 소급될 수 있는 문제가 통신에서 발생하는 경우, 문제는 각각의 시크릿(SEC1, SEC2)에도 항상 있을 수 있다. 따라서 이하 실시예의 경우, 일반적으로 디버깅 프로세스 중에는 전체 접근 권한이 있는 경우에도 보안 시스템에서 불가능한, 시크릿들(SEC1, SEC2) 자체를 읽어야 할 필요 없이, 두 차량(V1, V2)의 제어 유닛(ECU1)의 각각의 하드웨어 보안 모듈(HSM1 및 HSM2)의 두 시크릿(SEC1 및 SEC2)을 얼마나 간단하고 안전하게 그럼에도 불구하고 효율적으로 검사할 수 있는지 설명한다.
시크릿들(SEC1, SEC2) 자체를 읽는 대신, 이 시크릿들(SEC1, SEC2)의 해시 값(HASH1, HASH2)을 읽는다. 해시 값(HASH1, HASH2)을 생성하기 위해 해시 값을 생성하는 일반적인 함수들, 예를 들어 SHA-256이 사용될 수 있다. 그러나 이하에서 실시예를 설명하기 위해 사용되는 종래의 암호화 해시 함수 대신, 암호화 해시 함수를 기반으로 하는 더욱 복잡한 암호화 일회용 함수도 사용될 수 있다. 예를 들어 HMAC 또는 키 유도 함수(KDF)가 사용될 수 있다. 이 경우 예를 들어 시크릿 및 솔트(HASH(SEC||SALT))에서 해시를 결정하는 위치에 함수(HMAC(SEC, SALT) 또는 KDF(SEC,SALT, Iterations))가 나타난다. 이때 반복이라 함은 키 유도 함수의 적용 반복 횟수를 상응하게 결정하는, 자유롭게 선택되는 자연수를 말한다.
이하에서 도 2를 이용하여 설명되는 실시예에서 두 개의 하드웨어 보안 모듈(HSM1, HSM2)의 시크릿들(SEC1, SEC2)의 동일성이 검사된다. 이를 위해 도 2의 도면에서 도면 부호3으로 표시된 검사 유닛이 이용된다. 두 하드웨어 보안 모듈(HSM1, HSM2)은 각각 상기 특성 모두를 구현했거나 이에 상응하게 구성될 수 있는 해시 값 인터페이스(2)를 각각 갖는다. 이 인터페이스(2)를 통해 자체적으로 결정된 솔트 요소의 사전 조회뿐만 아니라 솔트 요소의 연결 순서의 결정 방법도 허용된다. 검사 유닛(3)은 두 하드웨어 보안 모듈(HSM1, HSM2)에 저장된 시크릿들(SEC1, SEC2)의 동일성을 검사하도록 설계된 시스템을 말한다.
세부적인 절차는 하기와 같고, 도 2의 도면에서 검사 유닛(3)과 인터페이스(2) 또는 인터페이스를 갖춘 하드웨어 보안 모듈(HSM1 및 HSM2) 간의 상응하는 통신 화살표에 의해서도 나타난다.
1. 검사 유닛(3)이 시크릿들(SEC1, SEC2)의 동일성을 검사하기 위해 얻고자 하는 해시 값을 가진 각 시크릿들(SEC1, SEC2)의 식별자(sec)를 하드웨어 보안 모듈(HSM1) 및 하드웨어 보안 모듈(HSM2)에 동시에 전송한다. 또한 각각의 경우 사용될 솔트의 자체 요소를 공개하라는 요청이 전송된다.
2. 두 하드웨어 보안 모듈(HSM1 및 HSM2)이 각각 충분한 길이, 예를 들어 각각 256 비트의 새로운 임의의 솔트 자체 요소를 생성한다. 그런 다음 도 2의 도면에서 알 수 있는 바와 같이, 하드웨어 보안 모듈(HSM1)의 자체 요소(SALT1) 및 하드웨어 보안 모듈(HSM2)의 자체 요소(SALT2)가 검사 유닛(3)으로 전송된다.
3. 솔트 요소들이 연결될 순서(R)를 검사 유닛(3)이 지정한다. F는 외부에서 결정된 솔트 요소를, E는 자체적으로 결정된 솔트 요소를 나타낸다.
4. 검사 유닛(3)이 각각 외부에서 결정된 솔트 요소(SALT2, SALT1)를 각각의 하드웨어 보안 모듈(HSM1, HSM2)에 전송한다. 하드웨어 보안 모듈(HSM1)은 하드웨어 보안 모듈(HSM2)에 의해 자체적으로 결정된 솔트 요소(SALT2)를 외부에서 결정된 솔트 요소로서 전달받는다. 이에 대한 연결 순서는 본 실시예에서는 R(F, E)이다. 다른 하드웨어 보안 모듈(HSM2)이 상응하게 제1 하드웨어 보안 모듈(HSM1)의 솔트 자체 요소(SALT1)를 솔트 외부 요소(F)로 전달받고 이에 상응하여 제2 하드웨어 보안 모듈(HSM2)에 대한 솔트 자체 요소(E)는 SALT2이므로 솔트 요소의 뒤바뀐 순서(R)를 전달받는다.
5. 이제 제1 하드웨어 보안 모듈(HSM1)이 지정된 순서(R)에 따라 연결을 갖는 해시 값, 즉 HASH1:=HASH(SEC1||SALT2||SALT1)을 형성한다. 제2 하드웨어 보안 모듈(HSM2)이 자신의 해시 값(HASH2:=HASH(SEC2||SALT2||SALT1))을 결정한다. 그런 다음 이 두 해시 값(HASH1 및 HASH2)이 검사 유닛(3)에 전송된다.
6. 수신된 두 해시 값(HASH1 및 HASH2)이 동일한지 검사 유닛(3)이 검사한다. 수신된 해시 값들(HASH1, HASH2)이 동일하면, 두 시크릿들(SEC1 및 SEC2)이 정확하게 동일한 것이다. 여기서 불일치가 나타나는 경우, 시크릿들(SEC1, SEC2)이 명백하게 동일하지 않은 것이며 탐색된 오류는 이 시크릿들(SEC1, SEC2)의 범위에 있을 수 있다.
이하의 제2 실시예는 본질적으로 유사하게 구성된다. 각각의 경우 식별자(sec)를 갖는 시크릿(SEC1, SEC2)은 각각 하드웨어 보안 모듈(HSM1, HSM2)에 저장된다. 이때 제1 하드웨어 보안 모듈(HSM1)만 상기 언급한 특성을 모두 구현하고, 특히 사용되는 자체 결정된 솔트 요소의 사전 조회뿐만 아니라 두 솔트 요소의 연결 순서의 결정 방법도 허용하는 인터페이스(2)를 갖는다. 그에 비해, 다른 하드웨어 보안 모듈(HSM2)은 연결 순서(R), 예를 들어 솔트 자체 요소 다음에 제2 하드웨어 보안 모듈(HSM2) 관점에서 시크릿이 앞에 위치한 솔트 외부 요소(R(E, F)가 위치하는 연결 순서가 사전에 결정된 경우 더 간단한 인터페이스(4)만을 통해 외부적으로 결정된 솔트 요소를 받아 이를 즉각 처리할 수 있다. 도 3은 도 2의 도면과 유사한 절차를 상세하게 설명한다.
1. 검사 유닛(3)이 사용될 솔트 자체 요소(SALT1)를 공개하라는 요청과 함께 얻고자 하는 해시 값(HASH1)을 가진 제1 하드웨어 보안 모듈(HSM1)에 시크릿(SEC1)의 식별자(sec)를 전송한다.
2. 제1 하드웨어 보안 모듈(HSM1)이 충분한 길이를 갖는 임의의 새 솔트 자체 요소(SALT1)를 생성하여 이를 검사 유닛(3)에 제공한다.
3. 검사 유닛(3)이 제1 하드웨어 보안 모듈(HSM1)로부터 수신한 솔트 자체 요소(SALT1) 및 해시 값을 계산한 후 이를 사용될 솔트 자체 요소(SALT2)와 같이 전송하라는 요청과 함께 시크릿(SEC2)의 식별자(sec)를 얻고자 하는 해시 값을 가진 제2 하드웨어 보안 모듈(HSM2)에 전송한다.
4. 제2 하드웨어 보안 모듈(HSM2)이 충분한 길이를 갖는 임의의 새 솔트 자체 요소(SALT2)를 생성하고, 요청된 해시 값을 HASH2:=HASH(SEC2||SALT2||SALT1)으로 계산하고, 이 해시 값(HASH2)을 계산 시 사용된 솔트 자체 요소(SALT2)와 함께 검사 유닛(3)으로 전송한다.
5. 이제, 검사 유닛(3)이 사용될 솔트 외부 요소(SALT2) 및 제1 하드웨어 보안 모듈(HSM1)의 관점에서 이번에 사용될 연결 순서(R(F, E)), 즉 솔트 외부 요소와 솔트 자체 요소가 바뀐 연결 순서를 제1 하드웨어 보안 모듈(HSM1)로 전송한다.
6. 제1 하드웨어 보안 모듈(HSM1)이 자신의 해시 값(HASH1: =HASH(SEC1||SALT2||SALT1)을 계산하고 이 해시 값(HASH1)을 검사 유닛(3)에 전송한다.
7. 수신된 두 해시 값(HASH1 및 HASH2)이 동일한지 검사 유닛(3)이 검사한다. 상기와 유사하게, 수신된 해시 값(HASH1, HASH2)이 동일한 경우 시크릿들(SEC1 및 SEC2)이 정확하게 동일한 것이다.

Claims (14)

  1. 시크릿들 중 적어도 하나가 보안 시스템에 읽기 보호되는 방식으로 저장된, 암호화 시크릿의 동일성을 확인하는 방법에 있어서,
    적어도 하나의 보안 시스템이 암호화 해시 값 인터페이스(2, 4)를 구비하고, 검사의 경우에 솔트 또는 솔트의 해시 값을 제공하는 시크릿들의 해시 값이 상기 인터페이스(2, 4)를 통해 솔트 또는 솔트의 해시 값을 제공하는 다른 시크릿들의 상응하는 해시 값과 비교하도록 출력되는 것을 특징으로 하는, 암호화 시크릿의 동일성을 확인하는 방법.
  2. 제1항에 있어서,
    상기 솔트는 다수의 요소로 이루어진 솔트로 구성되고, 솔트 요소는 적어도 하나의 보안 시스템에 의해 자체적으로 결정되고 다른 솔트 요소는 상기 보안 시스템에 전송되는 것을 특징으로 하는, 암호화 시크릿의 동일성을 확인하는 방법.
  3. 제2항에 있어서,
    상기 보안 시스템에서 자체적으로 결정된 상기 솔트 요소는 상기 솔트 요소가 제공되는 시크릿의 해시 값이 형성되기 전에 공개되는 것을 특징으로 하는, 암호화 시크릿의 동일성을 확인하는 방법.
  4. 제2항에 있어서,
    상기 솔트 요소들 및 상기 시크릿이 상기 보안 시스템에서 연결되는 순서는 상기 보안 시스템 자체에서 결정되거나 또는 외부로부터 사전 지정되는 것을 특징으로 하는, 암호화 시크릿의 동일성을 확인하는 방법.
  5. 제2항에 있어서,
    상기 솔트는 자체적으로 결정된 요소 및 외부에서 결정된 요소갖는 2-요소 솔트로 구성되는 것을 특징으로 하는, 암호화 시크릿의 동일성을 확인하는 방법.
  6. 제2항에 있어서,
    다양한 보안 시스템에 저장된 다수의 시크릿들의 동일성이 검사될 때, 제1 시스템에서 자체적으로 결정된 솔트 요소가 조회되고, 그에 이어서 조회된 상기 솔트 요소는 자체적으로 결정된 자신의 솔트 요소를 자신의 시크릿 및 두 솔트 요소의 해시 값과 함께 전송하는 다른 보안 시스템으로 전송되고, 상기 다른 보안 시스템의 자체적으로 결정된 솔트 요소는 외부에서 결정된 솔트 요소로서 상기 자신의 시크릿 및 상기 두 솔트 요소의 해시 값을 자기 측에서 결정하는 상기 제1 시스템에 다시 보고되고, 그에 이어 두 시스템으로부터 전송된 상기 해시 값이 비교되는 것을 특징으로 하는, 암호화 시크릿의 동일성을 확인하는 방법.
  7. 제6항에 있어서,
    상기 제1 보안 시스템의 상기 연결의 상기 순서에서 상기 두 솔트 요소는 상기 다른 시스템이 사용한 연결의 순서(R)로 교체되어 적어도 상기 제1 시스템이 외부 지정으로서 상기 연결의 상기 순서(R)를 수신하게 되는 것을 특징으로 하는, 암호화 시크릿의 동일성을 확인하는 방법.
  8. 제6항에 있어서,
    상기 다른 보안 시스템은 상기 연결의 상기 순서(R)를 스스로 결정하고 이를 공개하는 것을 특징으로 하는, 암호화 시크릿의 동일성을 확인하는 방법.
  9. 제2항에 있어서,
    상기 솔트 대신 상기 시크릿이 상기 연결된 솔트 요소의 해시 값을 제공하고 이 조합의 상기 해시 값을 기초로 비교가 이루어지는 것을 특징으로 하는, 암호화 시크릿의 동일성을 확인하는 방법.
  10. 제2항에 있어서,
    상기 자체적으로 결정된 솔트 요소는 항상 새로, 특히 보안 난수 생성기를 이용하여 생성되는 것을 특징으로 하는, 암호화 시크릿의 동일성을 확인하는 방법.
  11. 제2항에 있어서,
    항상 적어도 하나의 자체적으로 결정된 솔트 요소가 사용되는 것을 특징으로 하는, 암호화 시크릿의 동일성을 확인하는 방법.
  12. 제1항에 있어서,
    암호화 해시 함수로서 해시 함수를 기반으로 하는 복잡한 암호화 일회용 함수가 사용되는 것을 특징으로 하는, 암호화 시크릿의 동일성을 확인하는 방법.
  13. 제1에 있어서,
    보안 시스템으로서 하드웨어 보안 모듈이 사용되는 것을 특징으로 하는, 암호화 시크릿의 동일성을 확인하는 방법.
  14. 제1항 내지 제13항 중 어느 한 항에 있어서,
    상기 적어도 하나의 보안 시스템은 상기 암호화 해시 인터페이스(2, 4)가 적어도 하나의 하기 하위 기능과 관련하여 변조 방지 방식으로 구성될 수 있게 하는 통신 인터페이스를 갖춘 것을 특징으로 하는, 암호화 시크릿의 동일성을 확인하는 방법:
    - 자체적으로 결정된 솔트 요소가 사용되는가?
    - 자체적으로 결정된 솔트 요소가 해시 값이 생성되기 전에 주위에 공개되는가?
    - 외부에서 결정된 솔트 요소가 사용되는가?
    - 외부에서 결정된 솔트 요소가 몇 개 사용되는가?
    - 상기 보안 시스템에서 상기 연결의 상기 순서(R)가 결정되거나 외부에서 지정될 수 있는가?
    - 상기 연결의 상기 순서에서 상기 시크릿이 항상 지정된 위치, 특히 제일 앞에 오는가?
    - 상기 연결된 솔트 요소들로 구성된 솔트가 미리 해시되는가?
    - 상기 시크릿이 미리 해시되는가?
KR1020237025535A 2021-02-09 2022-01-27 암호화 시크릿의 동일성을 확인하는 방법 KR20230122152A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE102021000645.3A DE102021000645B3 (de) 2021-02-09 2021-02-09 Verfahren zur Überprüfung von kryptografischen Geheimnissen auf Gleichheit
DE102021000645.3 2021-02-09
PCT/EP2022/051828 WO2022171446A1 (de) 2021-02-09 2022-01-27 Verfahren zur überprüfung von kryptografischen geheimnissen auf gleichheit

Publications (1)

Publication Number Publication Date
KR20230122152A true KR20230122152A (ko) 2023-08-22

Family

ID=80685233

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237025535A KR20230122152A (ko) 2021-02-09 2022-01-27 암호화 시크릿의 동일성을 확인하는 방법

Country Status (6)

Country Link
US (1) US20240121102A1 (ko)
JP (1) JP2024507704A (ko)
KR (1) KR20230122152A (ko)
CN (1) CN116848819A (ko)
DE (1) DE102021000645B3 (ko)
WO (1) WO2022171446A1 (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7461260B2 (en) 2002-12-31 2008-12-02 Intel Corporation Methods and apparatus for finding a shared secret without compromising non-shared secrets
US7444512B2 (en) * 2003-04-11 2008-10-28 Intel Corporation Establishing trust without revealing identity
WO2007148258A2 (en) * 2006-06-21 2007-12-27 Ashish Anand Integrity checking and reporting model for hardware rooted trust enabled e-voting platform
US9021269B2 (en) * 2012-07-18 2015-04-28 TapLink, Inc. Blind hashing
US10567362B2 (en) 2016-06-17 2020-02-18 Rubicon Labs, Inc. Method and system for an efficient shared-derived secret provisioning mechanism

Also Published As

Publication number Publication date
CN116848819A (zh) 2023-10-03
WO2022171446A1 (de) 2022-08-18
DE102021000645B3 (de) 2022-08-11
JP2024507704A (ja) 2024-02-21
US20240121102A1 (en) 2024-04-11

Similar Documents

Publication Publication Date Title
US10862874B2 (en) Apparatus for use in a can system
US10218499B1 (en) System and method for secure communications between controllers in a vehicle network
US10015159B2 (en) Terminal authentication system, server device, and terminal authentication method
JP6199335B2 (ja) 通信ネットワークシステム及びメッセージ検査方法
EP2905719B1 (en) Device and method certificate generation
US10057071B2 (en) Component for connecting to a data bus, and methods for implementing a cryptographic functionality in such a component
JP2014204444A (ja) センサへの操作及び/又はセンサのセンサデータへの操作を検出するための方法及び装置
CN109155732B (zh) 在网络设备之间建立安全通信的方法和装置
CN106850207B (zh) 无ca的身份认证方法和系统
JP6190404B2 (ja) 受信ノード、メッセージ受信方法およびコンピュータプログラム
US9165148B2 (en) Generating secure device secret key
CN109690543B (zh) 安全认证方法、集成电路及系统
JP2012235214A (ja) 暗号通信装置および暗号通信システム
US11516194B2 (en) Apparatus and method for in-vehicle network communication
CN109905384B (zh) 数据迁移方法及系统
US9038143B2 (en) Method and system for network access control
CN106257859A (zh) 一种密码使用方法
US20170180392A1 (en) Method and device for transmitting software
KR20230122152A (ko) 암호화 시크릿의 동일성을 확인하는 방법
CN109981264B (zh) 一种应用密钥生成方法及密码机设备组件
KR20130136119A (ko) 디바이스 인증 방법
US11546176B2 (en) System and method for authentication and cryptographic ignition of remote devices
JP2018026822A (ja) 通信ネットワークシステム及びメッセージ検査方法
JP2008203581A (ja) ネットワークシステム
CN115955303A (zh) 可信校验方法、装置、可读存储介质及电子设备