KR100441077B1 - 독립된 장치들이 단일 토큰 인터페이스로서 함께 동작할수 있도록 해주는 방법 및 그래픽 사용자 인터페이스 - Google Patents
독립된 장치들이 단일 토큰 인터페이스로서 함께 동작할수 있도록 해주는 방법 및 그래픽 사용자 인터페이스 Download PDFInfo
- Publication number
- KR100441077B1 KR100441077B1 KR10-2001-0026506A KR20010026506A KR100441077B1 KR 100441077 B1 KR100441077 B1 KR 100441077B1 KR 20010026506 A KR20010026506 A KR 20010026506A KR 100441077 B1 KR100441077 B1 KR 100441077B1
- Authority
- KR
- South Korea
- Prior art keywords
- token
- functions
- interface
- list
- subset
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
독립된 장치들이 단일 토큰 인터페이스(single token interface)로서 함께 동작할 수 있도록 해주는 방법 및 그래픽 사용자 인터페이스가 제공된다. 이 방법 및 그래픽 사용자 인터페이스는 다양한 독립된 장치들의 기능을 기능 카테고리(categories of functions)로 분리한다. 이들 카테고리로부터 사용자는, 단일 토큰 인터페이스로 결합하고자 하는 서로 다른 기능들을 서로 다른 장치들로부터 선택할 수 있다. 그 후, 데이타 객체(data object)상에 단일 토큰 인터페이스가 적용될 때, 기능을 수행하는 특정의 장치에 관계없이 관련된 기능들중 소정의 기능이 데이타 객체에 적용될 수 있다. 이런 식으로, 사용자는 각각의 장치에 대해 하나씩 복수개의 토큰이 아닌 하나의 토큰 인터페이스만을 다루면 된다.
Description
본 발명은 전반적으로 개선된 데이타 처리 시스템에 관한 것으로, 보다 구체적으로는, 독립된 장치들이 하나의 토큰 인터페이스로서 함께 동작할 수 있도록 해주는 방법 및 그래픽 사용자 인터페이스에 관한 것이다.
공개키 암호화 기법(public key cryptography)은 암호화 및 암호해독시에 서로 다른 키가 사용되는 기술이다. 이들 2개의 키는 공개키(public key)와 개인키(private key)로서, 각각 데이타를 암호화 또는 암호해독 할 수 있다. 사용자는 자신의 공개키는 다른 사람들에게 제공하며 개인키는 자신만이 보관한다. 공개키로 암호화된 데이타는 대응하는 개인키로만 암호해독될 수 있으며, 그 역도 마찬가지이다.
공개키 암호화 기법이 수용됨에 따라, 서로 다른 2개 장소에 있는 소프트웨어가, 서로 다른 판매자들에 의해 개발된 경우조차도, 함께 동작할 수 있도록 해주는 표준이 필요해졌다. 특히, 디지털 서명(digital signature), 디지털 봉투(digital enveloping), 디지털 인증서(digital certification), 및 키 약속(key agreement)에 대해 협의가 이루어질 수 있도록 표준이 개발되었다. 그러나, 상호동작가능성은 통신가능한 포멧을 엄격히 준수해야 한다. PKCS, 즉, "공개키 암호화 기법 표준(Public Key Cryptography Standard)"는 이종 환경에서 상호동작가능한 표준에 대한 기초를 제공한다.
PKCS는 공개키 암호화 기법에 사용되는 데이타 유형과 알고리즘을 정의하는 역할을 하는 RSA Laboratories에 의해 발표된 문서 세트이다. 10개 PKCS 표준으로된 제1 세트는 1991년 공표되었다. 1993년 공표시에 PKCS #2와 #4가 PKCS #1에 통합되었다. 따라서, 표준 세트는 다음과 같다:
PKCS #1 : RSA 암호화 표준
PKCS #3 : Diffie-Hellman 키 협약 표준
PKCS #5 : 패스워드-기반의 암호화 표준
PKCS #6 : 확장된-인증서 문법(syntax) 표준
PKCS #7 : 암호화 메시지 문법 표준
PKCS #8 : 개인키 정보 문법 표준
PKCS #9 : 선택된 속성 유형
PKCS #10 : 인증 요청 문법 표준
PKCS는 계속 개정되며 1993년 이후 다음과 같은 표준이 추가되었다.
PKCS #11 : 암호화 토큰 인터페이스 표준
PKCS #12 : 개인 정보 교환 문법 표준
PKCS #13 : 타원 곡선 암호화 표준
PKCS #15 : 암호화 토큰 정보 포멧 표준.
이들 표준 문서들중 하나인 PKCS #11은 크립토키(Cryptoki)라 불리는 API를 정의한다. Crypto-key를 발음나는대로 표기한 것으로서 암호화 토큰인터페이스(cryptographic token interface)에 대한 축약어인 크립토키(Cryptoki)는 간단한 객체-기반의 접근법을 따르며, 기술독립성(장치 독립성)과 리소스 공유(복수개의 애플리케이션이 복수개의 장치에 액세스하는 것)의 목적을 달성시켜주며, 암호화 토큰이라 불리는 장치에 대한 공통되고 논리적인 뷰(view)를 애플리케이션에게 제공해준다.
도 8은 확립된 표준에 따른 크립토키의 일반적 모델을 도시하는 예시적인 블럭도이다. 이 모델은 소정의 암호화 동작의 수행을 필요로 하는 하나 이상의 애플리케이션에서 시작되어, 이들 동작들 일부 또는 모두가 실제로 수행되는 하나 이상의 암호화 장치(cryptographic device)에서 종료한다. 사용자는 애플리케이션과 연관될 수도 있고 그렇지 않을 수도 있다.
크립토키는 다수의 "슬롯"을 통해 시스템내에서 활성화된 하나 이상의 암호화 장치에 대한 인터페이스를 제공한다. 물리적 판독기 또는 다른 장치 인터페이스에 대응하는 각각의 슬롯은 토큰을 포함한다. 토큰은, 전형적으로 판독기 내에 암호화 장치가 존재할 때 "슬롯 내에 존재"한다.
암호화 장치는 소정의 명령어 세트를 따르는 암호화 동작을 수행할 수 있다. 이들 명령어는, 전형적으로 예를 들어 PCMCIA 카드 서비스 또는 소켓 서비스와 같은 표준의 장치 드라이브를 통해 패스된다. 크립토키는 각각의 암호화 장치가 그들의 구현 기술에 관계없이 다른 장치들과 마찬가지로 논리적으로 보이게끔 만든다. 따라서, 애플리케이션은 장치 드라이브에 직접 인터페이싱할 필요가 없다(또는 장치 드라이브 중에 어느 것이 관련되어 있는지조차 알 필요가 없다). 사실상,여기서 "장치"는 완전히 소프트웨어(예를 들어, 서버상에서 실행되고 있는 한 프로세스로서)로 구현될 수도 있다. RSA Security, Inc.로부터 입수가능한 "PKCS #11 v2.10:Cryptographic Token Interface Standard"를 참조한다.
도 8에 도시된 바와 같이, 각각의 장치는 토큰으로서 표시된다. 크립토키의 입장에서 본 토큰은, 객체를 저장하고 암호화 기능을 수행할 수 있는 장치이다. 크립토키는 세개 클래스의 객체를 정의한다: 데이타, 인증서, 및 키. 데이타 객체는 애플리케이션에 의해 정의된다. 인증서 객체는 인증서를 저장한다. 키 객체는 암호화 키를 저장한다. 키는 공개키, 개인키, 또는 비밀키일 수도 있으며, 이들 각각은 특정의 메카니즘내에서 사용하기 위한 하부유형(subtype)을 가진다. 토큰은 객체를 생성 또는 파괴, 조작, 및 검색할 수 있다. 또한, 토큰은 객체들에 암호화 기능을 수행할 수 있다.
종래 기술은, 암호화 장치마다 동적으로 링크된 라이브러리와 같은 공유된 라이브러리가 생성될 것을 요구한다. 나아가, 토큰당 단지 하나의 장치만 허용된다. 따라서, 사용자가 많은 다른 암호화 장치를 이용하기를 원한다면, 사용자는 복수개의 서로 다른 토큰들을 숙지해야 하고 토큰들이 객체에 적용될 때 이들을 추적할 수 있어야 한다. 따라서, 많은 장치들이 하나의 토큰으로 결합될 수 있는 방법 및 장치를 가지는 것이 이롭다.
본 발명은, 독립된 장치들이 하나의 토큰 인터페이스로서 함께 동작할 수 있도록 해주기 위한 방법 및 그래픽 사용자 인터페이스를 제공한다. 이 방법 및 그래픽 사용자 인터페이스는 다양한 독립된 장치들의 기능을 기능 카테고리로 분리한다. 이들 카테고리로부터 사용자는, 하나의 토큰 인터페이스로 결합하고자하는 서로 다른 기능들을 서로 다른 장치로부터 선택할 수 있다. 그 후, 데이타 객체상에 단일 토큰 인터페이스가 적용될 때, 기능을 수행하는 특정의 장치에 관계없이 관련된 기능들중 소정의 기능이 데이타 객체에 적용될 수 있다. 이런 식으로, 사용자는 각각의 장치에 대해 하나씩 복수개의 토큰이 아니라 하나의 토큰 인터페이스에 대해서만 알고 있으면 된다.
도 1은 본 발명이 구현될 수 있는 분산 데이타 처리 시스템을 도시하는 도면.
도 2a는 서버로서 구현될 수 있는 데이타 처리 시스템을 도시하는 블럭도.
도 2b는 본 발명을 구현하는 컴퓨터 시스템 내에서 동작하는 소프트웨어 구성요소들의 관계를 도시하는 블럭도.
도 3은 본 발명에 따른 객체들간의 관계를 도시한 예시적 블럭도.
도 4는 본 발명에 따른 제1 그래픽 사용자 인터페이스의 예시도.
도 5는 본 발명에 따른 제2 그래픽 사용자 인터페이스의 예시도.
도 6은 본 발명에 따른 제3 그래픽 사용자 인터페이스의 예시도.
도 7은 본 발명의 예시적 동작을 개략적으로 도시하는 흐름도.
도 8은 PKCS #11 암호화 토큰 인터페이스의 일반 모델의 예시적 블럭도.
<도면의 주요 부분에 대한 부호의 설명>
400 : GUI
410 : 토큰 리스팅
420 : 토큰 인터페이스
도면을 참조하면, 도 1은 본 발명이 구현될 수 있는 분산 데이타 처리 시스템을 도시하고 있다. 분산 데이타 처리 시스템(100)은 본 발명이 구현될 수 있는 컴퓨터 네트워크이다. 분산 데이타 처리 시스템(100)은, 분산 데이타 처리 시스템(100) 내에 함께 접속된 다양한 장치들과 컴퓨터들간의 통신 링크를 제공하는 매개체인 네트워크(102)를 포함한다. 네트워크(102)는, 와이어 또는 광섬유 케이블과 같은 영구적 접속 또는 전화 접속을 통해 이루어지는 임시적 접속을 포함할 수 있다.
도시된 예에서, 서버(104)와 서버(106)은 저장 장치(108)과 함께 네트워크(102)에 접속되어 있다. 또한, 클라이언트(110, 112, 및 114)도 역시 네트워크(102)에 접속되어 있다. 이들 클라이언트(110, 112, 및 114)는 예를 들어 개인용 컴퓨터 또는 네트워크 컴퓨터일 수 있다. 현재의 응용을 위해, 네트워크 컴퓨터는, 네트워크에 접속된 다른 컴퓨터로부터 프로그램이나 다른 애플리케이션을 수신하는 네트워크에 접속되어 있는 임의의 컴퓨터이다. 도시된 예에서, 서버(104)는 부트 파일, 운영 체제 이미지, 및 애플리케이션과 같은 데이타를 클라이언트(110-114)에 제공한다.
클라이언트(110, 112, 및 114)는 서버(104)에 대한 클라이언트이다. 추가적으로, 이들 예에서 클라이언트(110-114)는 서버(106)에 대한 클라이언트일 수도 있다. 분산 데이타 처리 시스템(100)은 추가적인 서버, 클라이언트, 및 도시되지 않은 다른 장치들을 포함할 수도 있다. 도시된 예에서, 분산 데이타 처리 시스템(100)은, 서로 통신하기 위해 TCP/IP 프로토콜 수트를 이용하는 네트워크 및 게이트웨이들의 세계적 규모의 집합을 나타내는 네트워크(102)를 갖는 인터넷이다. 인터넷의 중심부에는, 데이타와 메시지들을 라우팅하는 수천개의 상업용, 관공서용, 교육용, 및 기타 컴퓨터 시스템으로 구성된 호스트 컴퓨터들 또는 주요 노드들간의 고속 데이타 통신 라인의 백본(backbone)이 있다. 물론, 분산 데이타 처리 시스템(100)은, 예를 들어, 인터라넷, 근거리 통신망(LAN), 또는 원거리 통신망(WAN)과 같은 서로 다른 종류의 다수의 네트워크로 구현될 수도 있다. 도 1은, 본 발명에 대한 기술적 제한을 의미하는 것이 아니라 이종의 컴퓨팅 환경의 한 예로서 도시된 것이다.
도 2a를 참조하면, 도 1의 서버(104) 또는 서버(106)과 같은 서버로서 구현될 수 있는 데이타 처리 시스템을 도시하고 있는 블럭도가 도시되어 있다. 데이타 처리 시스템(200)은 시스템 버스(206)에 접속되며 프로세서(202 및 204)를 포함하는 대칭 다중프로세서(SMP) 시스템이다. 다른 방법으로서, 단일 프로세서 시스템이 사용될 수도 있다. 또한, 시스템 버스(206)에는 메모리 컨트롤러/캐쉬(208)이 접속되어 있는데, 메모리 컨트롤러/캐쉬(208)은 로컬 메모리(209)에 대한 인터페이스를 제공한다. I/O 버스 브리지(210)은 시스템 버스(206)에 접속되며 I/O 버스(212)에 대한 인터페이스를 제공한다. 메모리 컨트롤러/캐쉬(208) 및 I/O 버스 브리지(210)은 도시된 바와 같이 통합될 수 있다.
I/O 버스(212)에 접속된 주변 기기 상호접속(PCI) 버스 브리지(214)는 PCI 로컬 버스(216)에 대한 인터페이스를 제공한다. PCI 버스(216)에 복수개의 모뎀이 접속될 수도 있다. 전형적인 PCI 버스 구현은 4개의 PCI 확장 슬롯 또는 애드인 커넥터를 지원할 것이다. 도 1의 네트워크 컴퓨터(108-112)로의 통신 링크는, 애드-인 보드를 통해 PCI 로컬 버스(216)에 접속된 네트워크 어댑터(220)과 모뎀(218)을 통해 제공될 수 있다.
추가 PCI 버스 브리지(222 및 224)는, 추가 모뎀이나 네트워크 어댑터가 지원되는 추가 PCI 버스(226 및 228)에 대한 인터페이스를 제공한다. 이런 식으로, 데이타 처리 시스템(200)은 복수개의 네트워크 컴퓨터에 대한 접속을 허용한다. 메모리 맵형 그래픽 어댑터(230) 및 하드 디스크(232)도 역시 도시된 바와 같이 I/O 버스(212)에 직접 또는 간접적으로 접속될 수 있다.
당업자는 도 2에 도시된 하드웨어는 달라질 수 있다는 것을 이해할 것이다. 예를 들어, 광 디스크 드라이브와 같은 다른 주변 장치가 도시된 하드웨어에 추가하여, 또는 이를 대체하여 사용될 수도 있다. 도시된 예는 본 발명에 대한 기술적 제한을 가하기 위한 것이 아니다. 도 2에 도시된 데이타 처리 시스템은, 예를 들어, 뉴욕주 아몽크시에 위치한 인터내셔널 비지니스 코포레이션사의 제품으로서 AIX 운영 체제를 탑재한 IBM RISC/System 6000일 수도 있다. 다른 방법으로서, 운영 체제는, IBM사로부터 입수가능한 JavaOS For BusinessTM또는 OS/2TM과 같은 상업적으로 이용가능한 운영 체제일 수도 있다. JavaOS는 네트워크 상의 서버로부터 네트워크 클라이언트로 로딩되며 Java 프로그램과 애플릿을 지원한다. Java와 같은 객체 지향형 프로그래밍 시스템은 운영 체제와 연계하여 실행될 수 있으며 데이타 처리 시스템상에 실행중인 Java 프로그램이나 애플리케이션으로부터 운영 체제로의 호출(call)을 제공한다.
본 발명은 다양한 컴퓨터 플랫폼과 운영 체제 상에서 암호화 데이타 객체를 처리하기 위한 방법, 장치, 및 컴퓨터-구현된 명령어들을 제공한다. 본 발명은 대부분의 컴퓨터 랭귀지로 구현될 수 있지만, 대부분의 환경에서의 성능상의 이득으로 인해 C로 구현되는 것이 바람직하다. 그러나, 예시적 사용자 인터페이스는 Java로 구현될 수 있다. 따라서, 본 발명은 Java 런타임 환경에서 동작할 수 있으며 Java 표준 명세에 의해 정의된 JVM 한도내에서 Java 가상 머신(Java Virtual Machine; JVM)과 연계하여 동작한다. 본 발명의 이해를 돕기 위해, Java 명세에 따른 JVM의 동작 일부가 본 명세서에서 기술될 것이다.
도 2b를 참조하면, 본 발명을 구현한 컴퓨터 시스템 내에서 동작하는 소프트웨어 구성 요소들간의 관계를 도시하는 블럭도가 도시되어 있다. 자바-기반의 시스템(250)은 특정의 하드웨어 플랫폼상에서 실행하는 소프트웨어에 대한 하드웨어와 시스템을 지원하는 플랫폼 특정의 운영 체제(252)를 제공한다. JVM(254)는 운영 체제와 연계하여 실행될 수도 있는 하나의 소프트웨어 애플리케이션이다. JVM(254)는 Java 애플리케이션이나 애플릿(256)-Java 프로그래밍 언어로 씌어진 프로그램, 서브렛, 또는 소프트웨어-을 실행할 수 있는 능력을 갖는 Java 런타임 환경을 제공한다. JVM(254)가 동작하는 컴퓨터 시스템은, 소위 Java 칩, Java-on-silicon, picoJava 코어가 임베딩되어 있는 Java 프로세서상에서 전용의 하드웨어로 구현될 수도 있다.
Java 런타임 환경의 중심에는 Java 아키텍쳐, 보안특성, 네트워크를 가로지르는 이동성, 및 플랫폼 독립성을 포함한 Java 환경의 모든 특징을 지원하는 JVM이 있다. JVM은 가상의 컴퓨터, 즉, 추상적으로 규정된 컴퓨터이다. Java 명세는, JVM이 실행되는 플랫폼에 따라 달라질 수 있는 어느 정도의 설계 선택사항과 더불어 모든 JVM이 구현해야만하는 소정의 특징들에 대해 정의하고 있다. 예를 들어, 모든 JVM은 Java 바이트코드를 실행해야만하고 이 바이트코드에 의해 표시된 명령어들을 실행하기 위해 소정 범위의 기술을 이용할 수도 있다. JVM은 완전히 소프트웨어로 구현될 수도 있고 어느 정도 하드웨어로 구현될 수도 있다. 이러한 융통성으로 인해 메인프레임 컴퓨터 및 PDA와 같은 하드웨어 플랫폼에 대해 서로 다른 JVM의 설계가 허용된다.
JVM은 Java 프로그램을 실제로 수행하는 가상적인 컴퓨터 요소의 명칭이다. Java 프로그램은, 중앙 프로세서에 의해 실행되는 것이 아니라 중앙 프로세서상에서 실행되고 있는 소프트웨어 조각 그 자체인 JVM에 의해 실행된다. JVM은, Java프로그램이 컴파일된 플랫폼과 다른 플랫폼상에서 그 Java 프로그램이 실행될 수 있도록 해준다. Java 프로그램은 JVM용으로 컴파일된다. 이런식으로 Java는, 다양한 중앙 처리 장치와 운영 체제 아키텍쳐를 포함할 수 있는 많은 유형의 데이타 처리 시스템에 대한 응용을 지원한다.
도 1-2b에 관해 상술한 데이타 처리 시스템은 예를 들어 PKCS #7 및/또는 PKCS #11 객체와 같은 상호동작가능하도록 정의된 암호화 표준에 따라 포멧팅된 암호화 데이타 객체를 생성, 수정, 전송, 저장, 및 수신하는데 이용될 수 있다. 이하의 설명은 인증서, 서명등의 유틸리티에 대한 배경 지식을 제공해준다.
인증서(certificate)는 개인, 컴퓨터 시스템, 컴퓨터 시스템상에서 실행되고 있는 특정의 서버, 또는 기관의 신원(identity)과 키 소유자임(key ownership)을 보장하는 디지털 문서이다. 예를 들어, 사용자의 인증서는 사용자가 특정의 공개키를 소유하고 있음을 입증한다. 인증서는 인증 기관에 의해 발행된다. 이들 인증 기관은 인증서를 발행하기 이전에 개인의 신원과 키 소유자임을 증명할 책임을 진다. 신원 인증서는, 누군가의 공개키가 어떤 특정의 값을 가진다고 진술하는 또 다른 누군가에 의해 디지털적으로 서명된 진술서이다.
공개키는, 특정의 실체(entity)와 연관되어 있는 숫자이며 그 실체와 신뢰관계속에서 상호작용할 필요가 있는 모든 사람들에게 공개되기 위한 것이다. 실체는 개인일 수도 있고, 기관, 프로그램, 컴퓨터, 비즈니스, 은행등일 수도 있다. 어떤 데이타가 디지털적으로 서명되면, 그 데이타는, 실체의 신원 및 그 실체가 상기 데이타에 대해 알고 있다는 것을 증명하는 서명과 함께 저장된 것이다. 서명은 소정의 데이타와 실체의 개인키로부터 계산된다.
개인키는 특정의 실체에게만 알려지는, 즉 비밀이 유지된 숫자이다. 전형적인 공개키 암호화 시스템에서, 개인키는 하나의 공개키에 대응한다.
인증서는, (a) 개인키와 공개키가 쌍을 이루며 (b) 개인키는 서명하는데 이용되고 (c) 공개키는 서명을 검증하는데 이용되는 공개키 암호화 시스템에 따라 다르다. 인증 기관(certificate Authority; CA)는 다른 사람(실체)을 위해 인증서를 서명(발행)하도록 위탁받은 실체(예를 들어, 비즈니스)이며, 인증서를 서명한 실체를 다른 사람들이 신뢰할 수 있도록 공개키와 그 소유자간의 관계를 보장하는데 있어서 대개 어떤 종류의 법적 책임을 진다.
인증서를 얻는데는 2개의 기본 기법이 있다: (1) 적절한 소프트웨어를 이용하여 직접 만들거나 (2) 인증 기관과 같은 제3자가 발행해 주도록 요청하는 것. 인증서 생성 절차에는 2개의 주요 입력이 있다. 첫번째 입력은 어떤 특별한 소프트웨어를 이용하여 생성된 정합된 공개키와 개인키쌍이다. 단지 공개키만이 다른 사람들에게 알려진다. 개인키는 데이타를 서명하는데 이용된다; 만일 누군가가 불법적으로 개인키를 알고 있다고 가정하면, 이들은 제3자에 귀속되는 법적 문서를 위조할 수 있다. 두번째 입력은 인증하고자 하는 실체, 예를 들어, 개인에 대한 정보로서, 대개 명칭이나 기관의 주소와 같은 정보가 포함된다. 인증 기관이 인증서를 발행하면, 대개 실체에 대한 증명서를 제공할 필요가 있다.
인증 기관이 개인에 대한 인증서를 발행하면, 그 개인은 자신에 대한 정보와 공개키를 제공해야만 한다. 넷스케이프 네비게이터와 같은 툴은 이와 같은 정보를디지털적으로 서명하여 이를 인증 기관으로 전송할 수 있다. 인증 기관은 신뢰성있는 제3자 인증 서비스를 제공하는 회사일 수도 있다. 그 다음 인증 기관은 인증서를 생성하여 이를 되돌려 줄 것이다. 인증서는 인증서 유효 기간 및 일련 번호와 같은 다른 정보를 포함할 수도 있다. 인증 기관에 의해 제공된 값의 일부는, CSP(Certification Service Practice)에 의해서 공개적으로 공표되는 검증 요구사항에 부분적으로 기초하여 중립적이고 신뢰성있는 안내 서비스의 역할을 하는 것이다.
본 발명은 암호화 객체(objects) 및 메소드(methods)와 같은 객체들을 하나의 토큰으로 결합할 수 있는 메카니즘을 제공한다. 이렇게 함으로써, 사용자가 조작하고 이해하여야 하는 토큰의 개수가 감소된다. 따라서, 객체에 암호화 기능을 생성하고 적용하기 위한 인터페이스는 보다 단순하며 사용자 친근형으로 만들어질 수 있다.
도 3은 하나의 토큰 인터페이스로 결합될 수 있는 기능 객체(functional object)들의 관계를 도시하는 예시적 블럭도이다. 도 3에 도시된 구성요소들은 데이타 처리 시스템 상에 존재하는 소프트웨어 장치, 하드웨어 장치, 또는 소프트웨어 장치와 하드웨어 장치의 결합을 나타낸다. 데이타 처리 시스템은, 네트워크(102)와 같은 네트워크 곳곳에 분산될 수도 있고, 클라이언트 장치(110) 또는 서버 장치(104)와 같은 단독형 데이타 처리 시스템(stand alone data processing system)일 수도 있다.
도 3에 도시된 바와 같이, 기능들은 암호화 기능(310), 객체 생성 및 관리 기능(320), 및 세션 관리기능(330)으로 분리된다. 이들 기능들은 예를 들어PKCS#11 표준에 정의된 함수 C_GetMechanismList를 호출함으로써 얻을 수도 있다. 예를 들어, 사용자가 새로운 토큰 인터페이스를 생성할 때, 애플리케이션은 토큰(610, 620, 630)에 대해 C_GetMechanismList를 호출할 수도 있다. 반환되는 실제 메카니즘에 따라, 310 또는 320 내의 요소들중 하나로 분류될 수 있다. 그 다음, 사용자는 각각의 구성 요소를 개별적으로 액세스할 수 있다. 이들 기능들을 분리함으로써, 소프트웨어 및 하드웨어 장치의 조합은 토큰 인터페이스(340)을 이용하여 하나의 토큰으로 결합될 수 있다.
토큰 인터페이스(340) 및 세션 관리 모듈(330)은 각각의 장치가 위치한 장소 및 장치와의 통신 방법을 추적한다. 이들 세션 관리 모듈(330)은 토큰 인터페이스(340)과 연관된 토큰들의 세션을 관리한다. 토큰 인터페이스(340)은 토큰 인터페이스(340) 내의 각각의 토큰의 세션과 각각의 토큰에 대한 정보를 유지한다. 토큰 인터페이스는, 복수개의 서로 다른 유형의 토큰들-각각의 토큰은 서로 다른 세션에서 사용됨-을 포함할 수도 있기 때문에, 세션 관리 모듈(330)은 개방적 세션 지정(open session designation)을 지원해야 한다.
도 3의 객체들은 서로 다른 모듈들의 다양한 기능 객체들을 표현하고 있다. 예를 들어, 암호화 모듈(310) 내의 서명 객체(sign objects)들은 데이타 객체의 서명을 발생시키는데 이용된다. 검증 객체는 데이타 객체의 서명을 검증하는데 이용될 수 있다. 마찬가지로, 암호화 및 암호해독 객체는 이들 기능을 수행하는데 이용될 수 있다. 이들 기능은 예를 들어 데이타 처리 장치, 컴퓨터 프로그램, 회로 또는 다른 하드웨어등에 의해 구현된 Java 메소드일 수도 있다. 본 발명의 이하의 설명을 위해, 이들 기능들은 하드웨어 방법으로서 구현되는 것으로 가정한다.
모듈들은 소프트웨어 및 하드웨어 어느 하나 또는 양쪽 모두로 구현될 수도 있다. 모듈들은 기능 객체들에 의해 표현된 기능들을 수행할 수 있다. 예를 들어, 모듈들은 암호화 하드웨어 장치와 같은 하드웨어 장치, 저장 장치, 또는 암호화 알고리즘 라이브러리등과 같은 소프트웨어 장치일 수도 있다.
도 4는 본 발명에 따른 예시적인 그래픽 사용자 인터페이스(GUI)이다. 도 4에 도시된 바와 같이, GUI(400)은 토큰의 리스트(410)와 토큰 인터페이스(420)의 리스트를 포함한다. 또한, GUI(400)은 토큰 인터페이스 리스트(420)으로부터 토큰 인터페이스를 추가, 수정, 삭제하기 위한 가상 버턴(430-450)을 포함한다.
사용자는 가상 버턴(430-450)들 중 대응하는 하나를 가상적으로 누름으로써 토큰 인터페이스를 추가, 수정, 또는 삭제할 수 있다. 토큰 인터페이스를 수정 또는 삭제하는 경우에, 토큰 인터페이스 리스트(420)으로부터 토큰 인터페이스가 먼저 선택되고, 그 다음, 수정 또는 삭제 버턴(440 또는 450)이 가상적으로 눌러진다.
토큰 리스트(410)은 새로운 토큰 인터페이스를 생성하거나 기존 토큰 인터페이스를 수정하는데 이용될 수 있는 토큰들을 식별케한다. 토큰 리스트(410)은 GUI(400)과 연관된 (도시되지 않은) 토큰 데이타베이스로부터 토큰 정보를 검색함으로써 생성될 수 있다. 이 데이타베이스는 본 발명이 구현되는 데이타 처리 시스템과 연관된 메모리 내에 유지될 수 있다. 토큰들은 이들을 관련된 데이타베이스에 추가함으로써 리스트에 추가될 수 있다. 또한, 이 토큰 리스트는, PKCS #11 함수 호출 C_GetSlotList를 이용하고 기존 토큰들을 확인과 새로운 토큰들의 추가 여부를 판별하기 위해 tokenPresent 값을 검사함으로써 얻어질 수 있다.
도 5는, 도 4의 토큰 인터페이스 추가 가상 버턴(430)을 선택하는데 응답하여 사용자에게 제공되는 예시적인 그래픽 사용자 인터페이스(GUI, 500)이다. 도 5에 도시된 바와 같이, GUI(500)은 토큰 인터페이스를 식별케하기 위한 토큰 인터페이스 라벨을 입력하는 필드(510)을 포함한다. 이 토큰 인터페이스 라벨은 토큰 인터페이스 리스트(420)에 나타나는 라벨이다. GUI(500)은 토큰 인터페이스의 추가 또는 추가의 취소를 위한 가상 버턴(520 및 530)도 역시 포함한다. 일단 필드(510) 내에 토큰 인터페이스 라벨이 입력되면, 추가 가상 버턴(520)이 인에이블되어 추가된 토큰 인터페이스를 정의할 수 있도록 GUI에 제공된 추가 가상 버턴(520)을 사용자가 선택할 수 있다.
도 6은 토큰 인터페이스를 정의하기 위한 그래픽 사용자 인터페이스(GUI, 600)의 예시적 도면이다. 가상 버턴(520)의 선택을 통한 토큰 인터페이스의 추가시 또는 가상 버턴(440)을 통한 토큰 인터페이스의 수정시에 GUI(600)이 사용자에게 제공된다. 도 6에 도시된 바와 같이, GUI(600)은 토큰 인터페이스에 추가된 메소드 리스트(640) 및 토큰 리스트(410) 내의 토큰들 각각에 연관된 메소드의 상세 리스트(610-630)을 포함한다. 또한, GUI(600)은 토큰 인터페이스 메소드 리스트(640)으로부터 메소드들을 추가 및 제거하기 위한 추가 및 제거 가상 버턴(650 및 660)을 포함한다.
사용자는, 메소드를 선택하고 추가 가상 버턴(650)을 누름으로써, 토큰 메소드 리스트(610-630)중 어느 하나로부터 토큰 인터페이스 메소드 리스트(640)에 메소드를 추가할 수도 있다. 마찬가지로, 토큰 인터페이스 메소드 리스트(640)로부터 메소드를 선택하고 제거 가상 버턴(660)을 누름으로써 토큰 인터페이스 메소드 리스트(640)으로부터 메소드가 제거될 수 있다. 일단 사용자가 토큰 인터페이스에 할당된 메소드들에 만족하면, 사용자는 토큰 인터페이스를 메모리 내에 저장하기 위해 저장 가상 버턴(670)을 선택할 수 있다. 다른 방법으로서, 사용자가 토큰 인터페이스를 추가 또는 수정하기를 더 이상 원하지 않는다면, 사용자는 취소 가상 버턴(680)을 선택할 수 있으며 다시 한번 GUI(400)을 제공받는다.
도 6으로부터 알 수 있는 바와 같이, 토큰 인터페이스는 복수개의 서로 다른 토큰들로부터의 메소드(예를 들어, 기능)로 구성될 수도 있다. 따라서, 토큰 인터페이스는 토큰으로서 표시된 서로 다른 장치들에 의해 수행되는 서로 다른 많은 종류의 기능을 발휘할 수 있다. 예를 들어, 도 6에 도시된 토큰 인터페이스(B)는 (보안 저장 장치로부터 얻어지는) RSA 키쌍 생성, (RSA 가속기 장치로부터의) RSA PKCS 암호화, 및 (DES 가속기 장치로부터의) DES3 MAC 암호화를 수행할 수 있다. 그 결과, 사용자는 3개의 서로 다른 토큰(610-630)이 아닌 토큰 인터페이스(B)만 다루면 된다.
GUI(400-600)을 이용하여 토큰 인터페이스가 일단 정의되면, 토큰들이 데이타 객체에 적용되는 방식과 마찬가지 방식으로 토큰 인터페이스가 데이타 객체에 적용된다. 그러나, 본 발명의 토큰 인터페이스에서, 데이타 객체 상에는 다양한 장치들의 기능들중 어떠한 기능도 적용될 수 있다. 따라서, 사용자가 데이타 객체들상에 RSA PKCS 암호화를 수행하기를 원한다면, 사용자는 데이타 객체에 토큰 인터페이스(B)를 적용하기만하면 된다. 마찬가지로, 사용자가 데이타 객체상에 DES3 MAC 암호화를 수행하기를 원한다면, 사용자는 동일한 토큰 인터페이스(B)가 이 데이타 객체상에 적용될 것이다.
적용된 암호화의 특정한 유형은, 예를 들어, PKCS 표준에 정의된 바와 같이, C_EncryptInit 함수로 전달되는 pMechanism 파라미터에 기초하여 결정될 수 있다. 동일한 알고리즘을 수행할 수 있는 토큰들이 복수개 있는 경우에, 토큰 인터페이스는 장치의 성능과 현재의 부하를 고려하여 최선의 선택을 결정할 것이다. 세션 관리 모듈(330)과 토큰 인터페이스는 토큰 인터페이스의 다양한 장치에 관련된 정보와 이들간의 통신 방법을 유지하기 때문에, 토큰 인터페이스 메소드 리스트 내의 특정한 방법이 데이타 객체에 적용될 때, 데이타 객체상에 이 방법을 수행하기 위해 적절한 장치가 이용될 수 있다.
본 발명의 이점의 한 예로서, 다음의 예를 고찰해보자. 제1 장치는 RSA 암호화 알고리즘을 이용할 수 있고 제2 장치는 DSA 암호화 알고리즘을 이용할 수 있으나, 이들 모두 해싱을 수행할 수도 없고 키를 보안유지 상태로 저장할 수도 없다고 가정하자.
알려진 PKCS #11 시스템은 이들 4개의 장치들 각각을 서로 다른 토큰으로서 다룰 것이다. 즉, RSA 암호화 알고리즘에 대한 하나의 토큰이 있고, DSA 암호화 알고리즘에 대한 하나의 토큰이 있으며, 영구 저장 장치에 대한 하나의 토큰이 있으며, 스마트 카드 판독기에 대한 하나의 토큰이 있다. 따라서, 사용자는 모든 필요한 기능을 수행하기 위해 이들 4개의 토큰들 각각에 대해 숙지하고 있어야 하며 이용할 줄 알아야 한다.
본 발명에서, 이들 장치들 각각은 하나의 토큰 인터페이스 내에 결합될 것이다. 예를 들어, 4개의 장치들에 대한 토큰들 각각은 GUI(600)내에서 대응하는 메소드 리스트으로 표시될 것이다. 이들 토큰과 연관된 방법은 추가 가상 버턴(650)을 이용하여 토큰 인터페이스 메소드 리스트에 추가될 수 있다. 토큰 인터페이스는 저장 가상 버턴(670)을 이용하여 메모리 내에 저장될 수도 있다. 그 후, 하나의 토큰 인터페이스는 4개 장치의 모든 기능들을 하나의 토큰으로서 수행할 수 있을 것이다. 따라서, 하나의 토큰 인터페이스를 이용하여 RSA 암호화, DES 암호화, 키 저장 및 키 생성이 달성될 수 있다.
도 7은 본 발명의 예시적 동작의 개요를 도시하는 흐름도이다. 도 7에 도시된 바와 같이, 이 동작은 사용자에게 토큰 그래픽 사용자 인터페이스를 디스플레이해 주는 것으로부터 시작한다.(단계 710) 그 다음, "토큰 인터페이스 추가" 명령 또는 "토큰 인터페이스 수정" 명령의 수신 여부에 관해 판별이 이루어진다.(단계 720)
만일 그렇다면, 토큰 추가/수정 그래픽 사용자 인터페이스가 디스플레이된다.(단계 730) 메소드의 추가 및 제거 명령어가 수신되고(단계 740) "저장" 명령어의 수신 여부에 관한 판별이 이루어진다.(단계 750) 만일 그렇다면, 토큰 인터페이스가 메모리 내에 저장되고(단계 760) 동작이 종료한다. 만일 그렇지 않다면, "토큰 인터페이스 추가" 기능의 취소 여부에 관하여 판별이 이루어진다.(단계 770) 만일 그렇다면 동작이 종료한다. 그렇지 않다면, 동작은 단계(740)으로 되돌아간다.
"토큰 인터페이스 추가" 명령 또는 "토큰 인터페이스 수정" 명령이 수신되지 않았다면, "토큰 인터페이스 제거" 명령의 수신 여부에 관하여 판별이 이루어진다.(단계 780) 만일 그렇다면, 선택된 토큰 인터페이스가 메모리로부터 삭제된다.(단계 790) 그렇지 않다면, 동작은 단계(710)으로 되돌아가서 사용자 명령이 수신될 때까지 토큰 인터페이스 그래픽 사용자 인터페이스의 디스플레이를 계속한다.
따라서, 본 발명은 복수개의 서로 다른 토큰들의 기능을 제공하는 하나의 토큰 인터페이스가 정의될 수 있는 메카니즘을 제공한다. 이것은, 많은 서로 다른 토큰들을 구현하기 위해 하나의 토큰 인터페이스가 이용될 수 있기 때문에, 다양한 기능을 수행하기 위해 데이타 객체에 토큰을 적용시키는 과정을 단순화시켜준다.
본 발명이 단독 기능적 데이타 처리 시스템의 관점에서 기술되었지만, 본 발명의 프로세스들은 컴퓨터 판독가능한 매체의 형태로 된 명령어들로 배포될 수도 있으며 본 발명은 배포시에 이용되는 매체에 관계없이 마찬가지로 적용될 수 있다는 것을 당업자는 이해할 것이다. 컴퓨터 판독가능한 매체의 예로는 플로피 디스크, 하드디스크, RAM, 및 CD-ROM과 같은 기록형 매체와 디지털 및 아날로그 통신 링크와 같은 전송형 매체가 있다.
본 발명의 설명이 도시되고 기술되었지만, 이것은 설명된 형태로만 본 발명을 한정하는 것은 아니다. 많은 수정과 변형이 있을 수 있다는 것을 당업자는 이해할 것이다. 예를 들어, 본 발명의 복수개의 그래픽 사용자 인터페이스의 관점에서 기술되었지만, 본 발명은 여기에만 한정되는 것은 아니며, 토큰 인터페이스와 토큰 인터페이스의 기능을 추가, 수정, 삭제하기 위한 명령어를 입력하는 어떠한 수단도 본 발명의 정신과 영역으로부터 벗어나지 않고 이용될 수 있다.
나아가, 본 발명의 양호한 실시예에 대한 설명은 다양한 토큰들의 기능을 구현하는 것으로서 하드웨어 방법을 언급하고 있지만, 하드웨어 방법에만 한정되는 것은 아니다. 기능을 구현할 수 있는 어떠한 하드웨어 또는 소프트웨어 장치도 마찬가지로 이용될 수 있으며 객체 및/또는 토큰으로서 표시될 수 있다. 예를 들어, Java 방법등일 수도 있다.
실시예들은, 본 발명의 원리와 실제적 응용을 최적으로 설명하고 당업자가 특정한 용도를 위해 다양한 수정을 가한 본 발명을 이해할 수 있도록 선택되고 기술되었다.
본 발명은, 독립된 장치들이 하나의 토큰 인터페이스로서 함께 동작할 수 있도록 해주기 위한 방법 및 그래픽 사용자 인터페이스를 제공한다. 사용자는 각각의 장치에 대해 하나씩 복수개의 토큰이 아니라 하나의 토큰 인터페이스에 대해서만 알고 있으면 된다.
Claims (21)
- 그래픽 사용자 인터페이스를 이용하여 복수개의 서로 다른 장치들의 기능들을 결합하기 위한 토큰 인터페이스를 생성하기 위한 방법에 있어서,토큰 인터페이스를 생성하기 위해 결합될 수 있는 토큰 리스트 - 상기 토큰 리스트의 각 토큰은 상기 복수의 서로 다른 장치들의 각각의 장치를 나타냄- 를 제공하는 단계와,상기 복수개의 서로 다른 장치들 각각의 기능들의 부분 집합(subset) - 상기 기능들의 부분 집합은 상기 토큰 리스트의 토큰 부분 집합에 대응함-을 선택하는 단계와,상기 기능들의 부분 집합을 토큰 인터페이스에 할당하는 단계와,상기 기능들의 부분 집합에 기초하여 상기 토큰 인터페이스를 생성하는 단계를 포함하는 토큰 인터페이스 생성 방법.
- 제1항에 있어서, 상기 복수개의 서로 다른 장치들의 각각의 기능들을 카테고리별로 분리하는 단계를 더 포함하되, 상기 기능들의 부분 집합은 상기 카테고리에 기초하여 선택되는 토큰 인터페이스 생성 방법.
- 제2항에 있어서, 상기 카테고리는 암호화 기능 및 객체 생성과 관리 기능을 포함하는 토큰 인터페이스 생성 방법.
- (삭제)
- (삭제)
- 제1항에 있어서, 상기 토큰 리스트 내의 토큰들의 각각은 하나 이상의 관련된 메소드(method)들을 가지며, 상기 복수개의 서로 다른 장치들의 각각의 장치의 기능들의 부분 집합을 선택하는 단계는, 하나 이상의 관련된 메소드들로부터 하나 이상의 메소드를 선택하는 단계를 포함하는 토큰 인터페이스 생성 방법.
- (삭제)
- 제1항에 있어서, 상기 복수개의 서로 다른 장치는, 하드웨어 및 소프트웨어 장치들 중 적어도 하나를 포함하는 토큰 인터페이스 생성 방법.
- 제1항에 있어서, 상기 복수개의 서로 다른 장치는, RSA 가속기, DES 가속기, 및 보안 저장 장치 중 적어도 하나를 포함하는 토큰 인터페이스 생성 방법.
- 제1항에 있어서, 상기 기능은 암호화 기능을 포함하는 토큰 인터페이스 생성방법.
- 그래칙 사용자 인터페이스를 이용하여 토큰 인터페이스를 생성하기 위한 장치에 있어서,복수개의 서로 다른 장치들의 기능 리스트를 제공하기 위한 수단과,토큰 인터페이스 리스트를 제공하기 위한 수단과,상기 기능 리스트 내의 기능들 중 하나 이상의 기능을 상기 토큰 인터페이스 리스트 내의 하나 이상의 토큰 인터페이스들에 추가하기 위한 가상 제어부를 포함하며, 상기 기능 리스트 내의 하나 이상의 기능은 상기 기능 리스트로부터 기능들의 부분 집합을 선택하고 상기 가상 제어부를 이용하여 상기 기능들의 부분 집합을 토큰 인터페이스에 할당하고 상기 기능들의 부분 집합에 기초하여 상기 토큰 인터페이스를 생성함으로써 상기 하나 이상의 토큰 인터페이스에 추가되는 장치.
- 제11항에 있어서, 상기 복수개의 서로 다른 장치들의 각각의 장치의 기능들은 카테고리별로 분리되고, 상기 기능들의 부분 집합은 상기 카테고리에 기초하여 선택되는 장치.
- 제12항에 있어서, 상기 카테고리는 암호화 기능과 객체 생성 및 관리 기능을 포함하는 장치.
- 제11항에 있어서, 토큰 인터페이스를 생성하기 위해 결합될 수 있는 토큰 리스트-상기 토큰 리스트 내의 각각의 토큰은 상기 복수개의 서로 다른 장치들의 각각의 장치를 나타냄-를 더 포함하는 장치.
- 제14항에 있어서, 상기 복수개의 서로 다른 장치들중 각각의 장치의 기능들의 부분 집합의 선택은, 상기 토큰 리스트 내의 토큰들의 부분 집합의 선택을 포함하는 장치.
- 제14항에 있어서, 상기 토큰 리스트 내의 토큰들의 각각은 하나 이상의 관련된 메소드들을 가지며, 상기 복수개의 서로 다른 장치들의 각각의 장치의 기능들의 부분 집합의 선택은, 하나 이상의 관련된 메소드들로부터 하나 이상의 메소드의 선택을 포함하는 장치.
- 제11항에 있어서, 상기 토큰 인터페이스 리스트로부터 소정의 토큰 인터페이스를 삭제하기 위한 가상 제어부를 더 포함하는 장치.
- 제11항에 있어서, 상기 복수개의 서로 다른 장치는, 하드웨어 및 소프트웨어 장치들 중 적어도 하나를 포함하는 장치.
- 제11항에 있어서, 상기 복수개의 서로 다른 장치는, RSA 가속기, DES 가속기, 및 보안 저장 장치 중 적어도 하나를 포함하는 장치.
- 제11항에 있어서, 상기 기능은 암호화 기능을 포함하는 장치.
- 제1항, 제2항, 제3항, 제6항, 제8항, 제9항 및 제10항중 어느 한 항에 따른 방법을 수행하기 위한 컴퓨터 판독가능 프로그램 코드 수단이 기록된 컴퓨터 판독가능 기록 매체.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US58999000A | 2000-06-08 | 2000-06-08 | |
US09/589,990 | 2000-06-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20010110992A KR20010110992A (ko) | 2001-12-15 |
KR100441077B1 true KR100441077B1 (ko) | 2004-07-19 |
Family
ID=24360430
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-2001-0026506A KR100441077B1 (ko) | 2000-06-08 | 2001-05-15 | 독립된 장치들이 단일 토큰 인터페이스로서 함께 동작할수 있도록 해주는 방법 및 그래픽 사용자 인터페이스 |
Country Status (3)
Country | Link |
---|---|
JP (1) | JP4288021B2 (ko) |
KR (1) | KR100441077B1 (ko) |
TW (1) | TW504614B (ko) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5085197B2 (ja) | 2007-06-13 | 2012-11-28 | 株式会社東芝 | 起動領域モニタシステム検査試験装置 |
JP5277576B2 (ja) * | 2007-07-18 | 2013-08-28 | 株式会社リコー | 情報処理装置、暗号処理プログラム |
CN110309630B (zh) * | 2019-06-28 | 2023-05-30 | 南京冰鉴信息科技有限公司 | 一种Java代码加密方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100188503B1 (ko) * | 1995-03-06 | 1999-06-01 | 윌리암 티.엘리스 | 원격 사용자와 응용 서버간의 통신 관리 방법, 원격 사용자의 주체 인증 방법, 분산 컴퓨터 환경을 제공하는 네트워크 및 프로그램 저장 장치 |
WO1999035783A1 (en) * | 1998-01-09 | 1999-07-15 | Cybersafe Corporation | Client side public key authentication method and apparatus with short-lived certificates |
WO2000007326A1 (en) * | 1998-07-31 | 2000-02-10 | Sun Microsystems, Inc. | Methods and systems for establishing a shared secret using an authentication token |
EP1162530A2 (en) * | 2000-05-02 | 2001-12-12 | International Business Machines Corporation | System, apparatus and method for presentation and manipulation of syntax objects |
-
2001
- 2001-05-15 KR KR10-2001-0026506A patent/KR100441077B1/ko not_active IP Right Cessation
- 2001-05-21 TW TW090112102A patent/TW504614B/zh not_active IP Right Cessation
- 2001-06-06 JP JP2001170842A patent/JP4288021B2/ja not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100188503B1 (ko) * | 1995-03-06 | 1999-06-01 | 윌리암 티.엘리스 | 원격 사용자와 응용 서버간의 통신 관리 방법, 원격 사용자의 주체 인증 방법, 분산 컴퓨터 환경을 제공하는 네트워크 및 프로그램 저장 장치 |
WO1999035783A1 (en) * | 1998-01-09 | 1999-07-15 | Cybersafe Corporation | Client side public key authentication method and apparatus with short-lived certificates |
WO2000007326A1 (en) * | 1998-07-31 | 2000-02-10 | Sun Microsystems, Inc. | Methods and systems for establishing a shared secret using an authentication token |
EP1162530A2 (en) * | 2000-05-02 | 2001-12-12 | International Business Machines Corporation | System, apparatus and method for presentation and manipulation of syntax objects |
Also Published As
Publication number | Publication date |
---|---|
KR20010110992A (ko) | 2001-12-15 |
TW504614B (en) | 2002-10-01 |
JP4288021B2 (ja) | 2009-07-01 |
JP2002111654A (ja) | 2002-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6839437B1 (en) | Method and apparatus for managing keys for cryptographic operations | |
US6363486B1 (en) | Method of controlling usage of software components | |
US5727145A (en) | Mechanism for locating objects in a secure fashion | |
US5778072A (en) | System and method to transparently integrate private key operations from a smart card with host-based encryption services | |
AU717615B2 (en) | System and method for executing verifiable programs with facility for using non-verifiable programs from trusted sources | |
CA2315212C (en) | System and method for authenticating peer components | |
US20060026419A1 (en) | Method, apparatus, and product for providing a scalable trusted platform module in a hypervisor environment | |
JPH11355264A (ja) | 国際暗号体系のホストシステム要素 | |
JPH04100148A (ja) | アプリケーション・プログラムをライセンスするための方法および装置 | |
EP1203276A1 (en) | Methods and arrangements for mapping widely disparate portable tokens to a static machine concentric cryptographic environment | |
KR19990066953A (ko) | 보안된 게이트웨이 인터페이스 | |
US11082219B2 (en) | Detection and protection of data in API calls | |
JP2008276756A (ja) | ウェブ・サービス仲介装置 | |
US7610488B2 (en) | Data processing device and method and program of same | |
CN107431620B (zh) | 广播加密方案的运行时实例化 | |
US20180278613A1 (en) | Self-destructing smart data container | |
JP2002057659A (ja) | 個人情報構文オブジェクトの提示および操作するためのシステム、装置、および方法 | |
US7925881B2 (en) | Method and apparatus for preventing rogue implementations of a security-sensitive class interface | |
JP2023538497A (ja) | 編集可能なブロックチェーン | |
WO2023241879A1 (en) | Protecting sensitive data dump information | |
KR100441077B1 (ko) | 독립된 장치들이 단일 토큰 인터페이스로서 함께 동작할수 있도록 해주는 방법 및 그래픽 사용자 인터페이스 | |
Dannenberg | Resource sharing in a network of personal computers | |
EP2517140B1 (en) | Securing execution of computational resources | |
CN109840402A (zh) | 私有化服务授权管理方法、装置、计算机设备及存储介质 | |
US7107446B2 (en) | Mechanism independent cluster security services |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20100621 Year of fee payment: 7 |
|
LAPS | Lapse due to unpaid annual fee |