본문 바로가기
정보과학/데이터베이스특론

데이터베이스 보안과 권한

by J1소프트 2023. 9. 5.
728x90

1. 데이터베이스 보안과 권한

 

데이터베이스 보안의 쟁점(1)

데이터베이스 보안에 대한 주요 쟁점
- 특정 정보에 접근할 수 있는 권한에 관한 법적, 윤리적 쟁점들로서 예를 들면, 정보의 프라이버시를 통제하는 수많은 법규

-
어떤 종류의 정보를 공개하지 않을지에 관한 행정적, 제도적, 기업 수준의 정책에 관한 쟁점들로서 예를 들면, 신용 등급과 개인의 의료 기록


-
다양한 보안 기능을 수행해야 하는 시스템 수준과 같은 쟁점들로서 예를 들면, 보안 기능이 하드웨어 수준, 운영체제 수준, 또는 DBMS 수준에서 처리되어야 하는가의 문제


-
조직에 따라서는 여러 단계의 보안 등급을 정하고 데이터와 사용자를 이러한 분류 기준에 따라 분류할 필요성이 있으며, 예를 들면, 1급 비밀(top secret), 2급 비밀(secret), 3급 비밀(confidential), 일반 정보(unclassified)와 같이 4등급으로 분류할 수 있음


데이터베이스에 대한 위협

- 무결성(integrity)의 상실: 데이터베이스 무결성이란 정보는 부적절한 변경으로부터 보호되어야 한다는 필요조건을 의미하며, 고의적이거나 우발적인 행위에 의해 권한을 갖지 않은 수정이 데이터에 가해진다면 무결성은 상실됨

-
유효성(availability)의 상실: 데이터베이스 유효성은 사용자 또는 프로그램에게 그들이 적법한 권리를 가진 객체들을 유효하게 함을 의미함


-
기밀성(confidentiality)의 상실: 데이터베이스 기밀성은 권한을 갖지 않은 노출로부터 데이터를 보호함을 의미함


데이터베이스를 이러한 유형의 위협들로부터 보호하기 위하여 접근 제어, 추론 제어, 흐름 제어, 그리고 암호화의 네 가지 종류의 대책들이 수행될 수 있음

접근 보호와 데이터베이스 감사

접근 보호: 계정 번호와 암호 입력을 통한 DBMS의 접근

사용자 계정과 암호의 관리: Account_Number, Password 필드를 가진 암호화된 테이블에 기록하여 관리함


데이터베이스 감사(audit)

- 각 로그인 세션 동안 사용자가 데이터베이스에 가한 모든 연산들을 기록함

-
데이터베이스가 불법적으로 갱신되었다는 의심이 들면 데이터베이스 감사를 실시함


-
데이터베이스 감사는 특정 기간 동안 데이터베이스에 적용된 모든 연산들을 검사하기 위해서 시스템 로그를 조사하는 것이며, 주로 보안 목적으로 사용되는 데이터베이스 로그를 추적 감사(audit trail)라고 칭함

데이터베이스 보안의 쟁점(2)

보안문제 1
- DBMS는 특정 사용자 또는 사용자들의 그룹이 지정된 데이터베이스 영역만 접근할 수 있고 그 외의 영역은 접근할 수 없도록 통제하는 기능을 제공해야 함

- DBMS
는 데이터베이스 보안과 권한관리 서브시스템을 가지고 있음


-
데이터베이스 보안 기법은 일반적으로 두 가지 유형으로 구분됨

. 임의 보안 기법 (Discretionary security mechanisms): 사용자들에게 특정 데이터 화일들, 레코드들, 또는 필드들을 지정된 모드(예를 들어, 읽기, 삽입, 삭제, 또는 수정)로 접근할 수 있는 권한을 부여함
. 강제 보안 기법 (Mandatory security mechanisms): 데이터와 사용자들을 다양한 보안 등급으로 분류하고 해당 조직에 적합한 보안 정책을 적용하여 다단계 보안을 시행하기 위해 사용됨. 이 기법의 확장으로 역할 기반 보안이 있으며, 이것은 역할의 개념을 근거로 정책과 권한을 시행하는 것임

보안문제 2

- 데이터베이스 시스템에 대한 접근을 통제할 수 있는 기능을 제공해야 하며, 이런 기능을 접근제어(access control)라 함

- DBMS
는 로그인 과정을 통제하기 위하여 사용자 계정과 암호를 관리함


보안문제 3

- 통계 데이터베이스를 위한 보안은 개인 정보가 접근될 수 없음을 보장하여야 함

-
예를 들면, 그룹들에 대한 합산 통계치 만을 포함하는 질의들로부터 개인들에 대한 어떤 사실들을 추측하는 것이 허용되어서는 안됨


보안문제 4

- 정보가 흘러서 권한을 갖지 않은 사용자들에게 다다르는 것을 방지해야 함

-
이를 흐름 제어(flow control)라 하며, 조직의 보안 정책에 위배되는 방법으로 정보를 묵시적으로 흐르게 하는 작은 길인 통로를 숨겨진 통로라 함


보안문제 5

- 데이터 암호화(data encryption) 기능 제공이며, 데이터 암호화는 통신망을 통하여 전송되는 민감한 데이터, 예를 들어 신용 카드 번호 등을 보호하기 위해서 사용됨

 

보안을 위한 데이터베이스 관리자의 작업

데이터베이스 관리자는 시스템 전체에 대한 보안 관리와 이를 위한 모든 권한을 소유함

계정 생성 (전체적인 접근 제어)


사용자 또는 사용자들의 그룹에 대해 새로운 계정과 암호를 생성함


권한 부여와 취소 (임의 데이터베이스 권한관리의 부여와 취소)


특정 계정에 특정 권한의 부여와 취소


보안등급 지정 (강제 데이터베이스 권한관리의 지정)


사용자 계정에 적절한 보안 분류 등급을 지정

권한의 부여/취소를 기반으로 한 임의 접근제어(1)

임의 권한의 유형

SQL2에서는 사용자 계정(또는 사용자 계정들의 그룹)을 나타내기 위해서 권한 관리 식별자(authorization identifier)라는 개념을 사용함 - 이하 권한 관리 식별자 대신에 사용자 또는 계정이라는 단어를 사용함


데이터베이스 시스템 사용의 권한 할당에서 두 가지 수준

- 계정 수준 (account level): 이 수준에서, 데이터베이스 관리자는 각 계정이 보유할 특정 권한들을 지정하며, 이 권한들은 데이터베이스의 릴레이션들과는 독립적임

-
릴레이션 (혹은 테이블) 수준(relation or table level): 이 수준에서, 데이터베이스 관리자는 데이터베이스의 각 릴레이션 또는 뷰에 접근하는 사용자의 권한을 제어할 수 있음


계정 수준의 권한

- 스키마를 생성하기 위한 CREATE SCHEMA 권한
- 기본 릴레이션을 생성하기 위한 CREATE TABLE 권한
- 뷰 생성을 위한 CREATE VIEW 권한
- 릴레이션의 속성을 추가하거나 삭제하기 위한 ALTER 권한
- 릴레이션 또는 뷰를 삭제하기 위한 DROP 권한
- 레코드를 생성, 삭제, 수정하기 위한 MODIFY 권한
- SELECT문을 사용하여 데이터베이스의 정보를 읽기 위한 SELECT 권한

릴레이션 수준의 권한

- 릴레이션에 대한 권한의 부여와 취소를 통제하기 위하여 데이터베이스의 각 릴레이션 R에는 소유자 계정(owner account)이 할당되어 있는데 일반적으로 소유자 계정은 처음 릴레이션이 생성되었을 때 사용된 계정이며 릴레이션의 소유자는 그 릴레이션에 대한 모든 권한을 가짐

- SQL2
에서는 데이터베이스 관리자가 CREATE SCHEMA 명령을 사용하여 스키마를 생성하고 그 스키마에 적절한 권한 관리 식별자를 연관시킴으로써 그 스키마 전체에 대한 소유자를 지정할 수 있으며, 소유자 계정을 가진 사용자는 다른 사용자들의 계정에 권한들을 부여함으로써 자기가 소유하고 있는 릴레이션들 중에서 어떤 것에 대한 권한들일지라도 다른 사용자들에게 양도할 수 있음


- SQL에서는 다음 명시한 종류의 권한들이 각 개별 릴레이션 R에 부여될 수 있음

. R에 대한 SELECT 권한: 그 계정에게 읽기 권한을 부여
. R에 대한 MODIFY 권한 (UPDATE, DELETE, INSERT): 그 계정에게 R의 투플들을 변경할 수 있는 권한을 부여하며, 게다가 INSERTUPDATE 권한은 특정 애트리뷰트로 지정 가능함
. R에 대한 REFERENCES 권한: 무결성 제약조건 (integrity constraints)을 지정할 때 릴레이션 R을 참조할 수 있는 권한을 그 계정에게 부여하며, 이 권한도 R의 특정 애트리뷰트들로 제한할 수 있음


뷰를 사용한 권한 명시

뷰를 이용한 읽기 권한
- 릴레이션의 소유자가 릴레이션의 일부 속성들만을 다른 계정에서 읽을 수 있는 권한을 주고 싶다면 릴레이션의 일부 속성들만으로 이루어진 뷰를 생성하여 다른 계정에 SELECT 권한을 줌


권한 취소


특정 사용자에게 임시로 특정 권한 부여하고 작업이 끝나면, 권한을 취소할 경우가 있음


SQL에는 권한 취소하기 위해서는 REVOKE 명령이 포함되어 있음

권한의 부여/취소를 기반으로 한 임의 접근제어(2)

GRANT OPTION을 사용한 권한의 전파

권한 부여와 GRANT OPTION

- 릴레이션 R의 소유자 AR에 대한 권한을 다른 계정 B에게 부여할 때마다, 그 권한은 GRANT OPTION과 함께 또는 GRANT OPTION 없이 B에게 부여될 수 있음

- GRANT OPTION
이 주어지면 B 또한 R에 대한 그 권한을 다른 계정들에게 부여할 수 있다는 의미임


두개 이상의 공급원으로부터 권한 부여

- 사용자가 특정 권한을 두 개 이상의 공급원들로부터 받는 것이 가능함. 예를 들어, A4A2A3 모두로부터 어떤 UPDATE R 권한을 받을 수 있는데, 이 경우, 만일 A2가 이 권한을 A4로부터 취소한다면, A4는 그 권한을 A3으로부터 부여받은 덕택으로 여전히 계속해서 그 권한을 가짐. 이후에 A3이 그 권한을 A4로부터 취소하면, A4는 그 권한을 완전히 잃게 됨


SQL적용 예

CREATE SCHEMA EXAMPLE AUTHORIZATION A1;

- 사용계정 A1EXAMPLE 스키마 하에 테이블들을 생성할 수 있음

GRANT INSERT, DELETE ON EMPLOYEE, DEPARTMENT TO A2;


GRANT SELECT ON EMPLOYEE, DEPARTMENT TO A3 WITH GRANT OPTION;

- WITH GRANT OPTIONA3GRANT명령으로 권한을 다른 계정에 전파할 수 있음

GRANT SELECT ON EMPLOYEE TO A4;


REVOKE SELECT ON EMPLOYEE FROM A3;


CREATE VIEW A3EMPLOYEE AS

SELECT NAME, BDATE, ADDRESS FROM EMPLOYEE WHERE DNO = 5;

GRANT SELECT ON A3EMPLOYEE TO A3 WITH GRANT OPTION;


GRANT UPDATE ON EMPLOYEE(SALARY) TO A4;

- UPDATEINSERT 권한은 릴레이션에서 갱신이나 삽입될 특정 속성을 명시할 수 있음


권한의 전파를 제한하는 기법들

이미 개발되었으나 아직 대부분의 DBMS에서 구현되지 않았으며 SQL의 일부분으로도 채택되지 않았음


수평전파(horizontal propagation)의 제한

- 수평 전파를 i로 제한한다는 것은 GRANT OPTION을 받은 계정 B가 최대한 i개의 계정들에게만 권한을 부여할 수 있음을 의미함

수직전파(vertical propagation)의 제한

- 수직 전파의 제한은 권한 부여의 깊이를 제한하는 것임. 계정 A0보다 큰 정수 j인 수직전파로 계정 B에게 권한을 부여하면 계정 BGRANT OPTION을 갖지만, Bj값 미만의 수직전파로만 다른 계정들에게 권한을 부여할 수 있음

-
수직전파는 최초의 권한 부여에 근거하여 GRANT OPTION이 한 계정에서 다른 계정으로 전달되는 일련의 순서를 제한함

다단계 보안을 위한 강제 접근제어와 역할 - 기반 접근 제어(1)

강제 접근제어
- 보안 등급에 바탕을 두고 데이터와 사용자들을 분류하는 부가적인 보안 정책이 필요함
- 현재 대부분의 상용 DBMS는 임의 접근제어만을 제공함
- 다단계 보안에 대한 요구는 많은 산업체와 기업의 응용들을 비롯하여 정부기관, , 정보기관의 응용들에 존재함

보안등급 (4단계)

- 1급 비밀(top secret: TS), 2급 비밀(secret: S), 3급 비밀(confidential: C), 일반 정보(unclassified: U)로 구분됨
= TS S C U ; TS가 가장 놏은 보안 등급이고, U가 가장 낮은 보안 등급

Bell-LaPadula 모델

- 다단계 보안을 위해 흔히 사용되는 모델
- 각 주체(사용자, 계정, 프로그램)와 객체(릴레이션, 투플, , , 연산)를 보안 등급인 TS, S, C, U 중의 하나로 분류함
- 주체 S의 등급은 class(S), 객체 O의 등급은 class(O)라고 표시함
- 데이터 접근에 대하여 주체/객체의 등급을 기반으로 아래의 두 가지 제약조건이 준수되어야 함

1. class(S)
class(O)가 아니면 주체 S는 객체 O에 읽기 접근을 할 수 없음. 이 조건을 단순 보안 특성(simple security property)이라고 함


2. class(S)
class(O)가 아니면 주체 S는 객체 O에 쓰기 접근을 할 수 없음. 이 조건을 스타 특성(star property 또는 *-property)이라고 함


*
첫 번째 제약조건은 직관적이며 어떠한 주제도 그 주체의 보안 등급보다 높은 보안 등급을 가진 객체는 읽을 수 없다는 명백한 규칙을 준수하게 함

* 두 번째 제약조건은 덜 직관적임. 이 제약조건은 어떤 주체가 그 주체의 보안 등급보다 낮은 보안 등급을 쓰는(write) 것을 막음. 이 규칙을 위반하면 다 단계 보안의 기본원칙을 어기게 되는데, 예를 들면, TS등급을 가진 사용자(주체)TS 등급을 가진 객체를 복사한 루에 U등급을 가지는 새로운 객체로 기록하면 새로 만들어진 객체는 시스템 안에서 모두 볼 수 있게됨

다단계 관계형 스키마 R

- R ( A1, C1, A2, C2, ..., An, Cn, Tc )
- n : 속성의 수, Ai : 각 애트리뷰트
- Ci : Ai와 연관된 등급 애트리뷰트
- Tc : 각 투플 t가 가진 Tc 값은 t 내의 모든 애트리뷰트 등급 값들 중에서 가장 높은 것으로서, 투플 자체에 대한 일반적인 등급을 제공함

-
다단계 릴레이션에서 외관상 키(apparent key)는 보통의 단일단계 릴레이션에서 기본키를 구성하는 애트리뷰트들의 집합임


-
다단계 릴레이션은 다른 등급에 속한 주체(사용자)들에게 다른 데이터를 가지고 있는 것으로 보임

. 여과(filtering)과정을 거쳐 낮은 등급에서 대응되는 튜플들을 생성할 수 있음
. 다개체화(polyinstantiation)에서는 여러 개의 투플들이 동일한 외관상 키 값을 가지지만 다른 등급 수준에 있는 사용자들에 대해서 다른 애트리뷰트값들을 가질 수 있게 됨

 

다단계 보안을 위한 강제 접근제어와 역할 - 기반 접근 제어(2)

임의 접근 제어와 강제 접근제어의 비교

임의 접근 제어

- 고도의 유연성을 특징으로 가짐으로써 매우 다양한 응용 영역에 적합함

-
일단 정보가 접근 권한을 가진 사용자에 의해 접근되면 그 정보가 어떻게 전파되고 사용되는 지에 대해 어떠한 통제도 가할 수 없음


강제 접근 제어

- 고도의 보호가 보장됨

-
보기에 따라서 그 정책은 정보의 어떠한 불법적 흐름도 방지함. 따라서 강제 정책은 고도의 보호를 요하는 군사 유형의 응용들에 적합함


-
주체와 객체를 보안 등급으로 엄격히 분류해야 한다는 점에서 너무나 엄중하다는 단점을 가지며 이로 인하여 극소수의 환경에만 응용할 수 있음



역할 기반 접근 제어(Role-based access control)


대단위 범 기업적인 시스템에서 보안을 관리하고 준수하기에 검증된 기술로 1990년대에 빠르게 알려지게 되었으며, 권한이 역할(role)과 결합되며 사용자는 적절한 역할에 지정됨


역할은 CREATE ROLEDESTROY ROLE의 명령으로 생성될 수 있고, 그런 후 임의 접근 제어의 GRANTREVOKE 명령이 역할에 권한을 부여하고 취소하는데 사용될 수 있음


많은 DBMS들이 역할의 개념을 허용하고 있으며, 이들에서 권한은 역할에 부여될 수 있음


역할 계층

- 권한과 책임에 대한 조직의 방침을 반영하도록 역할을 체계화하는 자연스런 방법임
- 관습에 의해 밑바닥의 하급 역할은 역할 계층의 위로 올라감에 따라 점진적으로 상급 역할에 연결됨
- 역할 계층의 계층적 도형은 부분 순서화를 이루므로 재귀성, 이행성, 그리고 비대칭성을 가짐


전자 상거래와 웹을 위한 접근 제어 정책


전자 상거래(electronic commerce, E-commerce) 환경

- 모든 트랜잭션들이 전자적으로 수행되는 특징을 가짐
- 요구 사항
. 접근 제어 정책은 넓은 동적 범위의 이질적인 보호 객체들을 지원할 정도로 충분히 유연해야 한다. 전통적인 데이터베이스 환경에서 접근 제어는 보안 담당 사무관이나 사용자에 의해 보안 정책에 따라 정해둔 일련의 권한들을 이용하여 수행된다. 그와 같이 간단한 방법은 전자 상거래와 같은 동적 환경에는 적합하지 않다. 더욱이, 전자 상거래 환경에서는 전통적인 데이터뿐만 아니라 지식과 경험 또한 보호되어야 할 자원임
. 내용 기반 접근 제어의 지원이다. 접근 제어 정책은 객체의 내용을 근거로 하는 조건들을 포함할 수 있도록 해야 함
. 사용자의 특징과 자격을 근거로 하는 접근 제어 정책을 요구한다. 한 가지 가능한 해결책은, 접근 제어 정책의 형성에 사용자의 개요를 좀 더 고려하기 위하여, 자격증명서의 개념을 지원하는 것임

XML 언어는 전자 상거래 응용을 위한 접근 제어에 핵심적인 역할을 수행할 수 있음

- XML이 웹상에서 문서 교환을 위한 공통의 표현 언어가 되고 있을 뿐 아니라 전자상거래를 위한 언어로도 널리 사용되기 때문임

통계 데이터베이스의 보안과 흐름 제어

통계 데이터베이스의 보안

통계 데이터베이스는 다양한 집단에 대한 통계를 산출하기 위해서 사용함


통계 데이터베이스 보안(statistical database security)

- 개인 데이터에 대한 검색을 금지해야 한다. 이는 애트리뷰트 값들을 검색하는 질의를 금지하고 COUNT, SUM, MIN, MAX, AVERAGE, STANDARD DEVIATION과 같은 통계적인 집단함수를 포함하는 질의만을 허용함으로써 제어될 수 있으며, 이러한 질의를 통계질의(statistical query)라 함


흐름 제어의 개요


흐름 제어는 접근 가능한 객체들 사이에서 정보의 분배 또는 흐름을 조절함

- 객체 X와 객체 Y 사이의 흐름은 프로그램이 X로부터 값을 읽고 Y에 값을 쓸 때 발생함

-
대부분의 흐름 제어는 보안 등급의 개념을 사용한다. 이 개념에서, 송신자에서 수신자로 정보의 전달은 수신자의 보안 등급이 최소한 송신자의 보안 등급이 가진 만큼의 권한을 가질 경우에 한하여 허용됨


흐름 정책은 정보가 이동하도록 허용된 통로를 명시함

- 가장 간단한 흐름 정책은 기밀(confidential, C)과 기밀 아님(nonconfidential, N)의 두 등급의 정보를 명시하며 등급 C로부터 등급 N으로 흐름을 제외한 모든 흐름을 허용하는 것이다. 이 정책은 서비스 프로그램이 일부가 기밀일 수 있는 고객 정보와 같은 데이터를 취급할 때 발생하는 제한 문제를 해결할 수 있음

흐름은 Y := f(X1, Xn)과 같은 할당문의 결과로 발생하는 명시적 흐름과 if f(Xm+1, ..., Xn) then y := f(X1, Xm)과 같은 조건문에 의해 초래되는 묵시적 흐름의 두 가지 유형으로 구분됨

- 흐름 제어 기법은 명시적 흐름과 묵시적 흐름 모두에서 오직 권한이 부여된 흐름만이 수행됨을 입증해야 함.
- 안전한 정보 흐름을 보장하려면 일련의 규칙들이 만족되어야 함


숨겨진 통로


숨겨진 통로는 보안 또는 정책을 위배하는 정보의 전달을 허용한다. 구체적으로, 숨겨진 통로는 부적절한 수단을 통하여 높은 분류 등급에서 낮은 분류 등급으로 정보가 전달됨을 허용함


숨겨진 통로는 저장 통로와 시간 통로의 두 가지 넓은 범주로 분류됨

- 시간 통로(timing channel)에서 정보는 사건 또는 프로세스의 타이밍(timing)에 의해 전달됨

-
저장 통로(storage channel)는 어떠한 시간의 동기화도 필요로 하지 않는다. 저장 통로에서 정보는 시스템 정보 또는 그렇게 하지 않으면 사용자가 접근할 수 없는 정보에 접근함으로써 전달됨

암호화 및 전자서명(1)

암호화와 공개 키 기반 구조
- 암호화는 어떤 미리 명시한 암호화 키(encryption key)를 사용하여 데이터에 암호화 알고리즘(encryption algorithm)을 적용하는 것이며, 결과 데이터는 원래의 데이터를 복구하기 하기 위하여 해독 키(decryption key)를 사용하여 해독되어야 함

데이터 암호화 표준(Data Encryption Standard, DES)

- DES는 미국 정부가 일반 대중이 사용하도록 개발한 시스템이며, 송신자 A와 수신자 B 사이의 통로에서 끝--(end-to-end) 암호화를 제공할 수 있다. DES 알고리즘은 대입(substitution)과 치환(permutation, transposition)이라는 암호화의 두 가지 기본 기초 요소들의 신중하고 복잡한 조합을 구성하고 있음

- DES
알고리즘은 대입과 치환의 두 기법들을 총 16회 반복 적용하며, 원래 형태의 메시지인 평문(plain text)64 비트(bit)의 블록들로 암호화됨


고급 암호화 표준(Advanced Encryption Standard, AES)

- DES의 타당성을 조사한 후, 미국 국가 표준원(National Institute of Standard, NIST)은 고급 암호화 표준을 제시하였으며, 이 알고리즘은 DES56 블록 크기와 비교하여 128 비트의 블록 크기를 가지며 DES56 비트 키와 비교하여 128, 192, 또는 256 비트의 키들을 사용할 수 있음

- AES
DES와 비교하여 더 많은 가능한 키들을 제시하므로 해독하기에 훨씬 긴 시간이 필요함


공개 키 암호화

- 1976년에 DiffieHellman은 공개 키 암호화(public key encryption)라고 하는 새로운 종류의 암호 시스템을 제안하였음

-
공개 키 알고리즘은 비트 유형에 대한 연산이 아니라 수학적 함수에 근거를 두고 있음


-
공개 키 암호화 기법은 여섯 개의 구성 요소들을 가지며, 그것은 평문, 암호화 알고리즘, 공개 키(public key), 개인 키(private key), 암호문(ciphertext), 해독 알고리즘으로 구성됨


-
암호문(ciphertext)이란 출력으로 생성되는 뒤섞인 메시지이며, 암호문은 평문과 키에 의존한다. 주어진 메시지에 대하여 두 개의 서로 다른 키들은 두 개의 서로 다른 암호문들을 생성할 것임


-
해독 알고리즘이란 암호문과 대응되는 키를 받아서 원래의 평문을 생성하는 것임

암호화 및 전자서명(2)

공개 키 암호화 기법의 근본적인 단계
- 각 사용자는 메시지의 암호화와 해독에 사용될 한 쌍의 키들을 생성함

-
각 사용자는 두 키들 중의 하나를 공개된 기록부 또는 다른 사용자들이 접근할 수 있는 화일에 둠


-
송신자가 수신자에게 비밀 메시지를 송신하기를 원한다면, 송신자는 수신자의 공개키를 이용하여 그 메시지를 암호화함


-
수신자는 그 메시지를 수신하면, 자신의 개인키를 이용하여 그 메시지를 해독함


-
오직 그 수신자만이 자신의 비밀 키를 알기 때문에 다른 수신자는 그 누구도 그 메시지를 해독할 수 없음


RSA 공개키 암호화 알고리즘

- 최초의 공개키 기법들 중의 하나는 1978년에 MITRon Rivest, Adi Shamir, 그리고 Len Adleman에 의해 제시되었으며 그들의 이름을 따서 RSA 방법으로 명명되었음

- RSA
방법은 그 때 이래로 공개키 암호화에 가장 널리 채택되고 구현된 기법으로써 최상으로 군림하고 있음


- RSA
공개 키 암호화 알고리즘은 표적의 소인수(prime factor)를 결정하는 난이도와 결합하여 정수론(number theory)의 결과를 통합함


-
두 개의 키가 해독과 암호화에 사용되며, 중요한 것은 두 키가 교환될 수 있다는 것임


전자 서명

- 전자 서명은 전자 상거래 응용에서 인증 서비스를 제공하기 위해 암호화 기법을 사용하는 한 가지 예라고 보며, 전자 서명은 기호의 문자열로 구성됨

-
만약 한 사람의 전자 서명이 모든 메시지에 항상 동일하다면 그 기호의 문자열을 단순히 복사함으로써 그 사람의 전자 서명을 쉽게 위조할 수 있을 것임


-
따라서 서명은 매 사용 마다 반드시 달라야 하며, 이는 서명할 메시지와 타임스탬프(time stamp)의 함수로 각 전자 서명을 만듦으로써 달성될 수 있음


-
각 서명자에게 유일하며 위조방지를 위하여, 각 전자 서명은 각 서명자에게 유일한 어떤 비밀 번호에 반드시 의존해야 함


-
그러나, 전자 서명의 검증기는 어떠한 비밀 번호도 알 필요가 없으며, 공개 키 기법은 이러한 특성을 가진 전자 서명을 생성하는 최고의 수단임