본문 바로가기
반응형

IT 이론239

XML 기반 보안 기술 ebXML : 전자상거래 데이터 교환의 전세계적 표준 구축을 위한 OASIS(사설 컨소시엄)와 CEFACT(UN산하기관)의 프로젝트 XML Signature : 영구 무결성 및 부인 방지 XML Encryption : 영구 기밀성 XKMS(XML Key Management Specification) : PKI서비스 프록시 SAML(Security Assertion Markup Language) : 인종, 승인, 속성 Assertion XACML(eXtention Access Control Markup Language) : XML 기반 접근 제어 2016. 10. 11.
IPSec IPSec은 이름에서 알 수 있듯이 보안성이 부족한 기존 IP프로토콜을 보완하기 위한 보안 기술이다. 기존 IP프로토콜에 추가적인 절차를 더해 호환성있게 적용되며 IPv4에선 보안이 필요한 경우에만 선택적으로 사용되었지만 IPv6부턴 기본 스펙에 포함된 필수 사항이다. IPSec에는 2+1가지 프로토콜이 지원된다. 프로토콜이라고 하지만 실제론 헤더의 구성 차이, 기능 차이라고 보면 된다. AH(Authentication Header) : Sequence number를 이용하여 재전송 공격을 방지한다. 무결성을 보장한다. ESP(Encapsulating Security Payload) : AH의 기능을 포함하고 추가적으로 패킷을 암호화하여 기밀성을 제공한다. 이 둘은 선택 옵션이다. 초기 연결 시에 어떤 .. 2016. 10. 11.
SSL/TLS 프로토콜 웹 브라우저와 웹 서버 간에 안전한 정보 전송을 위해 사용되는 암호화 프로토콜이다.우선 SSL과 TLS라는 이름에 대해 짚고 넘어가자. SSL(Secure Socket Layer)은 넷스케이프사에서 개발한 보안 프로토콜로, IETF에서 이를 국제 표준화 하는 과정에서 SSL이 모 기업의 상용 제품과 이름이 같다는 이유로 TLS(Transport Layer Security)로 이름을 바꾸어 버린다. SSL3.0이 나온 직후 개명되었으므로 그냥 TLS1.0을 SSL3.0이나 SSL3.01정도로 보면 된다. 말 그대로 개명이지 구조적인 변화나 기술적인 진보가 이루어 진 것은 아니므로 그냥 같은 개념으로 보면 된다. 이 글에서는 그냥 SSL로 통칭한다. SSL은 앞서 설명한 Diffie-Helman Key Ex.. 2016. 10. 11.
RSA 키 분배 알고리즘(Rivest-Shamir-Adleman method) 앞서 설명한 Diffie-Hellman과 같은 대칭키 방식을 토대로 더 강력한 알고리즘을 만들어 보겠다고 MIT의 Rivest, Shamir, Adleman 3명이 의기투합하여 만들었다. 3명의 이름을 따서 RSA법이라고 부른다. 디피-헬만법과 구분되는 점은 RSA에선 아예 암호화 키와 복호화 키가 다르다는 점이다. 큰 숫자를 소인수 분해하는 것이 어렵다는 것에 기반을 두고 디피-헬만법보다 훨씬 복잡한 공식을 사용한다. (디피-헬만법은 이산대수기반) 140자리 이상의 큰 소수의 곱과 추가적인 복잡한 연산을 통해 공개키와 개인키를 구성한다. 암호화/복호화 하는 데 있어서 대칭키보다 상대적으로 오랜 시간이 소요된다. 참고 - 가장 처음 나온 공개키기반 알고리즘 : 디피-헬만 - 디피 헬만과 같은 이산대수기반.. 2016. 10. 11.
디피-헬만 키 교환 알고리즘(Diffie-Hellman key exchange) 디피라는 사람과 헬만 이라는 사람이 공동 개발했다고 해서 디피-헬만법이다. 경우에 따라 디피-헬만 프로토콜이라고도 한다. - 비대칭키(공개키) 알고리즘에서 사용되는 키 교환 방식이다. - 상대방의 공개키와 나의 비밀키를 이용하여 비밀키를 생성한다. - A의 공개키와 B의 개인키를 DH연산하면 B의 비밀키가 되고 - B의 공개키와 A의 개인키를 DH연산하면 A의 비밀키가 된다. - 이산대수법에 의거한 수학적 공식에 의해 A의 비밀키와 B의 비밀키는 같아진다. - 송신자와 수신자는 이 비밀키를 사용하여 데이터를 암호화한 후 전달한다. 최초의 공개키 교환 알고리즘으로 IPSec, S-HTTP, SSL등 많은 프로토콜에서 기본적으로 사용하는 중요한 알고리즘이다. RSA또한 이 디피-헬만법에서 아이디어를 얻었다... 2016. 10. 11.
보안의 요건과 보안유지 기법 보안의 요건 기밀성(Confidentiality) : 시스템내의 정보와 자원은 인가된 사용자에게만 접근이 허용되며, 정보가 노출되더라도 읽을 수 없도록 함 무결성(Integrity) : 시스템 내의 정보는 오로지 인가된 사용자만 수정 할 수 있음 가용성(Availability) : 인가 받은 사용자에 데해서는 사용이 용이해야 함 인증(Authentication) : 시스템 내의 정보와 자원을 사용하려는 사용자가 인가된 사용자인지 확인하는 행위 부인 방지(Non Repudiation) : 시스템에 접근하고 데이터를 송•수신한 자가 그 사실을 숨기거나 부인할 수 없도록 증기를 기록•관리 보안유지 기법 외부 보안 시설 보안 : 천채지변이나 외부 침입로부터의 보안 운영 보안 : 전산소 관리 및 경영자들의 정책과.. 2016. 10. 10.
반가산기(Half-adder)와 전가산기(Full-adder) 반가산기란 두 개의 비트를 더하여 합(sum)과 올림자(carry)를 구하는 것이다. 머리 속으로 구현해 보자. 0+0=0 0+1=1 1+0=1 이까지만 보면 마치 OR연산자로 처리될 것 같지만 문제는 이거다. 1+1=0 두 비트가 모두 1일 때 결과는 10이 되어야 한다. 올림자(Carry)가 1이 되고 합(sum)은 0이 돼야 하는 것이다. 기초를 제대로 공부 했다면 아래와 같은 연산 결과를 가지는 연산자를 바로 알아챌 수 있을 것이다. 0 0 → 0 0 1 → 1 1 0 → 1 1 1 → 0 바로 XOR 이다. XOR이 있기 때문에 합(sum)은 의외로 간단하게 구현된다. 올림자(carry)는 더 쉽다. 위에서 보았듯이 둘다 1일 때만 1을 반환하면 된다. 그냥 AND연산자 하나면 쉽게 해결되는 것.. 2016. 10. 9.
인터럽트(Interrupt)의 개념과 종류 인터럽트는 컴퓨터 구조에서 CPU의 활동에 많은 영향을 끼치는 중요한 개념이다. 어느 전산 시험, 어느 회차에서도 관련 문제가 꼭 등장하므로 인터럽트에 대해서만 확실히 이해하고 가도 몇 문제는 더 풀 수 있을 정도이다. 인터럽트란 사전적 의미로는 '끼어들다', '중단시키다' 정도의 의미를 가진 말로 프로그램을 실행하는 도중에 예기치 않은 상황이 발생할 경우 현재 실행중인 작업을 중단하고 발생된 상황을 처리한 후 다시 실행중인 작업으로 복귀하는 것을 말한다. 인터럽트의 종류인터럽트의 종류는 외부 인터럽트, 내부 인터럽트, 소프트웨어 인터럽트로 나뉠 수 있다. 외부 인터럽트전원 이상 인터럽트(Power fail interrupt) : 말그대로 정전, 파워 이상 등기계 착오 인터럽트(Machine check .. 2016. 10. 9.
명령어의 형식과 주소 지정방식 CPU구조는 기준에 따라 다양하게 분류될 수 있지만 명령어 처리방식을 기준으로 나누면 '단일누산기구조', '범용레지스터구조', '스택구조' 로 나눌 수 있다. 이런 분류는 명령어의 형태에 따라 나뉜다. CPU에게 있어서 명령어란 마이크로 오퍼레이션에 의해 수행되는 하나의 명령을 말한다. 명령어는 아래와 같이 4가지 형식으로 나뉜다. 명령어의 형식(구조) 1) 0-주소 구조 연산코드(Operation code)부 명령어는 보통 연산코드(OP-code)부와 자료(Operand)부(주소부라고도 한다)로 나뉘나 0-명령어 형식에선 자료가 없고 오로지 연산코드 밖에 없다. 이런 명령어는 스택구조에서 사용된다. 우리가 알고 있는 후위식으로 된 연산대상을 하나씩 Push, Pop해가며 연산이 이루어지는 것이다. 스택.. 2016. 10. 8.
마이크로 오퍼레이션 사이클 타임(Micro operation cycle time) 마이크로 사이클 타임과 CPU클럭 주기의 관계에 따라 3가지로 구분 된다. 1. 동기 고정식(Synchronous Fixed)CPU clock 주기를 Micro cycle time과 같도록 맞춘다. 실제 Micro operation의 수행 시간은 다르므로 CPU clock과 같도록 맞추려면 Micro operation 중 가장 수행시간이 긴 것과 맞춰야 한다.예를 들어 여러 Micro operation의 수행시간이 1, 5, 2, 4, 6, 3 등으로 서로 다르다면 Cycle time은 6으로 맞추어야 한다. 최소값이 1이나 평균값인 3정도로 맞춘다면 수행시간이 6인 Micro operation은 수행될 수 없기 때문이다. 보다 시피 구현은 무척이나 간단하다. 그리고 Micro operation의 수행시.. 2016. 10. 8.
프로세스(Process)와 프로세스 제어 블록(PCB) Process : 실행되고 있는 프로그램(주 기억장치에 올라가 있는 프로그램) Process in memory Stack : Call stack, Local variables in function Heap : 포인터를 위한 메모리 저장공간 (Heap과 Stack은 동적으로 크기가 변하기 때문에 메모리 상에서 멀리 떨어져 있다.) Data : 전역 변수(바뀌지 않는 값) Code : 프로그램 코드 PCB(Process control block : 프로세스 제어 블록) structure that contain information associated with each process- 프로세스가 생성될때 만들어진다.- 모든 프로세스는 고유한 PCB를 갖는다. 프로세스의 현재 상태(Process state, r.. 2016. 10. 3.
IEEE 802의 주요 표준 규격 802.1 : 전체의 구성, OSI 참조 모델과의 관계, 표준 규약 등 802.2 : LLC에 관한 규약 802.3 : CSMA/CD에 관한 규약 802.4 : 토큰 버스에 관한 규약 802.5 : 토큰 링에 관한 규약 802.6 : 도시형 통신망(MAN)에 관한 규약 802.11 : 무선 LAN(Wifi등)에 관한 규약 802.15 : 블루투스에 관한 규약 2016. 10. 2.
전위 순회(Preorder), 후위 순회(Postorder), 중위 순회(Inorder) A B C 위와 같을때 전위 순회(Preorder)Root - Left - Right위 앞 뒤 (A - B - C) 중위 순회(Inorder)Left - Root - Right앞 위 뒤 (B - A - C) 후위 순회(Postorder)Left - Right - Root앞 뒤 위 (B - C - A) 전위와 중위가 헷갈릴 수 있다. 후위는 명확하다.중위가 왼쪽에서 오른쪽으로 순서대로 가는 것이라고 위우자.중위가 Left - Root - Right이다.중위가 중간(Root)이 중간(순서상의 중간)에 있다. 2016. 10. 1.
소프트웨어 재공학(Reengeneering) 재공학은 기존 프로그램의 개선이나 유지보수의 관점에서 작게 볼 수도 있으나 실제로 그보다 큰 규모의 구조적 재설계를 의미하는 경우가 많다. 어찌보면 미묘한 차이일수도 있지만 굳이 구분을 해 보자면 아래와 같다. 오류 투성이의 프로그램을 쓰면서 새로운 기능이 좀 필요하면 추가도 하고 틈틈이 시간이 나면 오류를 수정해 나간다. 이는 유지보수이다.도서히 안되겠다 싶어 프로그램을 갖다 버리고 새로 도입하려다 보니 금전적으로 부담이 되기도 하고 새롭게 개발된 프로그램이 사용성이나 안정성 면에서 더 나을거란 보장이 없다. 그래서 지금 있는 프로그램을 뒤집어 엎어서 구조적인 부분부터 다시 점검해서 오류가 없도록 전면적인 수정을 한 뒤 리뉴얼을 하여 다시 오픈했다. 이는 재공학이다. 물론 재공학은 유지보수의 범주에 포.. 2016. 9. 19.
소프트웨어 재사용(Reuse) 재사용이라고 하면 단순히 예전에 만들어 놨던 것을 다시 또 사용한다는 단순한 느낌이지만, 실제로는 표준화된 솔루션, 라이브러리, 오픈소스 등이 모두 재사용의 범주에 들어간다고 할 수 있다. 개요 : 이미 개발되어 인정받은 소프트웨어의 전체 혹은 일부분을 다른 소프트웨어 개발이나 유지보수에 사용하는 것재사용 요소 : 전체 프로그램, 부분 코드, 응용된 지식, 데이터 모형, 구조, 테스트 계획, 문서화 방법 등 즉, 웹페이지 레이아웃을 비슷하게 구현했다면, 다른 개발건에서 나왔던 메뉴얼이 양식을 그대로 차용했다면 이 또한 재사용이다. 정말 포괄적인 범위의 재사용을 말하는 것이다. 재사용의 이점 - 개발 시간과 비용을 단축시킨다. - 소프트웨어 품질을 향상시킨다. - 프로젝트 실패의 위험을 감소시킨다. - 시.. 2016. 9. 19.
소프트웨어 검사(Test) 전략 순서는 다음과 같다 1. 단위(코드) 검사 - 코딩이 이루어 진 후 모듈 단위로 테스트 - 주로 화이트박스 테스트 2. 통합(설계) 검사 - 단위 검사가 완료된 모듈들을 결합하는 과정에서 수행하는 테스트 - 모듈간의 인터페이스와 연관된 오류를 찾는다. - 하향식 통합 검사 : 상위 모듈에서 하위 모듈 방향으로 통합하여 테스트 한다. Stub가 필요하다. - 상향식 통합 검사 : 하위 모듈에서 올라가며 테스트한다. Stub가 필요 없다. * Stub는 모듈을 대체하는 더미용 출력값, 또는 임시 모듈을 의미한다. * A와 B가 결합된 C모듈이 있을때 하향식 검사는 A와 B에서 옳은 값이 들어온다는 가정 하에 C가 잘 동작 하는 것인지 보는 것이므로, A와 B로부터 와야할 값을 임의로 설정해 두는 것이다. *.. 2016. 9. 18.
소프트웨어 품질관리 활동 품질 관리 = 품질 통제 + 품질 보증 품질이란? 설계 품질 : 얼마나 잘 설계했는가 일치 품질 : 얼마나 설계한대로 잘 만들었는가 품질 통제 : 소프트웨어 개발, 운영, 유지보수 과정에서 품질을 유지하기 위해 조직 내에서 행해지는 품질관리 품질 보증 : 소프트웨어의 신뢰성을 보장해주기 위해 제 3자의 입장에서 수행하는 품질관리 2016. 9. 18.
분산처리 시스템의 투명성과 구조 분류 분산 처리 시스템의 목적과 장단점 여러 자원을 공유하고 속도 및 용량 등의 효율을 높이기 위한 시스템이다.자원 사용 관점에는 모든 면에서 장점을 가지지만구축의 난이도나 비용적인 측면은 단점이다 분산 처리 시스템의 투명성 투명성(Transparency) : 사용자가 분산된 여러 자원의 위치 정보를 알지 못하고 마치 하나의 커다란 시스템을 사용하는 것처럼 인식하도록 하는 것 위치 투명성 : 분산된 시스템이 어디 있는지는 알 필요 없다. 시스템적으로 알아서 통신해서 돌아가니깐이주 투명성 : 내부적으로 데이터가 이동하는걸 사용자는 알 필요가 없다. 그냥 필요한걸 불러다 사용만 할 뿐복제 투명성 : 내부적으로 데이터가 복제 되는걸 사용자는 알 필요가 없다. 그냥 필요한걸 불러다 사용만 할 뿐병행 투명성 : 병행제.. 2015. 10. 21.
반응형