수안이의 컴퓨터 연구실

  • Mainpage
  • About Me
  • Tags
  • Metapage
  • Notice
  • Location
  • Keywords
  • Guestbook
  • Admin
  • Write an Article
  • Total | 1693891
  • Today | 242
  • Yesterday | 588

2 Articles, Search for '암호화'

  1. 2008/01/30 눈길가는 블로그 아티클 [1월 넷째주]
  2. 2007/05/22 SQL 서버 암호화
Webdizen/Blog2008/01/30 13:27

눈길가는 블로그 아티클 [1월 넷째주]

구글 미팅 후의 기념품
저도 가지고 싶어 지네요;;

구글이 뉴욕타임즈를 사고, 네이버가 조선일보를 산다면?
재미있네요... 사실적인 이야기가 될 수도 있겠네요 ㅋ

Secure Coding in C and C++
다음 책 구매할 시 사야겠네요...

파일의 백업, 싱크, 암호화를 간편하게 - Toucan
이런거 만들어 보려고 계획했었는데... 멋진게 나와있었군요;

웹 캘린더 (Web Calendar)
지금은 구글 캘린더를 쓰고 있는데... 다음 캘린더도 괜찮네요...

종이로 CD 케이스 만들수 있게 프린트 해주는 사이트 - paper cd case
이럴수가... 이거 완전 유용한걸요? ㅋㅋ

[정의] 웹 2.0(Web 2.0)의 의미를 생각해보자!
깔끔하게 정리하셨네요 ^^

천박한 이명박과 이건희는 빌 게이츠 본받아야...

인간이 극복해야할 6가지 결점

행복해지는 습관 12가지

손금, 한번 파헤쳐보자~!
손금에 관심이 많은데... 손금 관련 서적도 하나 구매해 봐야겠다.

예술적인 네트워크라인 작업
저도 학교안에서 일하면서 자주 접했던 네트워크 라인 작업인데...
이렇게 매력적으로도 구축이 가능하군요? 헐!

텍스트큐브 1.6 베타 프리뷰
이제 테터툴즈에서 텍스트큐브로 넘어가야 할텐데...
스킨 때문에 고민이네요. 하나 직접 만들어 보려고 하는데...

내가 아이팟을 사용할 수밖에 없는 이유 6가지

세계맥주 순위 1위~10위
왠만한건 다 먹어봤는데... 중국 맥주는 안먹어봤네요; ㅋ

Wubi - 우분투를 한방에 설치하자
동아리에서 리눅스 가르쳐 줄때 항상 불편했는데... 이렇게 간단한 방법이 있었군요!

세계 10대 검색엔진 랭킹 발표!!!
NHN이 6위네요? 이럴수가;;

블로그의 전문성과 네트워크의 발달
정보꼬뮨님 글을 정말 잘 쓰시는 것 같다.

MS Access SQL Injection Cheat Sheet

SQL Injection 해킹 관련 자료, zxarps.exe Cain & Abel 등

DBCC 명령어 - 데이터베이스, 테이블, 인덱스, 카탈로그, 파일그룹 관리


학위논문 검색 및 활용하기 1: 국내편
학위논문 검색 및 활용하기 2: 해외편
굉장히 유용한 정보가 될 거 같아요.

NHN도 IPTV 서비스 시작!!!
시작했군요! NHN ㅋㅋ

Naver Lab... 흥미로운 시도군요.
재미있는게 많이 있네요 ㅋㅋ

Brand is Relationship
깔끔하게 정리되어있는게 좋네요.
"Blog" 카테고리의 다른 글
  • 블로그 명함 확정! (2)2008/04/22
  • 나만의 블로그 명함 탄생! (3)2008/04/19
  • 눈길가는 블로그 아티클 [1월 넷째주] (0)2008/01/30
  • 눈길가는 블로그 아티클 [1월 셋째주] (0)2008/01/20
  • 눈길가는 블로그 아티클 [1월 둘째주] (0)2008/01/13
2008/01/30 13:27 2008/01/30 13:27
Posted by webdizen
Tags Access, Brand, DBCC, IPTV, Naver Lab, NHN, SQL, SQL Injection, Wubi, 검색엔진, 구글, 네이버, 네트워크 라인, 뉴욕타임즈, 맥주, 백업, 블로그, 빌 게이츠, 세계맥주, 손금, 싱크, 아이팟, 암호화, 우분투, 웹 2.0, 웹 캘린더, 이건희, 이명박, 조선일보, 종이, 텍스트큐브
No Trackback No Comment

Trackback URL : http://www.webdizen.net/blog/trackback/3174

Leave your greetings.

[로그인][오픈아이디란?]

Database/MSSQL2007/05/22 17:47

SQL 서버 암호화

안정성를 보장하는 보안환경구현

Zewei Song | World Publishing 사

메인 고객지불 데이터베이스(SQL 서버 2000)에는 2백만명의 고객에 대한 e-머니와 1,600백만 건의 거래 레코드가 저장되어 있다. 각 레코드에는 매우 민감한 신용카드와 은행계좌 정보가 포함되어 있기 때문에 고객의 개인신용정보와 회사의 자산을 보호하기 위해서 반드시 암호화될 필요가 있다. 어플리케이션 기반의 암호화 솔루션을 도입하는 것은 ASP, Visual Basic 6.0, .NET 기반으로 개발된, 50 개 부분이 넘는 핵심 어플리케이션을 새로 작성해야 하는 상황이었기 때문에 채택하기가 곤란한 상황이었다. 전체적인 성능과 비즈니스 프로세스에 최소한의 영향을 미치게 되는 데이터베이스 서버기반의 암호화 솔루션이 필요한 상황이었다. 이를 위해 .NET 프레임워크와 SQL 서버 확장 저장 프로시저를 기반으로 데이터베이스 서버기반 암호화 솔루션을 개발하였다. 솔루션을 개발할 때, 기존 어플리케이션에 대한 수정을 최소화하고, 전체 시스템의 성능에 영향을 최소화해야 한다는 요구사항을 충족시켜야 했다.

처리절차

처음에는, 이러한 요구사항을 충족하는 상용 제품을 사용할 계획을 가지고 있었다. 일반적으로 사용되는 SQL 암호화 제품 중 ActiveCrypt 사의 XP_Crypt, Application Security 사의 DbEncrypt, NetLib 사의 Encryptionizer 제품을 선정하여 적용여부를 검토하였다. 세 가지 제품모두 데이터 암호화 기능을 훌륭하게 지원하였으나, 회사에서 필요로 하는 데이터 암호화 수준에는 부족한 부분이 있었다. 세 가지 제품 중 하나를 선택하는 경우, 50 여개의 핵심 어플리케이션에 상당한 수정작업을 수행하거나, 전면 재개발을 해야 하는 상황이었기 때문에, 회사로서는 이러한 수정작업을 위한 시간 및 자원이 부족하여 채택할 수 없는 상황이었다.
.NET 프레임워크에서 암호화 서비스를 제공하기 때문에, 먼저, .NET 프레임워크를 사용하여 SQL서버 수준에서 통합된 암호화 기능을 지원할 수 있는지에 대해 검토하였다. SQL 서버의 OLE 자동화 저장 프로시저를 통해, .NET DLL을 내부에 포함한 VB6 COM DLL을 호출할 수 있다는 것을 알게 되었다. 이러한 방법을 활용하여, .NET 프레임워크에서 제공하는 암호화 서비스를 SQL 서버와 통합한 솔루션을 개발할 수 있었다.
회사의 요구사항을 충족시키는 암호화 솔루션을 개발하는 작업을 시작하였다. 솔루션의 기본 개념은 암호화된 데이터를 저장하는 테이블의 명칭을 변경하고, 해당 테이블에 대한 뷰를 변경이전 테이블 명칭으로 생성하여, 암호화된 테이블의 데이터에 접근할 수 있도록 하는 것이었다. 어플리케이션에서는 암호화되지 않은 데이터에 접근할 수 있도록 하기 위해서, 뷰에서는 해당 데이터를 복호화하는 사용자정의함수를 호출하게 된다. 뷰에 데이터를 추가, 변경, 삭제하는 작업에 대해서는 INSTEAD OF 트리거를 사용하여, 실제적으로 테이블에 저장되는 데이터는 반드시 암호화될 수 있도록 설정하였다.
최초 개발한 솔루션에는 몇 가지 문제가 발견되었다. 암호화 솔루션의 기본개념은 매우 단순하고, 직관적이었으나, 실제로 운영해 본 결과, 상당한 성능관련 문제가 발생하였고, 고객 및 거래내역 테이블과 같은, 수백만 레코드를 저장하고 있는, 대용량 테이블에 대해서는 특히 문제가 되었다. 이러한 문제를 해결하기 위해, DBA와 지속적으로 업무협조를 하였다. 암호화 솔루션을 사용하기 위해, 인덱스에서 활용하기 위한 중복데이터를 저장하는 추가 컬럼을 추가하는 것과 같은, 데이터베이스 설계상 몇 가지 트릭을 적용했다.
모든 암호화 솔루션의 가장 핵심부분은 암호화 키에 대한 관리 부분이다. 개발한 솔루션에서는 RSA를 사용하여 암호화 키를 암호화 하고, 암호화된 암호화 키를 \system32 폴더에 XML 파일 형식으로 저장하였다. RSA는 매우 강력한 비대칭 알고리즘을 사용하기 때문에, 암호화 키를 매우 안전하게 암호화할 수 있으나, 성능이 매우 느리다는 문제가 있다. (테스트 결과, 대칭형 알고리즘을 사용하는 것에 비해, 1000배정도 느린 성능을 나타냈다.) 이를 위해, 암호화키를 최초로 사용할 때 복호화한 다음, 복호화된 키를 메모리 상에 저장하는 프로그램을 개발하였다.
데이터에 대한 암호화 속도도 문제가 되었다. 이를 위해, 테스트환경에서 초당 20,000회의 암호화/복호화 작업을 처리할 수 있는, 매우 빠른 속도를 보장하는, .NET 대칭형 알고리즘인 Rijndael-256을 사용하였다. 하지만, SQL 서버에서 OLE 자동화 저장 프로시저를 사용하여, VB 6.0으로 랩핑된 Rijndael-256 알고리즘을 호출하였기 때문에, 암호화 속도가 초당 200 회 정도로 줄어들었다. 나중에, OLE 자동화 저장 프로시저를 사용하는 것보다, 확장 저장 프로시저를 사용하여 VB6 COM으로 랩핑하지 않은 .NET DLL을 호출하는 것이, 훨씬 빠르다는 것을 알게 되었다. 최종적으로, 암호화를 처리절차를 구현하기 위한 확장 저장 프로시저를 Visual C++ DLL로 생성하였다. 이러한 수정작업을 통해 초당 암호화 속도를 350 퍼센트 증대시킬 수 있었다.

솔루션

[그림 1]에는, 크게 4 가지 기본 구성요소로 구성된 암호화 솔루션에 대한 개관이 나타나 있다. 첫번째 구성요소는 System.Security.Cryptography 네임스페이스를 기반으로, 대칭형 데이터 암호화 처리절차(암호화/복호화/해시)와 비대칭형 알고리즘 기반 암호화 키 관리 기능을 담당하는 .NET DLL 이다. 두번째는, .NET DLL을 랩핑하는 Visual C++ DLL로, 그 자체로 SQL 서버에서 호출할 수 있는 확장 저장 프로시저의 역할을 하게 된다. 나머지 구성요소는, 암호화 키를 관리하기 위한 .NET WinForm 기반 어플리케이션과, SQL 서버기반 솔루션을 유지보수하기 위한 SQL 스키마 변경내역을 동적으로 생성하는 .NET WinForm 기반 어플리케이션으로 구성된다.

사용자 삽입 이미지
[그림 1] 암호화 솔루션의 개관


암호화 솔루션을 적용하기 위해, 자체 개발한 50 개 이상의 핵심 어플리케이션을 수정하는 대신, ASP 어플리케이션 하나와 일부 DTS 패키지와 저장 프로시저만 수정하면 되었다. 수정한 ASP 어플리케이션은 고객 서비스 부서에서 사용하는 외부사용자를 위한 사이트로, 암호화된 데이터 컬럼을 검색할 수 있도록 수정하였다. 특정 계좌번호를 검색하는 작업을 수행하기 위해서, SQL 서버가 200백만 레코드가 넘는 고객에 대한 e-머니 관련 데이터에 포함된 모든 암호화된 계좌번호를 복호화해야 하기 때문에, 검색하는데 한 시간이상의 시간이 소용되는 문제가 발생하였다. 이 문제를 해결하기 위해, 계좌번호의 마지막 4 자리 숫자를 암호화하지 않은 상태로 저장하는 컬럼을 추가하고, 검색 쿼리에서는 새로 추가한 컬럼을 사용하여 1차 검색작업을 수행한 다음, 필터링된 결과에 대해서만 전체 계좌번호를 복호화하여 2 차 검색작업을 할 수 있도록 수정하였다.

도입효과

암호화 솔루션을 도입함으로써, 개인정보 데이터 보호에 관련 법령에서 규정하고 있는 고객에 대한 개인신용정보와 회사자산에 대한 데이터 보호 수준을 충족시킬 수 있게 되었다. 또한 데이터에 대한 잠재적인 침해와 같은 문제를 해결하기 위한 비용을 절감할 수 있었다. 캘리포니아 주 지정 데이터베이스 보호 협약(CDPA) 2003에 따르면, 암호화되지 않은 고객 데이터에 대한 침해가 발생한 경우, 회사는 반드시 “어떤 불합리한 지연없이, 동원할 수 있는 모든 수단을 통해” 모든 고객에게 해당 사실을 공지하도록 규정하고 있다. 또한, 암호화 솔루션을 자체 개발했기 때문에, 암호화된 데이터에 침입자가 침입할 수 있는 가능성을 더욱 효과적으로 차단할 수 있었다. 보안이 필요한 모든 데이터는 암호화되었기 때문에, 권한이 부여되지 않은 사용자는 해당 데이터를 사용할 수 없었다. 암호화 솔루션을 도입한 결과, 특별한 성능상의 문제는 발생하지 않았으며, 데이터베이스 기반 암호화 상용제품을 구매하기 위한 $20,000 이상의 비용을 절감할 수 있었고, 기존 어플리케이션에 대한 별도의 수정작업에 투자되어야 할 비용까지 감안할 때는 훨씬 더 많은 비용을 절감할 수 있었다.

제공 : DB포탈사이트 DBguide.net

출처명 : Windows&.NET
"MSSQL" 카테고리의 다른 글
  • VS.NET으로 개발하는 SQL 서버 2005 (0)2007/05/23
  • SQL 서버 2005 관리자가 알아야 할 변화 (0)2007/05/22
  • SQL 서버 암호화 (0)2007/05/22
  • SQL 서버 2005, 그 변화 속으로 (0)2007/05/22
  • SQL Server를 실행하는 컴퓨터 간에 데이터베이스... (0)2007/05/22
2007/05/22 17:47 2007/05/22 17:47
Posted by webdizen
Tags SQL Server, 암호화
No Trackback No Comment

Trackback URL : http://www.webdizen.net/blog/trackback/3026

Leave your greetings.

[로그인][오픈아이디란?]

«Prev  1  Next»

RSS HanRSS
Blog Image
webdizen
이곳은 컴퓨터에 대해 연구하고, 공유하고, 소통하기 위한 연구실입니다. 개인적으로는 OLAP, Data Mining, Semantic Web, Data Modeling에 대해서 연구하고 있습니다.

Categories

전체 (3009)
Webdizen (141)
Life (6)
Diary (16)
Blog (9)
IDEA (2)
Travel (10)
Book (16)
Photo (7)
Movie (8)
Music (14)
Leisure Sports (10)
Funny (6)
Hardware (121)
Software (120)
Windows (5)
Unix & Linux (120)
Installation (5)
Kernel (10)
System (34)
Develop (22)
X-Window (0)
Applicaton (31)
Security (4)
Framework (2)
Hadoop (2)
Programming (804)
Algorithm & Data Structure (1)
Assembly (38)
UNIX/Linux C (95)
C++ (128)
STL (4)
Java (38)
Win32 API (92)
ATL/COM (44)
MFC (151)
.NET (26)
WCF/WPF (4)
C# (28)
Network Programming (17)
Database Programming (12)
OpenGL / DirectX (13)
Multimedia Programming (0)
Game Programming (21)
Parallel Distributed Progra... (0)
Reverse Engineering (0)
Debugging (9)
Python (1)
Ruby (1)
Ruby on Rails (1)
QT (4)
GTK (0)
JSP (0)
PHP (6)
ASP.NET (6)
ASP (2)
Development (28)
Useful Library (2)
Data Modeling (0)
Database (105)
Oracle (4)
MSSQL (41)
MySQL (2)
Data Warehouse (2)
Data Mining (4)
Network (66)
Web (79)
DHTML (4)
XHTML (1)
Javascript (1)
CSS (1)
AJAX (9)
XML (11)
Flex (1)
Silverlight (3)
Security (91)
DoS (1)
Kernel (10)
Scanning (3)
Sniffing (0)
Spoofing (4)
Overflow (28)
Web (11)
Shell (10)
Format String (14)
Window (2)
Embedded (70)
Multimedia (27)
Mobile (14)
Graphic (24)
Management (633)
Knowledge (581)
Hadoop (0)

Notice

  • 메타 블로그 사이트에 등록
  • 새해 맞이 블로그의 변화
  • 블로그 명칭 변경
  • 도메인(www.webdizen.net) 구...
  • TEXTCUBE 1.6.1로 업그레이드...

Tags

  • pcap
  • 웹 캘린더
  • tty
  • 확장자
  • 화면 캡처
  • net-snmp
  • 매크로
  • 다산관
  • 각(覺)의 종
  • SAX Filters
  • Profiling
  • Keyword
  • TPC-D
  • 발성
  • 고차원
  • 까딸루냐 광장
  • 조니워커 골드
  • 리눅스 보안
  • MXML
  • Python

Recent Articles

  • 트위터(Twitter)의 시작!.
  • 청년 리더의 조건.
  • 애플의 타블렛 PC - 아이패드....
  • 미래의 인터페이스 - 육감 기....
  • 기초발성법 동영상 강좌.

Recent Comments

  • 학교 과제물중 쓰레드에 대하....
    장진혁 03/17
  • 관리자만 볼 수 있는 댓글입....
    비밀방문자 03/12
  • 상대방의 이야기를 열심히 경....
    DoNuts 03/03
  • Lots of students know techn....
    Bobbi35Shannon 02/25
  • 좋은글 잘 보고 갑니다..
    Und_hacker 01/08

Recent Trackbacks

  • printf,scanf를 이용한 형식....
    yundream의 프로그래밍 이야기 03/10
  • 파일 열기/저장하기 CFileDialog.
    은마군의 나태블록 2009
  • World IT Show 2008.
    상우 :: Oranzie's BLOG 2008
  • cvs서버 설치하기.
    3인3색 2008
  • 속속 공개되는 Google Chart....
    PHP와 Web 2.0 2007

Archive

  • 2010/02 (1)
  • 2010/01 (6)
  • 2009/12 (5)
  • 2009/09 (3)
  • 2009/08 (1)

Calendar

«   2010/03   »
일 월 화 수 목 금 토
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

Bookmarks

    • Administration
      • IIS.NET
      • NTFAQ
      • OS의 모든 것
      • 리눅스포털
    • Database
      • SQL Server Central
      • SQL Team
    • Development
      • .NET Heaven
      • ASP Alliance
      • ASP.NET 2.0
      • Bullog.net
      • C# Corner
      • C++ (C PlusPlus.com)
      • C++ Reference
      • CodeGuru
      • CodePlex
      • DebugLab
      • Dev Articles
      • Devpia
      • DotNet Junkies
      • DotNet Zone
      • Driver Online
      • GOSU.NET
      • HOONS 닷넷
      • Joinc 팀블로그
      • KOSR
      • MSDN Home Page
      • OSR Online
      • Sky.ph - 개발자 커뮤니...
      • TAEYO.NET
      • The Code Project
      • WindowsClient.net
      • 김상욱의 개발자 Side
      • 조인시 위키
    • Human Networks
      • belief21c's e-space
      • I think I can
      • Invisible Rover's Blog :D
      • Rodman®
      • ■ Feel So Good~! ■
      • 까만 나비
      • 나를 가꾸는 시간.
      • 나만의 즐거움~~!
      • 단녕
      • 상우 :: Oranzie's BLOG
    • Information Technology
      • Microsoft TechNet
      • 지디넷코리아 - 글로벌...
    • Security
      • FoundStone
      • milw0rm
      • NewOrder
      • OpenRCE
      • Phrack.org
      • Reverse Engineering b1...
      • Reverse Engineering Team
      • RootKit
      • SecurityFocus
      • SecurityXploded by Nag...
      • Wow Hacker
      • Zone-H
Textcube
Louice Studio Inc.
Powered by Textcube. Original designed by Tistory.