Showing posts with label Tutorials. Show all posts
Showing posts with label Tutorials. Show all posts

Security Testing Tutorial

Security Testing is performed to reveal security flaws in the system inorder to protect the data and maintain functionality.
This tutorial will teach you the core concepts of Security Testing and each of these sections contain related topics with simple and useful examples.

Audience

This reference has been prepared for the beginners to help them to understand the basics of security Testing. This tutorial will give you enough understanding on security testing from where you can take yourself to a higher level of expertise.

Prerequisites

Before proceeding with this tutorial you should have basic understanding about software testing and its related concepts.

What is Android?



Android is an open source and Linux-based Operating System for mobile devices such as smartphones and tablet computers. Android was developed by the Open Handset Alliance, led by Google, and other companies.
Android offers a unified approach to application development for mobile devices which means developers need only develop for Android, and their applications should be able to run on different devices powered by Android.
The first beta version of the Android Software Development Kit (SDK) was released by Google in 2007 where as the first commercial version, Android 1.0, was released in September 2008.
On June 27, 2012, at the Google I/O conference, Google announced the next Android version, 4.1 Jelly Bean. Jelly Bean is an incremental update, with the primary aim of improving the user interface, both in terms of functionality and performance.
The source code for Android is available under free and open source software licenses. Google publishes most of the code under the Apache License version 2.0 and the rest, Linux kernel changes, under the GNU General Public License version 2.

Why Android ?



Features of Android

Android is a powerful operating system competing with Apple 4GS and supports great features. Few of them are listed below:
FeatureDescription
Beautiful UIAndroid OS basic screen provides a beautiful and intuitive user interface.
ConnectivityGSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi, LTE, NFC and WiMAX.
StorageSQLite, a lightweight relational database, is used for data storage purposes.
Media supportH.263, H.264, MPEG-4 SP, AMR, AMR-WB, AAC, HE-AAC, AAC 5.1, MP3, MIDI, Ogg Vorbis, WAV, JPEG, PNG, GIF, and BMP
MessagingSMS and MMS
Web browserBased on the open-source WebKit layout engine, coupled with Chrome's V8 JavaScript engine supporting HTML5 and CSS3.
Multi-touchAndroid has native support for multi-touch which was initially made available in handsets such as the HTC Hero.
Multi-taskingUser can jump from one task to another and same time various application can run simultaneously.
Resizable widgetsWidgets are resizable, so users can expand them to show more content or shrink them to save space
Multi-LanguageSupports single direction and bi-directional text.
GCMGoogle Cloud Messaging (GCM) is a service that lets developers send short message data to their users on Android devices, without needing a proprietary sync solution.
Wi-Fi DirectA technology that lets apps discover and pair directly, over a high-bandwidth peer-to-peer connection.
Android BeamA popular NFC-based technology that lets users instantly share, just by touching two NFC-enabled phones together.

Android Applications

Android applications are usually developed in the Java language using the Android Software Development Kit.
Once developed, Android applications can be packaged easily and sold out either through a store such as Google Play,SlideME,Opera Mobile Store,Mobango,F-droid and the Amazon Appstore.
Android powers hundreds of millions of mobile devices in more than 190 countries around the world. It's the largest installed base of any mobile platform and growing fast. Every day more than 1 million new Android devices are activated worldwide.
This tutorial has been written with an aim to teach you how to develop and package Android application. We will start from environment setup for Android application programming and then drill down to look into various aspects of Android applications.

Categories of Android applications

There are many android applications in the market. The top categories are:


History of Android

The code names of android ranges from A to L currently, such as Aestro, Blender, Cupcake, Donut, Eclair, Froyo, Gingerbread, Honeycomb, Ice Cream Sandwitch, Jelly Bean, KitKat and Lollipop. Let's understand the android history in a sequence.

What is API level?

API Level is an integer value that uniquely identifies the framework API revision offered by a version of the Android platform.
Platform VersionAPI LevelVERSION_CODE
Android 5.122LOLLIPOP_MR1
Android 5.021LOLLIPOP
Android 4.4W20KITKAT_WATCHKitKat for Wearables Only
Android 4.419KITKAT
Android 4.318JELLY_BEAN_MR2
Android 4.2, 4.2.217JELLY_BEAN_MR1
Android 4.1, 4.1.116JELLY_BEAN
Android 4.0.3, 4.0.415ICE_CREAM_SANDWICH_MR1
Android 4.0, 4.0.1, 4.0.214ICE_CREAM_SANDWICH
Android 3.213HONEYCOMB_MR2
Android 3.1.x12HONEYCOMB_MR1
Android 3.0.x11HONEYCOMB
Android 2.3.4
Android 2.3.3
10GINGERBREAD_MR1
Android 2.3.2
Android 2.3.1
Android 2.3
9GINGERBREAD
Android 2.2.x8FROYO
Android 2.1.x7ECLAIR_MR1
Android 2.0.16ECLAIR_0_1
Android 2.05ECLAIR
Android 1.64DONUT
Android 1.53CUPCAKE
Android 1.12BASE_1_1
Android 1.01BASE

iOS (iPhone, iPad) Tutorial

iOS is a mobile operating system developed and distributed by Apple Inc. It was originally released in 2007 for the iPhone, iPod Touch, and Apple TV. iOS is derived from OS X, with which it shares the Darwin foundation. iOS is Apple's mobile version of the OS X operating system used in Apple computers.

Audience

This tutorial has been designed for software programmers with a need to understand the iPhone and iPad application development on iOS using Objective C programming.

Prerequisites

Before proceeding with this tutorial, you should have a basic understanding of Computer Programming terminologies. A basic understanding of any of the programming languages, especially Objective C programming language, will help you learn the concepts of iOS programming faster.

Excel tutorial

Microsoft Excel is a commercial spreadsheet application written and distributed by Microsoft for Microsoft Windows and Mac OS X. The current versions at the time of writing this tutorial are 2010 for Microsoft Windows and 2011 for Mac OS X.
Microsoft Excel is a spreadsheet tool capable of performing calculations, analyzing data and integrating information from different programs.
By default, documents saved in Excel 2010 are saved with the .xlsx extension where as the file extension of the prior Excel versions is .xls.

Audience

This tutorial has been designed for computer users who are willing to learn Microsoft Excel in simple steps and they do not have much knowledge about computer usage and Microsoft applications. This tutorial will give you enough understanding on MS Excel from where you can take yourself at higher level of expertise.

Prerequisites

Before proceeding with this tutorial you should have a basic understanding of Computer peripherals like mouse, keyboard, monitor, screen etc and their basic operations.

Computer Fundamentals Tutorial

Computer is an advanced electronic device that takes raw data as input from the user and processes it under the control of set of instructions (called program), gives the result (output), and saves it for the future use.
This Computer Fundamentals tutorial covers a foundational understanding of computer hardware, software, operating systems, peripherals etc. along with how to get the most value and impact from computer technology.

Audience

This tutorial has been prepared for the beginners as well as advanced learners who want to deal with computers. This tutorial is also very useful for the undergraduate students of computer science, engineering, business administration, management, science, commerce and arts where an introductory course on computers is a part of curriculum. After completing this tutorial you will find yourself at a moderate level of expertise in knowledge of computer basics from where you can take yourself to next levels

Prerequisites

Knowledge of computers is not a prerequisite to follow the contents of this tutorial. This tutorial assumes no background in computers or computer programming.

Agile Methodology Tutorial

Agile is a software development methodology to build a software incrementally using short iterations of 1 to 4 weeks so that the development is aligned with the changing business needs. This simple tutorial uses appropriate examples to help you understand agile development in a general and quick way.

Audience

This tutorial has been prepared for beginners to help them understand the basics of Agile principles and its implementation. After completing this tutorial, you will find yourself at a moderate level of expertise, from where you can advance further.

Prerequisites

Before proceeding with this tutorial, you need a basic knowledge of software development concepts such as software requirements, coding, testing, etc.

Computer Programming Tutorial

Computer programming is the act of writing computer programs, which are a sequence of instructions written using a Computer Programming Language to perform a specified task by the computer.
Computer Programming is fun and easy to learn provided you adopt a proper approach. This tutorial will take you through simple and practical approach while learning computer programming.

Audience

This tutorial has been prepared for the people who are struggling to learn computer programming but they are unable to learn it due to lack of proper guidance and approach. I'm confident that after completing this tutorial you will be at a level where you can code in C Programming language and will have basic understanding of Java and Python programming languages as well and you can continue further from that point onwards.
If you are completely new to Computer Programming, then my recommendation is to read this tutorial twice or even thrice. First reading will not give you much idea, but during your second reading, you will start grasping most of the concepts and you will enjoy while writing great computer programs.

Prerequisites

I do not expect much from your as pre-requisites to teach you computer programming but I assume that at-least you have basic knowledge about computer and its peripherals like keyboard, mouse, screen, printer, etc. If you know more than this like word editor, good typing speed, internet search, etc., then it will help you a lot while doing your computer programming.

Cloud Computing Tutorial

Cloud Computing provides us means by which we can access the applications as utilities over the internet. It allows us to create, configure, and customize the business applications online.
This tutorial will take you through a step-by-step approach while learning Cloud Computing concepts.

Audience

This reference has been prepared for the beginners to help them to understand basic-to-advanced concepts related to Cloud Computing. This tutorial will give you enough understanding on Cloud Computing concepts from where you can take yourself to a higher level of expertise.

Prerequisites

Before proceeding with this tutorial, you should have basic knowledge of Computers, Internet, Database and Networking concepts. Such basic knowledge will help you in understanding the Cloud Computing concepts and move fast on the learning track.

Biometrics - Overview

The term Biometrics is composed of two words − Bio (Greek word for Life) andMetrics (Measurements). Biometrics is a branch of information technology that aims towards establishing one’s identity based on personal traits.
Biometrics is presently a buzzword in the domain of information security as it provides high degree of accuracy in identifying an individual.

What is Biometrics?

Biometrics is a technology used to identify, analyze, and measure an individual’s physical and behavioral characteristics.
Each human being is unique in terms of characteristics, which make him or her different from all others. The physical attributes such as finger prints, color of iris, color of hair, hand geometry, and behavioral characteristics such as tone and accent of speech, signature, or the way of typing keys of computer keyboard etc., make a person stand separate from the rest.
This uniqueness of a person is then used by the biometric systems to −
  • Identify and verify a person.
  • Authenticate a person to give appropriate rights of system operations.
  • Keep the system safe from unethical handling.

What is a Biometric System?

A biometric system is a technology which takes an individual’s physiological, behavioral, or both traits as input, analyzes it, and identifies the individual as a genuine or malicious user.

Evolution of Biometrics

The idea of biometrics was present since few years from now. In 14th century, China practiced taking finger prints of merchants and their children to separate them from all others. Fingerprinting is still used today.
  • In the 19th century, an Anthropologist named Alphonse Bertilliondeveloped a method (named Bertillionage) of taking body measurements of persons to identify them. He had realized that even if some features of human body are changed, such as length of hair, weight, etc., some physical traits of body remain unchanged, such as length of fingers. This method diminished quickly as it was found that the persons with same body measurements alone can be falsely taken as one. Subsequently, Richard Edward Henry from Scotland Yard developed a method for fingerprinting.
  • The idea of retinal identification was conceived by Dr. Carleton Simon and Dr. Isadore Goldstein in 1935. In 1976, a research and development effort was put in at EyeDentify Inc. The first commercial retina scanning system was made available in 1981.
  • Iris recognition was invented by John Daugman in 1993 at Cambridge University.
  • In 2001, Biometrics Automated Toolset (BAT) was introduced in Kosovo, which provided a concrete identification means.
Today, biometric has come up as an independent field of study with precise technologies of establishing personal identities.

Why Biometrics is Required?

With increasing use of Information Technology in the field of banking, science, medication, etc., there is an immense need to protect the systems and data from unauthorized users.
Biometrics is used for authenticating and authorizing a person. Though these terms are often coupled; they mean different.

Authentication (Identification)

This process tries to find out answer of question, “Are you the same who you are claiming to be?”, or, “Do I know you?” This is one-to-many matching and comparison of a person’s biometrics with the whole database.

Verification

This is the one-to-one process of matching where live sample entered by the candidate is compared with a previously stored template in the database. If both are matching with more than 70% agreeable similarity, then the verification is successful.

Authorization

It is the process of assigning access rights to the authenticated or verified users. It tries to find out the answer for the question, “Are you eligible to have certain rights to access this resource?”

Shortcomings of Conventional Security Aids

The conventional methods of information system security used ID cards, passwords, Personal Identification Numbers (PINs), etc. They come with the following disadvantages −
  • They all mean recognizing some code associated with the person rather than recognizing the person who actually produced it.
  • They can be forgotten, lost, or stolen.
  • They can be bypassed or easily compromised.
  • They are not precise.
In such cases, the security of the system is threatened. When the systems need high level of reliable protection, biometrics comes to help by binding the identity more oriented to individual.

Basic Components of a Biometric System

In general, a biometric system can be divided into four basic components. Let us see them briefly −


Input Interface (Sensors)

It is the sensing component of a biometrics system that converts human biological data into digital form.
For example,
  • A Metal Oxide Semiconductor (CMOS) imager or a Charge Coupled Device (CCD) in the case of face recognition, handprint recognition, or iris/retinal recognition systems.
  • An optical sensor in case of fingerprint systems.
  • A microphone in case of voice recognition systems.

Processing Unit

The processing component is a microprocessor, Digital Signal Processor (DSP), or computer that processes the data captured from the sensors.
The processing of the biometric sample involves −
  • Sample image enhancement
  • Sample image normalization
  • Feature extraction
  • Comparison of the biometric sample with all stored samples in database.

Database Store

The database stores the enrolled sample, which is recalled to perform a match at the time of authentication. For identification, there can be any memory from Random Access Memory (RAM), flash EPROM, or a data server. For verification, a removable storage element like a contact or contactless smart card is used.

Output Interface

The output interface communicates the decision of the biometric system to enable the access to the user. This can be a simple serial communication protocol RS232, or the higher bandwidth USB protocol. It could also be TCP/IP protocol, Radio Frequency Identification (RFID), Bluetooth, or one of the many cellular protocols.

General Working of a Biometric System

There are four general steps a biometric system takes to perform identification and verification −
  • Acquire live sample from candidate. (using sensors)
  • Extract prominent features from sample. (using processing unit)
  • Compare live sample with samples stored in database. (using algorithms)
  • Present the decision. (Accept or reject the candidate.)
The biometric sample is acquired from candidate user. The prominent features are extracted from the sample and it is then compared with all the samples stored in the database. When the input sample matches with one of the samples in the database, the biometric system allows the person to access the resources; otherwise prohibits.


Biometrics Terminology

Biometric Template − It is a digital reference of the distinct characteristics that are extracted from a biometric sample.
Candidate/Subject − A person who enters his biometric sample.
Closed-Set Identification − The person is known to be existing in the database.
Enrollment − It is when a candidate uses a biometric system for the first time, it records the basic information such as name, address, etc. and then records the candidate’s biometric trait.
False Acceptance Rate (FAR) − It is the measure of possibility that a biometric system will incorrectly identify an unauthorized user as a valid user.
FAR =
Number of False AcceptancesNumber of Identification Attempts
A biometric system providing low FAR ensures high security.
False Reject Rate (FRR) − It is the measure of possibility that the biometric system will incorrectly reject an authorized user as an invalid user.
FRR =
Number of False RejectionsNumber of Identification Attempts
Open-Set Identification − The person is not guaranteed to be existing in the database.
Task − It is when the biometric system searches the database for matching sample.

Application Areas of Biometrics

There are a number of applications where biometric systems are useful. Few of them are given below −
  • Controlling workplace access.
  • Identity establishment of people for authentic citizenship and immigration systems.
  • Applying access control to sensitive information and systems.
  • Identifying criminals by forensics.
  • Executing online e-commerce transactions.
  • Fraud and theft reduction.
  • Law enforcement.

How to Take Screenshot Images of Computer Screen

screenshot, screen capture or screen dump, is a static picture of your computer screen’s display. The picture is a digital image taken by the operating system or by screenshot software and can be saved as a GIF, JPEG, TIFF, BMP, PNG or any other image format.

  • With the browser of your choice, visit your blog’s main page. Make sure that this browser window is the active window in full view (you may wish to maximize your browser).
  • Press the Print Screen key (typically located at the top right of your keyboard) and the Alt key simultaneously (Alt+Print Screen). This captures your active window and saves the image to your clipboard. Note: Some keyboards have an F-key lock which must be turned off.
  • Open a graphic program such as Paint (found via the Windows Start menu under All Programs > Accessories). In Paint, using the menu at the top of the application, click Edit > Paste.
  • You may need to resize your image to make sure that is under the 800x 600 pixel dimension limit. To do this, click Image > Stretch/Skew
  • Change the percentage from 100 to 75 (or thereabouts) for both the horizontal and vertical stretch fields. Click OK.
  • Save your file by clicking File > Save As… Specify your file name. Change the ‘Save as File Type’ dropdown from BMP to GIF to reduce the file size.

JPEG or PNG – Which Image Format Offers Better Quality?

You can save any image in PNG, JPEG, GIF and dozen other file formats but which offers better image quality?


Which File Format Should You Choose?

GIF format is limited to 256 colors and is a lossless compression file format, a common choice for use on the Web. GIF is a good choice for storing line drawings, text, and iconic graphics at a small file size.
PNG format is a lossless compression file format, which makes it a common choice for use on the Web. PNG is a good choice for storing line drawings, text, and iconic graphics at a small file size.
JPG format is a lossy compressed file format. This makes it useful for storing photographs at a smaller size than a BMP. JPG is a common choice for use on the Web because it is compressed. For storing line drawings, text, and iconic graphics at a smaller file size, GIF or PNG are better choices because they are lossless.
JPEGs are for photographs and realistic images. PNGs are for line art, text-heavy images, and images with few colors. GIFs are just fail.
Webcomic courtesy Louis. Randall Munroe at xkcd and Matthew Inman at Oatmeal use PNG for their web comics while Hugh MacLeod at GapingVoid uses the JPEG file format for his cartoons.

How to Choose an Image Format for Screenshots

The quality of screenshot images and illustrations used on your website do make a difference. You can use the good-old Print Screen key or any of the professional screen capture tools to grab your screenshots but the more important factor is that the output image should be sharp and that the file size be well within a reasonable limit.


The three most popular image formats for sharing screen captures on the web are PNG, JPG (JPEG) and GIF. There are other image formats like SVG and BMP but JPG/PNG/GIF are the most widely supported file formats and they can be rendered across all email clients and web browsers.

Here’s a quick guide to help you decide the right image format for your screenshots. It really depends on what you are trying to capture and where you are trying to embed that capture.

Choose Between JPG, PNG and GIF Image Formats

If you are capturing a web page that has lot of text – like snippets of source code or Google search results pages or even a tweet – use the GIF or PNG format. The screenshots will be clear (JPEG adds grains or noise around text) and file size remains pretty low.

If you need to screen capture a program window on your screen, dialog boxes, splash screens or Google Maps, use the PNG format. The advantage with PNG is that it preserves all the colors and yield a much sharper output when compared with JPG. See this Photoshop splash screen for a comparison between JPEG and PNG quality.
The PNG format is also recommended for capturing web pages, logos and line art.

If you capturing a frame of a YouTube video, video games, Flash animations, desktop wallpapers or photographs or scene from a DVD movie, go with the JPEG format and not PNG because the file size would be significantly smaller without much degradation in the quality.
To give you example, this Wall Strip video on YouTube would take around 92kb when saved in PNG format but that would fall to 20kb if we changed the format from PNG to JPG. Surprisingly, there isn’t any remarkable difference in quality.

To summarize, use JPEGs for photographs and places where you need the file size to be relatively small, GIFs where the screen capture includes solid colors or where you need animation and PNG for text or for preserving transparency.