Application Development

Quantization without Bounding Box

Most data sets do not make use of full floating-point precision so that the lowest-order bits are noise and not actual data. For effective compression, floating-point positions are  usually quantized onto a uniform grid. To support quantization for streaming meshes whose bounding box is not known in advance, we use a scheme that quantizes conservatively using a bounding box that is learned as the mesh streams by. The first two vertex positions are compressed without quantization and their distance gives the initial guess on the number of mantissa bits that need to be preserved to guarantee the user-requested precision. This maximum distance is updated with every compressed vertex position and will eventually match the extent of the actual bounding box. How long quantization is overly conservative depends on the order in which of the vertex positions are compressed.

This scheme is part of our current API and works reasonably well, but we still need to analyze and optimize compression speeds and bit-rates. Since conservative quantization encodes many positions with more precision than needed, thereby inflating compression rates, we want to use bounding box information if possible. For the results reported in this paper we assume that advance knowledge about the
bounding box is available. Our streaming mesh writer also supports lossless floating-point compression. This is less efficient since the low-order bits of the mantissa typically contain incompressible noise. But providing this functionality makes it possible to use compression when quantization—for whatever reason—is not an option.

Tags : , , , ,

Keyword Search Over Semistructured And Structured Databases

Keyword-based search is very useful for unstructured documents, and often is the onlyway to query such data. Keyword search also can be very useful over more structured data, since it is inherently simple for users to master and often is sufficient for the task athand. However, some IR concepts and algorithms must be reconsidered in a database setting. In particular, proximity search benefits from
a new approach in a database setting. Traditionally, proximity search in IR systems is implemented using the “ near” operator. If we search our document collection for “ Harrison Ford” near “ Carrie Fisher” , we are looking for documents where those two names appear “ close” to each other, where closeness is measured by textual proximity. In this sense, proximity search is a relatively simple,
“ intra-object” operation: we measure proximity along a single dimension (text) in each document. Now, suppose that we have fully migrated our movie document collection to XML. Each movie might begin with a MOVIE tag, followed by nested tags for that movie’s actors, producers, etc. In this setting,we want to account for “ structural proximity” in the database, while textual proximity may not be relevant. For example, if Harrison Ford and Carrie Fisher both star in the same movie, then they will both be sub-elements of a specific MOVIE element. In the textual representation, however, there may be many other actors lexically in between these actors. Similarly, we may find that the last actor listed for some movie X is textually close to the first actor listed for an adjacent movie Y— but this doesn’t mean that the two actors are related in any way. Thus, we need to extend the notion of proximity search to handle the structure inherent in a semistructured database. This work fills in Entry 4 in our matrix.

Algorithms and techniques for performing proximity search over a graph-structured (semistructured) database are applicable to a traditional relational or object oriented database as well. We can (logically) translate a relational database into a graph based on the schema and on primary/foreign key relationships. We can then use our proximity search techniques to measure the distance between database elements based on the graph representation. Viewing an object-oriented database as a graph is of course even simpler. By combining proximity search with traditional indexing techniques for identifying tables or attribute values that contain given keywords, we can provide keyword-based search (and browsing) for traditional databases. Thus, our work on proximity search applies to matrix Entry 2 as well.

Tags : , , , , , , , ,

JDK 1.2 Security model for smart card application deployment

JDK 1.2 security model differs from the “all” or “nothing” approach of the 1.1 model. Like the Microsoft or Netscape models, JDK 1.2 allows granting privileges in a very fine-grained matter. The process to create a certificate is also simplified. One keytool instruction declares a trusted entity, generates the keys and creates the certificate. The new keystore architecture replaces the identity database that java key created and managed. Note that you can now protect your keystore and your private keys with passwords. Once the applet is packaged into a JAR file using the jar tool, you can then sign the JAR file with the jarsigner tool.

Like JDK 1.1, the 1.2 security model is still not supported by your favorite browser and Sun released the Java Plug-in 1.2 and the HTML converter tool for the 1.2 security model. You will therefore need to convert your HTML file that hosts your signed applet. Unfortunately, configuring your local machine for the JDK 1.2 security model is as complicated as for Java 1.1. Before running the signed applet, the user must first install the Java Plug-in, select the JRE 1.2 and import the certificate of the trusted entity that signed the applet. There is an additional step: the user needs to update the policy file attached with the keystore to specify which privileges are granted to the entity that signed the applet. This java.policy file is initially located in the lib/security folder of the selected JRE 1.2.

// this keystore is to store our certificates
keystore “.keystore”;
// gives full privileges to applets signed by XLorphelin
grant signedBy “XLorphelin”

{
permission java.security.AllPermission;
};

Listing 1: Policy file for JDK 1.2 security model

To verify a signed applet, the JRE first refers to its java.security file located in lib/security. This file specifies where the java.policy file is located. The default is to have a single system-wide policy file in the lib/security folder and a policy file in the user’s home directory (C:\Winnt\Profiles\<username> for Windows NT platforms). This policy file provides the name and location of the keystore as well as determines what actions foreign applets signed by a specific entity are allowed to carry out on the user’s local machine. When using JDK 1.2 security model to load a terminal application, the user must carefully install the java.policy file and the attached keystore in the expected directory. Note that the java.policy file must be rename .java.policy (don’t forget the dot at the beginning of the file name) if located in the user.home directory. The opencard.properties file can either be installed in the user.home directory or in
the lib folder of the selected JRE.

Tags : , , , , , , ,

6 Simple Steps to Beat Phishing

Everybody knows about phishing. Phishers impersonate a trusted web site, commonly a bank or an online payment provider, in order to extract confidential information from users. Not only unsuspecting consumers are the victims of these scams, but in addition, the impersonated web sites will be impacted by reduced consumer confidence into their product, as well as by financial losses due to the
misuse of the collected information.

1. Consistent Branding

For a consumer, the first and sometimes only way to tell if a web site or an email is trustworthy is the fact that either the URL or the layout “doesn’t look right”. In this context, it is important to provide consistent visual queues to end users to recognize communications from your business. In particular e-mail sent to customers should use the same ‘From’ domain name as you use at your website. If you outsource mass mailings, insist that these emails will still use the familiar ‘From’ address. Consumers will otherwise not be able to distinguish between obvious fakes and real e-mail. Assist customers in securing their systems by not requiring the use of Javascript and Active-X. In particular, design your web site to be accessible by various browsers.

2. Monitor bounces to customer facing e-mail addresses

In order to advertise their fake web sites, phishers typically use the same methods and address lists used for spam. Many of the e-mail addresses on these lists are expected to be invalid. If you use consistent ‘From’ addresses, the phisher will have to use this address to maximize success. This will result in some bounces being sent back to your own mail servers. Setting up a process to screen these bounces for phishing e-mail will provide an early warning mechanism to alert you of phishing scams.

3. Monitor referrers to public web sites

Phishers typically redirect the user to the authentic web site after the information has been collected. This is done to hide the phishing site from the user and to improve its plausibility. The web browser will send the URL of the phishing web site as part of its ‘Referrer’ header. Web servers can be  configured to log this data, and most web servers already do so by default. Monitoring this log for unusual referrers will again assist in finding phishing websites.

4. Watermark web content

Phishers attempt to emulate the look and feel of your web site as good as they can. Typically, the HTML code and images from your site are just copied. As a result, the phisher will have to visit the authentic site before setting up the fake site. Encoding the IP address and a time stamp as part of your HTML code will likely allow you to figure out when the code was copied from your site, and who copied it. There are a numerous ways to accomplish this. Adding spaces between HTML tags, including extra GET parameters, or even watermarking images. The most appropriate method will depend on your web infrastructure.

5. Preposition countermeasures

Once you find a site impersonating you, there are a number of techniques you can use to limit damage. Most web servers will allow you to redirect users to special pages based on the referrer field sent by the browser. As phishing victims are frequently directed back to your site after they visited the fake site, you can use this technique to identify victims, or redirect them to a warning page. If they are existing customers of yours, you may be able to identify them based on prior cookies left behind by your site.

These countermeasures typically need to be prepared ahead of the phishing scam in order to evaluate the impact on web site performance. Once prepositioned, these redirects or special logs can be enabled quickly once a phishing site has been identified.

6. Organizational and Administrative Countermeasures

The company web site should include a link and contact information to report phishing or other security issues. All phishing countermeasures should be coordinated by a single individual.

Educating your customers about phishing, and showcasing samples for them to learn how to spot a phishing scam, will prevent them from becoming victims. If your web site allows access to critical financial or personal information (e.g. Banks, Brokerages), you should consider the use of strong authentication via hardware tokens. It will decrease your response time, to discuss legal implications ahead of time and to have a legal response laid out ahead of time (e.g. letter drafted to be sent to ISPs in order to shut down impostor websites).

Tags : , , , , , ,

Two Party Threat Model and Trust Assumptions

This threat model assumes that all databases (DBs) do not trust each other and that no information from one set of data should be learned by another data owner. We also require that the computing engine cannot learn anything about the underlying data, the exact query (for examples, the selection conditions are protected but the computing engine must know the type of the queries to response accordingly) and its result. We make the following trust assumptions.

My Zimbio
Top Stories

Tags : , , , , , , ,

Existing Graph Based Stream Authentication Methods Using Crypto Signatures

For graph-based authentication, the main challenge is how to design a Directed Acyclic Graph (DAG) with lowest overhead, highest verification probability and lowest sender and receiver delay. However, there are trade-offs between these performance criteria, which are summarized below.

Tags : , , , , ,

Local Administrator Password Selection

In most enterprises there are two types of passwords: local and domain. Domain passwords are centralized passwords that are authenticated at an authentication server (e.g., a Lightweight Directory Access Protocol server, an Active Directory server). Local passwords are passwords that are stored and authenticated on the local system (e.g., a workstation or server). Although most local passwords can be managed using centralized password management mechanisms, some can only be managed through third-party tools, scripts, or manual means. A common example is built-in administrator and root accounts. Having a common password shared among all local administrator or root accounts on all machines within a network simplifies system maintenance, but it is a widespread weakness. If a single machine is compromised, an attacker may be able to recover the password and use it to gain access to all other machines that use the shared password. Organizations should avoid using the same local administrator or root account password across many systems. Also, built-in accounts are often not affected by password policies and filters, so it may be easier to just disable the built-in accounts and use other administrator-level accounts instead.

A solution to this local password management problem is the use of randomly generated passwords, unique to each machine, and a central password database that is used to keep track of local passwords on client machines. Such a database should be strongly secured and access to it limited to only the minimum needed. Specific security controls to implement include only permitting authorized administrators from authorized hosts to access the data, requiring strong authentication to access the database (for example, multi-factor authentication), storing the passwords in the database in an encrypted form (e.g., cryptographic hash), and requiring administrators to verify the identity of the database server before providing authentication credentials to it.

Another solution to management of local account passwords is to generate passwords based on system characteristics such as machine name or media access control (MAC) address. For example, the local password could be based on a cryptographic hash of the MAC address and a standard password. A machine’s MAC address, “00:16:59:7F:2C:4D”, could be combined with the password “N1stSPsRul308” to form the string “00:16:59:7F:2C:4D N1stSPsRul308”. This string could be hashed using SHA and the first 20 characters of the hash used as the password for the machine. This would create a pseudo-salt that would prevent many attackers from discovering that there is a shared password. However, if an attacker recovers one local password, the attacker would be able to determine other local passwords relatively easily.

Tags : , , , , , , , , , , ,

SSL/TLS Cipher Suites

A cipher suite combines four kinds of security features, and is given a name in the SSL protocol specification. Before data flows over a SSL connection, both ends attempt to negotiate a cipher suite. This lets them establish an appropriate quality of protection for their communications, within the constraints of the particular mechanism combinations which are available. The features associated with a cipher suite are:

A given implementation of SSL will support a particular set of cipher suites, and some subset of those will be enabled by default. Applications have a limited degree of control over the cipher suites that are used on their connections; they can enable or disable any of the supported cipher suites, but cannot change the cipher suites that are available.

Tags : , , , , , , , , , ,

Transport Layer Security Protocol

TLS (Transport Layer Security) was released in response to the Internet community’s demands for a standardized protocol. The IETF provided a venue for the new protocol to be openly discussed, and encouraged developers to provide their input to the protocol.

The TLS protocol was released in January 1999 to create a standard for private communications. The protocol “allows client/server applications to communicate in a way that is designed to prevent eavesdropping,tampering or message forgery.” According to the protocol’s creators, the goals of the TLS protocol are cryptographic security, interoperability, extensibility, and relative efficiency.These goals are achieved through implementation of the TLS protocol on two levels: the TLS Record protocol and the TLS Handshake protocol.

TLS Record Protocol

The TLS Record protocol negotiates a private, reliable connection between the client and the server. Though the Record protocol can be used without encryption, it uses symmetric cryptography keys, to ensure a private connection. This connection is secured through the use of hash functions generated by using a Message Authentication Code.

TLS Handshake Protocol

The TLS Handshake protocol allows authenticated communication to commence between the server and client. This protocol allows the client and server to speak the same language, allowing them to agree upon an encryption algorithm and encryption keys before the selected application protocol begins to send data. Using the same handshake protocol procedure as SSL, TLS provides for authentication of the server, and optionally, the client.

Tags : , , , , , , , , , , , ,

User login protocol

Initialization: Once the user has successfully logged into an account, the server places in the user’s computer a cookie that contains an authenticated record of the username, and possibly an expiration date. (“Authenticated”means that no party except for the server is able to change the cookie data without being detected by the server. This can be ensured, for example, by adding a MAC that is computed using a key known only to the server. Cookies of this type can be stored in several computers, as long as each of them was used by the user.

Login:

1. The user enters a username and a password. If his computer contains a cookie stored by the login server then the cookie is retrieved by the server.

2. The server checks whether the username is valid and whether the password is correct for this username.

3. If the username/password pair is correct, then

4. If the username/password pair is incorrect, then

Tags : , , , , , , ,