전자 서명으로 문서에 서명하는 방법. 전자 서명으로 파일 서명에 대한 지침 cryptopro를 사용하여 xml 서명

오늘날 거의 전체 워크플로가 종이를 사용하지 않게 되면 도움을 받아 문서에 서명하는 것이 일반적입니다.

공공조달 분야에서 제출된 신청서는 전자서명으로 서명됩니다. 이를 통해 고객은 실제 참가자와 거래하고 있다는 확신을 얻을 수 있습니다. 또한 공공 조달의 결과로 체결된 계약은 EDS의 도움을 받아 승인된 후에야 효력이 발생합니다.

또한 다음과 같은 경우 디지털 서명이 필요합니다.

  1. 규제 당국에 대한 보고. 연방 세금 서비스, Rosstat, PFR 및 FSS와 같은 서비스에 전자적으로 제출할 수 있습니다. 이것은 정보 전송을 크게 단순화하고 정확성을 향상시킵니다. 대부분의 서비스는 자동 오류 검사를 제공합니다.
  2. 전자 문서 관리(EDM). 이 방법으로 서명된 편지는 인장과 비자가 있는 종이 편지에 해당하기 때문에 가장 일반적인 신청 중 하나입니다. 회사 안팎에서 종이 없는 워크플로로 전환할 수 있습니다.
  3. 국가 서비스. 러시아 연방 시민은 공공 서비스 포털을 통해 부서에 제출된 신청서를 승인하고, 공공 이니셔티브에 참여하고, 개인용 계좌연방 세금 서비스 웹 사이트에서 대출을 신청하십시오.
  4. 증거로 전자적으로 서명된 송장, 계약서, 공식 서한을 사용할 수 있습니다. 러시아 연방 APC에 따르면 이러한 문서는 필기 비자가 있는 종이 문서와 유사합니다.

전자 서명이란

EDS는 소유자를 식별하고 서명된 문서의 무결성을 확인할 수 있는 "스탬프"입니다. EDS의 유형과 실행 절차가 승인되었습니다. 그는 세 가지 유형의 서명이 있음을 확인했습니다.

  1. 단순한. 기업 EDI 시스템에서 가장 자주 사용되는 암호, 코드 및 기타 수단을 사용하여 확인된 문자 또는 사양 서명에 일반적입니다.
  2. 강화. 정보의 암호화 처리 및 개인 키 사용 과정에서 획득됩니다. 문서에 서명한 사람과 서명 후에 변경되었다는 사실을 설정할 수 있습니다.
  3. 강화. 무자격자와 유사하지만 생성 및 검증을 위해 러시아 연방 보안국에서 인증한 암호 보호 개발이 사용됩니다. 이러한 ES는 공인된 기관에서만 발행됩니다.

문서를 보증하는 방법에는 여러 가지가 있습니다. 가장 일반적인 것을 고려해 보겠습니다.

CryptoPRO CSP 소프트웨어 패키지를 사용하여 서명합니다.

전자 서명으로 Word 문서에 서명하는 방법(MS 워드)

1. 원하는 파일을 열고 "파일" - "세부 정보" - "전자 서명 추가(CRYPTO-PRO)" 메뉴를 클릭합니다.

2. 원하는 ES를 선택하고 필요한 경우 주석을 추가한 다음 "서명"을 클릭합니다.

3. 오류가 없으면 서명 성공 창이 표시됩니다.

CryptoPRO Office 서명 플러그인이 설치된 경우

1. 원하는 파일을 열고 "파일"을 선택한 다음 - "디지털 서명 추가"를 선택합니다.

2. 이전 옵션과 유사하게 필요한 ES를 선택하고 필요한 경우 주석을 추가한 다음 "서명"을 클릭합니다.

3. 오류가 없으면 문서에 성공적으로 서명되었다는 메시지가 표시됩니다.

PDF 문서에 전자 서명하는 방법(어도비 아크로뱃 PDF)

1. 필요한 PDF 파일을 열고 "도구" 패널을 클릭한 다음 "인증서" 레이블을 확인하십시오. 우리는 그것을 선택합니다.

2. "디지털 서명"을 클릭하고 서명 마크가 위치할 파일의 영역을 선택합니다.

4. 스탬프 미리보기 창이 열립니다. 모든 것이 정확하면 "서명"을 클릭하십시오.

5. 시스템은 성공적인 서명에 대한 알림을 발행합니다. 그게 다야.

CryptoARM 소프트웨어 패키지로 서명

이 방법을 사용하면 아카이브뿐만 아니라 모든 최신 형식을 암호화할 수 있습니다.

그래서 그것을 알아 봅시다 디지털 서명 문서에 서명하는 방법 CryptoARM의 도움으로.

1. "CryptoARM" 프로그램을 열고 첫 번째 작업 항목인 "서명"을 선택합니다.

2. ES 생성 마법사의 지침을 주의 깊게 연구합니다. "다음"을 누릅니다.

3. "파일 선택"을 클릭하고 다음으로 이동합니다. 원하는 파일, 그것을 클릭하고 "다음"을 클릭하십시오.

4. 서명할 파일을 선택하고 "다음"을 클릭합니다.

5. "출력 형식" 창이 나타납니다. 필수 요구 사항이 없으면 인코딩이 그대로 유지됩니다. ZIP 형식(이메일 전송용)으로 저장하거나 최종 결과를 저장할 위치를 선택할 수 있습니다. "다음"을 클릭하십시오.

6. "매개변수"에서 속성을 선택하고 주석을 추가하고 첨부된 ES(원본 파일에 첨부됨) 또는 분리된(별도의 파일로 저장됨), 원하는 추가 매개변수를 선택할 수도 있습니다. 모든 것이 준비되면 "다음"을 클릭하십시오.

7. 이제 인증서를 선택해야 합니다. 이렇게 하려면 "선택"을 클릭하고 필요한 인증서를 지정하고 "다음"을 클릭합니다.

8. 다음 단계에서 최종 창을 봅니다. 간단한 설명데이터. 다음에 파일이 같은 순서로 서명되면 프로필을 저장할 수 있습니다. "마침"을 클릭하십시오.

9. 오류가 없으면 시스템은 성공적인 서명에 대한 메시지를 표시합니다.

이 섹션에서는 XML Converter / XML Constructor / XML Reports / Just Sign / XML Contact - Rosreestr 프로그램을 다운로드하는 것이 좋습니다.

다음을 사용하여 문서의 전자 버전을 생성하는 예 XML 생성자다음을 사용하여 인쇄된 대응물 프로그램 XML 보고서섹션에서 다운로드할 수 있습니다. 또한 다양한 항목을 찾을 수 있는 섹션을 살펴보는 것이 좋습니다. 무료 유틸리티, 라이브러리 등이 있습니다.

XML 변환기 프로그램지적 추출, 영토의 지적 계획과 같은 Rosreestr의 XML 파일/문서를 MIF/MID, DXF, CSV, TXT, HTML과 같은 다른 편리한 형식으로 변환하도록 구성됩니다.

XML 생성자 프로그램토지 측량 계획, 기술 계획, 지도(계획) 등과 같은 지적 활동에 대한 문서와 FATCA법에 따른 동산 질권의 통지 및 통지와 같은 XML 형식의 전자 버전을 생성하도록 구성됩니다.

XML 보고서 프로그램토지 측량 계획, 기술 계획, 지도(계획)와 같은 지적 활동에 대한 전자 문서를 해당 인쇄(종이) 문서로 변환하도록 구성됩니다.

프로그램 저스트 사인전자 디지털 서명(EDS)을 만들고 확인하도록 설계되었습니다.

프로그램 XML Contact-Rosreestr Rosreestr 웹 서비스와 상호 작용하도록 설계되었습니다. 토지 구획 및 부동산 객체의 지적 등록을 위한 응용 프로그램 생성, 지적 정보 요청, 이러한 응용 프로그램 및 요청에 대한 결과 얻기.

모든 프로그램(Just Sign 및 XML Contact-Rosreestr 제외)에는 30일 동안 지속되는 데모 모드가 있어 프로그램의 기능을 제한 없이 사용할 수 있습니다. 데모 기간이 만료되면 다음 중 하나를 구매해야 합니다. 정식 버전프로그램을 사용하거나 사용을 중지하십시오. 저스트 사인 프로그램은 무료 프로그램및 사용에 제한이 없습니다. XML Contact-Rosreestr 프로그램은 베타 테스트 중이며 현재 무료로 사용할 수 있습니다.

중요한! 프로그램을 사용하여 변환하려면 XML 변환기또는 XML 생성자 XML 파일 큰 사이즈변환하기 전에 외부 XQuery 쿼리 프로세서를 다운로드하여 설치하고 프로그램의 해당 필드에 지정해야 합니다. 현재 지원되는 두 개의 오픈 소스 쿼리 프로세서는 AltovaXML 2010(www.altova.com 제공) 및 Saxon-HE 9.5(www.saxonica.com 제공)입니다. 제조업체의 웹사이트 또는 아래 링크를 사용하여 이 웹사이트에서 다운로드할 수 있습니다.

중요한! 프로그램 작업을 시작하기 전에 지침을 읽어야 합니다. 이것은 작업 전에 이 프로그램의 작동 원리를 이해하는 것이 필요하기 때문에 XML 생성자 프로그램에서 특히 중요합니다. 지침은 프로그램의 실행 파일과 동일한 폴더, 즉 "c:\ProgramFiles\XMLCON\XMLConstructor\XMLConstructor-help.rtf" 폴더의 XML 생성자에 있습니다. 기본 메뉴에서 바로 가기를 통해 명령을 호출할 수 있습니다. Windows 프로그램즉, XML 생성자의 경우 "시작->프로그램->XMLConstructor->XML 생성자 - 명령"입니다. XML 생성자 프로그램의 경우 도움말 메뉴를 통해서도 지침을 사용할 수 있습니다.

이 기사에서는 EDS를 사용하여 문서(pdf, word, excel, xml, archive)에 서명하는 방법을 설명합니다. 무엇을 고려 소프트웨어 EDS, 장단점을 사용하여 문서에 서명하는 데 필요합니다.

EDS로 파일에 서명하는 방법

EDS를 사용하여 파일에 서명할 수 있는 두 가지 프로그램이 있습니다.

  1. ViPNet 암호화 파일;
  2. 크립토암.

ViPNet 암호화 파일

이 프로그램을 사용하면 doc, xls, jpg, xml, txt와 같은 모든 파일에 서명할 수 있고 EDS 선언에 서명하고 아카이브할 수 있습니다. 서명 후 파일은 .sig로 끝납니다.

장점:사이트에 등록해야 하는 무료 프로그램(다음에서 키 받기 이메일). EDS로 파일에 서명할 때 파일에 첨부된 서명을 사용할 수도 있습니다. 파일과 키는 동일한 파일에 있거나 파일과 별개입니다.

빼기:서명할 때 전자 서명은 하나만 추가할 수 있습니다.

EDS로 문서에 서명하려면 파일을 마우스 오른쪽 버튼으로 클릭하고 메뉴에서 ViPNet CryptoFile -> 서명을 선택합니다.

크립토암

빼기:유료 소프트웨어;

장점:파일에 서명할 때 많은 EDS 서명을 추가할 수 있습니다.

EDS로 문서에 서명하려면 파일을 마우스 오른쪽 버튼으로 클릭하고 메뉴에서 CryptoARM -> 서명을 선택합니다.

EDS로 PDF에 서명하는 방법

예를 들어 세금을 위해 문서에 서명해야 하는 경우 "EDS를 사용하여 파일에 서명하는 방법" 위의 지침을 읽고 문서에 보이는 부분이 있는 서명이 필요한 경우 아래 지침을 읽으십시오.

EDS를 사용하여 pdf 문서에 서명하려면 소프트웨어가 필요합니다.

장점:전자 서명은 문서에서 볼 수 있습니다.

빼기:프로그램 비용(90일 무료)

또한 Acrobat Reader DC 또는 Adobe Acrobat Pro가 설치되어 있어야 합니다.

PDF 문서에 전자 서명을 삽입하기 전에 CryptoPro PDF 프로그램과 작동하도록 Acrobat Reader DC를 구성해야 합니다. 이렇게 하려면 Acrobat Reader DC에서 Ctrl + K를 누르거나 범주에서 편집 -> 기본 설정 메뉴로 이동합니다. 서명 선택 -> "만들기 및 디자인" 클릭 자세한 내용은 그림 참조:

"기본 서명 방법"에서 그림과 같이 CryptoPro PDF를 선택합니다.

우리는 서명 PDF 문서 EDS와 함께

pdf 문서 열기 -> 오른쪽 패널에서 채우기 및 서명을 클릭합니다.

Acrobat Reader 프로그램의 상단 패널에서 "채우기 및 서명"-\u003e "추가 도구"를 클릭하십시오.

패널에 추가하려면 인증서 도구를 선택해야 합니다.

인증서를 클릭하면 "디지털 서명" 도구가 패널에 나타나고 클릭한 다음 디지털 서명을 넣을 영역을 커서로 선택하면 인증서 선택 창이 나타납니다.

인증서 -> 확인 -> 서명을 선택합니다.

pdf의 디지털 서명은 다음과 같습니다.



하나의 pdf 파일에 여러 서명을 넣을 수 있는 것과 같은 방식으로 pdf 문서에 서명됩니다.

EDS로 Word 문서에 서명하는 방법

문서에 서명이 보이는 부분이 있는 문서에 서명해야 하는 경우 아래 지침을 읽으십시오. 그러나 예를 들어 단어 문서에 서명하여 세무서에 보내야 하는 경우 위의 지침 "How EDS를 사용하여 파일에 서명하는 방법"이 적합합니다.

서명하려면 워드 문서 EDS의 도움으로 CryptoPro Office 서명 프로그램이 필요합니다.

- Wort, Excel 문서에 서명하는 데 사용되는 유료 소프트웨어.

설치 후 EDS로 Word 문서 서명을 즉시 시작할 수 있습니다. 이를 위해 EDS로 서명해야 하는 Word 문서 -> 요금 메뉴 -> 텍스트 블록에서 서명란을 클릭하고 서명란(CRYPTO -찬성).

Word 문서에 두 개의 전자 서명을 삽입해야 한다고 가정합니다. 이를 위해 서명 없이 위에 표시된 작업을 두 번 수행합니다. 하나의 서명으로 서명한 후에는 문서를 편집할 수 없게 됩니다. 따라서 전자 서명을 위해 두 개의 필드를 삽입합니다.

그 후, 하나의 서명을 클릭하여 서명하고 EDS를 선택하고 서명한 다음 두 번째 서명에 대해 동일한 작업을 수행할 수 있습니다.

디지털 서명된 워드 문서는 다음과 같습니다.


디지털 서명을 사용하여 Excel 문서에 서명하는 방법

반복하지 않겠습니다. EDS를 사용하여 Excel 문서에 서명하려면 Word와 동일한 모든 작업을 수행해야 합니다.

주목: 문서의 서명이 보이는 부분으로 Excel 문서에 서명해야 하는 경우 Excel 문서에 서명하여 이를 예를 들어 세무서에서 "EDS로 파일에 서명하는 방법.

EDS와 계약하는 방법

계약이 생성된 형식에 따라 위의 Word 또는 PDF 문서에 서명하는 방법 문서를 읽으십시오.

EDS로 위임장에 서명하는 방법

위의 기사를 읽고 EDS를 사용하여 위임장에 서명하는 방법에 대한 적절한 옵션을 선택하십시오.

질문:

서명된 EDS 파일을 편집할 수 있습니까?

- 아니요, 파일에 서명한 후에는 편집할 수 없습니다. 예를 들어 Word에서 서명한 텍스트를 편집하려고 하면 모든 서명이 삭제됩니다.

EDS 서명 문서는 어떻게 생겼습니까?

- 문서에 서명한 방법에 따라 다릅니다. 문서가 처음의 지침에 따라 서명된 경우 파일의 확장자는 .sig입니다. 또한 파일과 EDS는 별도의 파일일 수 있으며 파일 서명 방식에 따라 다릅니다.

다음을 사용하여 PDF, Word 또는 Excel 문서에 서명한 경우 특별 프로그램, 그것들을 구별하는 것은 불가능합니다. 문서를 열어야 하며 이미 내부에 서명이 있는지 확인해야 합니다.

진행 중인 프로젝트 중 하나에서 XML 문서, 즉 SOAP 패키지의 서명(ES - 전자 서명 적용) 작업이 해결되었습니다. 권장 형식은 X.509 인증서 토큰 프로필이 포함된 OASIS 표준 200401입니다. 이 문서는 SOAP 메시지에서 W3C(World Wide Web Consortium) XMLDSig(XML 디지털 서명) 형식의 사용을 설명합니다. 다른 유형의 ES와 마찬가지로 XML 서명은 인증, 데이터 무결성 및 데이터 서명 부인 방지를 지원합니다.

XMLDSig 형식의 몇 가지 기능에 대해 설명하겠습니다.

1. 서명의 대상은 전체 XML 문서가 아니라 그 일부일 수 있습니다. 특정 노드. OASIS 표준 200401에 따르면 서명할 객체는 본문(노드 신체) SOAP 메시지.

2. XML 문서의 다른 부분은 한 명 이상의 사람이 서명할 수 있습니다.

3. XML 서명은 서명되는 개체와 관련하여 다른 수준에 있을 수 있습니다.

  • 서명 구조는 다음을 포함할 수 있습니다. URI(균일한 자원 식별자);
  • XML 서명은 서명되는 노드와 동일한 수준에 있을 수 있습니다.
  • XML 서명은 서명되는 노드 내부에 있을 수 있습니다.
  • 서명될 노드는 XML 서명 구조 내에 있을 수 있습니다.

4. ES의 유효성을 확인하기 위해서는 서명 객체에 대한 접근이 필요합니다.

SOAP 커버의 구조

일반적으로 메시지는 헤더와 본문으로 구성됩니다. 머리글그리고 신체. 머리글메타데이터를 포함하고 신체데이터. XML 서명은 노드에 배치됩니다. 머리글.

암호화 알고리즘 및 정규화.

문제를 해결하기 위해 우리는 GOST R 34.11-94- 해시 함수 계산을 위한 러시아 암호화 표준 및 GOST R 34.10-2001- 전자 서명 표준.

XML 구성 규칙의 유연성으로 인해 동일한 문서 구조와 동일한 정보가 다른 XML 문서로 표시될 수 있습니다. 두 가지 문서를 고려하십시오.

논리적인 관점에서 볼 때 둘은 동일합니다. 즉, 동일한 XML 스키마를 갖습니다. 그러나 이러한 목록의 XML 파일에는 동일한 문자 시퀀스가 ​​포함되어 있지 않으므로 예를 들어 해시 값을 얻을 때 결과가 다릅니다.

이러한 불일치를 방지하기 위해 XML 메시지 내용에 대한 엄격한 형식 규칙 및 요구 사항이 채택되었습니다. XML 문서를 통합(표준) 형식으로 가져오는 프로세스를 정규화(영어 정규화). 규칙의 예로는 특정 인코딩 체계(UTF-8)의 사용, 속성 값의 정규화, 속성 값에 대한 큰따옴표 사용, 속성 및 네임스페이스 선언의 특정 순서 등이 있습니다. XML 정규화에는 여러 유형이 있습니다. 규칙의 구성이 다릅니다. 공식 W3C 사양에서 정규화 프로세스에 대한 자세한 내용을 읽을 수 있습니다(이 주제에 대한 러시아어 문서를 찾을 수 있음).

SIRCrypt 라이브러리

DIRECTUM에서 XML 서명을 구현하기 위해 COM 라이브러리가 작성되었으며 그 안에 3개의 클래스가 설명되어 있습니다. 해셔, 서명자그리고 XMLCanonicalizer XML 문서의 해시, ES 값 및 정규화를 각각 가져옵니다.

라이브러리가 필요합니다 크립토 프로 CSP(버전에서 테스트 크립토 프로 CSP 3.6.6497 KC2) 그리고 .그물(최소 2.0).

라이브러리 등록은 다음 명령을 실행하여 수행됩니다.

> regasm.exe "dll 경로" /codebase /tlb

GOST에 따른 해시 계산을 위한 해시 객체

필드 포함 콘텐츠 (유형 "문자열") 및 해시값AsBase64 (유형 "문자열") 및 해시 함수의 값을 계산하는 방법 해시시(). 계산하려면 다음을 의미해야 합니다. 콘텐츠 , 메서드를 호출 해시시(), 그 결과 현장에서 해시값AsBase64 해시 함수 값은 Base64로 작성됩니다.

GOST에 따라 ES 값을 얻기 위한 서명자 개체

필드 포함 콘텐츠 (유형 "문자열"), 컨테이너 이름 (유형 "문자열"), 인증서AsPEM (유형 "문자열"), BESignatureValueAsBase64 (유형 "문자열"), 메서드 징후(). 객체가 초기화된 후에는 다음과 같아야 합니다. 콘텐츠 (서명을 위한 데이터), 컨테이너 이름 (인증서 개인 키 컨테이너의 이름), 메서드 호출 징후(). 그럼 현장에서 인증서AsPEM 개인 키에 해당하는 인증서는 Base64에 있으며 필드에 BESignatureValueAsBase64 Base64 문자열로 서명 값.

XML 정규화를 위한 XMLCanonicalizer 객체

필드 포함 XML콘텐츠 (유형 "문자열"), CanonicalXML (유형 "문자열"), 메서드 C14NExc(). 표준 형식의 XML을 얻으려면 다음을 의미해야 합니다. XML콘텐츠 , 전화 C14NExc(), 필드에서 결과 가져오기 CanonicalXML .

XML 서명 구조

서명을 만드는 것은 다음과 같습니다. 먼저 비누 패키지의 기초가 형성되고 노드가 머리글그리고 신체. 신체데이터로 채워지고 속성이 추가됨 wsu:ID="본문"- 서명할 데이터의 식별자.

구조 채우기 보안다음 순서로 발생합니다.

  1. 해시 값은 표준 형식의 Body 노드에서 가져와 DigestValue 노드에 배치됩니다.
  2. 매듭 서명된 정보 EP에 의해 서명된 표준 형식으로 축소되었습니다. Base64 문자열 형식의 결과는 노드로 이동합니다. 서명 값.
  3. 서명된 인증서의 공개 키는 노드에 배치됩니다. BinarySecurityToken Base64 문자열 형식으로.

이렇게 생성된 ES를 확인하려면 모든 단계를 역순으로 수행해야 합니다. 즉,

  1. 요소의 표준 형식 가져오기 서명된 정보.
  2. 이전 단계의 결과를 사용하여 노드의 EP 값이 유효한지 확인합니다. 서명 값인증서의 공개 키를 사용합니다. 이 단계에서는 ES의 정확성만 확인하므로 데이터의 불변성을 보장하지 않습니다.
  3. ES 유효성 검사가 성공하면 노드의 해시가 비교됩니다. 다이제스트 값및 데이터 노드의 해시. 동일하지 않으면 서명된 데이터가 변경되고 전체 ES가 유효하지 않습니다.

사용 예

개발 패키지 및 라이브러리

ISBL(스크립트)에 대한 XML 서명의 예: dev.zip(5.95Kb)

영구 사용을 위해 완성된 SOAP 봉투의 일반적인 서명을 수행하는 코드는 함수로 이동됩니다. SignSOAP().

서명은 현재 사용자의 개인 인증서 저장소에 있는 인증서를 사용합니다.

ML 또는 확장 가능한 마크업 언어는 이제 표준 방식으로웹(및 그 이상)에서 정보를 전송합니다. 또한 XML 구문(XML 응용 프로그램)을 사용하는 추가 기능이 점점 더 많이 있습니다. 예를 들어, 여기에는 XML이 원격 프로시저 호출 RPC(Remote 호출 절차). 추가 기능의 또 다른 예는 RDF(Resource Description Framework) 래퍼입니다. 이 분야의 표준을 개발하는 W3C(World Wide Web Consortium) 사이트(http://www.w3.org/)를 보면 XML이 실제로 많은 관심을 받고 있음을 알 수 있습니다.

XML의 주요 목적은 문서의 구조와 의미를 설명하는 것임을 기억하십시오. 다른 전자 문서 형식에 비해 XML의 주요 이점은 문서의 외부 표현에 대한 설명을 문서 및 해당 내용의 구조와 분리한다는 것입니다. XML은 다양한 시스템 및 데이터베이스와 상호 운용할 수 있는 동시에 다양한 목적으로 사용할 수 있는 유연한 언어입니다. 따라서 이미 오늘날 XML은 많은 분야에서 사용됩니다. 정보 시스템주요 데이터 교환 형식으로. 게다가 데이터베이스 관리 시스템 공급업체는 XML을 향한 강력한 발걸음을 내디뎠습니다. 예를 들어 Oracle Corporation은 데이터베이스에 XML 데이터를 저장하고 검색할 수 있는 JDBC 추가 기능인 XSU(XML-SQL 유틸리티)를 출시했습니다(http://otn.oracle.com/tech/xml/ xdk_java/content .html). XSU는 객체 관계형 데이터베이스의 테이블 및 뷰(뷰)에서 데이터를 XML 형식으로 변환하고, XML 문서에서 테이블 및 뷰로 데이터를 삽입하고, 기타 유용한 작업을 수행하도록 설계된 Java 클래스의 계층 구조입니다.

XML 문서 보호의 필요성

ML은 인터넷을 통해 데이터를 교환하는 데 자주 사용되는 강력한 도구입니다. 그러나 불행히도 그 자체로는 "전송"하는 데이터에 필요한 보호를 제공하지 않습니다. 즉, XML 형식을 사용할 때(실제로 다른 형식을 사용할 때와 마찬가지로) 심각한 보안 문제가 있습니다.

XML은 은행과 ATM 간의 거래 메시지, 개인에 대한 기밀 또는 반기밀 정보, 전자 거래에 대한 정보를 전송하거나 단순히 이 형식의 기밀 문서를 전송하는 데 사용할 수 있습니다. 그러나 동시에 정보 시스템 사용자와 통신 채널을 통한 전송 모두에서 비자발적 또는 의도적 왜곡으로부터 정보를 보호해야 합니다. 보호는 다음 기능을 기반으로 해야 합니다.

  • 상호 작용 당사자의 인증;
  • 정보의 진위 및 무결성 확인;
  • 전송된 데이터의 암호화 폐쇄.

이러한 정보 보호를 보장하기 위해 전자적 방법을 사용하는 것이 좋습니다. 전자 서명(EDS) 및 데이터 암호화. 또한 EDS는 원칙적으로 인증, 진위 및 무결성 확인을 제공하며 데이터 폐쇄는 암호화를 통해 이루어집니다.

전자 전자 서명에 대한 일반 정보

EDS와 그 위조 가능성

전자 디지털 서명은 암호 변환의 결과로 얻은 원래 정보 블록(문서)에 추가된 데이터입니다(비밀 키와 정보 또는 문서의 원래 블록에 따라 다름). EDS는 보안되지 않은 공중 통신 채널을 통해 가장 자주 전송되는 작성자(문서에 서명한 사람)의 식별이 보장된 메시지(문서)의 무결성을 보장합니다.

정보 블록의 전자 전자 서명 검증은 EDS 설치에 참여한 비밀 키에 해당하는 공개 키를 사용하여 EDS의 암호 변환을 통해 수행됩니다.

전자 전자 서명 위조 불가능은 매우 많은 양의 수학적 계산을 사용하여 달성됩니다(예: 서명 위조 불가능은 p 요소 필드 - ElGamal 서명에서 이산 로그 문제를 해결하는 복잡성 때문일 수 있음). 계획). 문서에 서명해도 문서 자체는 변경되지 않지만 수신된 정보의 진위와 저자 여부만 확인할 수 있습니다(즉, 데이터 블록이 문서 자체에 추가되거나 문서와 별도로 추가됨 - 이 문서의 EDS).

인증 기관

위에서 우리는 "비밀 키"와 "공개 키"라는 용어를 언급했습니다. 이 열쇠들은 어디에서 왔습니까? 인증서를 관리하는 특정 구조(조직)인 인증 기관에 의해 구성됩니다. 공개/개인 키 인증서는 다음 데이터 세트입니다.

  • 시스템에서 고유하게 식별하는 시스템의 주체 또는 대상의 이름
  • 시스템의 주체 또는 객체의 공개/개인 키
  • 시스템에서 인증서를 사용하기 위한 요구 사항에 의해 결정된 추가 속성
  • 게시자(인증 기관)의 전자 디지털 서명으로 이러한 데이터의 전체성을 인증합니다.

따라서 예를 들어 개인 키 인증서에는 개인 키 자체와 추가 정보그에게.

정보 시스템의 등록된 각 사용자에 대해 인증 센터(CC)는 개인 키 인증서와 공개 키 인증서의 두 가지 인증서를 생성합니다. 동시에 첫 번째 SC는 등록된 사용자(예: 플로피 디스크)의 손에 개인적으로 발급하고 다른 사람에게는 발급하지 않습니다. 이것이 "서명"입니다. 두 번째 인증서(공개)는 관심 있는 모든 사람이 쉽게 찾을 수 있도록 SC에서 공개 리포지토리에 게시합니다.

EDS의 형성 및 검증

정보 발신자는 비밀키와 가입자 간의 합의에 의해 미리 선택된 비대칭 알고리즘(EDS algorithm)을 이용하여 전송된 정보를 디지털 형태로 암호화하여 데이터의 전자서명을 받는다. 다음으로 정보 발신자 열린 채널통신은 암호화되지 않은 정보와 위의 방법으로 얻은 전자 서명을 수신자에게 보냅니다.

메시지 수신자는 공개 키(공개적으로 사용 가능)와 가입자 간의 합의에 의해 선택된 EDS 알고리즘을 사용하여 디지털 서명을 분류 해제합니다. 그런 다음 그는 수신한 암호화되지 않은 정보와 디지털 서명을 해독할 때 얻은 정보를 비교합니다. 전자 서명이 위조되지 않았고 전송된 명확한 정보가 왜곡되지 않은 경우 이 두 정보가 정확히 일치해야 합니다. 서명이 위조된 경우 수신된 명확한 정보와 암호 해독 중에 얻은 정보가 크게 다릅니다(그림 1).

해시 함수

위의 보낸 사람과 받는 사람 간의 상호 작용 방식에서 하나의 작업이 누락되었습니다. EDS가 형성되는 데이터 암호화 단계와 관련이 있습니다. 단순히 EDS를 생성하면 (알고리즘에 따라) 원칙적으로 원래 데이터 블록과 거의 같은 길이가 되고 네트워크를 통해 2배 길이의 메시지를 보내야 합니다. 당연히 이것은 시스템의 전체 프로세스에 부정적인 영향을 미칩니다. 따라서 EDS를 생성하기 전에 해시 함수를 사용하여 원본 데이터를 처리하므로 서명이 압축됩니다. 물론 올바른 결과를 얻으려면 수신자가 수신한 데이터 블록에 대해 동일한 변환을 수행해야 합니다.

사용된 해시 함수는 모든 길이의 메시지를 고정 길이의 이진 시퀀스로 변환할 수 있어야 합니다. 또한 다음 요구 사항을 충족해야 합니다.

  • 해시 함수를 적용한 후 메시지는 원본 메시지의 각 비트와 순서에 따라 달라야 합니다.
  • 메시지의 해시된 버전에서 메시지를 복구할 수 있는 방법은 없습니다.

암호화에 대한 일반 정보

데이터 암호화 및 EDS와의 차이점

정보 암호화는 블록과 일치하는 키(변환의 비밀 매개변수)에 의존하는 일대일 수학적(암호화) 변환입니다. 정보 공개, 일부 디지털 인코딩으로 표시되는 암호화된 정보 블록이며 디지털 인코딩으로도 표시됩니다. 암호화는 정보의 암호화와 해독이라는 두 가지 프로세스를 결합합니다(그림 2).

EDS와 암호화 방법(우리는 현재 암호화 및 복호화에 다르지만 수학적으로 관련된 키가 사용되는 비대칭 알고리즘을 고려하고 있음)의 근본적인 차이점은 수신자의 공개 키가 암호화에 사용되고 개인 키가 복호화에 사용된다는 점입니다. EDS 알고리즘은 메시지에 서명하기 위해 작성자의 비밀 키와 EDS를 확인하기 위해 메시지 작성자의 공개 키가 필요합니다.

침입하다

이론적으로 키를 사용하는 모든 암호화 알고리즘은 모든 키 값을 열거하여 열 수 있습니다. 키를 선택하면 필요한 컴퓨터 성능이 키 길이에 따라 기하급수적으로 증가합니다. 32비트 키에는 232(약 109) 단계가 필요합니다. 이러한 작업은 모든 아마추어의 권한 내에 있으며 다음에서 해결됩니다. 가정용 컴퓨터. 40비트 키가 있는 시스템(예: RC4 알고리즘의 미국 수출 버전)에는 240단계가 필요합니다. 이러한 컴퓨팅 성능은 대부분의 소규모 회사에서 사용할 수 있습니다. 56비트 키(DES)가 있는 시스템은 열려면 상당한 노력이 필요하지만 특수 장비를 사용하여 쉽게 열 수 있습니다. 이러한 장비의 비용은 상당하지만 마피아, 대기업 및 정부에 적합합니다. 64비트 키는 현재 큰 주에서 열 수 있으며 앞으로 몇 년 안에 범죄 조직, 대기업 및 작은 주에서 열 수 있습니다. 80비트 키는 향후 취약해질 수 있습니다. 128비트 키는 가까운 장래에 무차별 대입 크래킹에 계속 사용할 수 없습니다. 더 긴 키를 사용할 수도 있습니다.

그러나 키 길이가 전부는 아닙니다. 많은 암호는 가능한 모든 조합을 거치지 않고 특별한 알고리즘(예: 다항식 복잡성)을 사용하여 깨뜨릴 수 있습니다. 일반적으로 brute force보다 더 효과적인 다른 방법을 사용하여 해독할 수 없는 암호를 찾는 것은 매우 어렵습니다.

암호화 시스템의 강도는 가장 약한 링크에 의해 결정됩니다. 알고리즘 선택에서 키 사용 및 배포 정책에 이르기까지 시스템 설계의 어떤 측면도 간과되어서는 안 됩니다.

XML 문서의 전자 전자 서명

XML로 작업하는 사람들은 XML로 전달되고 표현되는 데이터를 제어하기 위한 메커니즘의 중요성을 오랫동안 이해해 왔습니다. 에 대한 주요 요구 사항 전송된 데이터, - 상호 작용 당사자의 인증 및 XML 문서에 있는 정보의 신뢰성 및 무결성 확인. 이러한 작업은 XML 문서의 EDS로 해결됩니다.

W3C의 EDS XML 사양

W3C는 현재 "XML - 서명 구문 및 처리" 사양 및 기타 관련 문서를 개발 중입니다. 권장 상태(http://www.w3.org/TR/xmldsig-core/)입니다. 이 문서는 전체 XML 문서와 그 일부의 서명을 제공합니다. XML 서명 프로세스의 일대일 특성을 위해 XML 데이터의 표준 표현이라는 개념이 정의됩니다. 예를 들어, XML 문서에서 계층 구조 트리의 동일한 수준에 있는 태그가 서로 섞일 수 있으므로 서명 프로세스가 모호해집니다. XML의 표준 표현은 그러한 자유를 허용하지 않는 일종의 정렬(또는 가장 단순한 형태로 축소)입니다. XML 정규화 방법 및 규칙은 별도의 문서인 Canonical XML(http://www.w3.org/TR/xml-c14n)에 설명되어 있으며 이 문서도 권장 사항 상태입니다. XML 문서 서명과 관련된 기타 자료는 http://www.w3.org/Signature/에서 볼 수 있습니다.

꼬리표 - XML ​​서명

권장 사항 "XML - 서명 구문 및 처리"는 서명과 이에 대한 정보가 태그에 포함되어야 한다고 지정합니다. , 다음 부분이 있습니다(대부분 서명을 확인하는 데 필요함).

  • CanonicalizationMethod는 서명하기 전에 XML 인스턴스를 단순화하고 구조화하기 위한 특정 규칙 집합을 정의합니다. 이 정보는 의미 있는 데이터가 변경되지 않은 경우 검증 알고리즘이 통과할 수 있도록 서명되는 데이터의 형식이 적절함을 보장합니다.
  • 서명 방법(SignatureMethod)은 메시지 요약에 서명하기 위한 알고리즘을 정의합니다. 메시지 다이제스트는 고정 크기의 고유한 문자열이며 다이제스트 방법에서 제공하는 단방향 해시 함수를 사용하여 데이터를 처리한 결과입니다.
  • 다이제스트 방법(DigestMethod) - 지정된 서명 방법을 사용하여 서명된 메시지의 다이제스트를 컴파일하기 위한 알고리즘입니다. 특정 다이제스트 방법을 지정하면 데이터가 동일한 방식으로 처리됩니다.
  • DigestValue는 메시지 다이제스트 자체, 즉 다이제스트 알고리즘을 사용한 데이터 처리의 결과로 생성된 고정 길이 문자열입니다. 이러한 문자열은 고유하고 되돌릴 수 없습니다. 다른 콘텐츠에서 원래 데이터를 다시 만드는 것이 불가능한 것처럼 다른 콘텐츠에서 가져오는 것도 거의 불가능합니다. 서명된 데이터의 지문과 같습니다. 다이제스트 값을 비교한 긍정적인 결과는 콘텐츠의 무결성을 보장합니다.
  • 서명 자체(SignatureValue)는 서명 방법으로 처리한 후 얻은 데이터입니다.
  • 공개 키 정보(KeyInfo) — EDS 확인을 위한 키입니다. 보다 정확하게는 키가 아닌 인증서입니다. 키 자체 외에도 소유자 이름과 디지털 서명 알고리즘이 포함될 수 있기 때문입니다.

당연히 이것은 태그에 포함될 수 있는 내용에 대한 완전한 정보가 아닙니다. . 여기 가장 간단한 예그러한 서명(목록 1).

EDS XML의 형성

XML 서명 프로세스와 기존 서명 프로세스 사이에는 몇 가지 차이점이 있습니다. 사실 XML 인스턴스에 서명하는 프로세스는 정규화, 즉 데이터 구조의 단순화로 시작됩니다. 이미 언급했듯이 이 절차는 다른 방식으로 제시된 동일한 XML 문서에 대한 EDS를 올바르게 검증하기 위해 필요합니다. 즉, 서명하기 전에 모든 XML 문서를 단일 표준 형식으로 변환해야 합니다. 다음 단계는 디지털 서명을 추가하는 표준 프로세스와 유사합니다. 지정된 방법을 사용하여 데이터에 대한 다이제스트 값이 생성된 다음 이 값이 문서 작성자의 개인 키로 서명됩니다.

XML 디지털 서명 확인

서명 확인에는 서명 자체 확인과 다이제스트 값 확인이라는 두 가지 단계가 있습니다.

서명 자체를 먼저 확인하여 소유자가 인증되었는지 확인하고 거부를 방지합니다. 그런 다음 다이제스트 값을 검사하여 데이터가 변경되지 않았는지 확인하고 XML 문서 내용의 무결성을 확인합니다.

XML 문서 암호화

W3C XML 암호화 사양

암호화로 넘어가서 전송된 데이터를 닫고(즉, 의미를 알 수 없는 형태로 변환) 수신측에서 복원하도록 합시다. W3C가 만든 작업 그룹(http://www.w3.org/Encryption/2001/), 특히 XML 데이터 암호화를 다룹니다. "XML - 암호화 구문 및 처리" 사양은 현재 권장 사항 상태이며 http://www.w3.org/TR/xmlenc-core/에서 사용할 수 있습니다.

꼬리표

  • 암호화 방법(EncryptionMethod)은 데이터 암호화 알고리즘을 설명합니다. 이 태그가 없으면 암호화 알고리즘을 수신 당사자에게 알려야 합니다. 그렇지 않으면 메시지를 해독할 수 없습니다.
  • 암호화된 데이터(CipherData) - 실제 암호화된 데이터 또는 해당 위치에 대한 링크. 암호화할 다양한 데이터 유형과 논리적 구성 방법은 사실상 무제한입니다.
  • 키 정보(KeyInfo) - 암호화 및 그에 따른 암호 해독이 수행되는 키에 대한 정보입니다. 다른 곳에 저장하고 XML 인스턴스에서 URL 링크로 대체할 수 있습니다.
  • 기타 정보(예: 예정된 수신자에 대한 정보).

태그 예 목록 2에 나와 있습니다.

암호화 및 암호 해독 프로세스

암호화 XML 데이터공개 키를 사용하는 전통적인 암호화 방법으로 만들어집니다. 첫째, 데이터 자체는 일반적으로 무작위로 생성된 비밀 키를 사용하여 암호화된 다음 의도한 수신자의 공개 키를 사용하여 인코딩됩니다. 이 정보는 지정된 수신자만 비밀 키를 추출하고 데이터를 해독할 수 있도록 패키징됩니다. 비밀 키는 비밀 키를 복호화하는 데 사용되며, 찾은 비밀 키를 사용하여 데이터를 복호화합니다.

XML 문서에 대한 보안 구현

우리는 검토했습니다 일반 원칙 W3C 컨소시엄이 이 분야에서 개발한 전자 디지털 서명 및 사양의 작업. 이 모든 것이 좋지만 설명된 XML 데이터 보호 체계를 실제로 구현해야 하는 경우 어떻게 해야 할까요?

W3C 표준이 최근에 등장했음에도 불구하고 이미 오늘날 일부 회사에서는 EDS와 암호화를 모두 구현하는 패키지(클래스 라이브러리) 릴리스를 발표했습니다. 그 중 일부의 가능성을 고려해 보겠습니다.

XML 보안 제품군(IBM)

Java 프로그래밍 언어를 기반으로 하는 이 패키지는 http://www.alphaworks.ibm.com/tech/xmlsecuritysuite에서 사용할 수 있습니다. XML Security Suite는 XML 문서에 대한 전자서명, 암호화, 접근통제 등의 보안 기능을 제공하는 도구입니다. 이를 통해 전송 계층 보안 프로토콜(예: SSL, SSL)의 기능을 사용하는 것보다 더 큰 성공을 달성할 수 있습니다.

이 패키지는 세 가지 기술을 구현합니다.

  • EDS는 W3C 및 IETF 사양 "XML - 서명 구문 및 처리"(및 "표준 XML" 사양)를 기반으로 합니다.
  • 암호화는 W3C XML - 암호화 구문 및 처리 사양을 기반으로 구현됩니다.
  • XML 문서에 대한 액세스 제어(XML 액세스 제어 언어).

XML Security Suite는 최고 중 하나입니다. 현대 수단 XML 문서를 보호합니다. 클래스 라이브러리 자체가 포함된 아카이브(JAR) 외에도 클래스 계층 구조를 빠르게 탐색할 수 있는 자세한 문서 및 예제가 포함되어 있습니다.

XML 보안(Apache)

XML 기반 데이터 보호

SAML(보안 주장 마크업 언어)

XML 데이터 보호와는 다르지만 밀접한 관련이 있는 방향은 XML 기반 시스템(프로토콜)의 보안 및 보안 향상이다. 이 경우 다른 문서/시스템/응용 프로그램은 XML을 사용하여 보호됩니다. 구조화된 정보 표준의 발전을 위한 기구(OASIS) 보안 위원회는 현재 SAML(Security Assertion Markup Language)을 개발 중입니다.

연방법 "전자 디지털 서명"

목표

웹 분야의 입법자들로부터 조금 벗어나 2002 년 1 월 10 일 러시아 연방 대통령이 승인 한 "전자 디지털 서명에 관한 연방법"(http://www.internet-law .ru/intlaw/laws/ecp.htm). 이 법의 채택은 전자 문서의 전자 전자 서명 사용에 대한 법적 조건을 제공했으며 전자 문서의 전자 전자 서명은 종이 문서의 수기 서명과 동일하게 인식됩니다. 이로써 법적으로 의미 있는 전자문서 관리 시스템을 구축할 수 있는 기반이 마련되었습니다.

EDS와 일반 서명의 동등성을 위한 조건

법률은 인증서, 공개 및 개인 키, 전자 디지털 서명의 진위 여부 확인(이전에 고려함) 등과 같이 EDS 절차에 사용되는 기본 개념을 정의합니다. 또한 법률은 다음과 같은 조건을 정의합니다. 전자 문서의 전자 디지털 서명은 종이 문서의 서명과 동일합니다. 이는 무엇보다도 이 전자 서명과 관련된 서명 키 인증서가 확인 시 또는 서명 시 만료되지 않았음을 의미합니다. 전자 문서. 또한 전자전자서명의 진위 여부 및 서명키 인증서에 명시된 정보에 따라 전자서명을 사용하였음을 확인하여야 한다.

인증서 및 CA

법률은 서명 키 인증서의 구성(고유 등록 번호, 소유자의 전체 이름, EDS 공개 키, 인증 센터의 이름 및 위치 등)을 자세히 설명합니다. 인증 센터에 인증서를 저장하기 위한 조건 및 절차. 따라서 전자문서 형태의 서명키 인증서를 인증센터에 보관하는 기간은 인증센터와 서명키 인증서 소유자 간의 합의에 의해 결정된다. 보관에 관해서는 아카이브 및 보관에 관한 러시아 연방 법률에 의해 결정됩니다.

법의 별도 장에서는 인증 센터에 대해 설명합니다. EDS를 개발하고 검증하는 바로 그 과정은 당사자 간의 합의에 의해 확인되는 경우 인증 센터의 참여 없이 수행될 수 있습니다. 그러나 공공 정보 시스템 및 많은 기업 정보 시스템에서 인증 센터의 기능 없이 EDS를 사용하는 것은 불가능합니다. 이는 상당히 단순한 서명 위조 메커니즘으로 이어질 것이기 때문입니다.

개인(비밀) 키

EDS는 서명자가 승인되지 않은 사람이 사용할 수 없는 일부 정보를 가지고 있는 경우에만 기능을 수행할 수 있습니다. 이 정보는 암호화 키와 유사하므로 "전자 전자 서명 개인 키"(이전에는 유사한 용어 "비밀 키"가 사용됨)라고 합니다. 개인 키와 암호화 키를 모두 비밀로 유지해야 합니다. 서명하는 개인 키에 대한 지식은 개인 키 소유자가 서명한 백지에 해당하므로 공격자가 해당 텍스트를 작성할 수 있습니다. 개인 키의 실제 소유자에게. 미술. 법 12조는 서명 키 인증서 소유자가 개인 키를 비밀로 유지할 의무를 직접 명시하고 서명 비밀 키의 비밀이 침해되었다고 믿을 만한 이유가 있는 경우 서명 키 인증서의 정지를 즉시 요구합니다.

미술. 법 5조는 생성 비밀의 엄격한 준수를 고려하여 개인 서명 키 생성 절차를 설정합니다. Art에도 같은 상황이 표시됩니다. 인증 센터의 활동에 관한 법률 9조. 기업 정보 구조에서 생산 및 유통의 문제는 폐쇄 EDS 키자체 방법으로 해결할 수 있지만 EDS 사용자는 이러한 EDS 작업 구성의 가능한 결과를 알고 있어야 합니다. 암호 시스템을 사용할 때와 같이 일부 일반 시퀀스가 ​​개인 키로 사용될 가능성이 있습니다.

EDS 알고리즘에 대한 국내 표준

ElGamal의 계획

1994 년 EDS 분야 최초의 국내 표준 채택 - GOST R34.10 - 94 " 정보 기술. 암호화 보호정보. 비대칭 암호화 알고리즘을 기반으로 하는 전자 디지털 서명의 개발 및 검증 절차. ElGamal 체계를 기반으로 하는 EDS 작업 절차를 정의합니다. 서명 위조가 불가능한 것은 p 요소 필드에서 이산 로그 문제를 해결하는 복잡성이나 2에서 2 사이의 간격에서 큰 소수 p와 숫자 a, b에 주어진 숫자 x를 결정하는 복잡성 때문입니다. 비교에 의해 수행되는 p-1:

도끼== bmodp.

그러나 수학자들은 가만히 있지 않고 최근 p 요소 분야에서 이산 대수 문제를 해결하는 방법의 개발에 큰 진전을 이뤘습니다. 최근에는 이른바 넘버필드 체(number field sieve) 방식이 만들어졌다. 그것으로 위의 방법으로 생성된 EDS를 해킹할 수 있습니다. 적어도 512비트 모듈의 경우 p).

이 문제에 대한 가장 간단한 해결책 중 하나는 p의 길이를 늘리는 것입니다. 그러나 불행히도 p가 증가함에 따라 공개키의 길이와 서명 생성 및 검증 시간이 증가하기 때문에 알고리즘의 연산 특성이 저하된다.

타원 곡선

결국 러시아 과학자들은 ElGamal 방식을 약간 복잡하게 만드는 것이 가능하여 추가 계산 비용 없이 수천 번 EDS 위조의 복잡성을 증가시킬 수 있다는 결론에 도달했습니다. ElGamal 방식의 새 버전은 숫자(x, y) 쌍의 집합으로 정의되는 p 요소의 유한 필드에 대한 타원 곡선 장치를 사용합니다(각각 0에서 p-1 사이에 있음) ) 비교 만족(숫자와 b는 고정되어 있고 몇 가지 추가 조건을 만족함):

Y2 == x3 + 도끼 + bmodp.

기타 리소스

  • Oracle XML-SQL 유틸리티에 대한 정보 - http://otn.oracle.com/tech/xml/xdk_java/content.html
  • SAML 사양 - http://www.oasis-open.org/committees/security/
  • XKMS 사양 - http://www.w3.org/TR/xkms/
  • 연방법 "전자 디지털 서명" -

관련 출판물