KR20010102851A - 개인 정보 교환 신택스 객체를 처리하기 위한 방법,데이터 처리 시스템 및 컴퓨터 프로그램 - Google Patents

개인 정보 교환 신택스 객체를 처리하기 위한 방법,데이터 처리 시스템 및 컴퓨터 프로그램 Download PDF

Info

Publication number
KR20010102851A
KR20010102851A KR1020010018667A KR20010018667A KR20010102851A KR 20010102851 A KR20010102851 A KR 20010102851A KR 1020010018667 A KR1020010018667 A KR 1020010018667A KR 20010018667 A KR20010018667 A KR 20010018667A KR 20010102851 A KR20010102851 A KR 20010102851A
Authority
KR
South Korea
Prior art keywords
pfx
data
certificate
graphical
embedded
Prior art date
Application number
KR1020010018667A
Other languages
English (en)
Other versions
KR100483766B1 (ko
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 KR20010102851A publication Critical patent/KR20010102851A/ko
Application granted granted Critical
Publication of KR100483766B1 publication Critical patent/KR100483766B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6236Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database between heterogeneous systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Automation & Control Theory (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)
  • User Interface Of Digital Computer (AREA)
  • Digital Computer Display Output (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

데이터 처리 시스템에서 개인 정보 교환 신택스(PFX;Personal Information Exchange Syntax) 객체를 처리하는 시스템, 장치 및 방법이 제공된다. 공용 키 암호화 규격(PKCS;Public Key Cryptography Standard), 특히 PKCS #12에 의해 정의된 바와 같이, PFX 객체는 포맷될 수도 있고, 즉, 신택스를 유지할 수도 있다. PFX 객체 유틸리티는 사용자가 그래피컬 사용자 인터페이스를 통해 PFX 객체내에 내장된 데이터 객체의 콘텐트를 보면서 편집하는 것을 가능하게 해준다. 그래피컬 객체(graphical objects)는 PFX 객체내에 내장된 데이터 객체를 나타낸다. 사용자는 PFX 객체 내부에서 다른 객체상으로 객체를 드래그 및 드롭할 수도 있고, PFX 객체 유틸리티는 필요한 동작을 자동으로 수행한다.

Description

개인 정보 교환 신택스 객체를 처리하기 위한 방법, 데이터 처리 시스템 및 컴퓨터 프로그램{SYSTEM, APPARATUS AND METHOD FOR PRESENTATION AND MANIPULATION OF PERSONAL INFORMATION SYNTAX OBJECTS}
관련 출원
본 출원은, 본 출원과 공동 계류중이며 양수인이 동일한 발명의 명칭이 "Method and System for Presentation and Manipulation of PKCS Enveloped-Data Objects"인 미국 특허 출원 번호 제 09/460,839호(대리인 문서 관리 번호 제 AUS990880USI 호)의 것과 유사한 주제에 다루며, 전술한 인용 문헌은 본 명세서에서 참조로 이용하고 있다.
발명의 분야
본 발명은 일반적으로 개선된 데이터 처리 시스템에 관한 것으로, 특히, 상호 운용성 규격(interoperability standards)에 따라 포맷된 개인 정보 교환 신택스(PFX;Personal Information Exchange Syntax) 객체를 처리하는 시스템, 장치 및 방법에 관한 것이다.
종래 기술
공용 키 암호화(public-key cryptography)는 암호화와 해독이 서로 다른 키를 필요로 하는 기술이다. 이 두 개의 키가 바로 공용 키와 개인 키(private keys)이며, 둘 중 하나가 데이터를 암호화하거나 해독할 수 있다. 사용자는 자신의 공용 키를 다른 사용자에게 주고, 개인 키는 자신이 보유한다. 공용 키로 암호화된 데이터는 그에 대응하는 개인 키가 있어야만 해독될 수 있으며, 그 반대도 가능하다.
공용 키 암호화가 승인됨에 따라, 소프트웨가 서로 다른 공급자들에 의해 개발되었더라도 두 개의 서로 다른 사이트에서 소프트웨어가 공동 작업할 수 있도록 표준 규격이 필요하게 되었다. 특히, 규격들은 디지털 시그네처(digital signatures)에 대한 동의(agreement), 디지털 엔벨로핑(digital enveloping), 디지털 인증(digital certification) 및 키 동의(key agreement)를 허용하도록 개발되었다. 그러나, 상호 운용성은 통신 가능한 포맷을 엄격히 고수할 것을 요구하고, "공용 키 암호화 규격(PKCS;Public Key Cryptography Standard)"은 이종 환경에서 기본적인 상호 운용 가능 규격에 대한 기준을 제공한다.
PKCS는 RSA 연구소가 발행한 도큐먼트 세트로, 이것은 공용 키 암호화에 이용되는 데이터 유형과 알고리즘을 정의하는데 이용된다. 10개의 PKCS 규격의 제 1 세트는 1991년에 공개되었다. 1993년에는 PKCS #2와 #4가 공개되어 PKCS #1에 통합되었고, 따라서 이 규격 세트는 다음의 내용을 포함한다.
PKCS #1 : PSA 암호화 규격,
PKCS #3 : 디피-헬만 키 동의 규격(Diffie-Hellman Key Agreement Standard),
PKCS #5 : 패스워드-기반 암호화 규격,
PKCS #6 : 확장형 인증 신택스 규격(Extended-Certification Syntax Standard),
PKCS #7 : 암호 메시지 신택스 규격,
PKCS #8 : 개인 키 정보 신택스 규격,
PKCS #9 : 선택 속성형(Selected Attribute Types),
PKCS #10 : 인증 요구 신택스 규격.
PKCS는 개발을 계속하여, 다음의 규격들도 1993년 이후에 추가되었다.
PKCS #11 : 암호 토큰 인터페이스 규격(Cryptographic Token Interface Standard),
PKCS #12 : 개인 정보 교환 신택스 규격,
PKCS #13 : 타원 암호화 규격Elliptic Curve Cryptography Standard),
PKCS #15 : 암호 토큰 정보 포맷 규격.
이 규격들은 두 개의 독립적인 레벨의 추상화(abstraction)을 제공한다. 제 1 레벨은 메시지 신택스이고, 제 2 레벨은 전용 알고리즘(specific algorithms)이다. 메시지 신택스와 전용 알고리즘이 직교해야 하는 것을 유의하자. 다시 말해서, 디지털적으로 서명된 메시지(digitally signed messages)의 신택스에 대한 규격은 비단 리베스트, 샤미르, 애들만에 의해 두 개의 큰 소수의 곱을 지수화 모듈로에 연상하도록 고안된 공용 키 알고리즘인 RSA 뿐만 아니라 모든 공용 키 알고리즘과 같이 작업할 수 있어야 하며, RSA를 위한 규격은 많은 다른 메시지 신택스 규격에도 적용 가능해야 한다.
이 규격 도큐먼트중 하나인 PKCS #9는 다른 PKCS 규격에서 이용될 수 있는 속성 세트를 정의한다. 특히, PKCS #9는 PKCS #6 확장형 인증서(extended certificates), PKCS #7 디지털 서명 메시지, PKCS #8 개인 키 정보, PKCS #12 개인 정보 및 PKCS 15 암화 토큰 정보에서 이용하기 위한 선택 속성형을 정의한다.
PKCS #12는 예컨대 개인 키, 인증서, 인증 해제 리스트(CRLs;Certificate Revocation Lists) 등과 같은 개인 신원 정보의 보안 전송(secure transfer)을 위한 신택스를 정의하고 있는 규격을 기술한다. 이 규격 하에서, 데이터는 개인 정보 교환 신택스(PFX)에 따라 잘 정의된 프로토콜 데이터 단위(PDU;Protocol Data Unit)로 패키지된다. 시간이 지나면서, 이 규격 프로토콜 데이터 단위는 "PFX"로서 친숙하게 알려졌다. PFX는 구별되는 엔코딩 룰(DER;Distinguished Encoding Rules)에 따라 규격 포맷 바이트 스트림으로 엔코드될 수 있다. 이 규격 포맷은 어떤 시스템에서 즉, 하드웨어 시스템, 운영체제 및 애플리케이션에 의해 정의된 동작 환경에서 발생된 PFX 객체가 완전히 다른 시스템으로 전송되어 그 곳에서 디코드되는 것을 허용한다.
PFX의 각 데이터 아이템은 다음의 두 개의 프라이버시 모드(privacy modes)중 하나로 전송동안의 노출을 독립적으로 막을 수 있다.
1. 공용 키 프라이버시 모드. 이 모드에서 데이터는 수신측의 공용 키로 암호화되며, 이 데이터는 수신측에서 그에 대응하는 개인 키로 해독될 수 있다.
2. 패스워드 기반 프라이버시 모드. 이 모드에서는 데이터가 입력 패스워드로부터 유도된 공유 비밀 키(대칭 키)로 암호화되며, 이 데이터는 수신측에서 동일한 키로 해독될 수 있다.
선택적으로, 데이터를 보호되지 않은 채로 즉, 암호화를 하지 않은 채로 놔 둘 수도 있다.
PFX는 스스로 다음의 두 개의 보전 모드(integrity modes)중 하나로 데이터 변경을 막는다.
1. 공용 키 보전 모드. 이 모드에서 전체 PFX에 대한 디지털 시그네처는 송신기의 개인 키를 이용해 발생되고, 이 시그네처는 수신측에서 그에 대응하는 공용 키를 이용해 검증될 수 있다.
2. 패스워드 기반 보전 모드. 이 모드에서, 전체 PFX를 HMAC-SHAI 메시지 다이제스트 알고리즘(HMAC-SHAI message algorithm)을 이용해 다이제트로 편성(digesting)함으로써 메시지 인증 코드(message authentication code)가 발생된다. HMAC 키는 입력 패스워드에서 유도된다. 수신측에서, 다이제스트는 동일한 패스워드를 이용해 재생성되어, 첨부된 다이제스트와 비교된다. 만약 두 개의 다이제스트가 일치한다면, 이 콘텐트의 보전성이 검증된다. 데이터 보전에 이용되는 패스워드는 데이터 프라이버시에 이용되는 패스워드와 일치할 수도 있고 일치하지 않을 수도 있다. 데이터 프라이버시와 함께 할 경우, 데이터 보전성을 보호하기 위한 메커니즘을 이용하지 않을 선택권이 존재한다.
결국, 개별적인 개인 정보 데이터 아이템은 PFX로 패키지될 수 있고, 각각의 데이터 아이템은 데이터 암호화에 의해 독립적으로 보호될 수도 있다. 전체 PFX의 데이터 보전성은 디지털 시그네처 혹은 메시지 다이제스트의 첨부로 보증될 수 있다. 다음, 최종 PFX는 규격 포맷으로 DER 엔코드되어 수신측 엔티티로 전송될 수 있다. 수신측은 DER 엔코드된 객체를 PFX로 디코드하고, 데이터 보전성을 검증한다. 마지막으로, 개별 데이터 아이템이 적절한 키로 해독되어 추출된다.
PFX 객체의 일부인 모든 속성들로, 관리자, 애플리케이션 개발자 및 다른 사용자는 세부사항을 쉽게 잊어버릴 수 있다. 이들은 예컨대 인증서 파일, 개인 키 파일 및, 데이터 보호에 이용되는 다른 패스워드 혹은 키처럼 PFX 객체를 생성하는데 이용되는 모든 성분 객체에 액세스하는 것은 가능하지만, PFX 객체를 생성하기 위해 이 객체들을 함께 합병(merge)하는 애플리케이션이나 수단은 갖지 않을 수도 있다. 다른 상황에서, 사용자는 목표 애플리케이션을 갖지 않거나 혹은 목표 애플리케이션에 자동적으로 포함되는 것을 원하지 않아서 PFX 객체를 외부 파일로서 수신할 수도 있다.
그러므로, 이종 환경에서 상호 운용 가능한 규격을 이용해, 예를 들면 분산된 컴퓨팅 환경에서 PKCS를 이용해 보안 데이터 객체를 제공 및 조작하는 개선된 시스템, 장치 및 방법을 갖는 것이 유리할 것이다. 또한 PFX 객체를 그래픽적으로 구성할 뿐만 아니라, 기억 혹은 수신된 PFX 객체를 보면서 조작하는 시스템, 장치 및 방법을 사용자에게 제공하는 것이 더욱 유리할 것이다.
데이터 처리 시스템내에서 개인 정보 교환 신택스(PFX) 객체같은 개인 정보 데이터 객체를 처리하는 시스템, 장치 및 방법이 제공된다. PFX 객체는 포맷되는데, 예를 들면 PKCS(Public Key Cryptography Standard) 규격, 특히 PKCS #12로 정의된 신택스를 포함할 수 있다. 개인 정보 데이터 객체 유틸리티는 사용자가 그래픽 사용자 인터페이스(GUI;Graphical User Interface)를 통해 개인 정보 데이터 객체내에 내장된 데이터 객체의 콘텐트를 보면서(view) 편집(edit)하는 것을 가능하게 한다. 그래픽 객체는 개인 정보 데이터 객체내에 내장된 데이터 객체를 나타낸다. 사용자는 객체를 드래그(drag)하여 개인 정보 데이터 객체내의 다른 객체로 드롭(drop)할 수 있으며, 개인 정보 데이터 객체 유틸리티가 자동적으로 필요한 동작을 수행한다.
개인 정보 데이터 객체내에 포함된 데이터 객체들 간의, 예를 들면 인증서와 데이터 객체간의 논리적 연상(logical associations)이 결정 혹은 생성되면, 이 논리적 연상은 연상된 데이터 객체를 나타내는 그래픽 객체들 사이에서 예컨대 화살표나 그 밖의 링크들 같은 비쥬얼 지시기(visual indicators)를 이용해 디스플레이된다. 그래픽 객체에 대한 사용자 행위를 통해 데이터 객체가 추가 혹은 삭제되면, 비쥬얼 지시기는 데이터 객체들간의 논리 연상에 대한 모든 갱신 내용을 반영하도록 갱신된다. 사용자는 그래픽 사용자 인터페이를 통해 개인 정보 데이터 객체에 대한 다른 동작을 지시할 수도 있다.
도 1은 본 발명이 구현될 수 있는 분산형 데이터 처리 시스템을 도시한 도면,
도 2a는 서버로 구현될 수 있는 데이터 처리 시스템을 예시한 블록도,
도 2b는 본 발명을 구현할 수 있는 컴퓨터 시스템내에서 동작하는 소프트웨어 성분의 관계를 예시한 블록도,
도 3은 PFX 객체를 제공 및 조작하기 위한 다이얼로그 윈도우(dialog window)를 도시하는 도면,
도 4a 및 도 4b는 PFX 객체 콘텐트를 수입(importing) 및 검증할 때 본 발명의 예시적인 동작을 개략적으로 설명하는 흐름도,
도 5는 데이터를 디스플레이하고 데이터 객체를 해독할 때 본 발명의 예시적인 동작을 개략적으로 설명하는 흐름도,
도 6a 및 도 6b는 데이터 객체 관련성을 결정할 때 본 발명의 예시적인 동작을 개략적으로 설명하는 흐름도,
도 7은 데이터 객체를 PFX 객체에 추가할 때 본 발명의 예시적인 동작을 개략적으로 설명하는 흐름도,
도 8은 데이터 객체를 PFX 객체에서 제거할 때 본 발명의 예시적인 동작을 개략적으로 설명하는 흐름도,
도 9는 PFX 객체 데이터 프라이버시를 보호할 때 본 발명의 예시적인 동작을 개략적으로 설명하는 흐름도,
도 10은 PFX 객체 데이터 보전성을 제공할 때 본 발명의 예시적인 동작을 개략적으로 설명하는 흐름도,
도 11은 PFX 객체를 수출(exporting)할 때 본 발명의 예시적인 동작을 개략적으로 설명하는 흐름도.
도면의 주요 부분의 부호 설명
102 : 네트워크 104, 106 : 서버
108 :기억 장치 110, 112, 114 : 클라이언트
202, 204 : 프로세서 206 : 시스템 버스
208 :메모리 콘트롤러/캐시 209 : 로컬 메모리
214, 222, 224 : PCI 버스 브릿지 226, 228 : PCI 버스
252 : 플랫폼 전용 운영체제 256 : 자바 애플리케이션/애플릿
309 : 공용 키 310, 311 : 개인 키
321, 323, 324 : 인증서 342 : 수입 버튼
343 : 보호 버튼 344 : 수출 버튼
361 : 송신 버튼
본 발명의 신규한 특징으로 믿어지는 특성은 첨부된 특허청구범위에 설명된다. 그러나 본 발명과, 본 발명의 바람직한 이용 모드, 또다른 목적 및 이점들은 첨부 도면과 연계하여 이후의 예시된 실시예의 상세한 설명을 참조할 때 가장 잘 이해될 것이다.
이제 도 1을 참조하면, 동 도면은 본 발명이 구현될 수 있는 분산형 데이터 처리 시스템을 도시하고 있다. 분산형 데이터 처리 시스템(100)은 본 발명이 구현될 수 있는 컴퓨터 네트워크이다. 분산형 데이터 처리 시스템(100)은 이 처리 시스템(100)내에서 함께 접속되어 있는 여러 장치와 컴퓨터들 사이에 통신 링크를 제공하는데 이용되는 매체인 네트워크(102)를 포함한다. 네트워크(102)는 도선이나 광 섬유 케이블같은 영구 접속을 포함할 수도 있고, 혹은 전화 접속을 통한 일시 접속을 포함할 수도 있다.
도시된 예에서, 서버(104)와 서버(106)는 기억 장치 유닛(108)과 함께 네트워크(102)에 접속된다. 또한, 클라이언트(110, 112, 114)도 네트워크(102)에 접속된다. 이 클라이언트(110, 112, 114)는 예를 들면 개인용 컴퓨터나 네트워크 컴퓨터일 수 있다. 본 출원에서 네트워크 컴퓨터란, 네트워크에 접속되어 네트워크에 접속된 다른 컴퓨터로부터 프로그램이나 다른 애플리케이션을 수신하는 모든 컴퓨터이다. 도시된 예에서, 서버(104)는 부트 파일(boot files), 운영체제 이미지(operating system images) 및, 클라이언트(110-114)에 대한 애플리케이션같은 데이터를 제공한다.
클라이언트(110, 112, 114)는 서버(104)에 대한 클라이언트이다. 추가로, 클라이언트(110-114)는 이 예에서 서버(106)에 대한 클라이언트일 수도 있다. 분산형 데이터 처리 시스템(100)은 추가의 서버와 클라이언트, 그리고 도시되지 않은 다른 장치들도 포함할 수 있다. 도시된 예에서, 분산형 데이터 처리 시스템(100)은, 서로 통신하기 위해 TCP/IP 프로토콜 슈트(TCP/IP Suite of protocols)를 이용하는 네트워크 및 게이트웨이의 월드와이드 콜렉션(worldwide collection)을 나타내는 네트워크(102)를 갖는 인터넷이다. 데이터와 메시지를 라우트하는 수 천개의 상업용, 행정용, 교육용 및 기타 컴퓨터 시스템으로 구성되는 주요 노드 혹은 호스트 컴퓨터들 사이의 고속 데이터 통신 라인의 간선(backbone)이 인터넷의 핵심이다. 물론, 분산형 데이터 처리 시스템(100)이 예컨대 인트라넷, 근거리 통신망(LAN), 혹은 광역 통신망(WAN)같은 다수의 상이한 유형의 네트워크들로 구현될 수도 있다. 도 1은 이종 컴퓨팅 환경의 일 예를 나타내고자 한 것일 뿐, 본 발명에 대한 아키텍처 제한으로서 의도된 것은 아니다.
도 2a를 참조하면, 동 도면은 도 1의 서버(104) 혹은 서버(106)같은 서버로서 구현될 수 있는 데이터 처리 시스템을 도시하는 블록도이다. 데이터 처리 시스템(200)은 시스템 버스(206)에 접속된 다수의 프로세서(202)와 (204)를 포함하는 대칭적 멀티프로세서(SMP) 시스템일 수 있다. 선택적으로, 단일 프로세서 시스템이 채용될 수도 있다. 또한, 로컬 메모리(209)에 대한 인터페이스를 제공하는 메모리 콘트롤러/캐시(208)가 시스템 버스(206)에 접속된다. I/O 버스 브릿지(210)는 시스템 버스(206)에 접속되어, I/O 버스(212)에 대한 인터페이스를 제공한다.메모리 콘트롤러/캐시(208)와 I/O 버스 브릿지(210)는 도시된 것처럼 통합될 수 있다.
I/O 버스(212)에 접속된 주변 성분 상호 접속(PCI) 버스 브릿지(214)는 PCI 로컬 버스(216)에 대한 인터페이스를 제공한다. 다수의 메모리가 PCI 버스(216)에 접속될 수도 있다. 전형적인 PCI 버스 구현은 4개의 PCI 확장 슬롯 혹은 애드-인 커넥터(add-in connectors)를 지원할 것이다. 도 1의 네트워크 컴퓨터(108-112)에 대한 통신 링크는 애드-인 보드를 통해 PCI 로컬 버스(216)에 접속된 네트워크 어댑터(220)와 모뎀(218)을 통해 제공될 수 있다.
추가의 PCI 버스 브릿지(222, 224)는 추가의 PCI 버스(226, 228)에 대한 인터페이스를 제공하고, 이로부터 추가의 모뎀이나 네트워크가 지원될 수 있다. 이런 식으로, 데이터 처리 시스템(200)은 다중 네트워크 컴퓨터에 대한 접속을 허용한다. 메모리 맵 그래픽 어댑터(memory-mapped graphics adapter)(230)과 하드 디스크(232)는 도시된 바와 같이 I/O 버스(212)에 직접적으로 혹은 간접적으로 접속될 수 있다.
당업자라면, 도 2a에 도시된 하드웨어가 변할 수도 있음을 인지할 것이다. 예를 들면, 광학 디스크 드라이브 등과 같은 다른 주변 장치가 추가로 이용되거나 도시된 하드웨어를 대신하여 이용될 수도 있을 것이다. 도시된 예가 본 발명에 대한 아키텍처 제한을 부과하기 위한 것임을 의미하는 것은 아니다. 도 2a에 도시된 데이터 처리 시스템은 예를 들면, AIX(Advanced Interactive Executive) 운영체제를 실행하는 IBM RISC/System 6000 시스템(미국 뉴욕 아몽크 소재의 IBM사 제품임)일 수도 있다. 선택적으로, 운영체제가 예컨대 IBM으로부터 입수할 수 있는 JavaOS For BusinessTM혹은 OS/2TM처럼 다른 상업적으로 이용 가능한 운영체제일 수도 있다. JavaOS는 네트워크상의 서버로부터 네트워크 클라이언트로 적재되며, 자바 프로그램 및 애플릿을 지원한다. 자바같은 객체 지향 프로그래밍 시스템은 운영체제와 연계하여 실행될 수 있으며, 데이터 처리 시스템상에서 실행중인 자바 프로그램이나 애플리케이션으로부터 운영체제로 호출(call)을 제공한다.
본 발명은 다양한 컴퓨터 플랫폼과 운영체제 상에서 예컨대 개인 정보 교환 신택스(PFX) 객체같은 암호 데이터 객체를 처리하는 방법, 시스템 혹은 장치 및, 컴퓨터 구현 인스트럭션(commputer-implemented instructions)을 제공한다. 비록 본 발명이 대부분의 컴퓨터 언어로 구현될 수 있을지라도, 분산된 이종 환경에서 자바 코드를 실행할 수 있는 능력으로 인해 자바로 구현되는 것이 바람직하다. 그러므로, 본 발명은 자바 런타임 환경(Java runtime environment)에서 동작할 수도 있으며, 자바 규격 명세서에 정의된 자바 가상 머신(JVM;Java virtual machine)의 경계내에만 있다면 JVM과 연계하여 동작할 수도 있다. 본 발명의 배경으로서, 자바 명세서에 따른 JVM의 동작 부분이 여기에서 설명된다.
이제 도 2b를 참조하면, 동 도면은 본 발명을 구현할 수 있는 컴퓨터 시스템 내부에서 동작하는 소프트웨어 성분들의 관련성을 예시하는 블록도이다. 자바 기반 시스템(250)은 전용 하드웨어 플랫폼(specific hardware platform)에서 실행중인 소프트웨어에 대해 하드웨어와 시스템 지원을 제공하는 플랫폼 전용운영체제(platform specific operating system)(252)을 포함한다. JVM(254)은 운영체제와 연계하여 실행할 수 있는 하나의 소프트웨어 애플리케이션이다. JVM(254)은 자바 애플리케이션이나 애플릿(256)을 실행할 수 있는 자바 런타임 환경을 제공하는데, 이것은 자바 프로그래밍 언어로 적힌 프로그램, 서블릿(servlet) 혹은 소프트웨어 성분이다. JVM(254)이 동작하는 컴퓨터 시스템은 전술한 데이터 처리 시스템(200)과 유사할 수 있다. 그러나, JVM(254)은 내장 피코자바 코어(picoJava core)를 갖는 소위 자바 칩, 자바-온-실리콘(Java-on-silicon), 혹은 자바 프로세서로 불리우는 것에 전용 하드웨어로 구현될 수 있다.
자바 런타임 환경의 센터에 JVM이 있는데, 이것은 아키텍처, 보안 특성, 네트워크 횡단 기동성, 플랫폼 독립성을 포함하는 자바 환경의 모든 측면을 지원한다. JVM은 가상 컴퓨터인데, 다시 말해 추상적으로 특정된 컴퓨터이다. 자바 명세서는 모든 JVM이 그 JVM이 실행되도록 설계된 플랫폼에 따라 어떤 범위내의 설계 범위에서 구현되어져야 하는가 하는 특정한 특징을 정의한다. 예를 들면, 모든 JVM은 반드시 자바 바이트코드를 실행해야 하고, 바이트코드로 표시된 인스트럭션을 실행하는 기술들은 몇개의 범위내에서 이용할 수도 있다. JVM은 전적으로 소프트웨어로 구현될 수도 있고, 어느 정도 하드웨어를 포함하도록 구현될 수도 있다. 이러한 융통성은 상이한 JVM이 예컨대 메인프레임 컴퓨터와 PDA처럼 하드웨어 플랫폼에 대해 설계되는 것을 허용한다.
JVM은 사실상 자바 프로그램을 실행하는 가상 컴퓨터 성분의 이름이다. 자바 프로그램은 CPU에 의해 직접적으로 실행되지 않고 JVM에의해서만 실행되는데,이것은 그 자체가 프로세서 상에서 작동하는 소프트웨어의 단편이다. JVM은 자바 프로그램이 코드가 컴파일되었던 바로 그 플랫폼과 대비되는 다른 플랫폼상에서 실행될 수 있게 한다. 자바 프로그램은 JVM에 대해 컴파일된다. 이런 식으로, 자바는 다양한 CPU와 OS 아키텍처를 포함할 수도 있는 많은 유형의 데이터 처리 시스템에 대해 애플리케이션을 지원하는 것이 가능하다.
도 1 내지 도 2b와 관련해 전술한 데이터 처리 시스템은 상호 운용 가능하게 정의된 암호화 규격에 따라 포맷된 암호 데이터 객체, 특히 PKCS #12 개인 정보 데이터 객체를 생성, 수정, 전송, 저장 및 수신하는데 이용될 수 있다. 다음 설명은 예컨대 인증서, 시그네처, 공용 키, 개인 키 등과 같은 보안 객체의 유틸리티에 대한 배경 정보를 제공한다.
인증서는 개인, 컴퓨터 시스템, 해당 시스템상에서 작동중인 전용 서버, 혹은 조직(organization)의 신원(ID)과 키 소유자임(key ownership)을 보증하는 디지털 문서이다. 예를 들면, 사용자의 인증서가 인증서와 연상된 공용 키가 사용자에게 속하는 것임을 검증한다. 인증서는 인증국(certificate authorities)에 의해 발행된다. 이 기관은 인증서를 발행하기 전에 개인의 신원과 공용 키 소유자임을 검증할 책임이 있다. 신원 보증서는 하나의 엔티티로부터 디지털적으로 서명된 스테이트먼트(statement)인데, 다시 말해서 어떤 다른 엔티티의 공용 키는 어떤 특정한 값을 갖는다.
공용 키는 특정 엔티티와 연상된 숫자들이며, 그 엔티티와 신뢰성있게 대화해야 할 필요가 있는 모든 사람에세 공지되도록 의도된다. 엔티티는 사람, 조직,프로그램, 컴퓨터, 기업, 은행 등이다. 만약 어떤 데이터가 디지털적으로 서명되었다면. 이것은 엔티티의 "신원(identity)"과, 엔티티가 이 데이터에 대해 안다는 것을 증명하는 시그네처와 기억된다. 시그네처는 엔티티의 개인 키와 약간의 데이터로 계산된다.
개인 키는 특별한 엔티티에게만 알려지도록, 즉, 비밀이 지켜지도록 지원되는 숫자들이다. 전형적인 공용 키 암호 시스템에서, 개인 키는 정확히 하나이고 오로지 하나의 공용 키에 대응한다.
인증서는 (a) 개인 키와 공용 키가 쌍을 이루고, (b) 개인 키가 서명 혹은 암호화에 이용되며, (c) 공용 키가 시그네처를 검증하거나 해독하는데 이용되는 공용 키 암호 시스템에 의지한다. 인증국(CA)은 다른 사람(엔티티)에 대해 인증서를 서명(발행)하도록 위탁된 엔티티(예를 들면, 기업)이다. 이것은 흔히 공용 키와 그 소유자를 결부시키는 것(binding)을 보증하는 것에 대해 어떤 종류의 법적인 책임을 갖고, 이로써 사람들은 인증서를 서명한 엔티티를 신뢰할 수 있게 된다.
두 개의 기본적인 기술이 인증서를 받는데 이용된다. 즉, (1) 적절한 소프트웨어를 이용해 스스로 만들거나, 혹은 (2) 다른 사람, 예를 들면 인증국에 발행을 요청한다. 인증서 생성 절차에 대해서는 두 개의 주요 입력이 존재한다. 첫 번째 입력은 어떤 특정 소프트웨어를 이용해 발생된 일치하는 공용 및 개인 키의 쌍이다. 공용 키만이 지금까지 다른 모든 사람에게 보여진다. 개인 키는 데이터를 서명하는데 이용되며, 만약 다른 사람이 부적절하게 어떤 다른 사람의 개인 키를 액세스한다면, 이들은 제 3자의 것으로 추정되는 합법적인 도큐먼트를 위조할 수 있다. 두 번째 입력은 인증되는 엔티티, 예컨대 개인에 대한 정보이다. 이것은 흔히 이름과 회사 주소같은 정보를 포함한다. 인증국이 인증서를 발행할려면, 사람들은 흔히 신원을 증명하는 것이 필요할 것이다.
만약 인증국이 개인에 대해 인증서를 발행한다면, 개인은 공용 키와 자신에 대한 약간의 정보를 제공해야만 한다. 예컨대 넷스케이프 네비게이터 혹은 인터넷 익스플로러같은 툴(tool)이 이 정보를 디지털적으로 서명하여 인증국으로 전송할 수 있을 것이다. 인증국이 신뢰성있는 제 3자의 인증 보증 서비스를 제공하는 회사일 수도 있을 것이다. 그 후, 인증국은 인증서를 발행하여 리턴시킬 것이다. 인증서가 예컨대 인증서 유효 기간과 일련 번호 같은 다른 정보를 포함할 수도 있다. 인증국에 의해 제공된 값의 일부는 그들의 검증 요구에 부분적으로 근거하여 중립적이고 믿을 수 있는 서문 서비스로서 제공하기 위한 것인데, 이것은 인증 서비스 실무(CSP;Certification Service Practices)에 공시되어 있다.
X.509 규격은 많은 규격들중 하나인데, 이것은 어떤 정보가 인증서에 포함될 수 있는지를 정의하며, 그 정보의 데이터 포맷을 기술한다. "버전(version)" 필드는 규격의 장래 버전에 대한 준비로 인증서 포맷의 X.509 버전(1, 2 혹은 3)을 나타낸다. 이것은 X.509 규격의 어떤 버전이 이 인증서에 적용되는지를 식별하는데, 이것은 어떤 정보가 인증서에 특정될 수 있는지에 영향을 준다. 지금까지는 세 개의 버전이 정의된다. 공용 키 인증서와 관련한 X.509의 버전 1은 1988년에 비준되었다. 버전 2 규격은 1993년에 비준되었는데, 버전 1 규격을 약간 강화한 내용이다. 1996년에 정의된 버전 3은 인증서가 규격화된 포괄적인 양식으로 확장될 수있어서 추가의 정보를 포함하게 할 수 있도록 인증서에 대한 융통성있는 확장을 허용한다. 공용 키 인증서의 전통적인 필드(즉, X.509의 버전 1 및 2에서 정의된 것들)에 덧붙여서, 버전 3은 규격 확장이라고 불리우는 확장을 포함한다. "규격 확장"이라는 말은 X.509 규격의 버전 3이 버전 2의 인증서에 대해 약간 광범위하게 적용할 수 있는 확장을 정의하고 있다는 것이다. 그러나, 인증서는 규격의 확장에만 제한되는 것이 아니며, 누구든지 적절한 기관(예를 들면, ISO)에 확장을 등록할 수 있다. 확장 메커니즘 그 자체는 일반적인 사항이다.
"일련 번호 (serial number)" 필드는 어떤 인증서를 다른 인증서와 구별하기 위해서 특정 인증국(CA)에 의해 발행되는 모든 공용 키 인증서의 도메인(domain)에 인증서의 고유의 수치 식별자를 지정한다. 인증이 해제(revoked)될 때, 전체 인증서를 게시한 이후에 인증국에 의해 서명된 인증 해제 리스트에 게시된 인증서 일련 번호는 사실상 비경제적인 것이며 완전히 쓸모없는 것이다. 그 이유는, 도메인에서 각각의 인증서에 대한 일련 번호는 고유한 것이어야 하기 때문이다. "시그네처 알고리즘" 필드는 인증서에 서명하기 위해 인증국에 의해 이용되는 알고리즘을 식별한다. 알고리즘 식별자, 이것은 세계적으로 알려진 표준화 기구(예를 들면, ISO)에 등록된 수자인데, 인증서에 서명하기 위해 인증국에 의해 이용되는 공용 키 알고리즘과 해싱 알고리즘(hashing algorithm)을 지정한다.
"발행인 이름(issuer name)" 필드는 인증서를 발행한 인증국의 X.500 구별되는 이름(DN;Distinguished Name)을 지정한다. 예를 들면, DN "c=US o=ACME corporation"은 미국의 ACME(ACME Corporation)의 고용인에게 인증서를 발행하는인증국에 대한 DN으로 이용될 것이다. 어떤 경우에는, 루트(root) 혹은 상위 인증국 인증서처럼, 발행인이 자기 자신의 인증서에 서명한다. "유효 기간(validity period)" 필드는 인증서의 시작일과 만기일에 대한 날짜와 시간을 지정한다. 인증서가 이용될 때마다, 소프트웨어는 그 인증서가 여전히 유효 기간내에 있는지를 확인하기 위해 인증서를 검사한다. 각각의 인증서는 오로지 제한된 기간동안에만 유효하며. 이 기간은 몇 초만큼 짧을 수도 있고 거의 한 세기처럼 길 수도 있다. 유효 기간은 예컨대 인증서에 서명하는데 이용되는 개인 키의 견고성(strength)이나 자발적으로 인증서에 지불하는 비용과 같은 다수의 요인에 따른다.
"주체 이름(subject name)" 필드는 인증서에서 식별되는 공용 키에 대응하는 개인 키를 갖고 있는 엔티티의 X.500 구별되는 이름(DN)을 지정하는데, 예를 들면, DN "c=US o=ACME Coporation, cn=John M. Smith"는 ACME의 고용인 John M. Smith에 대한 DN이며, 여기에서 "cn"은 공통 이름(common name)을 표시하고, "o"는 "조직"이며, "c"는 국가이다.
"공용 키" 필드는 인증서에 의해 식별되거나 혹은 명명되고 잇는 엔티티의 공용 키이다. "주체 공용 키 정보(subject public key information)" 필드는 두 개의 중요한 정보 조각, 즉, a) 주체가 소유한 공용 키의 값, b) 공용 키와 함께 이용될 알고리즘을 지정하는 알고리즘 식별자를 식별한다. 알고리즘 식별자는 공용 키 알고리즘과 해싱 알고리즘을 둘 다 지정한다.
"발행인 고유 식별자" 필드는 버전 2 규격의 일부로서 X.509 인증서 정의에 추가되었다. 선택성인 이 필드는, 동일한 X.500 이름이 시간 외에 하나 이상의 인증국에 서명된 경우, 발행인 X.500 이름을 고유하게 식별하기 위한 비트 스트링을 지정하는 위치를 제공한다.
"주체 고유 식별자(subject unique identifier)" 필드는 버전 2 규격의 일부로서 X.509 인증서 정의에 추가되었다. 선택성인 이 필드는 동일한 X.500 이름이 시간 외에 하나 이상의 주체에 대해 서명되었을 경우, 주체 X.500 이름을 고유하게 식별하는 비트 스트링을 지정하는 위치를 제공한다(예를 들면, 어떤 John M. Smith라는 사람이 ACME사를 떠나고, 다른 John M. Smith가 ACME사에 2달 뒤에 입사했다). 주체를 고유하게 식별하는 더 편리한 방법이 많이 있기 때문에 이 필드는 여러가지 기초적인 이유로 대부분의 인증국에 의해 이용되지 않는다. 더 구제적으로, 대부분의 인증국은 thserialNumber 속성을 이용한다. 이러한 스키마들은 조직의 사무 및 디렉토리 관리 프로시쥬어내에서는 잘 맞는데, 그 이유는 고용인들이 X.500 공통 이름의 방식으로 고유의 식별자를 필요로 하기 때문이다(예를 들면, 조직내에 동시에 두 명의 John M. Smith이 존재하는 경우를 다루기 위해).
X.509 버전 1은 1988년이후 이용가능한데, 이것은 널리 개발된 것으로 가장 포괄적이다. X.509 버전 2는 시간 외에 주체 및/또는 발행인 이름의 재사용의 가능성을 다루기 위해 주체 및 발행인 고유 식별자의 개념을 도입했다. 대부분의 인증서는 재사용되지 않는 이름들을 강하게 권고하는 도큐먼트들을 작성하고 있고, 이 인증서들은 고유 식별자를 이용해서는 안된다. 버전 2 인증서는 널리 이용되지 않는다.
X.509 버전 3은 가장 최근(1996년)의 것으로, 확장의 개념을 지원하므로써,모든 사람이 확장을 정의할 수 있고, 그것을 인증서에 포함할 수 있다. 오늘날 이용되는 동일한 공통 확장자는, "서명 전용"과 같은 특별한 목적을 위한 키의 이용을 제한하는 KeyUsage, 다른 ID가 이 공용 키 예를 들면 DNS 이름, e-메일 어드레스, IP 어드레스와 연상되는 것을 허용하는 anAltNames가 있다. 확장자는 확장자가 검사되어 집행/검사되어야 함을 나타내기 위해 정밀하게 마크될 수 있다. 그래서, 예를 들면, 인증서가 SSL 통신동안 제공될 때 인증서가 정밀하게 마크되어 KeyCertSign으로 설정된 KeyUsage 확장자를 갖는 경우에, 인증서 확장자는 연상된 개인 키가 오로지 인증서를 서명하는데 이용되어야 하며 SSL용이 아니라고 나타내고 있기 때문에, 이것은 거부되어야 한다.
여러 무리와 대화하는데 이용되는 키는 "키 체인"으로 진열할 필요가 있다. 물질계에서, 열쇠 고리는 열쇠(key)들을 달고 있고, 지갑은 여러 개의 신분증 및 신용 카드를 갖고 있다. 디지털 세계에서는, 디렉토리 서비스가 디지털 키와 인증서를 위한 기억 장소를 제공한다. X.500과 LDAP(Lightweight Directory Access Protocol) 규격은 디렉토리 서비스와 관련한 두 개의 주요 경쟁자이다. 디렉토리 서비스의 각 엔트리는 구별되는 이름에 의해 전체적으로 고유하게 식별된다. 예를 들면, Acme 사에서 행정부서에 속하는 John M. Smith는 다음의 구별되는 이름 즉, "cn=John M. Smith, ou=Executive Office, o=ACME Corporation, c=US"를 가질 것이며, 여기에서 "cn"은 공통 이름(common name)을 표시하고, "ou"는 "조직 단위"이며, "o"는 "조직"이고, "c"는 국가이다.
2세대 디렉토리 서비스는 특허 파일 포맷(proprietary file formats),해시(hash), B-트리(B-tree) 혹은 관계 데이터베이스 관리 시스템(Relational Database Management System)으로 엔트리를 기억한다. 비록 RDBMS가 X.500 구별되는 이름에 대해 반드시 최적화되는 것은 아니더라도, RDBMS에서 완성도(maturity), 스칼라빌리티(scalability) 및 추가의 유틸리티는 그것을 디렉토리 서비스 자료모음(directory service repository)으로서 매력적인 대안으로 만든다. X.509v3 인증서와 공용 키는 또한 기억되어 X.500- 혹은 LDAP-기반 디렉토리 서비스에서 보호된다. 만약 사용자의 개인 키가 손상되면, 공용 키와 연상된 인증서는 철회되어, 적절한 인증국의 인증 해제 리스트(CRL)에 추가되어야 한다.
전술한 바와 같이, 개인 정보 데이터 객체의 일부인 모든 속성들로, 관리자, 애플리케이션 개발자 및 다른 사용자는 세부사항을 쉽게 잊어버릴 수 있다. 이러한 사용자들은, 예컨대 인증서 파일, 개인 키 파일 및, 데이터 보호에 이용되는 모든 패스워드 혹은 키처럼, 개인 정보 데이터 객체를 생성시 이용되는 모든 성분 객체에 액세스하는 것은 가능하지만, 개인 정보 데이터 객체를 생성하기 위해 이 객체들을 함께 합병(merge)하는 애플리케이션이나 수단은 갖지 않을 수도 있다.
본 발명은 PKCS #12 프로토콜 데이터 유닛(PDU) 객체같은 개인 정보 데이터 객체(이것은 PFX 객체로도 알려짐)를 제공 및 조작하기 위한 그래픽 사용자 인터페이스 방법을 제공한다. 바람직하게, 그래픽 사용자 인터페이스와 이후의 도면에 설명된 다른 기능들은 다양한 상호 운용 가능한 이종 환경에서 본 발명의 방법을 제공하기 위해 자바로 쉽게 구현될 수도 있다. 본 발명은 PFX 객체를 참조하여 설명될 것이지만, 당업자라면, 본 발명의 원리가 그 이용되는 특별한 규격과 무관하게 모든 개인 정보 데이터 객체에 적용 가능함을 이해할 것이다.
이제 도 3을 참조하면, PFX 객체를 제공 및 조작하기 위한 디스플레이(300)가 본 발명의 바람직한 실시예에 따라 도시되어 있다. 디스플레이(300)는 PFX 객체가 생성 및 수정될 수 있는 비쥬얼 작업 영역(visual work area)을 제공한다. 도 3과 그 이후 도면에서 디스플레이(300)와 그 연관 기능들은 독립형(stand-alone) 유틸리티 혹은 애플리케이션으로 구현될 수도 있고, 혹은 이 디스플레이(300)와 그 연관 기능들은 브라우저형 애플리케이션내의 애플릿 또는 어떤 다른 유형의 애플리케이션의 일부로서 구현될 수도 있다.
다음의 도면 설명에서, 몇몇의 공통 사용자 인터페이스 이벤트 혹은 행위가 언급되는데, 당업자에게는 명확하듯이 그와 등가의 사용자 행위가 채용될 수도 있음을 주의해야 한다. 예를 들면, 드래그 및 드롭 동작(drag and drop operation)이 언급되면, 파일 리스트 박스로부터 파일 혹은 데이터 객체를 선택하는 것이나 혹은 어떤 다른 수입 수단(import means)처럼 대체 가능한 사용자 행위가 채용될 수도 있다. 객체에 대한 더블 클릭킹(double-clicking)은 예를 들어 PFX 객체의 콘텐트를 개방(opening)하여 보는 것(viewing)처럼, PFX 객체상에서 디폴트 동작을 수행하는 것과 등가일 것이다. 이 행위는 또한 객체에 대한 한 번 클릭킹(right clicking)과 디폴트 행위 선택 이후에 수행될 수 있는데, 이것은 흔히 그래픽적으로 표시하는 방식으로 혹은 어떤 다른 수단을 통해 강조된다. 일반적으로, 사용자는 대부분의 동작을 메뉴를 이용해 그만 둘 수 있다.
비록 비쥬얼 디스플레이의 영역들이 유사한 객체를 연상시키는데 이용되더라도, 연상된 객체를 시각적으로 나타내는 다른 방식들이 채용될 수도 있다. 예를 들면, 유사한 유형의 객체는 다른 유형의 다른 객체의 컬러나 형상과는 다른 유사한 컬러 혹은 형상을 가질 수도 있다. 또한, 비록 객체간의 관계 링크를 위해 화살표가 비쥬얼 지시기로서 도시되었을지라도, 다른 비쥬얼 지시기가 채용될 수도 있다. 예를 들면, 유사한 형상 수정이 특별한 관련성을 갖는 객체들에 대해 행해질 수도 있다.
다른 대체안으로서, 만약 다이얼로그에 도시된 객체가 너무 많아서 그들간의 관련성을 선명하게 보여주기 어려울 때에는, 사용자가 관련성 지시기를 선택적으로 제거할 수도 있고, 혹은 예를 들면, 버튼이나 메뉴를 선택함으로써 관련성을 보여주기를 요구하는 어떤 유형의 사용자 행위를 수행할 것을 사용자에게 요구할 수도 있는데, 어떤 경우에는 관련성을 보여주기 위해 다른 윈도우가 발생된다. 선택적으로, 객체들간의 관련성을 디스플레이하는데 필요한 비쥬얼 영역(visual area)을 확보하기 위해서 인터페이스 유틸리티가 인터페이스 유틸리티 윈도우를 자동적으로 확대할 수 있다.
도 3에서 디스플레이(300)는 PFX 인터페이스 유틸리티 애플리케이션을 위한 GUI 디스플레이인데, 이 PFX 인터페이스 유틸리티 애플리케이션은 상호 운용적으로 정의된 암호화 규격에 따라 포맷된 암호적인 데이터 객체, 특히 PKCS #12 PFX 객체를 사용자가 보면서 조작할 수 있게 한다. 사용자는 특정 객체를 디스플레이하는 디폴트 행위, 디폴트 방법 등에 관해서 GUI의 기술 분야에서 당업자에게 공지된 방식으로 사용자 기호에 따라 PFX 인터페이스 유틸리티를 구성하는 기능을 선택적으로 가질 수도 있다.
요약하면, PFX 콘텐트는 개인 데이터 아이템 혹은 데이터 객체로 구성되고, 이들 각각은 패스워드-기반 키 혹은 수신측의 공용 키와 함께 암호화를 통해 독립적으로 보호될 수 있다. 하나의 전체로서의 전체 PFX 객체의 데이터 보전성은 디지털 시그네처(공용 키 보전 모드) 혹은 메시지 다이제스트(패스워드 보전 모드)를 첨부함으로써 선택적으로 보장될 수 있다.
PFX 이름 필드(301)은 디스플레이(300)에서 현재 보여지고 있는 PFX 객체의 이름을 제공한다. 만약 디스플레이의 PFX가 파일로부터 수입되었다면, 이 필드의 값은 PFX가 판독되었던 파일이다. 만약 디스플레이의 PFX가 구성하에 있다면, 이 필드의 값은 PFX가 인터페이스로부터 수출될 때까지 PFX가 기록될 파일이다.
버전 필드(302)는 디스플레이(300) 내에 디스플레이되고 있는 PFX 객체를 위한 신택스 버전 번호(syntax version number)이다. PFX 객체를 위한 규격이 시간이 경과하면서 바뀜에 따라서, 여러가지 애플리케이션이 상이한 규격의 버전들에 따라 PFX 객체를 생성할 수도 있다. 버전 번호는 애플리케이션이 어떤 버전의 구격으로 PFX 객체가 파스(parsed), 해석 혹은 디코드되어야하는지를 알 수 있도록 PFX 객체내에 기억된다.
데이터 보전 모드 필드(303)는 PFX 객체와 이용되는 데이터 보전성 보호의 유형 즉, 패스워드 보전 모드, 공용 키 보전 모드 혹은 보전 모드의 비존재(none)를 식별한다. 만약 어떤 형태의 데이터 보전성 보호가 이용되었다면, 데이터 보전 모드 필드(303)는 PFX 객체의 콘텐트가 검증되었는지도 나타낸다. PFX 객체의 모든 데이터 콘텐트는 PFX 객체가 검증될 때까지 숨겨진다.
PFX 객체가 공용 키 보전 모드를 이용하면, 데이터 보전성은 적절한 공용 키 객체(309)를 데이터 보전 모드 필드(303)에 드래그 및 드롭함으로써 검증될 수 있다. PFX가 패스워드 보전 모드를 이용하면, PFX 객체의 검증을 수행하기 위해서 적절한 패스워드가 입력될 수도 있다. 만약 어떠한 데이터 보전 모드도 이용되지 않았다면, 사용자는 이들을 보기전에 콘텐트를 검증할 필요가 없다.
비록 도 3이 헤더 유형 필드로 데이터 보전 모드 필드(303)를 도시할지라도, 본 발명이 이런 류의 디스플레이에만 한정되는 것은 아니다. 오히려, 데이터 보전 모드 필드는 패스워드 혹은 키 입력을 받아들 수 있는 선택 가능한 아이콘으로서 디스플레이될 수도 있고, 데이터 보전성이 입력에 의해 성공적으로 검증만 된다면 그 외관을 변경시킬 수도 있다.
PFX 객체의 요소들은 디스플레이(300)의 영역들에 유형별로 그룹지어져서, 사용자가 연상된 요소들과 그들의 관련성을 시각적으로 파악할 수도 있다. 사용자는 객체를 엔코드된 인증서를 포함하는 텍스트 파일처럼 다이얼로그의 콘텐트 영역(350)에 드래그 및 드롭하여, 이 콘텐트를 새로운 값으로 갱신할 수 있다.
요소들은 정의된 관련성에 따라 서로 링크될 수 있다. 예를 들면, 이후에 더 자세히 설명되겠지만, 인증서 객체들은 개인 키 객체, 인증 해제 리스트 및/또는 다른 인증서에 링크될 수도 있다. 비록 EncryptedData 객체와 EnvelopedData 객체가 그들의 콘텐트가 일단 암호 해독되었을지라도, EncryptedData 객체와 EnvelopedData 객체는 스스로 PFX 객체내의 어떤 다른 객체에 링크되지 않는다.본 발명의 사상과 범주를 벗어나지 않으면서 다른 정의된 관련성이 본 발명과 함께 이용될 수도 있다.
PFX 객체의 여러 요소들 사이의 관련성은 사용자로부터 요구되는 대화없이 GUI에 의해 식별될 수도 있다. 예를 들면, 인증서 객체에 포함된 공용 키와 연상된 개인 키는 어떤 알려진 텍스트를 공용 키로 암호화하고 이 텍스트를 연상된 개인 키로 해독함으로써 결정될 수도 있다. 그러므로 성공적인 암호화 동작은 개인 키/공용 키 쌍을 식별한다. 인증서 체인은 예를 들면 인증서 객체에서 발행인 정보를 추출하여 이 발행인 정보가 다른 인증서의 주체임을 판정함으로써 결정될 수 있다. 만약 그렇다면, 인증서는 인증서 체인의 일부이다.
마찬가지로, 인증 해제 리스트와 연상된 인증서는 객체에서 일련 번호 존재를 검사함으로써 결정될 수 있다. 만약 인증서의 일련 번호가 인증 해제 리스트에 의해 기술되는 일련 번호와 일치하면, 두 개의 객체는 관련이 있다. PFX 객체 요소들 사이의 관련성을 자동적으로 검사하는 다른 방법이 본 발명의 사상과 범부를 벗어나지 않으면서 이용될 수도 있다.
개인 키 객체(310, 311)가 인증서 객체(321-324)와의 그들 연관성을 그래픽적으로 나타내면서 콘텐트 영역(350)의 제 1 층에 도시되었다. PFX 객체가 수입되어 검증될 때, PFX 객체와 연상된 개인 키는 콘텐트 영역(350)에 개인 키 객체로서 디스플레이된다. PFX 객체를 구성중일 때, 사용자는 개인 키 객체를 예컨대 툴바(toolbar), 메뉴(menu), 혹은 다른 GUI 툴(tool)로부터 콘텐트 영역(350)으로 드래그 및 드롭함으로써 개인 키를 PFX 객체에 추가할 수 있다.
해독된 GUI에서의 객체에 관한 개인 키 객체(310,311의 )세부 사항은 객체를 선택함으로써 개관되고 편집될 수 있다. 객체가 선택되는 경우에, 객체의 세부 사항의 디스플레이가 디스플레이될 것인데, 예를 들면 객체의 세부 사항이 편집될 GUI로서 디스플레이될 것이다. 따라서, 데이터 객체의 데이터는 객체를 선택하고 데이터 객체의 데이터를 편집함으로써 처리될 것이다. 편집된 데이터는 이후에 PFX 객체의 일부로서 저장될 것이다.
인증서 객체(321-324)는 디스플레이(300)의 콘텐트 영역(350)의 제 2 층에 그룹지어 도시되었다. 이 인증서 세트는 PFX 객체의 콘텐트를 검증하는데 필요하게 될 공용 키를 식별하는 PFX 객체의 수령을 돕는데 이용될 수도 있다. 인증서는 전형적으로 인증서 체인 순서대로 있을 것이지만, 인증서의 체인이 본 발명의 기능에 필수적인 것은 아니다. 인증서들 사이의 화살표는 PFX 객체내에 존재하는 인증서 체인을 나타내며, 인증서 객체(321과 323) 시이의 화살표(325)는 예를 들어 엔트리 레벨로부터 루트 인증국으로의 순서를 나타낸다. 하나 이상의 체인이 제공될 수 있으며, 체인내의 모든 인증서가 제공될 필요는 없다.
또한, 인증서는 PFX 객체에 존재하고 있는 개인 키 객체에 대응하는 공용 키를 보유하고 있을 수도 있다. 이 경우, 개인 키와 인증서 사이의 화살표(327 혹은 328)는 이 관련성을 나타낸다. GUI는 간단한 방식으로 이 관련성을 검출할 수 있다. 예를 들면, 알려진 플레인 텍스트 객체(plain text object)가 개인 키로 암호화되고 공용 키로 성공적으로 해독되었다면(혹은 그 반대로), 이 키들은 키 쌍(key pair)을 이룬다.
만약 PFX 객체를 구성중이면, 사용자는 예컨대 툴바, 메뉴 혹은 그 유사한 GUI 툴로부터 콘텐트 영역(350)상으로 인증서 객체를 드래그 및 드롭함으로써 PFX 객체에 인증서를 부가할 수 있다. 이 때 GUI는 인증서를 PFX 객체에 부가할 것이다. 만약 사용자가 원한다면, 인증서가 부가된 이후에 사용자를 위해 인증서 체인을 구성하기 위하여 인터페이스는 구성형 인증서 데이터베이스로부터 인증서를 자동으로 수입할 수 있다.
사용자는 인증서 객체를 선택하고 별개의 그래피컬 인터페이스를 개방하여 선택된 인증서 객체내에 포함되는 속성들을 보면서 조작할 수 있다.
인증 해제 리스트(CRL) 객체(330)는 CRLs용으로 확보된 디스플레이(300)의 영역내에 도시되어 있다. 디스플레이(300)에 도시된 CRL은 어떤 인증서가 무효로 플래그되어야 하는지를 식별하기 위한 PFX 객체의 수령을 돕는데 이용된다. CRL과 인증서 객체 사이의 화살표는 어떤 인증서가 특별한 CRL에 의해 해제되는지를 나타내고, 화살표(331)은 인증서(323)가 CRL 객체(330) 내부에 표시된 것처럼 해제됨을 나타낸다. 만약 선택적으로 사용자에 의해 구성된다면, 인터페이스 유틸리티는 LDAP(Lightweight Directory Access Protocol) 데이터베이스를 참조하고, 인증서의 X.509 이름과 CRL 객체를 이용하여 어떤 인증서가 해제되어야 하는지를 결정할 것이다.
사용자는 CRL 비쥬얼 영역에 CRL 객체를 드래그 및 드롭함으로써 PFX 객체에 CRL을 추가할 수 있다. 인터페이스 유틸리티가 CRL을 PFX 객체에 추가할 것이다. 사용자는 또한 CRL 객체를 선택하고, 별개의 비쥬얼 인터페이스 혹은 다이얼로그윈도우를 개방하여, 선택된 CRL 객체내부에 포함된 속성들을 예컨대 CRL 객체상에서 더블 클릭킹(double-clicking)함으로써 보면서 조작할 수 있다.
암호화된 데이터 객체(340-341)는 암호화된 데이터 객체를 위해 마련해둔 디스플레이(300)의 콘텐트 영역(350)의 영역에 도시되었다. PFX에 포함된 각각의 데이터 아이템은 피스워드 기반 키와의 암호화를 통해 독립적으로 보호될 수도 있고, 이 데이터 아이템들은 필수 패스워드를 제공함으로써 목적지에서 해독될 수 있다. 그러나 해독이 발생할 때까지 데이터 아이템들은 불투명한 객체(opaque objects)로서 디스플레이되고, 패스워드 보호된 데이터는 PKCS #7 EncryptedData 객체로서 인식된다.
사용자는 EncryptedData 객체를 선택하고 패스워드를 제공함으로써 EncryptedData 객체를 해독할 수 있다. 그 패스워드에 의해 해독 가능한 모든 EncryptedData 객체의 콘텐트는 액세스 가능하게 될 것이며, 객체의 적절한 카테고리 즉, 개인 키 객체, 인증서 객체, CRL 객체 등으로 번역된다. 해독된 불투명한 객체는 EncryptedData 객체 영역에서 제거된다. 제공된 패스워드에 의해 해독 가능하지 않은 EncryptedData 객체는 불투명한 객체로 EncryptedData 영역에 계속 남아 있는다.
EnvelopedData 객체(348)는 EnvelopedData 객체를 위해 마련해둔 디스플레이(300)의 콘텐트 영역(350)의 영역에 도시되어 있다. PFX 객체에 포함된 각각의 데이터 아이템은 PFX 객체 수신측의 공용 키와의 암호화를 통해 독립적으로 보호될 수도 있고, 이 데이터 아이템들은 필수 개인 키를 제공함으로써 목적지에서해독될 수 있다. 그러나 해독이 될 때까지 데이터 아이템들은 불투명한 EnvelopedData 객체(opaque EnvelopedData objects)로서 디스플레이된다. 이들 데이터 아이템드은 공용 키 보호된 PKCS #7 EnvelopedData 객체로서 인식된다.
사용자는 콘텐트 영역(350)상에 개인 키를 드래그 및 드롭함으로써 EnvelopedData 객체를 해독할 수 있다. 개인 키에 의해 해독 가능한 모든 EnvelopedData 객체의 콘텐트는 액세스 가능하게 될 것이며, 적절한 카테고리의 객체 즉, 개인 키 객체, 인증서 객체, CRL 객체 등으로 번역된다. 해독된 불투명한 객체는 EnvelopedData 객체 영역에서 제거되는 반면, 해독되지 않은 객체는 EnvelopedData 객체 영역에 계속 남아 있는다.
PFX 객체의 콘텐트는 많은 상이한 공용 키들에 의해 보호될 수도 있다. 결국, 사용자는 모든 EnvelopedData 객체를 해독하는데 그 만큼 많은 개인 키를 제공하는 것이 필요할 것이다.
EncryptedData 객체/EnvelopedData 객체와 다른 PFX 객체 콘텐트 사이에는 관련성 지정자(relationship designators)가 존재하지 않음을 유의해야 한다. 이것은 보호된 데이터 객체의 콘텐트가 적절한 패스워드나 개인 키로 해독되기 전까지는 알려지지 않기 때문이다. 일단 해독되면, 보호된 데이터 객체는 해독된 콘텐트에 대응하는 객체로 대체된다.
현재의 PFX 객체는 사전 구성된 PFX 객체를 보기 위해 인터페이스로 드래그 및 드롭될 수 있다. 인터페이스는 또한 DER-엔코드된 포맷으로 예컨대 클립보드같은 다른 전송 메커니즘이나 파일에 대한 타당성 검사를 전하는 PFX 객체를 수출할수 있다. PFX 객체가 수출 혹은 기억되기 전에 인터페이스는 검증 규칙 세트를 통해 정의된 요소를 실행할 것이고, 만약 에러가 존재한다면 사용자에게 에러를 제공할 것이다. PFX 객체가 인ㅌ페이스를 통해 수입될 때 동일한 타당성 검사 이루어질 것이다.
송신 버튼(361)은 사용자가 PFX 객체를 MIME 메시지에서 사전에 지정된 e-메일 어드레스로 송신할 수 있게 하는데, MIME 메시지에서 PFX 객체는 BASE64 포맷으로 엔코드된다. 송신측은 단일 전자 우편 전송 프로토콜(SMTP;Simple Mail Transport Protocol)로 메시지를 포장해야 한다.
수입 버튼(342)은 사용자가 PFX 객체를 지정된 DER-엔코드된 파일로부터 수입할 수 있게 하고, 디스플레이 객체를 파퓰레이트(populate)하게 한다. 수출 버튼(344)은 사용자가 PFX 객체를 DER-엔코드된 파일로 기억하게 한다. 보호 버튼(343)은 데이터 프라이버시를 제공하는데 이용된다. 사용자는 하나 이상의 데이터 아이템을 선택하고, 데이터 아이템을 패스워드나 수신측의 공용 키로 보호하기 위해 보호 버튼(343)을 선택한다. 보호 버튼은 또한 패스워드 기반 모드 혹은 공용 키 모드를 이용해 PFX에 대한 데이터 보전성을 제공하기 위해 이용된다. 이렇게 하기 위해서, 사용자는 선택되는 어떠한 데이터 아이템도 없이 보호 버튼을 선택한 뒤, 패스워드 혹은 개인 키를 제공할 것이다.
이제, 도 3에 도시된 요소들을 참조하여, PFX 객체를 생성, 기억 및 수정하는 다양한 기능들이 설명될 것이다.
PFX 객체를 수입(IMPORTING)하기
전형적으로, DER 엔코드된 PFX 객체는 송신측으로부터 수신되어 수신측 장치상에 파일로 기억된다. 사용자가 수입 버튼(342)을 선택하면, 사용자에게는 파일 이름이 프롬프트(prompted)된다. 일단 사용자가 적절한 파일 이름을 입력하면, 파일내의 DER 엔코딩은 성분 PFX 객체로 파스되어 디스플레이된다. 만약 파일을 액세스하는데 입력/출력 에러가 있거나 혹은 파일이 PFX 객체의 유효 DER 엔코딩을 포함하지 않는다면, 에러 팝-업 디스플레이(error pop-up display)가 디스플레이된다.
GUI는 PFX 객체가 수입되었던 파일로부터의 파일 이름과, 버전 번호 및 수입된 PFX의 보전 모드를 디스플레이한다. 일단 PFX 객체가 수입되면, 수입 버튼(342)은 디스에이블된다(선택 불가능해짐).
PFX 객체 콘텐트를 검증(VERIFYING)하기
일단 PFX 객체가 수입되면, PFX 객체의 데이터 보전 모드의 유형이 보여진다. 이 모드는 "보전 모드의 비존재(none)", "패스워드 보전 모드" 및 "공용 키 보전 모드"중 하나일 것이다. 만약 모드가 "비존재(none)"이면, 프라이버시 보호되지 않은 모든 데이터는 콘텐트(350)의 적절한 영역에 디스플레이될 것이다. 데이터 객체는 그들의 데이터 유형에 따라 다른 아이콘으로 디스플레이될 것이며, 만약 하나가 존재하면, 데이터 객체에 첨부되는 "Friendly Name" 속성으로 레이블 표시될 것이다. "Friendly Name"은 이후에 더 자세히 논의된다.
프라이버시 보호되는 데이터 객체는 이들이 패스워드 기반 프라이버시로 보호될 경우에는 EncryptedData 영역에 디스플레이될 것이고, 만약 이들이 공용 키 프라이버시로 보호될 경우에는 EnvelopedData 영역에 디스플레이 될 것이다.
데이터 보전 모드가 "패스워드"이거나 혹은 "공용 키"일 경우, 사용자에게는 패스워드 혹은 공용 키에 대해 프롬프트될 것이다. "패스워드" 모드에서 데이터 보전성을 검증하기 위해, 사용자는 프롬프트에 패스워드를 제공한다. 패스워드는 PFX 객체 콘텐트의 메시지 다이제스트를 발생하는데 이용되는 키를 발생하기 위해 이용된다. 이 메시지 다이제스트는 수입된 PFX 객체에 첨부된 메시지 다이제스트와 비교된다.
메시지 다이제스트가 일치하면, 보전 모드 필드는 "검증됨"을 나타내고, 검증을 위해 입력되었던 동일한 패스워드에 의해 프라이버시 보호되거나 보호되지 않는 모든 데이터 객체는 콘텐트 영역(350)의 그들의 적절한 영역에 도시될 것이다. 입력된 패스워드로 해독 불가능한 모든 보호된 데이터 객체는 EncryptedData 혹은 EnvelopedData 객체로서 도시될 것이다. 만약 검증이 실패하면, 에러 팝-업 디스플레이가 디스플레이된다.
만약 데이터 보전이 "공용 키" 모드이면, 사용자는 프롬프트에 공용키를 포함하는 인증서가 발견될 수 있는 장소를 지시하는 예컨대 파일 이름 혹은 데이터베이스 이름같은 정보를 제공한다. 선택적으로, 사용자가 인증서 혹은 공용 키 객체를 보전 모드 필드나 혹은 프롬프트 디스플레이로 드래그 및 드롭할 수도 있다. 만약 디지털 시그네처가 검증되면, 보전 모드 필드는 "검증됨"을 나타낸다. 일단데이터 보전성이 검증되면, 보호되지 않는 모든 데이터 아이템은 콘텐트 영역(350)의 그들의 적절한 영역에 도시될 것이다. 모든 보호되는 데이터 아이템은 EncryptedData 혹은 EnvelopedData 객체로서 보여질 것이다. 만약 검증이 실패하면, 에러 팝-업 디스플레이가 디스플레이될 것이다.
일단 데이터 보전성이 검증되고 각각의 데이터 객체가 콘텐트 영역(350)에 제공되면, 보호 및 수출 버튼이 인에이블된다.
보호되는 데이터 아이템을 해독(DECRYPTING)하기
수입된 PFX의 데이터 보전성을 검증한 뒤에는, EncryptedData 혹은 EnvelopedData 객체로서 디스플레이되는 데이터 객체가 존재할 수도 있다. 이들 데이터 객체는 그들 내부에 패키지된 개인 정보를 추출하기 위해 수신측에서 해독되어야 한다.
EncryptedData 객체를 해독하기 위해, 사용자는 EncryptedData 객체를 선택하고, 사용자에게는 패스워드에 대한 것이 프롬프트된다. 만약 입력된 패스워드가 올바른 것이라면, 해독된 EncryptedData 객체의 콘텐트는 콘텐트 영역(350)의 적절한 영역에 디스플레이된다. 다음 PFX 인터페이스 유틸리티는 또한 모든 다른 EncryptedData 객체의 존재를 해독하려고 시도할 것이다. 동일한 패스워드로 해독가능한 EncryptedData 객체는 해독될 것이고, 그들의 콘텐트는 콘텐트 영역(350)의 적절한 영역에 디스플레이될 것이다. 동일한 패스워드로 해독 불가능한 것들은 EncryptedData 영역에 남아있을 것이다.
EnvelopedData 객체를 해독하기 위해서, 사용자는 EnvelopedData 객체상으로 개인 키 객체를 드래그 및 드롭한다. 만약 키가 성공적으로 콘텐트를 해독하면, 콘텐트가 추출되어 콘텐트 영역(350)의 적절한 영역에 디스플레이된다. 그 후, PFX 인터페이스 유틸리티가 또한 모든 다른 EnvelopedData 객체의 존재를 해독하려고 시도할 것이다. 동일한 개인 키로 해독가능한 EnvelopedData 객체는 해독될 것이고, 그들의 콘텐트는 콘텐트 영역(350)의 적절한 영역에 디스플레이될 것이다. 동일한 개인 키로 해독 불가능한 것들은 EnvelopedData 영역에 남아있을 것이다.
일단 데이터 객체가 해독되어 추출되면, 그래피컬 인터페이스를 이용하여 사용자가 그것을 볼 수도 있을 것이다. 예를 들면, 사용자는 데이터 객체를 보기 위한 2차 그래피컬 인터페이스를 도입하기 위해 데이터 객체를 더블 클릭킹할 수도 있다. 2차 그래피컬 인터페이스는 보여지고 있는 특별한 데이터 객체에 맞도록 재단될 수도 있다.
PFX를 구성(CONSTRUCTING)하기
별개의 데이터 객체로부터 새로운 PFX 객체를 구성하기 위해, 사용자는 GUI를 디스플레이하는 PFX 인터페이스 유틸리티를 개시한다. 다음, 사용자는 데이터 객체를 콘텐트 영역(350)으로 드래그 및 드롭한다. 데이터 객체는, 데이터 객체를 선택하고, 보호 버튼을 선택하고, 다음에 적절한 패스워드 혹은 공용 키 정보를 입력함으로써 패스워드 기반 혹은 공용 키 암호화로 선택적으로 보호될 수도 있다.
그 이후, 사용자는 (데이터 아이템을 선택하지 않으면서) 보호 버튼을 선택하고 적절한 패스워드 혹은 개인 키 정보를 입력함으로써 PFX 객체 콘텐트의 데이터 보전성을 선택적으로 보호할 수 있다. 인터페이스의 보전 모드 필드는 사용자가 패스워드로 보호했는지 혹은 개인 키로 보호했는지에 근거하여 어떤 모드가 이용되었는지를 나타낼 것이다. 일단 PFX 객체 콘텐트가 컴파일되면, 사용자는 새로 구성되는 PFX 객체를 파일로 저장하기 위해 수출 버튼을 선택할 수 있다. 만약 파일 이름이 사전에 지정되지 않았다면, 수출 버튼의 선택 다음에는 파일 이름을 입력하라는 사용자에 대한 프롬프트가 뒤따를 수도 있다.
새로 개시된 PFX 인터페이스 유틸리티는 버전 필드에 "3"을 디스플레이 하고, 보전 모드 필드에는 "비존재(none)"를 디스플레이하며, 데이터 객체가 추가될 곳인 콘텐트 영역(350)은 빈 곳으로 디스플레이한다. 수입 버튼은 인에이블이 될 것이지만 보호와 수출 버튼은 둘다 데이터 객체가 콘텐트 영역(350)에 추가될 때까지 디스에이블될 것이다.
콘텐트 영역에 데이터 객체를 추가(ADDING)하기
일단 PFX 인터페이스 유틸리티가 호출되고 GUI가 디스플레이되면, 사용자는 각각의 데이터 객체를 콘텐트 영역(350)에 드래그 및 드롭할 수 있고, 이 영역에서 데이터 객체들은 개인 키, 인증서 혹은 인증 해제 리스트 아이콘들로서 나타날 것이다. PFX 인터페이스 유틸리티는 객체들이 추가되면 그들 사이의 관련성을 결정하고, 그 관련성들을 화살표나 혹은 따른 어떤 관련성 지시기로서 디스플레이한다.
PKCS #12 규격은 PFX 객체에 포함되는 객체에 추가될 수 있는 선택성 속성들을 기재한다. 이들 속성들중 하나 즉, "Friendly Name"은 데이터 객체(예를 들면 "존 도의 인증서(John Doe's Certificate)")를 기술하는 단순히 사용자-친숙한 스트링(user-friendly string)이다. 객체가 콘텐트 영역(350)에 추가될 때, 사용자는 예를 들면 객체상에서의 한 번 클릭킹에 응답하여 팝업 메뉴에서 Add Friendly Name 행위를 선택하여 Friendly Name 값을 배정할 수 있다. 객체 아이콘은 배정된 값들로 레이블 표시될 것이다. 만약 Friendly Name이 배정되지 않았다면, 디폴트 레이블이 이용될 것이다.
객체에 추가될 수 있는 다른 선택성 속성은 "Local Key ID"로 불리우는데, 이것은 데이터 식별자로서 이용되는 바이트들의 임의 시퀀스(arbitrary sequence of bytes)이다. 비록 Local Key ID가 선택성이긴 해도, 실제로 이것은 개인 키를 대응하는 공용 키를 포함하는 인증서와 결합시키는데 흔히 이용된다. 즉, 연상된 개인 키와 인증서는 동일한 Local Key ID를 가질 필요가 있다. CRLs는 그들의 연상된 인증서처럼 동일한 Local Key ID를 가질 필요가 없고, 체인내의 인증서들도 동일한 Local Key ID를 가질 필요가 없다.
PFX 객체에 추가되는 모든 객체는 Local Key ID가 배정될 것이다. 새로운 개인 키가 추가될 때, PFX 인터페이스 유틸리티는 이것이 현재의 인증서와 결합될 것인지를 결정할 것이다. 만약 그렇다면, 개인 키는 이미 인증서에 배정된 Local Key ID에 배정될 것이다. 만약 그렇지 않다면, 객체는 새로운 Local Key ID에 배정될 것이다. 인증서가 추가될 때, PFX 인터페이스 유틸리티는 이것이 현재의 개인 키와 결합되는지를 결정할 것이다. 만약 그렇다면, 인증서는 이미 개인 키에배정된 Local Key ID에 배정될 것이다. 만약 그렇지 않다면, 인증서는 새로운 Local Key ID를 가질 것이다.
보전 모드 필드는 "비존재(none)"로 설정되어, 현재의 PFX 객체 콘텐트가 검증되지도 보호되지도 않았음을 나타낸다. 어떤 데이터 아이템이 비쥬얼 영역에 추가되는 즉시, 보호 및 수출 버튼이 인에이블된다.
콘텐트 영역에서 데이터 아이템을 제거(REMOVING)하기
객체는 콘텐트 영역(350)에서 제거될 수 있다. 사용자는 하나 이상의 객체를 선택하고 이들을 어떤 메뉴를 이용해 삭제함으로써, 예를 들면 삭제 키(Delete key)를 누르거나 한 번 클릭킹한 뒤에 삭제 행위를 선정함으로써 객체를 제거할 수 있다. 객체가 삭제될 때, 그 아이콘은 콘텐트 영역(350)에서 제거된다. 그 객체를 다른 객체에 연결하는 모든 관련성 지시기도 제거된다. 제거된 데이터 객체와 연상된 데이터 아이템은 자체적으로 제거되지 않을 수도 있는데, 예를 들면, PFX에서 인증서를 제거한다고 해도 연상된 개인 키가 제거되지 않을 수도 있다.
객체가 콘텐트 영역(350)에서 제거될 때, 보전 모드 필드는 "비존재(none)"로 설정되어, 현재의 PFX 객체 콘텐트가 검증되지도 보호되지도 않았음을 나타낸다.
PFX 객체에 데이터 프라이버시 제공하기
일단 객체가 콘텐트 영역(350)에 제공되면, 데이터 프라이버시가 패스워드기반 혹은 공용 키 암호화로 제공될 수 있다. 데이터를 보호하기 위해, 사용자는 하나 이상의 객체를 선택한 뒤, 보호 버튼을 선택한다. 다음, 사용자는 패스워드나 혹은 수신측의 공용 키가 발견될 수 있는 정보(예를 들면, 파일 이름 혹은 데이터베이스 이름)를 제공한다. PFX 인터페이스 유틸리티는 적절한 키로 객체를 암호화하고, 암호화된 아이템은 그 다음에 원래의 아이콘이 아닌 EncryptedData(패스워드 기반의 암호화인 경우) 혹은 EnvelopedData(공용 키 암호화인 경우)로 디스플레이된다. 원래의 비보호된 데이터와 연상된 모든 관련성 지시기는 제거될 것이다.
사용자는 데이터를 모두 혹은 일부 암호화할 수 있고, 또는 어떠한 데이터도 암호하하지 않을 수 있다. 더나아가, 다양한 패스워드 및/또는 공용 키를 이용하여 암호화가 패스워드 기반과 공용 키 암호화의 조합으로 이루어질 수 있다. 실제로 일반적인 애플리케이션은 PKCS #12에 정의된 모든 데이터 프라이버시와 보전 모드를 지원하지 않는다는 것을 유의하는 것이 중요하다. 많은 애플리케이션이 PFX 객체 데이터가 오로지 패스워드 기반 암호화로 보호되기를 기대하고, 동일한 패스워드가 데이터 보전뿐만 아니라 모든 데이터 프라이버시에도 이용되기를 기대한다. 본 발명은 오로지 패스워드 기반 데이터 보호만을 제공하도록 한정했지만, PKCS #12 규격의 융통성을 지지한다. 필요할 경우에 웹 브라우저같은 공용 PFX 애플리케이션과 호환성이 있는 PFX 객체를 생성하는 방식으로 특징을 이용하는 것은 사용자에게 달려있다.
한번 더, PFX 객체의 콘텐트가 변경되면, 보전 모드 필드는 "비존재(none)"로 설정되어 현재의 PFX 객체 콘텐트가 검증되지도 보호되지도 않았음을 나타낸다.
PFX 객체에 데이터 보전성 제공하기
일단 데이터가 만족스럽게 보호되면, PFX 객체에 메시지 다이제스트나 혹은 디지털 시그네처를 첨부함으로써 사용자는 데이터 보전 보호를 제공할 수 있다. 그렇게 하기 위해서, 사용자는 어떠한 데이터 아이템도 선택하지 않으면서 인터페이스의 하단에서 보호 버튼을 선택한다. 그 뒤, 사용자는 패스워드(만약 패스워드 기반의 데이터 보전 모드가 이용되었다면)를 제공하거나 혹은 개인 키(만약 개인 키 데이터 보전 모드가 이용되었다면)를 제공한다. 일단 데이터가 보호되면, 인터페이스 상단의 보전 모드 필드는 "비존재(none)"에서 "패스워드" 혹은 "공용 키"로 변경되고, 이것은 현재의 PFX 콘텐트가 다이제스트로 편성되었는지 혹은 서명되었는지를 나타내기에 적절한 것이다.
보호 동작 이후에 PFX 객체 콘텐트에 어떠한 변경이 존재한다면(예를 들면, 데이터 객체가 추가 혹은 제거되거나, 또는 비보호 데이터가 보호되는 것), 보전 모드 필드는 "비존재(none)"로 다시 리셋될 것이다. 개정된 콘텐트를 보호하기 위해 사용자는 다시 보호 버튼을 선택해야 한다.
PFX 객체를 수출(EXPORTING)하기
일단 모든 데이터가 추가되어 데이터 프라이버시화 보전 동작으로 보호되면, PFX 객체는 DER-엔코드되어 파일로 저장될 수 있다. 이렇게 하기 위해, 사용자는 GUI의 하단의 수출 버튼을 선택하고, 사용자에게는 파일 이름에 대해 프롬프트된다. PFX는 DER-엔코드되어 파일로 작성된다. 만약 어떠한 I/O 에러가 발생하면,에러 팝업이 디스플레이된다. 다음, 엔코드된 PFX 객체는 그속에 기억된 개인 정보에 대해 보안의 규격 전송 매개물로서 이용될 수 있다.
도 4a와 도 4b를 참조하면, 이 흐름도는 본 발명의 바람직한 실시예에 따라서, 도 3에도시된 PFX 객체같은 PFX 객체를 보면서 조작하기 위해 PFX 객체를 수입하여 PFX 인터페이스 유틸리티 내부의 PFX 객체 콘텐트를 검증하는 프로세스를 도시한다. 도 4a에 도시된 바와 같이, 프로세스는 사용자 행위를 대기하는 것으로 시작한다(단계 401). 본질적으로, 이 흐름도는 GUI에서 이벤트를 처리하는 주요 이벤트 루프를 보여준다. 이 프로세스는 사용자 행위를 감시하다가, 사용자 행위를 처리한 뒤, 다시 추가의 사용자 행위를 감시하기 위해 복귀하는 이벤트 루프에 참가한다.
다음, 예컨대 수입 버튼을 선택했는가 혹은 선택하지 않았는가에 따라 사용자가 수입 버튼을 선택했는지에 대한 결정이 행해진다(단계 402). 만약 선택했다면, 사용자에게는 수입될 PFX 객체의 파일 이름을 입력하라고 프롬프트되고, 그 뒤 입력된 파일 이름에 대응하는 파일이 판독된다(단계 403). 만약 선택되지 않았다면, 사용자는 다른 기능을 수행하라고 선택했으며, 선택된 기능이 도 5 내지 도 11에 도시된 흐름도에 따라 수행된다(단계 402-1).
파일이 성공적으로 판독되었는지에 대한 결정이 행해진다(단계 404). 만약 성공적이지 않았다면, 에러 팝업 디스플레이가 디스플레이된다(단계 404-1). 만약 성공적이었다면, PFX 객체 파일이 디코드된다(단계 405). 디코딩 동작이 성공적으로 수행되었는지에 대해서도 결정이 행해진다. 만약 성공적이지 않았다면, 에러팝업 디스플레이가 지스플레이되고(단계 407), 프로세스는 단계(401)로 복귀한다. 만약 성공적이었다면, 예컨대 파일 이름, 버전, 보전 모드같은 PFX 객체 정보가 디스플레이된다(단계 408).
보전 모드가 "비존재(none)"인지에 대한 결정이 행해진다(단계 410). 만약 비존재이라면, PFX 객체내의 객체들은 디스플레이되고(단계 411), 프로세스는 단계(401)로 복귀한다.
만약 비존재가 아니라면, 보전 모드가 "패스워드"인지에 대한 결정이 행해진다(단계 413). 만약 "패스워드"이라면, 패스워드 프롬프트가 디스플레이된다(단계 414). 일단 패스워드가 입력되면, 메시지 다이제스트 검증이 시도된다(단계 415). 검증이 성공적이었는지에 대한 결정도 행해진다(단계 416). 만약 성공적이지 않았다면, 에러 팝업 디스플레이가 디스플레이되고(단계 417), 프로세스는 단계(401)로 복귀한다. 만약 성공적이었다면, 보전 모드는 "검증됨"으로 변경되고(단계 418), EncryptedData 객체의 해독이 시도된다(단계 419).
그 이후에, 해독된 객체가 디스플레이된다(단계 420). 그 뒤, 프로세서는 단계(401)로 복귀되어 이후의 사용자 행위를 대기한다.
만약 보전 모드가 "패스워드"가 아니라면(단계 413), 사용자에게는 송신측의 공용 키를 입력하라고 프롬프트된다(단계 422). 그 이후에, 디지털 시그네처 검증이 시도된다(단계 423). 다음, 디지털 시그네처 검증이 성공적이었는지에 대한 결정이 행해진다(단계 424). 만약 성공적이지 않았다면, 어러 팝업 디스플레이가 디스플레이되고(단계 425), 프로세스는 단계(4501)로 복귀한다. 만약 성공적이었다면, 보전 모드는 "검증됨"으로 판독되도록 변경된다(단계 426). 다음, 프로세스는 단계(420)으로 계속된다.
도 5는 데이터 객체를 디스플레이하고 데이터 객체를 해독할 때 본 발명의 예시적인 동작을 개략적으로 설명하는 흐름도이다. 도 5에 도시된 바와 같이, 동작은 도 4a의 단계(402-1)에서 시작하며, 사용자가 데이터 객체를 선택했는지에 대한 결정부터 행해진다(단계 501). 만약 사용자가 데이터 객체를 선택했다면, 데이터 객체의 콘텐트가 선택된 특별한 데이터 객체에 맞게 재단된 GUI에 디스플레이된다(단계 502). 다음, 동작은 도 4a의 단계(401)로 복귀된다.
만약 사용자가 데이터 객체를 선택하지 않았다면, 사용자가 EncryptedData 객체를 선택했는지에 대한 결정이 행해진다(단계 503). 만약 선택되었다면, 사용자에게는 선택된 EncryptedData 객체를 해독하기 위한 패스워드를 입력하라고 프롬프트된다(단계 504). 그 이후, EncryptedData 객체의 해독이 시도된다(단계 505). 해독이 성공적이었는지에 대한 결정이 행해진다(단계 506). 만약 성공적이었다면, EncryptedData 객체의 콘텐트가 디스플레이된다(단계 507). 다음, 디스플레이된 객체의 관련성이 결정되고(단계 508), EncryptedData 객체가 디스플레이에서 제거된다(단계 509).
그 이후나 혹은 단계 (506)에서 해독 시도가 비공적이었을 경우에, 디스플레이에 EncryptedData 객체가 더 존재하는지에 대한 결정이 행해진다(단계 510). 만약 더 존재한다면, 다음 EncryptedData 객체가 선택되고(단계 511), 동작은 단계(504)로 복귀한다. 만약 더 존재하지 않는다면, 동작은 도 4a의 단계(401)로복귀한다.
만약 단계(503)에서 사용자가 EncryptedData 객체를 선택하지 않았다면, 사용자가 EnvelopedData 객체를 선택했는지에 대한 결정이 행해진다(단계 512). 만약 선택하지 않았다면, 동작은 도 4a의 단계(401)로 복귀한다. 만약 선택했다면, 사용자에게는 EnvelopedData 객체를 해독하기 위한 개인 키의 위치와 이름을 입력하라고 프롬프트된다(단계 513). 그 이후, EnvelopedData 객체의 해독이 개인 키에 대해 입력된 정보를 이용해 시도된다(단계 514).
다음, 해독이 성공적이었는지에 대한 결정이 행해진다(단계 515). 만약 성공적이었다면, EnvelopedData 객체의 콘텐트가 추출되어 디스플레이된다(단계 516). 다음, 추출된 콘텐트와 다른 데이터 아이템과의 관련성이 결정되고(단계 517), EnvelopedData 객체가 디스플레이에서 제거된다(단계 518).
그 이후나 혹은 단계(515)에서 해독 시도가 비성공적이었을 경우에, 추가의 EnvelopedData 객체가 존재하는지에대한 결정이 행해진다(단계 519). 만약 존재하지 않는다면, 동작은 도 4a의 단계(401)로 복귀한다. 만약 더 존재한다면, 다음 EnvelopedData 객체가 선택되고(단계 520), 동작은 단계(513)으로 복귀한다.
도 6a와 도 6b는 데이터 객체의 관련성을 결정할 때 본 발명의 예시적인 동작을 개략적으로 설명하는 흐름도이다. 도 6a와 도 6b에 도시된 바와 같이, 동작은 객체가 개인 키인지의 여부를 결정하는 것을 시작한다(단계 601). 만약 그렇다면, PFX 객체에 인증서가 더 있는지를 결정한다(단계 602). 만약 더 존재하지 않는다면, 동작을 종료한다. 만약 더 존재한다면, 테스트 스트링이 인증서의 공용키와 암호화되고(단계 603), 개인 키로 객체의 해독이 시도된다(단계 604).
암호 시도가 성공적이었는지에 대한 결정이 행해진다(단계 605). 만약 성공적이었다면, 관련성 지시기가 개인 키와 인증서 사이의 관련성을 나타내며 디스플레이된다(단계 606). 다음, Local Key ID가 일치하는지 검증된다(단계 607). 그 이후에나 혹은 단계(605)에서 해독이 비성공적이었을 경우에, 동작은 단계(602)로 복귀한다.
단계(601)에서 객체가 개인 키 객체가 아닌 경우에는, 객체가 인증서 객체인지에 대한 결정이 행해진다(단계 608). 만약 인증서 객체이라면, 인증서가 더 있는지에 대한 결정이 행해진다(단계 609). 인증서가 더 없다면, 키가 더 있는지에 대한 결정이 행해진다(단계 610). 만약 키가 더 없다면, 동작은 종료한다. 그렇지 않고 키가 더 있다면 동작은 단계(603)으로 진행한다.
단계(609)에서 인증서가 더 존재한다면, 인증서 1의 발행인이 인증서 2의 주체인지에 대한 결정이 행해진다(단계 611). 만약 그렇다면,, 관련성 지시기가 인증서 2와 인증서 1 사이에 디스플레이된다(단계 612). 만약 그렇지 않다면, 인증서 2의 발행인이 인증서 1의 주체인지에 대한 결정이 행해진다(단계 613). 만약 그렇다면, 관련성 지시기가 인증서 2와 인증서 1 사이에 디스플레이된다(단계 614). 단계(612, 614) 이후에, 혹은 단계(613)에서 인증서 2의 발행인이 인증서 1의 주체가 아닌 경우에, 동작은 단계(609)로 복귀한다.
단계(608)에서 객체가 인증서 객체가 아닌 경우에, 객체는 반드시 CRL 객체이어야 하고, 인증서가 더 있는지에 대한 결정이 행해진다(단계 615). 만약 인증서가 더 없다면, 동작은 종료한다. 만약 인증서가 더 있다면, CRL의 발행인과 일련 번호가 인증서의 발행인과 일련 번호와 일치하는지에 대한 결정이 행해진다(단계 616). 만약 일치하지 않는다면, 동작은 단계(615)로 복귀한다. 만약 일치한다면, 인증서 객체와 CRL 객체 사이의 관련성 지시기가 디스플레이된다(단계 617). 그 이후에, 동작은 단계(615)로 복귀된다.
도 7은 PFX 객체의 구성 동안에 데이터 객체를 추가할 때 본 발명의 예시적인 동작을 개략적으로 설명하는 흐름도이다. 도 7에 도시된 바와 같이, 동작은 사용자가 콘텐트 영역에 객체를 추가했는지에 대한 결정에서 부터 시작한다(단계 701). 만약 추가되지 않았다면, 동작은 도 4a의 단계(401)로 복귀한다. 만약 추가되었다면, 객체 아이콘이 디스플레이되고(단계 702), 추가된 객체와 다른 객체 사이의 관련성이 결정된다(단계 703). 그 이후에, Local Key ID가 존재하지 않으면 Local Key ID가 배정되고(단계 704), 보전 모드가 "비존재(none)"인지에 대한 결정이 행해진다(단계 705). 만약 보전 모드가 비존재라면, 동작은 도 4a의 단계(401)로 복귀한다. 만약 비존재가 아니라면, 보전 모드는 "비존재(none)"로 변경되고(단계 706), 보호 및 수출 버튼이 인에이블된다(단계 707). 다음, 동작이 도 4a의 단계(401)로 복귀한다.
도 8은 PFX 객체로부터 데이터를 제거할 때 본 발명의 예시적인 동작을 개략적으로 설명하는 흐름도이다. 도 8에 도시된 바와 같이, 동작은 사용자가 PFX 객체의 콘텐트 영역에서 객체를 삭제했는지에 대한 결정에서부터 시작한다(단계 801). 만약 삭제하지 않았다면, 동작은 도 4a의 단계(401)로 복귀한다. 만약 삭제했다면, 제거된 객체와 연상된 관련성 지시기들이 디스플레이에서 제거된다(단계 802). 다음, 객체 아이콘이 제거되고(단계 803), 보전 모드가 "비존재(none)"인지에 대한 결정이 행해진다(단계 804). 만약 비존재라면, 동작은 도 4a의 단계(401)로 복귀한다. 만약 비존재가 아니라면, 보전 모드는 "비존재(none)"로 변경된다(단계 805). 다음, 디스플레이에 데이터 아이템이 더 존재하는지에 대한 결정이 행해진다(단계 806). 만약 더 존재한다면, 동작은 도 4a의 단계(401)로 복귀한다. 만약 더 존재하지 않는다면, 보호 및 수출 버튼이 디스에이블되고(단계 807), 동작은 도 4a의 단계(401)로 복귀한다.
도 9는 PFX 객체 데이터 프라이버시를 보호할 때, 예를 들면 PFX 객체 내부에서 데이터 객체를 암호화할 때 본 발명의 예시적인 동작을 개략적으로 설명하는 흐름도이다. 도 9에 도시된 바와 같이, 동작은 사용자가 PFX 인터페이스 유틸리티를 이용하여 개인 키, 인증서 혹은 CRL 객체를 선택했는지에 대한 결정으로부터 시작한다(단계 901). 만약 선택하지 않았다면, 동작은 도 4a의 단계(401)로 진행한다. 만약 선택했다면, 사용자가 보호 버튼을 선택했는지의 여부에 대한 결정이 행해진다(단계 902).
만약 사용자가 보호 버튼을 선택하지 않았다면, 동작은 도 4a의 단계(401)로 진행한다. 만약 사용자가 보호 버튼을 선택했다면, 사용자에게는 패스워드나 수신측의 공용 키에 대해 프롬프트된다(단계 903). 다음, 사용자가 패스워드를 제공했는지에 대한 결정이 행해진다(단계 904). 만약 제공했다면, 패스워드로부터 키가 발생되고(단계 905), 선택된 데이터 객체는 암호화되어 EncryptedData 객체로 패키지된다(단계 906). 다음, EncryptedData 객체는 디스플레이되고, 원래의 데이터 객체 아이콘은 이 원래의 데이터 객체와 연상된 모든 관련성 지시기와 함께 제거된다(단계 907).
만약 사용자가 단계(904)에서 패스워드를 제공하지 않았다면, 사용자는 분명히 수신측의 공용 키를 제공한 것이고, 결국, 선택된 데이터 객체는 수신측의 공용 키를 이용하여 암호화되어 EnvelopedData 객체로 패키지된다(단계 908). 다음, EnvelopedData 객체는 디스플레이되고, 원래의 데이터 객체 아이콘은 모든 연상된 관련성 지시기와 함께 제거된다(단계 909). 그 이후에, 그리고 단계(907) 후에, PFX 객체의 보전 모드가 "비존재(none)"로 설정된다(단계 910). 다음, 동작은 종료한다.
도 10은 PFX 객체 데이터 보전 보호를 제공할 때 본 발명의 예시적인 동작을 개략적으로 설명하는 흐름도이다. 도 10에 도시된 바와 같이, 동작은 예를 들면 GUI상에서 보호 버튼을 선택함으로써 사용자가 보호 기능을 선택하였는지에 대한 결정으로부터 시작한다(단계 1001). 만약 선택하지 않았다면, 동작은 도 4a의 단계(401)로 진행한다. 만약 선택했다면, 사용자에게는 개인 키의 패스워드나 혹은 위치와 이름을 입력하라고 프롬프트된다(단계 1002).
그 이후에, 사용자가 패스워드를 입력했는지에 대한 결정이 행해진다(단계 1003). 만약 사용자가 패스워드를 입력했다면, 메시지 다이제스트가 생성되고(단계 1004), GUI의 보전 모드 필드는 "패스워드"로 변경된다(단계 1006). 다음, 동작은 도 4a의 단계(401)로 진행한다.
만약 사용자가 단계(1003)에서 패스워드를 입력하지 않았다면, 사용자는 분명히 개인 키를 입력했으며, 그 뒤에 디지털 시그네처가 생성된다(단계 1007). 보전 모드 필드는 "공용 키"로 변경되며(단계 1009), 동작은 도 4a의 단계(401)로 복귀한다.
도 11은 PFX 객체를 수출할 때 본 발명의 예시적인 동작을 개략적으로 설명하는 흐름도이다. 도 11에 도시된 바와 같이, 동작은 예를 들면 GUI상에서 수출 버튼을 선택함으로써 사용자가 수출 동작을 선택했는지에 대한 결정에서부터 시작한다(단계 1101). 만약 선택하지 않았다면, 동작은 도 4a의 단계(401)로 복귀한다. 만약 선택했다면, 사용자에게는 파일 이름에 대해 프롬프트된다(단계 1102).
일단 사용자가 파일 이름을 입력하면, PFX 객체는 DER-엔코드되고(단계 1103), 입력된 파일 이름을 갖는 파일로 기입된다(단계 1104). 다음, 기입 동작이 성공적이었는지에 대한 결정이 행해진다(단계 1105). 만약 성공적이지 않았다면, 에러 팝-업 메시지가 디스플레이된다(단계 1106). 그 이후나 혹은 기입 동작이 성공적인 경우에는, 동작이 도 4a의 단계(401)로 복귀한다.
결국, 본 발명은 PFX 객체를 제공 및 조작하는 시스템, 장치 및 방법을 제공한다. 본 발명은 PFX 객체를 수입, 생성 및 수출하기 위해 사용자에 의해 쉽게 이해되어 동작되는 그래피컬 사용자 인터페이스를 갖는 PFX 인터페이스 유틸리티를 제공한다.
본 발명이 완전히 기능적인 데이터 처리 시스템의 내용으로 기술되었을지라도, 당업자라면, 본 발명의 프로세스가 컴퓨터 판독 가능한 인스트럭션 매체의 형태와 다양한 형태로 분산될 수 있음과, 본 발명이 분산을 수행하는데 실제로 이용된 신호 함유 매체의 특별한 유형과 무관하게 동등하게 적용됨을 이해할 것임을 유의하는 것이 중요하다. 컴퓨터 판독 가능 매체의 예로서, 플로피 디스크, 하드 디스크 드라이브, RAM 및 CD-ROMs같은 기록 가능형 매체와, 디지털 및 아날로그 통신 링크같은 전송형 매체를 들 수 있다.
본 발명의 설명은 예시와 설명을 목적으로 제공되었을 뿐, 본 발명을 개시된 형태로 한정하려고 의도된 것이 아니다. 당업자에게는 많은 변형물과 변경물이 명확할 것이다. 실시예는 발명의 원리와 실제 응용을 가장 잘 설명하기 위해 선정 및 기술되었으며, 당업자로 하여금 본 발명을 이해할 수 있게 하여, 의도하는 특별한 이용에 맞도록 다양하게 수정한 다양한 실시예를 가능하게 하기 위해 선정 및 기술되었다.
따라서, 본 발명에 따르면, 데이터 처리 시스템에서 개인 정보 교환 신택스(PFX;Personal Information Exchange Syntax) 객체를 처리하는 시스템, 장치 및 방법이 제공된다. 또한 본 발명에 따르면, 개인 정보 데이터 객체 유틸리티는 사용자가 그래픽 사용자 인터페이스(GUI)를 통해 개인 정보 데이터 객체내에 내장된 데이터 객체의 콘텐트를 보면서(view) 편집(edit)하는 것을 가능하게 해주며, 사용자가 객체를 드래그(drag)하여 개인 정보 데이터 객체내의 다른 객체로 드롭(drop)할 수 있으며, 이 때 개인 정보 데이터 객체 유틸리티는 자동적으로 필요한 동작을 수행하게 된다.

Claims (53)

  1. 데이터 처리 시스템에서 다수의 데이터 아이템을 포함하는 개인 정보 데이터 객체를 다루는 방법에 있어서,
    그래피컬 사용자 인터페이스(GUI;Graphical User Interface)에 다수의 데이터 아이템을 디스플레이하는 단계와,
    상기 그래피컬 사용자 인터페이스에 디스플레이되는 상기 다수의 데이터 아이템 사이에 관련성의 그래피컬 지시기(graphical indicators of relationships)를 제공하는 단계와,
    상기 다수의 데이터 아이템 내에서 데이터 아이템을 조작하는 사용자 입력에 응답하여, 상기 데이터 아이템을 수정하는 단계를 포함하는
    개인 정보 데이터 객체를 다루는 방법.
  2. 제 1 항에 있어서,
    상기 데이터 아이템은 개인 키(private key), 공용 키(public key), 인증서(certificates), 키 링(key ring), 디지털 시그네처(digital signature) 및 암호화된 데이터중 적어도 하나를 포함하는 개인 정보 데이터 객체를 다루는 방법.
  3. 제 1 항에 있어서,
    그래피컬 제어(graphical control)―상기 그래피컬 제어는 상기 그래피컬 제어와 관련하여 선택되는 사용자 입력에 응답하여 다수의 데이터 아이템내의 데이터 아이템상에서 수행되는 동작을 식별함―를 디스플레이하는 단계를 더 포함하는
    개인 정보 데이터 객체를 다루는 방법.
  4. 제 1 항에 있어서,
    상기 디스플레이 단계는,
    상기 다수의 데이터 아이템내의 데이터 아이템이 검증된 것인지에 대한 표시를 디스플레이하는 단계를 포함하는
    개인 정보 데이터 객체를 다루는 방법.
  5. 제 4 항에 있어서,
    그래피컬 제어를 디스플레이하는 단계와,
    상기 데이터 아이템의 선택과 상기 그래피컬 제어의 조작에 응답하여, 상기 데이터 아이템상에서 검증 동작을 수행하는 단계를 더 포함하는
    개인 정보 데이터 객체를 다루는 방법.
  6. 제 1 항에 있어서,
    상기 다수의 데이터 아이템은 버전 번호(version number), 보전 모드 및 개인 데이터를 포함하는 개인 정보 데이터 객체를 다루는 방법.
  7. 제 1 항에 있어서,
    상기 다수의 데이터 아이템은 엔벨로프형 데이터 아이템(enveloped data item)을 포함하는 개인 정보 데이터 객체를 다루는 방법.
  8. 디스플레이를 포함하는 데이터 처리 시스템에서 개인 정보 교환 신택스(PFX) 객체를 처리하는 방법에 있어서,
    PFX 객체를 제공하는 것을 컴퓨터로 구현하는 단계와,
    그래피컬 사용자 인터페이스내에서 사용자 행위의 처리를 통해 상기 PFX 객체를 수정하는 것을 컴퓨터로 구현하는 단계를 포함하는
    개인 정보 교환 신택스(PFX) 객체 처리 방법.
  9. 제 8 항에 있어서,
    상기 PFX 객체를 제공하는 단계는,
    PFX 객체―상기 PFX 객체는 하나 이상의 데이터 객체와 적어도 하나의 암호화 키 객체를 포함함―를 입수하는 단계와,
    상기 PFX 객체 내에 포함된 데이터 객체를 결정하는 단계와,
    상기 PFX 객체―상기 PFX 객체내에 포함된 데이터 객체는 그래피컬 객체(graphical objects)로 표현됨―를 디스플레이하는 단계와,
    상기 PFX 객체 내에 포함된 데이터 객체들 사이의 논리적 연상(logical associations)을 결정하는 단계와,
    상기 PFX 객체 내에 포함된 데이터 객체들 사이에 논리적 연상을 표시하는 비쥬얼 지시기(visual indicators)를 디스플레이하는 단계를 포함하는
    개인 정보 교환 신택스(PFX) 객체 처리 방법.
  10. 제 8 항에 있어서,
    상기 PFX 객체를 수정하는 단계는,
    상기 PFX 객체 내에 포함된 데이터 객체를 표시하는 그래피컬 객체를 선택하는 단계와,
    상기 선택된 데이터 객체의 데이터 값을 디스플레이하는 단계와,
    상기 선택된 데이터 객체의 상기 데이터 값을 편집하는 단계와,
    상기 선택된 데이터 객체의 상기 데이터 값을 상기 PFX 객체에 기억하는 단계를 포함하는
    개인 정보 교환 신택스(PFX) 객체 처리 방법.
  11. 제 10 항에 있어서,
    상기 선택된 그래피컬 객체에 의해 표현된 상기 데이터 객체의 데이터 유형을 식별하는 단계와,
    상기 선택된 그래피컬 객체에 의해 표현된 상기 데이터 객체의 상기 식별된 데이터 유형에 따라 상기 선택된 그래피컬 객체를 디스플레이하기 위한 디폴트 편집기를 식별하는 단계를 더 포함하는
    개인 정보 교환 신택스(PFX) 객체 처리 방법.
  12. 제 8 항에 있어서,
    상기 PFX 객체를 수정하는 단계는,
    상기 PFX 객체 내에 포함된 데이터 객체를 표현하는 그래피컬 객체를 선택하는 단계와,
    삭제 요구를 표현하는 상기 선택된 그래피컬 객체상에서의 사용자 행위를 수신하는 단계와,
    상기 선택된 그래피컬 객체에 의해 표현된 상기 데이터 객체를 상기PFX 객체에서 삭제하는 단계를 더 포함하는
    개인 정보 교환 신택스(PFX) 객체 처리 방법.
  13. 제 12 항에 있어서,
    상기 선택된 그래피컬 객체가 인증서 객체를 표현하는지를 결정하는 단계와,
    상기 선택된 그래피컬 객체가 인증서 객체를 표현한다는 결정에 응답하여,
    상기 인증서 객체가 상기 PFX 객체 내에 내장된 다른 인증서 객체와 논리적으로 연상(logically associated)되는지를 결정하는 단계와,
    상기 인증서 객체가 상기 PFX 객체 내에 내장된 다른 인증서 객체와 논리적으로 연상된다는 결정에 응답하여, 상기 인증서 객체와 상기 다른 인증서 객체 사이의 논리적 연상(logically association)을 나타내는 비쥬얼 지시기를 제거하는 단계와,
    상기 인증서 객체가 개인 키 객체와 논리적으로 연상되는지를 결정하는 단계와,
    상기 인증서 객체가 개인 키 객체와 논리적으로 연상된다는 결정에 응답하여,
    상기 인증서 객체와 상기 개인 키 객체 사이의 논리적 연상을 나타내는 비쥬얼 지시기를 제거하는 단계를 더 포함하는
    개인 정보 교환 신택스(PFX) 객체 처리 방법.
  14. 제 12 항에 있어서,
    상기 선택된 그래피컬 객체가 인증 해제 리스트 객체(Certificate Revocation List)를 표현하는지를 결정하는 단계와,
    상기 선택된 그래피컬 객체가 인증 해제 리스트 객체를 표현한다는 결정에 응답하여,
    상기 인증 해제 리스트 객체가 인증서 객체와 논리적으로 연상되는지를 결정하는 단계와,
    상기 인증 해제 리스트 객체가 인증서 객체와 논리적으로 연상된다는 결정에 응답하여, 상기 인증서 객체와 상기 인증 해제 리스트 객체 사이에 논리적 연상을 표현하는 비쥬얼 지시기를 제거하는 단계를 더 포함하는
    개인 정보 교환 신택스(PFX) 객체 처리 방법.
  15. 제 8 항에 있어서,
    상기 PFX 객체를 수정하는 단계는,
    상기 PFX 객체 내에 포함된 데이터 객체를 표현하는 그래피컬 객체를 선택하는 단계와,
    행위 요구를 표현하는 상기 선택된 그래피컬 객체상에서의 사용자 행위를 수신하는 단계와,
    상기 선택된 그래피컬 객체에 의해 표현되는 상기 데이터 객체상에서 상기 행위 요구와 연관된 행위를 수행하는 단계를 더 포함하는
    개인 정보 교환 신택스(PFX) 객체 처리 방법.
  16. 제 8 항에 있어서,
    상기 PFX 객체를 수출(export)하기 위한 사용자 요구를 수신하는 단계와,
    사용자 지정 파일 이름을 입수하는 단계와,
    상기 사용자 지정 파일 이름을 갖는 파일에 DER-엔코드된 포맷으로 상기 PFX 객체를 기억하는 단계를 더 포함하는
    개인 정보 교환 신택스(PFX) 객체 처리 방법.
  17. 제 8 항에 있어서,
    상기 PFX 객체를 수입(import)하기 위한 사용자 요구를 수신하는 단계와,
    사용자 지정 파일 이름을 입수하는 단계와,
    상기 사용자 지정 파일 이름을 갖는 파일로부터 DER-엔코드된 포맷으로 상기 PFX 객체를 수입하는 단계와,
    상기 PFX 객체 내에 포함된 데이터 객체를 표현하는 그래피컬 객체를 디스플레이하는 단계를 더 포함하는
    개인 정보 교환 신택스(PFX) 객체 처리 방법.
  18. 제 8 항에 있어서,
    상기 PFX 객체에 데이터 객체를 추가하기 위한 사용자 요구를 수신하는 단계와,
    암호화 키 데이터 객체가 상기 PFX 객체에 내장되었는지를 결정하는 단계와,
    암호화 키 데이터 객체가 상기 PFX 객체내에 내장되지 않았다는 결정에 응답하여,
    상기 PFX 객체 내에 상기 데이터 객체를 기억하는 단계와,
    상기 데이터 객체를 표현하는 그래피컬 객체―상기 그래피컬 객체는 상기 데이터 객체가 상기 PFX 객체 내에 내장되었음을 나타냄―를 디스플레이하는 단계와,
    암호화 키 데이터 객체가 상기 PFX 객체내에 내장되었다는 결정에 응답하여,
    상기 PFX 객체 내에 암호화된 데이터를 발생하는 단계와,
    상기 암호화된 데이터 객체를 표현하는 그래피컬 객체―상기 그래피컬 객체는 상기 암호화된 데이터 객체가 상기 PFX 객체 내에 내장되었음을 나타냄―를 디스플레이하는 단계를 더 포함하는
    개인 정보 교환 신택스(PFX) 객체 처리 방법.
  19. 제 18 항에 있어서,
    상기 데이터 객체를 표현하는 그래피컬 객체를 상기 PFX 객체를 표현하는 그래피컬 객체상에 드래깅(dragging) 및 드롭핑(dropping)하는 단계를 더 포함하는 개인 정보 교환 신택스(PFX) 객체 처리 방법.
  20. 제 8 항에 있어서,
    인증서 객체를 상기 PFX 객체에 추가하기 위한 사용자 요구를 수신하는 단계와,
    상기 인증서 객체를 상기 PFX 객체에 기억하는 단계와,
    상기 인증서 객체를 표현하는 그래피컬 객체―상기 그래피컬 객체는 상기 인증서 객체가 상기 PFX 객체 내에 내장되었음을 나타냄―를 디스플레이하는 단계를 더 포함하는
    개인 정보 교환 신택스(PFX) 객체 처리 방법.
  21. 제 20 항에 있어서,
    상기 인증서 객체가 상기 PFX 객체 내에 내장된 다른 인증서 객체와 논리적으로 연상되는지를 결정하는 단계와,
    상기 인증서 객체가 상기 PFX 객체 내에 내장된 다른 인증서 객체와 논리적으로 연상되다는 결정에 응답하여, 상기 인증서 객체와 상기 다른 인증서 객체 사이에 논리적 연상을 표현하는 비쥬얼 지시기를 디스플레이하는 단계를 더 포함하는
    개인 정보 교환 신택스(PFX) 객체 처리 방법.
  22. 제 20 항에 있어서,
    암호화 키 데이터 객체가 상기 PFX 객체에 내장되었는지를 결정하는 단계와,
    암호화 키 데이터 객체가 상기 PFX 객체에 내장되었다는 결정에 응답하여, 데이터 객체의 발생을 요구하는 사용자 입력을 수신하는 단계와,
    데이터 객체를 발생하는 단계와,
    상기 데이터 객체를 상기 PFX 객체에 기억하는 단계와,
    상기 데이터 객체를 표현하는 그래피컬 객체―상기 그래피컬 객체는 상기 데이터 객체가 상기 PFX 객체 내에 내장되었음을 나타냄―를 디스플레이하는 단계와,
    상기 데이터 객체와 연상된 인증서 객체 사이에 논리적 연상을 표현하는 비쥬얼 지시기를 디스플레이하는 단계를 더 포함하는
    개인 정보 교환 신택스(PFX) 객체 처리 방법.
  23. 제 20 항에 있어서,
    상기 인증서 객체를 표현하는 그래피컬 객체를 상기 PFX 객체를 표현하는 그래피컬 객체상에 드래깅 및 드롭핑하는 단계를 더 포함하는 개인 정보 교환 신택스(PFX) 객체 처리 방법.
  24. 제 8 항에 있어서,
    상기 PFX 객체에 인증 해제 리스트 객체를 추가하기 위한 사용자 요구를 수신하는 단계와,
    상기 인증 해제 리스트 객체를 상기 PFX 객체에 기억하는 단계와,
    상기 인증 해제 리스트 객체를 표현하는 그래피컬 객체―상기 그래피컬 객체는 상기 인증 해제 리스트 객체가 상기 PFX 객체 내에 내장되었음을 나타냄―를 디스플레이하는 단계를 더 포함하는
    개인 정보 교환 신택스(PFX) 객체 처리 방법.
  25. 제 24 항에 있어서,
    상기 인증 해제 리스트 객체가 상기 PFX 객체 내에 내장된 인증서 객체와 논리적으로 연상되는지를 결정하는 단계와,
    상기 인증 해제 리스트 객체가 상기 PFX 객체 내에 내장된 인증서 객체와 논리적으로 연상된다는 결정에 응답하여, 상기 인증 해제 리스트 객체와 상기 인증서객체 사이에 논리적 연상을 표현하는 비쥬얼 지시기를 디스플레이하는 단계를 더 포함하는
    개인 정보 교환 신택스(PFX) 객체 처리 방법.
  26. 제 24 항에 있어서,
    상기 인증 해제 리스트 객체를 표현하는 그래피컬 객체를 상기 PFX 객체를 표현하는 그래피컬 객체상에 드래깅 및 드롭핑하는 단계를 더 포함하는 개인 정보 교환 신택스(PFX) 객체 처리 방법.
  27. 제 8 항에 있어서,
    상기 PFX 객체에 내장된 데이터 객체를 암호화하기 위한 사용자 요구를 수신하는 단계와,
    상기 PFX 객체 내에 암호화된 콘텐트 데이터 객체를 발생하는 단계와,
    상기 암호화된 콘텐트 데이터 객체를 표현하는 그래피컬 객체―상기 그래피컬 객체는 상기 암호화된 콘텐트 데이터 객체가 상기 PFX 객체 내에 내장되었음을 나타냄―를 디스플레이하는 단계를 더 포함하는
    개인 정보 교환 신택스(PFX) 객체 처리 방법.
  28. 제 8 항에 있어서,
    상기 PFX 객체에 내장된 암호화된 콘텐트 데이터 객체를 해독하기 위한 사용자 요구를 수신하는 단계와,
    상기 암호화된 콘텐트 데이터 객체를 상기 PFX 객체 내에 내장된 데이터 객체로 해독하는 단계와,
    상기 데이터 객체를 표현하는 그래피컬 객체―상기 그래피컬 객체는 상기 데이터 객체가 상기 PFX 객체 내에 내장되었음을 나타냄―를 디스플레이하는 단계를 더 포함하는
    개인 정보 교환 신택스(PFX) 객체 처리 방법.
  29. 제 8 항에 있어서,
    암호화 키 알고리즘을 선택하기 위한 사용자 요구를 수신하는 단계와,
    상기 PFX 객체에 내장된 암호화 키를 삭제하는 단계와,
    상기 PFX 객체에 내장된 데이터 객체로부터 상기 암호화 키를 제거하는 단계를 더 포함하는
    개인 정보 교환 신택스(PFX) 객체 처리 방법.
  30. 개인 정보 교환 신택스(PFX) 객체를 처리하는 데이터 처리 시스템에 있어서,
    PFX 객체를 제공하는 제공 수단과,
    그래피컬 사용자 인터페이스 내에서 사용자 행위의 처리를 통해 상기 PFX 객체를 수정하는 수정 수단을 포함하는
    데이터 처리 시스템.
  31. 제 30에 있어서,
    상기 제공 수단은,
    PFX 객체―상기 PFX 객체는 적어도 하나의 데이터 객체와 적어도 하나의 암호화 키 객체를 포함함―를 입수하는 입수 수단과,
    상기 PFX 객체에 포함된 데이터 객체를 결정하는 제 1 결정 수단과,
    상기 PFX 객체―상기 PFX 객체내에 포함된 데이터 객체는 그래피컬 객체로 표현됨―를 디스플레이하는 제 1 디스플레이 수단과,
    상기 PFX 객체 내에 포함된 데이터 객체들 사이의 논리적 연상(logical associations)을 결정하는 제 2 결정 수단과,
    상기 PFX 객체 내에 포함된 데이터 객체들 사이에 논리적 연상을 표시하는 비쥬얼 지시기(visual indicators)를 디스플레이하는 제 2 디스플레이 수단을 포함하는
    데이터 처리 시스템.
  32. 제 31 항에 있어서,
    상기 수정 수단은,
    상기 PFX 객체 내에 포함된 데이터 객체를 표시하는 그래피컬 객체를 선택하는 제 1 선택 수단과,
    상기 선택된 데이터 객체의 데이터 값을 디스플레이하는 제 3 디스플레이 수단과,
    상기 선택된 데이터 객체의 상기 데이터 값을 편집하는 편집 수단과,
    상기 선택된 데이터 객체의 상기 데이터 값을 상기 PFX 객체에 기억하는 기억 수단을 포함하는
    데이터 처리 시스템.
  33. 제 32 항에 있어서,
    상기 선택된 그래피컬 객체에 의해 표현된 상기 데이터 객체의 데이터 유형을 식별하는 제 1 식별 수단과,
    상기 선택된 그래피컬 객체에 의해 표현된 상기 데이터 객체의 상기 식별된 데이터 유형에 따라 상기 선택된 데이터 객체를 디스플레이하기 위한 편집기를 식별하는 제 2 식별 수단을 더 포함하는
    데이터 처리 시스템.
  34. 제 32 항에 있어서,
    상기 수정 수단은,
    상기 PFX 객체 내에 포함된 데이터 객체를 표현하는 그래피컬 객체를 선택하는 제 2 선택 수단과,
    삭제 요구를 표현하는 상기 선택된 그래피컬 객체상에서의 사용자 행위를 수신하는 제 1 수신 수단과,
    상기 선택된 그래피컬 객체에 의해 표현된 상기 데이터 객체를 상기 PFX 객체에서 삭제하는 제 1 삭제 수단을 더 포함하는
    데이터 처리 시스템.
  35. 제 33 항에 있어서,
    상기 선택된 그래피컬 객체가 인증서 객체를 표현하는지를 결정하는 제 3 결정 수단과,
    상기 선택된 그래피컬 객체가 인증서 객체를 표현한다는 결정에 응답하여, 상기 인증서 객체가 상기 PFX 객체 내에 내장된 다른 인증서 객체와 논리적으로 연상(logically associated)되는지를 결정하는 제 4 결정 수단과,
    상기 인증서 객체가 상기 PFX 객체 내에 내장된 다른 인증서 객체와 논리적으로 연상된다는 결정에 응답하여, 상기 인증서 객체와 상기 다른 인증서 객체 사이의 논리적 연상(logically association)을 나타내는 비쥬얼 지시기를 제거하는 제 1 제거 수단과,
    상기 인증서 객체가 데이터 객체와 논리적으로 연상되는지를 결정하는 제 5 결정 수단과,
    상기 인증서 객체가 데이터 객체와 논리적으로 연상된다는 결정에 응답하여, 상기 데이터 객체를 삭제하는 제 2 삭제 수단과,
    상기 인증서 객체가 데이터 객체와 논리적으로 연상된다는 결정에 응답하여, 상기 인증서 객체와 상기 데이터 객체 사이의 논리적 연상을 나타내는 비쥬얼 지시기를 제거하는 제 2 제거 수단을 더 포함하는
    데이터 처리 시스템.
  36. 제 34 항에 있어서,
    상기 선택된 그래피컬 객체가 인증 해제 리스트 객체(Certificate Revocation List)를 표현하는지를 결정하는 제 6 결정 수단과,
    상기 선택된 그래피컬 객체가 인증 해제 리스트 객체를 표현한다는 결정에 응답하여, 상기 인증 해제 리스트 객체가 인증서 객체와 논리적으로 연상되는지를결정하는 제 7 결정 수단과,
    상기 인증 해제 리스트 객체가 인증서 객체와 논리적으로 연상된다는 결정에 응답하여, 상기 인증서 객체와 상기 인증 해제 리스트 객체 사이에 논리적 연상을 표현하는 비쥬얼 지시기를 제거하는 제 3 제거 수단을 더 포함하는
    데이터 처리 시스템.
  37. 제 32 항에 있어서,
    상기 수정 수단은,
    상기 PFX 객체 내에 포함된 데이터 객체를 표현하는 그래피컬 객체를 선택하는 제 2 선택 수단과,
    행위 요구를 표현하는 상기 선택된 그래피컬 객체상에서의 사용자 행위를 수신하는 제 1 수신 수단과,
    상기 선택된 그래피컬 객체에 의해 표현되는 상기 데이터 객체상에서 상기 행위 요구와 연관된 행위를 수행하는 제 1 행위 수단을 더 포함하는
    데이터 처리 시스템.
  38. 제 31 항에 있어서,
    상기 PFX 객체를 수출(export)하기 위한 사용자 요구를 수신하는 제 3 수신수단과,
    사용자 지정 파일 이름을 입수하는 제 2 입수 수단과,
    상기 사용자 지정 파일 이름을 갖는 파일에 DER-엔코드된 포맷으로 상기 PFX 객체를 기억하는 제 1 기억 수단을 더 포함하는
    데이터 처리 시스템.
  39. 제 31 항에 있어서,
    상기 PFX 객체를 수입(import)하기 위한 사용자 요구를 수신하는 제 4 수신 수단과,
    사용자 지정 파일 이름을 입수하는 제 3 입수 수단과,
    상기 사용자 지정 파일 이름을 갖는 파일로부터 DER-엔코드된 포맷으로 상기 PFX 객체를 수입하는 수입 수단과,
    상기 PFX 객체 내에 포함된 데이터 객체를 표현하는 그래피컬 객체를 디스플레이하는 디스플레이 수단을 더 포함하는
    데이터 처리 시스템.
  40. 제 30 항에 있어서,
    상기 PFX 객체에 데이터 객체를 추가하기 위한 사용자 요구를 수신하는 제 5수신 수단과,
    암호화 키 데이터 객체가 상기 PFX 객체에 내장되었는지를 결정하는 제 8 결정 수단과,
    암호화 키 데이터 객체가 상기 PFX 객체내에 내장되지 않았다는 결정에 응답하여, 상기 PFX 객체 내에 상기 데이터 객체를 기억하는 제 2 기억 수단과,
    암호화 키 데이터 객체가 상기 PFX 객체내에 내장되지 않았다는 결정에 응답하여, 상기 데이터 객체를 표현하는 그래피컬 객체―상기 그래피컬 객체는 상기 콘텐트 데이터 객체가 상기 PFX 객체 내에 내장되었음을 나타냄―를 디스플레이하는 제 4 디스플레이 수단과,
    암호화 키 데이터 객체가 상기 PFX 객체내에 내장되었다는 결정에 응답하여, 상기 PFX 객체 내에 암호화된 콘텐트 데이터 객체를 발생하는 제 1 발생 수단과,
    암호화 키 데이터 객체가 상기 PFX 객체 내에 내장되었다는 결정에 응답하여, 상기 암호화된 데이터 객체를 표현하는 그래피컬 객체―상기 그래피컬 객체는 상기 암호화된 데이터 객체가 상기 PFX 객체 내에 내장되었음을 나타냄―를 디스플레이하는 제 5 디스플레이 수단을 더 포함하는
    데이터 처리 시스템.
  41. 제 40 항에 있어서,
    상기 데이터 객체를 표현하는 그래피컬 객체를 상기 PFX 객체를 표현하는 그래피컬 객체상에 드래깅(dragging) 및 드롭핑(dropping)하는 제 1 드래깅 및 드롭핑 수단을 더 포함하는 데이터 처리 시스템.
  42. 제 30 항에 있어서,
    인증서 객체를 상기 PFX 객체에 추가하기 위한 사용자 요구를 수신하는 제 6 수신 수단과,
    상기 인증서 객체를 상기 PFX 객체에 기억하는 제 3 기억 수단과,
    상기 인증서 객체를 표현하는 그래피컬 객체―상기 그래피컬 객체는 상기 인증서 객체가 상기 PFX 객체 내에 내장되었음을 나타냄―를 디스플레이하는 제 6 디스플레이 수단을 더 포함하는
    데이터 처리 시스템.
  43. 제 42 항에 있어서,
    상기 인증서 객체가 상기 PFX 객체 내에 내장된 다른 인증서 객체와 논리적으로 연상되는지를 결정하는 제 9 결정 수단과,
    상기 인증서 객체가 상기 PFX 객체 내에 내장된 다른 인증서 객체와 논리적으로 연상되다는 결정에 응답하여, 상기 인증서 객체와 상기 다른 인증서 객체 사이에 논리적 연상을 표현하는 비쥬얼 지시기를 디스플레이하는 제 7 디스플레이 수단을 더 포함하는
    데이터 처리 시스템.
  44. 제 42 항에 있어서,
    암호화 키 데이터 객체가 상기 PFX 객체에 내장되었는지를 결정하는 제 10 결정 수단과,
    암호화 키 데이터 객체가 상기 PFX 객체에 내장되었다는 결정에 응답하여, 데이터 객체의 발생을 요구하는 사용자 입력을 수신하는 수신 수단과,
    상기 데이터 객체를 발생하는 제 2 발생 수단과,
    상기 데이터 객체를 상기 PFX 객체에 기억하는 제 3 기억 수단과,
    상기 데이터 객체를 표현하는 그래피컬 객체―상기 그래피컬 객체는 상기 데이터 객체가 상기 PFX 객체 내에 내장되었음을 나타냄―를 디스플레이하는 제 8 디스플레이 수단과,
    상기 데이터 객체와 연상된 인증서 객체 사이에 논리적 연상을 표현하는 비쥬얼 지시기를 디스플레이하는 제 9 디스플레이 수단을 더 포함하는
    데이터 처리 시스템.
  45. 제 42 항에 있어서,
    상기 인증서 객체를 표현하는 그래피컬 객체를 상기 PFX 객체를 표현하는 그래피컬 객체상에 드래깅 및 드롭핑하는 제 2 드래깅 및 드롭핑 수단을 더 포함하는
    데이터 처리 시스템.
  46. 제 30 항에 있어서,
    상기 PFX 객체에 인증 해제 리스트 객체를 추가하기 위한 사용자 요구를 수신하는 제 7 수신 수단과,
    상기 인증 해제 리스트 객체를 상기 PFX 객체에 기억하는 제 3 기억 수단과,
    상기 인증 해제 리스트 객체를 표현하는 그래피컬 객체―상기 그래피컬 객체는 상기 인증 해제 리스트 객체가 상기 PFX 객체 내에 내장되었음을 나타냄―를 디스플레이하는 제 10 디스플레이 수단을 더 포함하는
    데이터 처리 시스템.
  47. 제 46 항에 있어서,
    상기 인증 해제 리스트 객체가 상기 PFX 객체 내에 내장된 인증서 객체와 논리적으로 연상되는지를 결정하는 제 11 결정 수단과,
    상기 인증 해제 리스트 객체가 상기 PFX 객체 내에 내장된 인증서 객체와 논리적으로 연상된다는 결정에 응답하여, 상기 인증 해제 리스트 객체와 상기 인증서객체 사이에 논리적 연상을 표현하는 비쥬얼 지시기를 디스플레이하는 제 11 디스플레이 수단을 더 포함하는
    데이터 처리 시스템.
  48. 제 46 항에 있어서,
    상기 인증 해제 리스트 객체를 표현하는 그래피컬 객체를 상기 PFX 객체를 표현하는 그래피컬 객체상에 드래깅 및 드롭핑하는 제 3 드래깅 및 드롭핑 수단을 더 포함하는 데이터 처리 시스템.
  49. 제 31 항에 있어서,
    상기 PFX 객체에 내장된 데이터 객체를 암호화하기 위한 사용자 요구를 수신하는 제 8 수신 수단과,
    상기 PFX 객체 내에 암호화된 콘텐트 데이터 객체를 발생하는 제 3 발생 수단과,
    상기 암호화된 콘텐트 데이터 객체를 표현하는 그래피컬 객체―상기 그래피컬 객체는 상기 암호화된 콘텐트 데이터 객체가 상기 PFX 객체 내에 내장되었음을 나타냄―를 디스플레이하는 제 12 디스플레이 수단을 더 포함하는
    데이터 처리 시스템.
  50. 제 31 항에 있어서,
    상기 PFX 객체에 내장된 암호화된 콘텐트 데이터 객체를 해독하기 위한 사용자 요구를 수신하는 제 9 수신 수단과,
    상기 암호화된 콘텐트 데이터 객체를 상기 PFX 객체 내에 내장된 데이터 객체로 해독하는 해독 수단과,
    상기 데이터 객체를 암호화하는 암호화 버튼을 인에이블링하는 제 3 인에이블링 수단과,
    상기 데이터 객체를 표현하는 그래피컬 객체―상기 그래피컬 객체는 상기 데이터 객체가 상기 PFX 객체 내에 내장되었음을 나타냄―를 디스플레이하는 제 13 디스플레이 수단을 더 포함하는
    데이터 처리 시스템.
  51. 제 31 항에 있어서,
    암호화 키 알고리즘을 선택하기 위한 사용자 요구를 수신하는 제 10 수신 수단과,
    상기 PFX 객체에 내장된 암호화 키 객체를 삭제하는 제 3 삭제 수단과,
    상기 PFX 객체에 내장된 데이터 객체로부터 상기 암호화 키 객체를 제거하는 제 4 제거 수단을 더 포함하는
    데이터 처리 시스템.
  52. PFX 객체를 처리하기 위한 데이터 처리 시스템에 이용하는 컴퓨터-판독 가능한 매체내의 컴퓨터 프로그램 제품에 있어서,
    PFX 객체를 제공하는 제 1 인스트럭션(instructions)과,
    그래피컬 사용자 인터페이스 내에서 사용자 행위의 처리를 통해 상기 PFX 객체를 수정하는 제 2 인스트럭션을 포함하는
    컴퓨터 프로그램 제품.
  53. 제 30 항에 있어서,
    상기 제공 수단은,
    PFX 객체를 입수하는 수단과,
    상기 PFX 객체의 이름, 상기 PFX 객체와 연관된 버전, 상기 PFX 객체의 데이터 보전 모드를 디스플레이하는 수단을 포함하는
    데이터 처리 시스템.
KR10-2001-0018667A 2000-05-02 2001-04-09 개인 정보 교환 신택스 객체를 처리하기 위한 방법 및 시스템과 기록 매체 KR100483766B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/562,162 US7000108B1 (en) 2000-05-02 2000-05-02 System, apparatus and method for presentation and manipulation of personal information syntax objects
US09/562,162 2000-05-02

Publications (2)

Publication Number Publication Date
KR20010102851A true KR20010102851A (ko) 2001-11-16
KR100483766B1 KR100483766B1 (ko) 2005-04-19

Family

ID=24245055

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0018667A KR100483766B1 (ko) 2000-05-02 2001-04-09 개인 정보 교환 신택스 객체를 처리하기 위한 방법 및 시스템과 기록 매체

Country Status (4)

Country Link
US (1) US7000108B1 (ko)
EP (1) EP1162530A3 (ko)
JP (1) JP2002057659A (ko)
KR (1) KR100483766B1 (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100441077B1 (ko) * 2000-06-08 2004-07-19 인터내셔널 비지네스 머신즈 코포레이션 독립된 장치들이 단일 토큰 인터페이스로서 함께 동작할수 있도록 해주는 방법 및 그래픽 사용자 인터페이스
US20040034801A1 (en) * 2001-02-15 2004-02-19 Denny Jaeger Method for creating and using computer passwords
US20030221109A1 (en) * 2002-05-24 2003-11-27 Pure Edge Solutions, Inc. Method of and apparatus for digital signatures
US7272658B1 (en) 2003-02-13 2007-09-18 Adobe Systems Incorporated Real-time priority-based media communication
US7412603B2 (en) * 2003-12-05 2008-08-12 Microsoft Corporation Methods and systems for enabling secure storage of sensitive data
US8284942B2 (en) * 2004-08-24 2012-10-09 Microsoft Corporation Persisting private/public key pairs in password-encrypted files for transportation to local cryptographic store
US9088551B2 (en) * 2005-06-29 2015-07-21 International Business Machines Corporation Method and system for easily and securely managing multiple keys used to have access to multiple computing resources
US20070203852A1 (en) * 2006-02-24 2007-08-30 Microsoft Corporation Identity information including reputation information
US8117459B2 (en) * 2006-02-24 2012-02-14 Microsoft Corporation Personal identification information schemas
US8104074B2 (en) * 2006-02-24 2012-01-24 Microsoft Corporation Identity providers in digital identity system
US8078880B2 (en) * 2006-07-28 2011-12-13 Microsoft Corporation Portable personal identity information
US8087072B2 (en) * 2007-01-18 2011-12-27 Microsoft Corporation Provisioning of digital identity representations
US8407767B2 (en) * 2007-01-18 2013-03-26 Microsoft Corporation Provisioning of digital identity representations
US20080263363A1 (en) * 2007-01-22 2008-10-23 Spyrus, Inc. Portable Data Encryption Device with Configurable Security Functionality and Method for File Encryption
US8689296B2 (en) 2007-01-26 2014-04-01 Microsoft Corporation Remote access of digital identities
US20090089739A1 (en) * 2007-09-28 2009-04-02 Microsoft Corporation Intelligent editing of relational models
US7961878B2 (en) 2007-10-15 2011-06-14 Adobe Systems Incorporated Imparting cryptographic information in network communications
US8051287B2 (en) 2008-10-15 2011-11-01 Adobe Systems Incorporated Imparting real-time priority-based network communications in an encrypted communication session
FR2975551B1 (fr) * 2011-05-16 2013-09-27 Ethertrust Procede de securisation d'une architecture d'authentification, dispositifs materiels et logiciels correspondants
US8738902B2 (en) * 2012-01-27 2014-05-27 Microsoft Corporation Implicit SSL certificate management without server name indication (SNI)
JP2015033038A (ja) 2013-08-05 2015-02-16 ソニー株式会社 情報処理装置、情報処理方法及びコンピュータプログラム
JP6201835B2 (ja) * 2014-03-14 2017-09-27 ソニー株式会社 情報処理装置、情報処理方法及びコンピュータプログラム
US9489685B2 (en) * 2014-04-04 2016-11-08 Hopela Inc. Visual and spatial controls for privacy settings in a charitable giving application
US11373172B1 (en) 2019-01-03 2022-06-28 Wells Fargo Bank, N.A. Database encryption wallets

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5414801A (en) 1991-06-11 1995-05-09 Virtus Corporation Computerized method and apparatus using containment relationships to represent objects in a three-dimensional space, and for moving therethrough
US5671379A (en) 1993-01-29 1997-09-23 International Business Machines Corporation System and method for managing windows
US5544302A (en) 1993-06-03 1996-08-06 Taligent, Inc. Object-oriented framework for creating and using container objects with built-in properties
US5497422A (en) * 1993-09-30 1996-03-05 Apple Computer, Inc. Message protection mechanism and graphical user interface therefor
JP3590688B2 (ja) 1995-04-05 2004-11-17 インターナショナル・ビジネス・マシーンズ・コーポレーション アプリケーションを導入するための導入計画オブジェクトを構築する方法、及びそのシステム
US5737507A (en) 1995-07-07 1998-04-07 Sun Microsystems, Inc. Representation of inter-relationships between graphical objects in a computer display device
US5873106A (en) 1995-09-18 1999-02-16 Oracle Corporation Geometry management for displaying objects on a computer
GB2315577A (en) 1996-07-20 1998-02-04 Ibm Grouping of operations in a computer system
US6367012B1 (en) * 1996-12-06 2002-04-02 Microsoft Corporation Embedding certifications in executable files for network transmission
KR19990044851A (ko) 1997-11-24 1999-06-25 포만 제프리 엘 컴퓨터 네트워크에서 사전정의된 사용자 데이터를 질의 엔트리필드와 자동적으로 연관시키기 위한방법 및 시스템
US6205549B1 (en) * 1998-08-28 2001-03-20 Adobe Systems, Inc. Encapsulation of public key cryptography standard number 7 into a secured document
US6185684B1 (en) * 1998-08-28 2001-02-06 Adobe Systems, Inc. Secured document access control using recipient lists

Also Published As

Publication number Publication date
EP1162530A2 (en) 2001-12-12
JP2002057659A (ja) 2002-02-22
EP1162530A3 (en) 2004-04-21
US7000108B1 (en) 2006-02-14
KR100483766B1 (ko) 2005-04-19

Similar Documents

Publication Publication Date Title
KR100483766B1 (ko) 개인 정보 교환 신택스 객체를 처리하기 위한 방법 및 시스템과 기록 매체
US6772341B1 (en) Method and system for presentation and manipulation of PKCS signed-data objects
US6914985B1 (en) Method and system for presentation and manipulation of PKCS enveloped-data objects
US7237114B1 (en) Method and system for signing and authenticating electronic documents
US6775771B1 (en) Method and system for presentation and manipulation of PKCS authenticated-data objects
US8726369B1 (en) Trusted path, authentication and data security
US6754661B1 (en) Hierarchical storage systems for holding evidentiary objects and methods of creating and operating upon hierarchical storage systems
US7139399B1 (en) Cryptographic system with methods for user-controlled message recovery
US5497422A (en) Message protection mechanism and graphical user interface therefor
JP4949232B2 (ja) 署名付きファイルに証明書をリンクする方法およびシステム
US6173402B1 (en) Technique for localizing keyphrase-based data encryption and decryption
EP1376300A2 (en) Method and apparatus for providing cryptographic software services
US20070061567A1 (en) Digital information protection system
US6581093B1 (en) Policy validation in a LDAP directory
US20090158035A1 (en) Public Key Encryption For Web Browsers
US20050228687A1 (en) Personal information management system, mediation system and terminal device
KR20110102879A (ko) 전자 파일 전달 방법
JP4077270B2 (ja) 証明書管理環境の管理方法、プログラム及び装置
US9154495B1 (en) Secure data entry
US20120005169A1 (en) Method and system for securing data
WO2011058629A1 (ja) 情報管理システム
CN110166452A (zh) 一种基于JavaCard共享接口的访问控制方法及系统
JP2012175187A (ja) 鍵管理装置及び暗号処理システム及びコンピュータプログラム及び鍵管理方法
Nielsen et al. Lotus Notes and Domino R5. 0 security infrastructure revealed
Solbakken Certificate security visualization

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee